워크플로 · 영상 게시 2026-02-01 · 9분 46초

Kimi K2.5 시스템 프롬프트 분석과 Codex CLI 연결 방법

오픈 웨이트 모델 Kimi K2.5를 OpenRouter로 Codex CLI에 연결해 보고, 공개된 시스템 프롬프트의 트리거·워크플로·작업 예산·메모리 규칙을 분석했습니다.

Moonshot AI의 Kimi K2.5가 어떤 모델인지 짧게 소개하고, OpenRouter를 통해 Codex CLI에서 써 본 뒤, 공개된 Kimi K2.5 시스템 프롬프트에서 배울 만한 프롬프트 설계 기법을 정리한 영상입니다. 서브에이전트용 저가 모델을 찾는 분, 그리고 에이전트용 시스템 프롬프트를 직접 쓰는 분께 참고가 됩니다. 모델과 가격 비교는 영상 게시 시점(2026-02-01) 기준입니다.

Kimi K2.5는 어떤 모델인가

Kimi K2.5는 중국 회사 Moonshot AI가 공개한 모델입니다. 영상에서 본 벤치마크에서는 Anthropic의 Claude나 OpenAI의 GPT 같은 미국 모델과 비교해 크게 밀리지 않고, 일부 영역에서는 근소하게 앞섰습니다. 단테가 주목한 점은 두 가지입니다. 하나는 중국 회사 모델이 미국의 주요 모델과 성능 차이가 크지 않다는 점이고, 다른 하나는 가중치를 공개한 오픈 웨이트 모델이라는 점입니다. 가중치가 공개되면 내려받아 내 서버에서 직접 실행하거나 파인튜닝으로 맞춤화할 수 있습니다.

점수 자체는 Gemini, Opus, Codex 계열보다 낮은데도 대안이 되는 이유는 비용입니다. 영상의 가격 비교 그래프에서 Kimi K2.5는 저렴한 편으로 알려진 GLM 4.7과 가격 차이가 크지 않았고, 가장 싼 축인 DeepSeek V3.2보다는 비쌌습니다. 대신 성능은 두 모델보다 확실히 높았고, Gemini 3 Flash나 Claude Sonnet 4.5 같은 클로즈드 모델 사이에 끼어 경쟁하는 위치였습니다. 서브에이전트나 특정 작업에만 다른 모델을 쓰는 방식으로 에이전트를 운영한다면 좋은 선택지가 될 수 있다는 것이 단테의 평가입니다. 프론트엔드 개발에 강하다는 평도 있습니다.

Codex CLI에서 OpenRouter로 Kimi K2.5 쓰기

OpenRouter에서 API 키를 만들고, Quickstart에서 모델 이름을 확인한 뒤 Codex의 config.toml에 프로필을 추가합니다. 영상에서 설정한 항목은 모델 프로바이더를 OpenRouter로 지정하고, 환경변수로 넣어 둔 OpenRouter API 키를 참조하고, wire_api를 responses로 두는 것입니다. 구조는 대략 다음과 같습니다. 프로필 이름은 원하는 대로 정하면 됩니다.

[model_providers.openrouter]
name = "openrouter"
base_url = "https://openrouter.ai/api/v1"
env_key = "OPENROUTER_API_KEY"
wire_api = "responses"

[profiles.kimi-k2.5]
model = "moonshotai/kimi-k2.5"
model_provider = "openrouter"
codex --profile kimi-k2.5

실행하면 세션이 Moonshot AI의 Kimi K2.5로 동작합니다. 단테는 "인터랙티브 레이아웃과 스크롤 연동 효과 같은 풍부한 애니메이션" 정도의 대충 쓴 프롬프트로 웹 페이지를 만들어 봤고, 스크롤에 따라 퍼센트가 채워지는 등 꽤 괜찮은 결과가 나왔습니다. 다만 Kimi 블로그의 예시는 이미지 생성 도구를 함께 썼기 때문에, 그 도구 없이 만든 결과는 조금 빈약했습니다.

시스템 프롬프트는 어떻게 공개됐나

며칠 전 한 Reddit 사용자가 Kimi 웹사이트에서 K2.5에게 시스템 프롬프트를 달라고 요청했습니다. 완벽한 시스템 프롬프트가 아니면 믿지 않겠다며 더 자세히 요구하자 결국 마크다운 파일 형식으로 내놓았고, 이 내용이 GitHub에 올라왔습니다. 단테는 성능 좋은 모델이 프롬프트 엔지니어링을 어떻게 했는지 공부할 수 있는 자료라고 보고, 다른 모델과 비교해 특징을 짚었습니다.

모델이 흔들리지 않게 만드는 네 가지 장치

프롬프트 엔지니어링에서 중요한 목표 중 하나는 모델이 흔들리지 않게 하는 것입니다. 같은 "최신 정보를 정리해 줘" 요청에도 어떤 때는 검색하고 어떤 때는 하지 않거나, 길이와 결론과 톤이 매번 크게 달라진다면 모델이 흔들리는 것입니다. Kimi의 시스템 프롬프트는 이를 막기 위해 다음 장치를 씁니다.

  1. 트리거: 도구를 나열하는 데서 그치지 않고 언제 쓰는지를 조건으로 고정합니다. 최신·변동 정보를 요청하면 검색, 낯선 용어나 모를 가능성이 있는 질문이면 검색, 의료·법률·재무처럼 위험한 정보는 검증을 강화하는 도구를 쓰라고 명시합니다. "알아서 해"가 아니라 "이 조건이면 이 행동"입니다.
  2. 워크플로: 트리거만으로는 검색 다음 단계가 모델마다 달라집니다. 그래서 결과를 어떤 순서로 읽고 인용하고 요약할지, 어떤 형식으로 낼지까지 정해 둡니다.
  3. 작업 예산: 도구를 많이 부르다 보면 무한 탐색이나 도구 남발로 장황해지기 쉽습니다. Kimi는 스텝 수와 도구 호출 수를 제한합니다.
  4. 대체 경로: 요청을 수행할 수 없을 때 길게 사과하거나 애매하게 약속하거나 응답이 끊기는 대신, "이 채널에서는 불가능하니 A나 B로 해결하라"는 대안을 규칙으로 정해 둡니다. 사용자 경험이 유지됩니다.

마지막은 메모리입니다. 기억해 달라는 요청에 "기억해 둘게요"라고만 하고 실제로 저장하지 않으면 신뢰가 무너집니다. Kimi의 프롬프트는 저장·삭제 요청에는 반드시 메모리 도구를 호출해야 하고, 호출 없이 기억하겠다고 말하면 거짓말이라고 규정합니다. 또 메모리 작업을 추가·교체·삭제로 나눠 데이터 모델처럼 다루고, 필요한 파라미터가 없으면 요청이 실패하도록 해서 같은 내용이 중복 저장돼 메모리가 지저분해지는 문제를 구조적으로 줄입니다.

정리

  • Kimi K2.5는 오픈 웨이트 모델로, 가격 대비 성능이 좋아 서브에이전트나 특정 작업용 대안이 될 수 있습니다.
  • Codex CLI에서는 OpenRouter를 모델 프로바이더로 등록하고 프로필을 만들어 --profile로 바로 쓸 수 있습니다.
  • 공개된 시스템 프롬프트는 트리거와 워크플로로 도구 사용 시점과 순서를 고정합니다.
  • 작업 예산과 대체 경로 규칙으로 장황함과 거절 경험을 줄입니다.
  • 메모리는 도구 호출을 의무화하고 추가·교체·삭제로 나눠 "말로만 기억하는" 문제를 막습니다.

영상: 유튜브에서 보기 · 정정 요청: dante@quokkalabs.net