페이지 콘텐츠로 건너뛰기
문서
Make Agent Fast 문서

API 레시피

사이트, 에이전트, 지식, 게시, 보고의 전체 워크플로를 자동화합니다.

이 페이지 한눈에

사이트, 에이전트, 지식, 게시, 보고의 전체 워크플로를 자동화합니다.

API 요청 경로범위 키 → 버전 리소스 → 서명된 응답
앱 / SDKBearer 키maf_live_…/api/v1/…리소스JSON
만들기근거 추가게시

이 레시피는 공개 SDK가 없어도 작동하도록 REST를 직접 사용합니다. 서버 환경에 MAF_API_KEY를 설정하고 이전 단계에서 반환된 ID로 대체하세요.

레시피: 근거가 있는 에이전트 만들고 게시하기#

sites:write, agents:write, knowledge:write 범위가 있는 API 키 하나를 만드세요. 자동화가 사이트를 나열하거나 검증한다면 sites:read도 추가합니다.

1. 사이트 만들기#

curl --fail-with-body https://makeagent.fast/api/v1/sites \
  -X POST \
  -H "Authorization: Bearer $MAF_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: launch-acme-site-2026-01" \
  -d '{
    "title": "Acme support",
    "slug": "acme-support",
    "type": "business",
    "template": "minimal",
    "content": {
      "headline": "Ask Acme support",
      "subheadline": "Answers grounded in our current policies.",
      "about": "Acme support answers product and account questions."
    },
    "persona_mode": "assistant",
    "languages": ["en"]
  }'

성공하면 201 Created를 반환하고 data 아래에 사이트가 있으며 Location 헤더에 정식 리소스 경로가 포함됩니다. data.idSITE_ID로 저장하세요.

2. 에이전트 및 임베드 정책 설정#

curl --fail-with-body "https://makeagent.fast/api/v1/sites/$SITE_ID/agent" \
  -X PATCH \
  -H "Authorization: Bearer $MAF_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: launch-acme-agent-2026-01" \
  -d '{
    "display_name": "Acme guide",
    "persona_mode": "assistant",
    "instructions": "Answer only from confirmed Acme sources. If the answer is missing, say that a teammate will follow up.",
    "languages": ["en"],
    "embed_enabled": true,
    "allowed_origins": ["https://www.acme.example", "https://staging.acme.example"]
  }'

허용 오리진은 스킴, 호스트 이름, 선택적 포트로 구성된 정확한 오리진입니다. 경로나 뒤쪽 와일드카드를 넣지 마세요.

3. 텍스트 지식 소스 추가#

curl --fail-with-body "https://makeagent.fast/api/v1/sites/$SITE_ID/knowledge" \
  -X POST \
  -H "Authorization: Bearer $MAF_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: launch-acme-returns-2026-01" \
  -d '{
    "name": "Returns policy 2026-01",
    "text": "Customers may request a return within 30 days of delivery. Contact support before sending an item back."
  }'

공개 API는 현재 5~200,000자의 붙여넣은 텍스트를 수집합니다. URL 크롤링, 업로드, YouTube, 팟캐스트, 피드 소스는 대시보드를 사용하세요.

4. 구조화된 FAQ 추가#

curl --fail-with-body "https://makeagent.fast/api/v1/sites/$SITE_ID/faqs" \
  -X POST \
  -H "Authorization: Bearer $MAF_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: launch-acme-faq-returns-2026-01" \
  -d '{
    "question": "How long do I have to return an order?",
    "answer": "You may request a return within 30 days of delivery.",
    "approved": true
  }'

5. 게시#

curl --fail-with-body "https://makeagent.fast/api/v1/sites/$SITE_ID/publish" \
  -X POST \
  -H "Authorization: Bearer $MAF_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: launch-acme-publish-2026-01" \
  -d '{"published": true}'

응답에는 {"data":{"id":"...","status":"published"}}가 포함되어야 합니다. 실제 임베드를 열고 소스에 답이 있는 질문을 해보세요. 게시는 에이전트 상태 변경만 증명하며 소스 품질이나 임베드 오리인이 정확하다는 뜻은 아닙니다.

레시피: 리드를 안전하게 페이지네이션하기#

leads:read 범위의 키를 사용하세요. next_cursor를 불투명한 값으로 취급하고 URL 인코딩합니다.

const base = `https://makeagent.fast/api/v1/sites/${siteId}/leads`;
let cursor: string | null = null;

do {
  const url = new URL(base);
  url.searchParams.set("limit", "100");
  if (cursor) url.searchParams.set("cursor", cursor);

  const response = await fetch(url, {
    headers: { Authorization: `Bearer ${process.env.MAF_API_KEY}` },
  });
  if (!response.ok) throw await response.json();

  const page = await response.json();
  for (const lead of page.data) await exportLead(lead);
  cursor = page.next_cursor;
} while (cursor);

커서를 디코딩, 수정, 정렬하거나 다른 컬렉션에 재사용하지 마세요.

레시피: 사고 중 임베드 비활성화#

agents:write를 사용하고 네트워크 재시도에서는 같은 멱등성 키를 유지하세요.

curl --fail-with-body "https://makeagent.fast/api/v1/sites/$SITE_ID/agent" \
  -X PATCH \
  -H "Authorization: Bearer $MAF_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: incident-2026-07-embed-off" \
  -d '{"embed_enabled": false}'

응답 성공 후 허용된 호스트에서 런처가 더 이상 초기화되지 않는지 확인하세요. 오리진, 콘텐츠 또는 자격 증명 문제를 해결한 뒤 새 사고 해결 키로 다시 활성화합니다.

프로덕션 체크리스트#

  • 서비스와 환경마다 별도 키를 사용합니다.
  • 변경 요청을 보내기 전에 리소스 ID와 멱등성 키를 저장합니다.
  • 연결 및 응답 시간 제한을 설정합니다.
  • Retry-After를 지키고 재시도 횟수를 제한합니다.
  • 시크릿이나 개인정보 없이 작업 이름, HTTP 상태, 요청 ID를 기록합니다.
  • 프로덕션 쓰기 범위를 부여하기 전에 비프로덕션 사이트에서 테스트합니다.