소개
Kimi K3는 Moonshot AI의 장문 컨텍스트 에이전트 모델로, 여기서는 /v1/chat/completions의 OpenAI 호환 엔드포인트 하나로 제공합니다. 최대 256개 메시지에 걸쳐 1,000,000토큰까지 읽고, 응답 하나로 최대 1,048,576토큰을 돌려줄 수 있습니다.
요청 필드는 messages, max_tokens, tools, tool_choice, response_format, reasoning_effort, stop 일곱 개입니다. 추론 강도는 low, high, max이고 max에서 시작합니다. temperature와 top_p는 Moonshot이 고정하므로 여기서는 거부됩니다. 메시지에는 텍스트와 image_url 파트를 담을 수 있고, 응답은 Server-Sent Events로 스트리밍됩니다.
핵심 기능 및 하이라이트
조절 장치는 reasoning_effort 하나
샘플링은 Moonshot이 고정하므로 조절하는 것은 모델이 얼마나 생각하느냐입니다. 짧고 기계적인 턴에는 low, 일반적인 리뷰에는 high, 마이그레이션과 증명에는 max를 씁니다. 다른 모델에서 복사한 샘플링 값은 조용히 무시되지 않고 바로 오류가 나므로, 요청의 의미가 어떤 환경에서도 같습니다.
패키지를 읽고 파일을 돌려줍니다
입력 100만 토큰에 응답 최대 1,048,576토큰입니다. 코드베이스를 통째로 넣고, 다시 쓴 파일도 통째로 받을 수 있습니다. 처리할 때마다 저장소의 나머지가 보이므로, 잘게 나누는 파이프라인에서 흔히 잃는 맥락이 유지됩니다.
텍스트와 이미지를 같은 메시지에
user 메시지에 텍스트와 image_url 파트를 섞을 수 있고, detail은 auto, low, high 중에서 고르며, 파트마다 입력 토큰으로 계량됩니다. 오류가 난 화면의 스크린숏과 그 화면을 그리는 소스를 함께 보낼 수 있습니다. 동영상 파트는 없습니다.
요청 파라미터
| 파라미터 | 필수 | 설명 |
|---|---|---|
messages | 예 | 순서대로 놓인 턴 최대 256개입니다. 내용은 일반 문자열이거나 text와 |
max_tokens | 아니요 | 응답을 1,048,576에서 자릅니다. 기본값 32,768로도 파일 전체를 다시 쓰는 답은 조용히 잘릴 수 있으니 결과물 크기에 맞추세요. |
reasoning_effort | 아니요 | low, high, max 중 하나이고 기본값은 max입니다. Moonshot이 K3에 대해 밝힌 단계와 기본값 그대로라, 필드를 뺀 요청도 가장 신중한 설정으로 돌아갑니다. |
stop | 아니요 | 각각 32바이트 이하인 정지 시퀀스를 최대 4개까지 문자열 또는 배열로 지정합니다. 모델이 그중 하나를 쓰는 즉시 응답이 끝나며, 일치한 텍스트 자체는 반환되지 않습니다. 1자 이상 · 1개 이상 · 4개 이하 |
tools | 아니요 | 함수 정의 최대 128개입니다. 루프의 첫 요청에서 선언하세요. 128개 이하 |
tool_choice | 아니요 | auto면 모델이 호출을 건너뛸 수 있고, required면 강제하고, none이면 전부 막습니다. |
response_format | 아니요 | 출력이 산문이 아니라 구조화된 데이터라면 JSON 객체를 요청하세요. |
요금
입력 $2.70 / 출력 $13.50 100만 토큰당
활용 사례
저장소 전체를 파일 단위로 다시 쓰기
패키지의 파일을 모두 보내고, diff 설명이 아니라 마이그레이션된 파일을 한 번에 하나씩 요청하세요. 응답 상한이 커서 큰 파일도 통째로 돌아오므로, 함수 중간의 이어 쓰기 경계에서 내용이 빠지지 않습니다.
구성이 고정된 에이전트 루프
도구를 최대 128개까지 선언하고 tool_choice는 auto로 둔 채 루프를 돌리세요. 루프 전체에서 reasoning_effort를 고정하면 반복마다 바뀌는 것은 대화뿐이라, 문제가 생겼을 때도 에이전트 기록을 읽기 쉽습니다.
책 한 권 번역과 재구성
원고 전체와 용어집을 넣고, 호출마다 한 챕터씩 번역하거나 재구성하게 하세요. 모델이 책의 나머지도 보고 있고 앞 챕터가 같은 요청에 있으니 용어와 이름이 흔들리지 않습니다.
프롬프트 가이드 및 실전 팁
추론 강도는 의도해서 고르세요
reasoning_effort를 생략하면 이미 max입니다. 가장 신중하고 출력 토큰도 가장 많이 쓰는 설정입니다. 마이그레이션이나 증명에는 max, 리뷰에는 high, 짧고 기계적인 턴에는 low로 작업마다 정하세요.
설명이 아니라 결과물을 요구하세요
POST https://api.spicyapi.ai/v1/chat/completions에 {"model": "moonshot/kimi-k3", "messages": [{"role": "system", "content": "Return the migrated files in full. No commentary, no diffs, no omitted regions."}, {"role": "user", "content": "<every file in the package>"}], "max_tokens": 120000}을 보냅니다. max_tokens는 돌려받을 파일 크기에 맞추세요. 기본값 32,768은 파일 전체를 다시 쓰는 작업을 오류 없이 잘라 버릴 수 있습니다.
스트리밍과 한계
창을 가득 채워 max로 스트리밍 없이 호출하면 오래 걸릴 수 있으니 스트리밍을 쓰거나 클라이언트 타임아웃을 넉넉히 잡으세요. 창은 1,000,000토큰이고, 1,048,576을 넘는 max_tokens는 유효하지 않으며, 본문에 temperature나 top_p가 있으면 검증에서 거부됩니다.
API 빠른 시작
curl --fail-with-body -sN https://api.spicyapi.ai/v1/chat/completions \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "moonshot/kimi-k3/chat",
"messages": [
{
"role": "user",
"content": "Summarise the following release notes into three bullet points."
}
],
"stream": true
}' \
| jq --unbuffered -Rrj 'select(startswith("data: ")) | .[6:] | select(. != "[DONE]") | fromjson | if .error then "\n[error] \(.error.message)\n" else (.choices[0].delta.content? // empty) end'
인증, 전체 스키마, 폴링과 오류 처리는 API 레퍼런스에서 확인하세요.





