Moonshot AI의 Kimi K2.6 발표는 코딩, 장기 실행, 에이전트 스웜을 위한 오픈 소스 SOTA API입니다. OpenAI와 호환되며, `https://api.moonshot.ai/v1`에서 제공되고 플랫폼에서 문서를 확인할 수 있습니다. OpenAI SDK만 설치되어 있으면 5분 만에 실제 요청을 보낼 수 있습니다.
이 가이드에서는 인증, 첫 요청, 스트리밍, 도구 호출, 시각 및 비디오 입력, 사고 모드, 최대 300개 서브 에이전트 에이전트 스웜까지 실제 통합 코드를 단계별로 설명합니다. 또한 Apidog로 모든 엔드포인트를 사전에 테스트하는 방법도 다룹니다.
💡빠른 경로: 통합 코드를 커밋하기 전에 Apidog에서 Kimi K2.6 API를 시각적으로 테스트하세요. 한 번의 가져오기, 한 번의 Bearer 토큰으로 전체 기록 및 스키마 유효성 검사를 통해 실제 스트리밍 요청을 할 수 있습니다. Apidog를 무료로 다운로드하세요.
TL;DR: 60초 만에 Kimi K2.6 API
-
기본 URL:
https://api.moonshot.ai/v1 -
엔드포인트:
POST /chat/completions -
모델 ID:
kimi-k2.6,kimi-k2.6-thinking -
인증:
Authorization: Bearer $KIMI_API_KEY - 형식: OpenAI 채팅 완료 스키마 (메시지, 도구, 스트림 등)
- 컨텍스트: 262,144 입력 토큰, 최대 98,304 출력 토큰
- 기본값: temperature 1.0, top-p 1.0 (공식 안내)
최소 요청 예시:
curl https://api.moonshot.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $KIMI_API_KEY" \
-d '{
"model": "kimi-k2.6",
"messages": [{"role": "user", "content": "Write a Python function that reverses a string."}]
}'
이후 섹션에서 에이전트 스웜, 4,000단계 실행 제한 등 세부 내용을 실용적으로 다룹니다.
이 API로 실제로 할 수 있는 것
Kimi K2.6 발표에 따라, 이 API로 아래와 같은 프로덕션 시나리오를 바로 구현할 수 있습니다:
- 12시간 이상 실행되는 코딩 에이전트 (4,000+ 도구 호출, 처리량 15~193 토큰/초)
- 며칠간 세션의 자율 인프라 관리
- Rust, Go, Python, Zig 기반 장기 신뢰성
- 최대 300개 서브 에이전트, 4,000+ 단계의 에이전트 스웜
- 풀스택 앱 생성 디자인 주도 개발 (프롬프트 기반)
- 비전 + Python 도구 파이프라인 (예: MathVision 93.2%)
Claude Code 컴퓨터 사용, 나만의 Claude Code 구축, Cursor Composer 2 같은 도구도 K2.6 API로 모델 레이어를 바로 교체할 수 있습니다.
1단계: API 키 받기
- platform.moonshot.ai 또는 platform.kimi.ai에서 회원가입 (이메일/Google OAuth)
- 계정 인증 (해외는 SMS 필요)
- 결제 정보 추가 (신규 계정엔 소량 무료 크레딧 제공)
- 대시보드 → API 키 → 키 생성
- 키 즉시 복사 (한 번만 표시)
- 환경 변수에 저장:
export KIMI_API_KEY="sk-..."
.zshrc, .bashrc에 추가하거나, 비밀 관리자를 사용하세요. 키는 절대 커밋하지 마십시오.
개발 중 요금이 걱정된다면 Kimi K2.6을 무료로 사용하는 방법 참고 (Cloudflare Workers AI, 자체호스팅, 무료 크레딧).
2단계: SDK 선택
OpenAI 호환 API이므로, base URL만 바꾸면 공식 OpenAI SDK 그대로 사용할 수 있습니다.
| 옵션 | 설치 | 최적 용도 |
|---|---|---|
| curl | 내장 | 빠른 테스트, CI |
| OpenAI Python | pip install openai |
Python 서비스 |
| OpenAI Node | npm install openai |
JS/TS 앱 |
Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("KIMI_API_KEY"),
base_url="https://api.moonshot.ai/v1",
)
response = client.chat.completions.create(
model="kimi-k2.6",
messages=[{"role": "user", "content": "What is the capital of France?"}],
)
print(response.choices[0].message.content)
Node.js
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.KIMI_API_KEY,
baseURL: "https://api.moonshot.ai/v1",
});
const response = await client.chat.completions.create({
model: "kimi-k2.6",
messages: [{ role: "user", content: "What is the capital of France?" }],
});
console.log(response.choices[0].message.content);
curl
curl https://api.moonshot.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $KIMI_API_KEY" \
-d '{
"model": "kimi-k2.6",
"messages": [{"role": "user", "content": "What is the capital of France?"}]
}'
세 방식 모두 동일한 응답 형식 반환.
3단계: 요청 본문 이해
OpenAI 채팅 완료와 동일한 필드 사용:
{
"model": "kimi-k2.6",
"messages": [
{ "role": "system", "content": "You are a helpful assistant." },
{ "role": "user", "content": "Your prompt here." }
],
"temperature": 1.0,
"top_p": 1.0,
"max_tokens": 8192,
"stream": false,
"tools": [],
"tool_choice": "auto",
"thinking": { "type": "disabled" }
}
참고:
- 기본값이 높습니다. 공식 블로그 권장값은 temperature 1.0, top-p 1.0입니다.
-
thinking은kimi-k2.6-thinking에서 추론 추적을 제어. 빠른 응답엔{"type": "disabled"}.
4단계: 스트리밍
장기 생성/대화에서는 스트리밍 사용이 필수입니다. K2.6은 최대 98,304 토큰까지 출력 가능하므로, 전체 응답을 기다리기보다 스트림으로 받아야 효율적입니다.
Python
stream = client.chat.completions.create(
model="kimi-k2.6",
messages=[{"role": "user", "content": "Write a 500-word essay on MoE models."}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)
Node.js
const stream = await client.chat.completions.create({
model: "kimi-k2.6",
messages: [{ role: "user", content: "Write a 500-word essay on MoE models." }],
stream: true,
});
for await (const chunk of stream) {
const delta = chunk.choices[0]?.delta?.content;
if (delta) process.stdout.write(delta);
}
도구 호출 스트림도 동일하게 처리 가능. 인수는 JSON 델타로 도착하니 연결해야 함.
5단계: 도구 호출
Moonshot은 Toolathlon 점수 50.0%, 96.60% 도구 호출 성공률을 공식 발표했습니다. 표준 OpenAI 함수 호출 스키마와 동일하므로, QA 엔지니어를 위한 API 테스트 워크플로도 바로 적용됩니다.
도구 정의
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather in a location.",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "City name"},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
},
"required": ["location"]
}
}
}
]
첫 번째 호출 (모델 결정)
import json
messages = [{"role": "user", "content": "What's the weather in Tokyo?"}]
resp = client.chat.completions.create(
model="kimi-k2.6",
messages=messages,
tools=tools,
tool_choice="auto",
)
msg = resp.choices[0].message
messages.append(msg)
if msg.tool_calls:
for call in msg.tool_calls:
args = json.loads(call.function.arguments)
result = fetch_weather(args["location"], args.get("unit", "celsius"))
messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": json.dumps(result),
})
두 번째 호출 (최종 답변)
final = client.chat.completions.create(
model="kimi-k2.6",
messages=messages,
tools=tools,
)
print(final.choices[0].message.content)
K2.6은 다단계 도구 체인에 강합니다. Kimi Code나 Claude Code 워크플로와 동일한 루프 사용 가능.
6단계: 시각 입력
K2.6의 비전 성능: MMMU-Pro 79.4%, V* (Python 포함) 96.9%. 이미지는 OpenAI의 image_url 포맷을 사용:
response = client.chat.completions.create(
model="kimi-k2.6",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Describe this image in one sentence."},
{"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
]
}
],
)
로컬 파일은 Base64로 인코딩:
import base64
with open("photo.jpg", "rb") as f:
b64 = base64.b64encode(f.read()).decode("utf-8")
image_url = f"data:image/jpeg;base64,{b64}"
OCR/다이어그램 읽기는 텍스트 지시와 이미지를 결합해서 전달. 수학 문제는 Python 도구를 tool로 추가(예: MathVision).
7단계: 비디오 입력
비디오 URL 또는 프레임 시퀀스를 직접 메시지에 포함:
response = client.chat.completions.create(
model="kimi-k2.6",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Summarize what happens in this video."},
{"type": "video_url", "video_url": {"url": "https://example.com/clip.mp4"}}
]
}
],
)
30초 미만의 짧은 클립은 단일 호출로 충분. 긴 비디오는 프레임별 추론으로 토큰 소모가 크니 스트리밍 활용 권장.
8단계: 사고 모드
kimi-k2.6-thinking 모델은 추론 과정을 그대로 드러냅니다. AIME 2026 96.4%, GPQA-Diamond 90.5% 성능.
사고 모드 켜기:
response = client.chat.completions.create(
model="kimi-k2.6-thinking",
messages=[{"role": "user", "content": "Prove sqrt(2) is irrational."}],
)
사고 모드 끄기:
response = client.chat.completions.create(
model="kimi-k2.6-thinking",
messages=[{"role": "user", "content": "Quick: what's 17 * 23?"}],
extra_body={"thinking": {"type": "disabled"}},
)
추론 과정은 응답의 reasoning 필드로 반환. 필요에 따라 숨기거나 디버그 로그로 활용.
9단계: 에이전트 스웜
에이전트 스웜은 최대 300개 서브에이전트, 4,000+ 단계, K2.5 대비 3배 확장성을 제공합니다 (공식 블로그).
호출 예시:
response = client.chat.completions.create(
model="kimi-k2.6",
messages=[{
"role": "user",
"content": "Build a 5-page marketing site for a coffee brand with responsive design and a newsletter signup."
}],
extra_body={
"agent": {
"type": "swarm",
"max_agents": 30,
"max_steps": 4000
}
},
)
실전 팁:
- 스트리밍 필수: 진행 상황을 실시간 확인하고 조기 중단 가능
-
max_agents제한: 10~30 수준이 예측 가능 -
예산 관리: 응답의
usage기록 후 메트릭 시스템 연동으로 경고 설정
13시간, 4,000줄 코드 수정 데모 등은 모두 이 구조로 구현됨.
10단계: Apidog로 모든 것을 테스트하기
각 단계별로 요청/응답 형식이 달라집니다. Apidog로 아래처럼 워크플로를 시각화하면 디버깅이 빨라집니다.
Apidog에서 Kimi K2.6 설정
- Apidog 다운로드 및 프로젝트 생성
-
kimi-prod환경 생성:BASE_URL = https://api.moonshot.ai/v1,KIMI_API_KEY = sk-... - 새 API 요청:
POST {{BASE_URL}}/chat/completions - 헤더:
Authorization: Bearer {{KIMI_API_KEY}},Content-Type: application/json - 본문 예시:
{
"model": "kimi-k2.6",
"messages": [{ "role": "user", "content": "Hello, Kimi K2.6!" }],
"stream": true
}
- 보내기 클릭 → 실시간 스트리밍 응답 확인
Apidog의 추가 기능
- OpenAI 채팅 완료 스펙 스키마 유효성 검사
- 모든 호출 요청 기록 저장 및 재생
- 환경 전환 (Dev/Stage/Prod 키 간 빠른 전환)
- 팀 공유: 프로젝트 내보내기, 50명+ 엔지니어 팀 가이드 참고
- 모의 서버로 장애 대응
- SSE 스트림 지원 (타 도구 대비 월등)
VS Code 확장도 제공(VS Code 내 Apidog 사용법), Postman 없이 API 테스트도 참고하세요.
번거롭지 않은 오류 처리
표준 HTTP 코드 사용:
- 400: 잘못된 요청 (본문 형식/모델명 오류)
- 401: 인증 실패 (키 없음/오류/만료)
- 429: 속도 제한, 할당량 소진
- 500: 서버 오류 (exponential backoff로 재시도)
- 529: 과부하 (잠시 후 재시도)
재시도 래퍼 예시:
import time
from openai import OpenAI, RateLimitError, APIError
def call_kimi(messages, max_retries=5):
for attempt in range(max_retries):
try:
return client.chat.completions.create(
model="kimi-k2.6",
messages=messages,
)
except RateLimitError:
time.sleep(2 ** attempt)
except APIError as e:
if e.status_code >= 500 and attempt < max_retries - 1:
time.sleep(2 ** attempt)
else:
raise
raise RuntimeError("Kimi K2.6 failed after retries")
스트림 도중 연결이 끊기면 받은 토큰을 저장하고, "여기서부터 계속" 지시로 재시도. 98,304 토큰 제한에 따른 스트림 종료는 정상 동작.
비용 관리
Kimi 가격표 기준, 비용 예측을 위해 다음을 실무에 적용하세요:
-
max_tokens제한: 챗봇 등은 2,048로 충분 - 시스템 프롬프트 캐시: 반복되는 지시는 캐싱 활용
-
usage기록: 모든 응답의 토큰 사용량을 메트릭 스택에 파이프/경고 설정
생산 패턴: GitHub 이슈 해결 에이전트
아래는 GitHub 이슈를 읽고, 코드 검색/수정/테스트까지 자동화하는 Kimi K2.6 도구 호출 루프 예시입니다:
from openai import OpenAI
import os, json
client = OpenAI(
api_key=os.getenv("KIMI_API_KEY"),
base_url="https://api.moonshot.ai/v1",
)
tools = [
{"type": "function", "function": {
"name": "read_file",
"description": "Read a file in the repo.",
"parameters": {
"type": "object",
"properties": {"path": {"type": "string"}},
"required": ["path"]
}
}},
{"type": "function", "function": {
"name": "search_code",
"description": "Ripgrep the codebase for a pattern.",
"parameters": {
"type": "object",
"properties": {"query": {"type": "string"}},
"required": ["query"]
}
}},
{"type": "function", "function": {
"name": "run_tests",
"description": "Run the project test suite.",
"parameters": {"type": "object", "properties": {}}
}},
]
def tool_dispatch(name, args):
if name == "read_file":
with open(args["path"]) as f:
return f.read()
if name == "search_code":
return run_ripgrep(args["query"])
if name == "run_tests":
return run_pytest()
raise ValueError(f"Unknown tool: {name}")
messages = [
{"role": "system", "content": "You are a senior engineer. Fix the described bug."},
{"role": "user", "content": "Issue: login form submits twice on slow networks."}
]
while True:
resp = client.chat.completions.create(
model="kimi-k2.6",
messages=messages,
tools=tools,
)
msg = resp.choices[0].message
messages.append(msg)
if not msg.tool_calls:
print(msg.content)
break
for call in msg.tool_calls:
result = tool_dispatch(call.function.name, json.loads(call.function.arguments))
messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": result,
})
Swarm 구성을 추가하면 에이전트 스웜으로 확장 가능. human-in-the-loop 체크포인트는 Hermes 다중 에이전트 스택 참고.
FAQ
Moonshot 전용 SDK가 필요한가요?
아니요. base_url만 변경하면 OpenAI Python/Node SDK 모두 사용 가능합니다.
API는 속도 제한이 있나요?
예. 제한은 티어/사용 기록에 따라 다릅니다. 대시보드에서 확인하세요.
Kimi K2.6은 LangChain, LlamaIndex, Vercel AI SDK와 호환되나요?
예. OpenAI 호환 base URL만 지원하면 모두 작동합니다.
Kimi K2.6은 JSON 모드를 지원하나요?
예. 유효한 JSON 출력을 원하면 response_format: {"type": "json_object"}
엄격한 스키마엔 {"type": "json_schema", "json_schema": {...}} 사용.
컨텍스트 창 크기는 정확히 얼마인가요?
공식 블로그 기준 262,144 입력 토큰, 98,304 출력 토큰.
API로 Kimi K2.6을 미세 조정할 수 있나요?
아직 불가. 오픈 가중치(huggingface.co/moonshotai/Kimi-K2.6)를 직접 돌려야 합니다.
kimi-k2.6과 kimi-k2.6-thinking 차이는?
kimi-k2.6은 빠른 에이전트, kimi-k2.6-thinking은 추론 단계 노출(수학/논리/계획 최적화).
무료 티어가 있나요?
Cloudflare Workers AI, kimi.com 채팅, 자체 호스팅 등 무료 가이드 참고.
요약
Kimi K2.6 API는 base URL과 API 키만 바꾸면 모든 OpenAI 호환 툴체인에 바로 붙일 수 있습니다. 262K 컨텍스트 창, 300개 서브 에이전트 스웜, 96.60% 도구 호출 성공률을 API로 바로 사용하세요. 호스팅이 싫다면 오픈 소스 가중치도 대안입니다.
새 통합 전에는 꼭 Apidog로 각 엔드포인트를 시각적으로 점검하세요. 스키마 오류, 스트리밍 버그, 인증 문제를 코드에 반영하기 전 미리 잡을 수 있습니다. 이후 Python/Node 서비스로 안전하게 포팅하세요.
참고 자료 및 추가 읽을거리
- 공식 발표: Kimi K2.6 — Moonshot AI 블로그
- API 빠른 시작: platform.kimi.ai/docs/guide/kimi-k2-6-quickstart
- API 플랫폼: platform.moonshot.ai
- Kimi Code 터미널 에이전트: kimi.com/code
- 가격: kimi.com/membership/pricing
- 오픈 가중치: huggingface.co/moonshotai/Kimi-K2.6
- 관련 Apidog 가이드:


Top comments (0)