omo 속의 Gemini — 실패 모드 두 개를 명명한 하네스
같은 절차를 쓰는데 왜 어떤 모델에겐 경고를 늘려 쓰나. omo 저장소의 Gemini 전용 프롬프트가 이 질문에 답이 되는 문서다. Atlas 오케스트레이터 프롬프트 8벌 중 Gemini판이 526줄로 가장 길다(2026-09-09 실측, default 496줄).
답부터. 길어진 정체는 새 절차가 아니라 강조고, 그 강조는 반대 방향의 실패 모드 두 개를 겨냥한다. 강조어 MUST·NEVER·MANDATORY·NON-NEGOTIABLE을 세면 default 17개, gemini판 23개다. ultrawork 쪽은 더 벌어진다 — default 25개, gemini판 35개.
공장 안전수칙을 떠올려 보자. 절차는 모든 기계가 같은데, 유독 한 기계 앞에만 경고판이 빽빽하게 붙어 있다. 그 기계가 위험해서가 아니라, 그 기계에서 반복된 사고 유형이 다르기 때문이다.
omo가 뭔지는 1편에서, 같은 방법론이 Kimi에겐 어떻게 적용됐는지는 2편에서 다뤘다. 오늘 읽을 것은 셋이다. 실패 모드 두 개와 장치를 읽고, 설명문이 명령문이 되는 지점을 짚고, 이 모델이 omo 안에서 받은 자리로 끝낸다. 이하 진단은 전부 omo 저자 code-yeongyu가 프롬프트에 적은 관측이다.
이런 경험이 있다면
에이전트가 “확인했습니다”라고 답했는데 실제로는 파일을 읽지 않은 걸 발견한 적이 있을 것이다. “이 버그 좀 봐줘”라고 했더니 조사 대신 코드를 바로 고쳐버린 적도 있을 것이다. 그리고 그런 버릇이 모델마다 다르다는 것도 느꼈을 것이다.
omo는 그 버릇의 차이를 모델별 프롬프트 파일로 만들었다. Gemini용 파일 두 개에는 그 버릇이 실패 모드라는 이름으로 하나씩 명명돼 있다.
실패 모드 두 개부터 살펴보자 — 방향이 반대다
첫째는 atlas판의 TOOL_CALL_MANDATE 블록이다. 원문 그대로 옮긴다.
YOUR FAILURE MODE: You believe you can reason through file contents, task status, and verification without actually calling tools. You CANNOT. Your internal state about files you “already know” is UNRELIABLE.
도구를 안 부르고 머리로만 검증하는 버릇을 겨냥한다. 처방은 강제다. “A response without tool calls is a FAILED response.” 병렬 실행도 예외가 아니다 — 전용 부록은 병렬 작업 3개를 말했으면 응답에 task() 호출 블록이 3개 있어야 한다고 개수까지 적는다.
2편에서 본 Kimi K3의 추가 문장 하나(“말만 하고 호출 없는 턴 = 실패”)와 같은 증상이다. 다만 Kimi에겐 문장 하나를 보탰고, Gemini에겐 섹션을 통째로 배정했다.
둘째는 ultrawork판(323줄)의 GEMINI_INTENT_GATE다.
YOUR FAILURE MODE: You see a request and immediately start coding. STOP. Classify first.
요청을 보자마자 코딩부터 시작하는 버릇이다. 처방은 억제다. 어떤 도구 호출보다 먼저 의도를 6가지(research/implementation/investigation/evaluation/fix/open-ended)로 분류해 선언하게 한다. “explain how X works”에 코드를 고치는 응답을 WRONG으로 규정한 대조표까지 붙였다. 건너뛰면 “다음 도구 호출은 무효”다.
두 파일을 겹쳐 보면 재미있는 긴장이 나온다. 첫째 실패 모드는 행동을 안 해서 문제고, 둘째는 행동을 너무 빨리 해서 문제다. 같은 모델에 “도구를 불러라”는 강제와 “코딩부터 하지 마라”는 억제가 동시에 걸려 있다. 모순이 아니라 국면 분리다 — 검증 국면에선 행동을 강제하고, 착수 국면에선 행동을 막는다.
설명문이 명령문이 되는 곳
같은 검증 절차를 두 파일이 어떻게 다르게 쓰는지 비교하면 이 하네스의 방법이 제일 잘 보인다. default판 검증 섹션의 제목은 “Why You Verify Personally”다. 서브에이전트의 보고를 왜 직접 확인해야 하는지 이유를 설명하는 산문이다. gemini판에서 같은 섹션은 이렇게 시작한다.
THE SUBAGENT LIED. VERIFY EVERYTHING.
이어지는 문장도 같은 결이다. “THEIR WORK IS EXTREMELY SUSPICIOUS”, “This is NOT a warning - this is a FACT based on thousands of executions”. 절차 자체는 코드 읽기, 자동 검사, 직접 QA, 게이트 판정 4단계로 동일하다. 다른 건 서술 방식뿐이다. 이유를 설명하던 문장이 단정 명령문이 됐다.
게이트 판정의 마지막 줄이 이 톤의 정점이다.
ALL three must be YES. “Probably” = NO. “I think so” = NO.
바뀐 모든 줄을 설명할 수 있는가. 동작을 직접 봤는가. 기존 기능이 안 깨졌다고 확신하는가. 세 질문에 “아마도”라는 답을 허용하지 않는다.
스코프 확장 검사도 gemini판에만 있다. “Do NOT invent new requirements” 아래 “Your creativity should go into ORCHESTRATION QUALITY, not implementation decisions”가 붙는다. 창의성을 금지하는 게 아니라 쓸 자리를 지정하는 문장이다. 2편에서 Kimi의 사고 모드를 “어려운 30%에 쓰라”고 지정하던 것과 같은 수법이다.
자리는 후순위, 장비는 가장 무겁다
그럼 omo는 이렇게 공들인 Gemini를 어디에 쓰나. 기본 모델 테이블 실측으로는 oracle 에이전트 폴백 3순위(gemini-3.1-pro)와 momus 후순위가 전부다. 오케스트레이터의 폴백 체인에는 아예 없고, 초판(8/28) 실측 때 있던 writing 카테고리 3순위 자리는 그 사이 체인 개편으로 사라졌다. 어느 자리에서도 1순위가 아닌데 전용 프롬프트는 전 변형 중 가장 길다. 출전 순서는 뒤인데 장비가 가장 무거운 선수인 셈이다.
왜 이런 배분인지 저장소엔 설명이 없다. 폴백까지 감안해 안전장치를 두껍게 깔았다고 볼 수도 있고, 강한 프롬프트가 필요할 만큼 통제가 어려웠다고 볼 수도 있다. 둘 다 추정이다.
Q&A
Q. 왜 Gemini에게만 이렇게 강하게 썼나.
A. 모른다. 저장소에 설명 문서가 없고, 저자에게 물은 것도 아니다. 확인되는 건 결과물뿐이다 — default와의 diff에서 대문자 강조와 “FAILED response” 류 단정이 반복해 확인되고, 강조어 수(17→23, 25→35)로도 계측된다.
Q. 이 관측에서 가져갈 만한 패턴은.
A. omo가 쓴 기법으로 한정하면 셋이다. 버릇을 실패 모드라는 이름으로 명명하고 시작한다. 금지 대신 “쓸 자리 지정”으로 창의성과 사고를 배치한다. 같은 절차라도 모델에 따라 설명문과 명령문을 갈아 끼운다. 갈라 쓰기 전의 판단 기준은 시리즈 결산에 정리했다.
Q. 그래서 이 프롬프트는 효과가 있나.
A. 검증 못 했다. A/B 비교도 없고 내 설정엔 Gemini가 없다. 이 시리즈가 확인하는 건 “omo가 무엇을 썼는가”까지고, “그게 작동하는가”는 별도 실험이 필요하다.
확인 범위
- 진단(“머리로만 추론한다” 등)은 전부 code-yeongyu가 프롬프트에 적은 관측이다. Gemini 모델의 실제 결함으로 읽지 않는다.
- 내 Mac Studio omo 설정엔 gemini 라우팅이 0건(grep 실측)이라, 이번 편은 런타임 관측 없는 순수 저장소 리딩이다.
- 수치는 2026-09-09 dev 브랜치 재실측이다(초판 8/28의 525/502/325줄에서 갱신 — 파일과 폴백 테이블이 그 사이에도 편집됐다). 계속 움직이는 저장소라 이 수치도 금방 낡을 수 있다.
관련 글
- 같은 에이전트에 프롬프트가 여덟 벌 — omo 하네스 해부 — 시리즈 1편
- omo 속의 Kimi — 오케스트레이터 기본값과 전용 프롬프트 3벌 — 같은 수법의 다른 방향
- 모델별 프롬프트, 당신도 갈라 써야 할까 — omo 시리즈 결산 — 이 시리즈의 결론
글쓴이 — 8년 차 개발자. AI 도구로 일하는 방식을 실측 기록으로 남긴다. 이 글의 수치는 2026-09-09 oh-my-openagent 저장소(dev 브랜치) 재실측이다.
태그: #omo #Gemini #하네스 #시스템프롬프트 #AI에이전트
댓글
댓글 쓰기