모델별 프롬프트, 당신도 갈라 써야 할까 — omo 시리즈 결산

모델별 프롬프트, 당신도 갈라 써야 할까 — omo 시리즈 결산

에이전트에 모델을 여러 개 물려 쓰다 보면 한 번은 이 질문에 닿는다. 모델별 프롬프트를 따로 써야 하나? 지난 다섯 편 동안 그걸 실제로 하는 공개 저장소(oh-my-openagent, 이하 omo)를 줄 단위로 읽었으니, 결산은 이 질문에 답하는 것으로 하겠다.

답부터. 대부분의 경우 갈라 쓸 필요 없다. 8벌을 운영하는 omo조차 기본값은 default 한 벌이고, 변형은 특정 모델의 실패 모드에 이름을 붙일 수 있을 때만 만들었다. 가져갈 것은 파일 8벌이 아니라 그 판단 순서다.

오늘 읽을 것은 셋이다. 변형이 언제 생기는지, 처방의 방향 다섯 가지, 그리고 갈라 쓰기 전에 밟을 순서와 그 비용. 참고로 이하의 모델 진단은 전부 omo 저자 code-yeongyu가 프롬프트 파일에 적은 관측이다 — 세부 유보는 글 끝 확인 범위에 모았다.

이런 경험이 있다면

새 모델을 물렸더니 에이전트 행동이 미묘하게 달라진 걸 본 적이 있다. 그래서 프롬프트를 모델별로 복사해 고치기 시작했는데, 곧 관리가 안 되는 것도 겪었다. 반대로 “요즘 모델은 다 알아서 하지 않나” 싶어 한 벌로 버틴 적도 있다.

양쪽 다 근거가 부족한 선택이다. 8벌짜리 저장소는 이 갈림길에서 뭘 기준으로 삼았는지부터 살펴보자.

변형은 실패 모드를 명명할 때만 생겼다

atlas 오케스트레이터 프롬프트 8벌을 다시 세면(2026-09-09 실측) default 496줄, gemini 526줄, opus-4-7 494줄, kimi 478줄, gpt 461줄, glm 402줄, kimi 신세대 2벌 각 326줄이다. 숫자보다 중요한 건 공통점이다. 여덟 벌 전부, 파일 안에 그 모델의 실패 모드를 명명하는 블록이 있다.

Gemini판의 “YOUR FAILURE MODE”, Claude판의 “defaults you MUST counter”, GLM판의 카운터 3종 — 이름은 달라도 구조가 같다. 막연히 “이 모델에 맞게 다듬었다”는 변형은 하나도 없다. 관측 없이 만든 변형이 없다는 뜻이다.

반대 방향의 증거가 더 세다. 폴백 1순위 다섯 자리를 차지한 현역 Claude(opus-5·sonnet-5·fable-5-1)는 전용 변형이 아예 없다 — 5편에서 확인한 대로 default를 그대로 받는다. 고칠 버릇이 안 보이면 안 고친다. 변형의 부재도 판단의 결과다.

처방의 방향은 다섯 가지다

다섯 편에서 확인한 처방을 한 표로 겹치면 이렇다.

모델 명명된 실패 모드 처방 방향
Kimi 사고 모드 과다 누른다 — 금지·예산에서 기질 서술로, 끝은 문장 패치
Gemini 행동 안 함 + 분류 없이 코딩 몰아붙인다 — 경고 증폭, 협박어 23개
GPT 말 많음·스코프 확장·멈추지 못함 멈춰 세운다 — 계약과 STOP RULES
Claude 4.7 문자 해석·팬아웃 축소 방향을 돌려 쓴다 — 버릇을 지렛대로
GLM 과탐색·과질문·능력 소극 조율한다 — 아래 참조

협박어는 MUST·NEVER·MANDATORY·NON-NEGOTIABLE 4종을 센 수치다(atlas 파일 기준, 2026-09-09 실측).

GLM은 시리즈에서 유일하게 안 다룬 변형이라 여기서만 짚는다. atlas/glm.md는 402줄에 협박어가 4개로 atlas 변형 중 가장 적다. 대신 정체성을 다른 모델 셋의 조합으로 정의한다.

GLM 5.2 behaves like Opus 4.6 tuned to think and act like Fable 5, while producing code-oriented work like GPT-5.5. Use Claude-style XML structure for parsing and GPT-style outcome framing for execution.

그리고 과탐색·과질문·능력 소극이라는 세 실패 모드에 카운터를 하나씩 붙였다. 과질문 카운터는 이렇게 생겼다.

Do not pause on minor decisions an orchestrator should make. Names, default commands, formatting, batching, and category choice are your responsibility. Pick a reasonable option, record it when useful, and proceed.

표를 세로로 읽으면 결산의 핵심이 나온다. 같은 방법론인데 처방이 다섯 방향으로 갈라진다. 모델별 프롬프트의 본질은 “모델에 맞는 좋은 말”이 아니라 그 모델의 버릇에 맞는 반대 방향의 힘이다.

갈라 쓰기 전에, 순서가 있다

그럼 언제 갈라 쓰나. omo의 구성에서 순서 하나를 끌어낼 수 있다 — 저장소에 지침으로 적힌 건 아니고, 여덟 벌의 공통 구조에서 내가 읽어낸 추론이다.

  1. 관측부터. 특정 모델에서 반복되는 실패를 문장 하나로 명명할 수 있나. “탐색만 두 바퀴 돌고 착수를 안 한다”처럼. 못 쓰면 아직 갈라 쓸 때가 아니다.
  2. 방향을 정한다. 그 버릇을 누를 건지, 몰아붙일 건지, 멈춰 세울 건지, 거꾸로 지렛대로 쓸 건지. 위 표의 다섯 방향이 선택지다.
  3. 전면 재작성 대신 패치. omo도 세대가 바뀔 때 파일을 새로 쓰지 않았다. Kimi K3는 문장 하나, Claude 4.7은 블록 하나를 보탰다.

비용도 같이 봐야 한다. 이 파일들은 살아있다 — 시리즈를 쓰는 동안에도 줄 수가 계속 움직였고, 오늘도 커밋이 이어지는 풀타임 저장소가 8벌을 유지한다. 개인 설정에서 그 유지비를 감당할 수 있는지가, 어쩌면 실패 모드 관측보다 먼저 오는 질문이다.

Q&A

Q. 그래서 지금 내 프롬프트를 갈라야 하나.
A. 반복 실패를 문장으로 명명할 수 있을 때만. 그 전에는 default 한 벌 유지가 omo의 구성이 보여주는 기본값이다.

Q. 갈라 쓰면 효과는 검증된 건가.
A. 아니다. omo에도 변형별 A/B 비교는 없다. 이 시리즈가 확인한 건 “이렇게 운영한다”는 사실이지 “이러면 좋아진다”는 결과가 아니다.

Q. 어느 편부터 읽으면 되나.
A. 전체 구조는 1편, 실제 동작 차이(도구 인자)까지 간 변형은 4편 GPT, 변형을 안 만드는 판단은 5편 Claude에 있다.

시리즈는 여기서 닫는다. 남는 숙제는 하나 — 이 프롬프트들이 실제 런타임에서 뭘 바꾸는지는 여전히 아무도 재지 않았다. 그건 읽기가 아니라 실험의 몫이다.

확인 범위

  • 모델 진단(“과탐색” 등)은 code-yeongyu가 프롬프트에 적은 관측이다. 각 모델의 실제 행동 사실로 읽지 않는다.
  • 수치는 2026-09-09 dev 브랜치 실측이며 계속 움직인다. 1~5편 수치와 시점이 달라 직접 비교는 피한다.
  • 4번 섹션의 순서는 저장소 구성에서 끌어낸 추론이지 omo 문서의 지침이 아니다.
  • 내 omo 설정은 Kimi·로컬 모델만 쓴다. 변형별 런타임 검증은 하지 않았다.

관련 글


8년 차 개발자. AI 도구로 일하는 방식을 실측 기록으로 남긴다. 이 글의 수치는 2026-09-09 oh-my-openagent 저장소(dev 브랜치) 실측이다.

태그: #모델별프롬프트 #omo #하네스 #시스템프롬프트 #AI에이전트

댓글

이 블로그의 인기 게시물

Opus 5는 더 잘 쓰고, 더 AI답게 쓴다 — 세 모델 첫날 실측

AI 코딩 스킬, 많을수록 좋을까 — 자산이 부채로 바뀌는 손익분기

맥 스튜디오 M4 Max 128GB 로컬 LLM 4개 속도 비교 — gemma4·llama3.3·qwen3 실측