요즘 Codex 쓰는 사람들 중에 `518*n-2` 패턴의 토큰 사용량을 본 적 있어? 이게 그냥 우연이 아니더라. 최근에 올라온 글을 보니까, Codex 기본 설정에 꽤 골치 아픈 함정이 숨어있었어. 모델 성능이 좋아도 이걸 모르면 제대로 쓰기 어렵다는 거야.
문제는 기본 `system prompt`에 "30초마다 진행 상황을 보고하라"는 명령이 들어있다는 점이야. 이 짧은 명령 하나 때문에 모델이 일정 길이에 도달하면 스스로 추론 토큰을 줄여버려. 열심히 생각하다가 중간에 끊기는 셈이지. 그러니 정답률이 떨어지고 작업이 잘 마무리되지 않는 거야. GPT-5.6이 아무리 똑똑해도 이 현상은 그대로 발생해.
빌더들은 이 문제를 `system prompt` 자체를 교체해서 해결했어. '30초 보고' 명령을 아예 없애버리고, 대신 "턴 안에서 끝까지 처리하라"는 자율 지침을 넣었지. 중간 보고 대신 작업 완결성을 우선하는 구조로 바꾼 거야. 더 중요한 건, 기존 리포 패턴을 따르고, 수정 범위를 최소화하며, 불필요한 추상화를 만들지 말라는 '엔지니어링 판단' 섹션까지 추가했다는 점이야. 이렇게 프롬프트를 고치니까 사용량은 줄면서 정답률은 100%로 올라가더라.
토큰 사용량이 폭발하는 또 다른 원인은 `subagent orchestration` 구조에 있었어. `spawn_agent`로 서브 에이전트를 만들면, 부모 에이전트와 똑같은 모델, 똑같은 추론 강도로 동작하더라고. Sol Ultra 같은 최상위 모델로 메인 에이전트가 서브 에이전트 8개를 만들고, 각 서브 에이전트가 또 4개씩 만들고, 다시 각 5개씩 만들면 단순 리서치 하나에도 에이전트가 200개 넘게 실행되는 상황이 생겨. 각 에이전트마다 컨텍스트 로딩, 추론, 툴 호출이 따로 발생하니 토큰이 기하급수적으로 소모될 수밖에 없지.
이 비용 문제는 두 가지 방법으로 잡을 수 있었어. 첫 번째는 `multi_agent_v2` 기능을 끄고 V1으로 전환한 다음, `max_depth = 1`로 설정해서 서브 에이전트가 또 다른 서브 에이전트를 만들지 못하게 막는 거야. 에이전트 수가 통제 불능으로 늘어나는 걸 구조적으로 방지하는 방법이지. 두 번째는 V2를 유지하되, `max_concurrent_threads_per_session`을 줄여서 동시 실행 스레드 수를 조절하는 거야. 이렇게 하면 사용량이 급증하는 걸 막을 수 있대.
이런 해결책들이 더 중요해지는 이유가 바로 새로운 GPT-5.6 모델 때문이야. Codex에 솔, 테라, 루나 세 등급으로 출시된 GPT-5.6은 모두 105만 토큰 컨텍스트 창을 제공하고, 특히 테라 등급은 GPT-5.5급 성능을 절반 가격에 제공해. 모델 자체의 성능은 좋아지고 가격은 파격적으로 낮아지니, 더 많은 작업에 AI 에이전트를 적용할 수 있게 되는 거지. 이때 시스템 프롬프트나 에이전트 오케스트레이션 설정을 놓치면, 싸고 좋은 모델을 비효율적으로 쓰게 되는 거야. 솔 울트라처럼 병렬 에이전트가 기본인 경우, 잘못된 `subagent orchestration`은 독이 될 수도 있고.
결국 AI를 잘 활용하는 건 비싼 모델을 쓰는 걸 넘어, 모델이 '어떻게' 일하는지 그 세부 설정을 얼마나 잘 조율하느냐에 달렸어. 도이치 텔레콤이 OpenAI 기술로 회사 전반을 'AI 네이티브'로 바꾸는 것도, 이런 디테일한 최적화 과정이 있었기에 가능한 이야기겠지.
그러니까, 혹시 모델 성능이 기대에 못 미친다고 생각한다면, 그 전에 `config.toml`부터 열어보는 건 어때?
참고
- Codex GPT-5.6: 3등급 모델, 파격적 가격으로 (by 정상록 (Sangrok Jung))
- GPT 시스템 성능·비용 문제, 빌더의 해법 (by 이정민 (Jeongmin Lee))
- How Deutsche Telekom is rewiring telecommunications with AI (by OpenAI)