Codex, 서브에이전트 프롬프트를 암호화해 감사 로그가 사라졌다
Codex starts encrypting sub-agent prompts
TL;DR Highlight
Codex가 MultiAgentV2 메시지를 암호화하자 서브에이전트 작업 내용을 로컬에서 읽을 수 없게 됐다
Who Should Read
Codex 서브에이전트가 무슨 작업을 맡았는지 롤아웃 기록으로 추적하고 디버깅해야 하는 개발자
Core Mechanics
- 암호화로 작업 내용이 안 보인다
- PR #26210이 MultiAgentV2의 메시지 파라미터를 암호화 대상으로 표시했다.
- 암호문은 encrypted_content에만 저장되고 content는 빈 문자열이다.
- 로컬 기록에서 위임 내용이 사라졌다
- 롤아웃 기록, trace, 부모 쪽 감사·디버그 화면에서 읽을 수 있는 작업 텍스트가 없어졌다.
- spawn_agent로 자식에게 어떤 작업을 줬는지 나중에 알 수 없다.
- 세 가지 도구가 모두 영향받는다
- spawn_agent, send_message, followup_task가 모두 암호화된 message 필드만 받는다.
- 세 핸들러가 전부 InterAgentCommunication::new_encrypted()를 호출한다.
- 로그에는 암호문이 내용 자리에 들어간다
- 구조화 통신 로그는 평문이 없으면 encrypted_content를 content 값으로 쓴다.
- rollout-trace도 암호화된 전달 내용을 message_content로 쓴다.
- 이슈 제안은 되돌리기가 아니라 감사용 평문 분리다
- 모델 전달용 암호화 필드는 유지하고 읽을 수 있는 감사 필드를 따로 두자는 것이다.
- 이 감사 필드는 rollout, history, trace 메타데이터에 저장하자는 내용이다.
Community Reactions
- 제목이 오해를 부른다는 의견
- 암호문으로 추론한다는 뜻이 아니라 에이전트 간 전달에 암호문을 쓰고 사용자에게 평문을 숨긴다는 설명이다.
- 추론은 서버에서 복호화한 뒤 평문으로 한다는 댓글이 있었다.
- 프롬프트는 이미 클라이언트를 지난다는 설명
- 이슈 작성자 본인이라는 댓글은 TUI가 서브에이전트 사이를 전환하므로 프롬프트가 클라이언트를 거친다고 했다.
- 변경 내용은 디스크에 사본을 저장하는 것이고, 본인은 v2가 불안정하고 토큰을 많이 쓴다며 multi_agent_v1을 쓴다고 했다.
- 기존 세션 점검 도구가 멈췄다는 경험
- 코딩 에이전트 세션을 살펴보는 로컬 도구가 일부 경우에 작동하지 않아 의아했다는 댓글이 있었다.
- 안전장치 가시성 우려와 반론
- GPT 5.6 서브에이전트가 홈 디렉터리를 지웠다는 트위터 보고를 들며 가시성 상실이 원인인지 궁금해하는 의견이 있었다.
- Claude도 thinking을 암호문으로 주고받으니 다를 바 없다는 반론도 있었다.
How to Apply
- 오늘 내 Codex 롤아웃에서 서브에이전트 기록 확인하기
- MultiAgentV2를 켠 빌드로 spawn_agent를 한 번 호출시키고 롤아웃에서 작업 텍스트가 읽히는지 본다.
- content가 비어 있고 암호문만 있으면 감사 공백이 생긴 것이다.
- 서브에이전트 위임 내용을 별도로 남기기
- 부모 에이전트에게 위임 전에 작업 요약을 일반 출력으로 쓰게 지시한다.
- 이 요약을 팀의 감사 로그에 저장한다.
- Codex 로그 파싱 도구의 content 필드 가정 점검하기
- 자체 도구가 content 필드를 읽는다면 암호문이 들어와도 깨지지 않게 처리한다.
- encrypted_content와 빈 content를 구분하는 분기를 넣는다.
- 감사가 중요하면 multi_agent_v1 사용하기
- 댓글 경험에 따르면 v1에는 이 문제가 없다.
- 팀의 위임 내용 추적 요구가 있는 워크플로우에 v1을 쓴다.
Try It
# Claude Code 또는 Codex 세션에 붙여넣는 프롬프트 (감사 로그 간이 버전: 원문 제안의 아이디어를 프롬프트로 옮긴 것)
서브에이전트에게 작업을 위임하기 전에 매번 아래 형식으로 읽을 수 있는 평문 감사 기록을 먼저 출력해줘.
- 대상 에이전트: {{에이전트 이름}}
- 위임 작업 한 줄 요약: {{작업}}
- 전달할 제약 조건: {{제약}}
그 다음에 실제 위임을 진행해줘.
이어서 해 볼 것: 작업이 끝난 뒤 롤아웃 기록에서 이 감사 기록이 읽히는지 확인해 보자.Terminology
관련 논문
같은 시뮬레이션, 다른 근거: 도구 출력을 파일로 넘기면 LLM 에이전트 정확도가 어디서 깎이나
긴 툴 출력을 파일로 넘기자 GPT-5.1은 정확도 11.3%p 하락, 정식 출력 지정하니 회복
가짜 뉴스가 진짜 폭락을: LLM 트레이딩 에이전트 대상 정보 주입 공격
가짜 헤드라인 한 줄로 LLM 트레이딩 에이전트 62%를 조종했다(프롬프트 주입은 14%)
Harness Engineering 101: LLM은 뇌, harness는 몸
에이전트는 JSON 배열을 관리하는 루프이고, 16개 챕터로 직접 만들어 본다
Harness²: 에이전트 harness를 스스로 고쳐 쓰는 재귀 최적화 프레임워크
모델은 고정하고 harness를 재귀로 고쳤더니 벤치마크 점수가 최대 11.8%p 올랐다
해고된 Savannah 경찰관, ICE 요원 남편에게 Flock 계정 공유
경찰관이 Flock 계정을 남편(ICE 요원)에게 공유했고, 감사에서 983건 검색이 드러나 해고됐다
tmux와 Claude Code: 세션, send-keys, 그리고 한계선
tmux로 Claude Code 여러 개를 돌리면 편하지만 에이전트 4개쯤에서 한계가 온다
Hybrid Reasoning Agents: 잠재 공간에서 생각하고 텍스트로 행동하는 LLM 에이전트
잠재 공간 추론과 텍스트 도구 호출을 섞었더니 성능 10.4%↑, 토큰 최대 54.7%↓
Related Resources
- https://github.com/openai/codex/issues/28058
- https://github.com/openai/codex/issues/26210
- https://github.com/openai/codex/issues/26753
- https://github.com/ignatremizov/codex/commit/2ffe360
- https://github.com/ignatremizov/codex/commit/3b523d7
- https://github.com/ignatremizov/codex/commit/ebb53b6
- https://github.com/ignatremizov/codex/commit/7fd1514
- https://github.com/ignatremizov/codex/commit/f6ddcea
- https://github.com/ignatremizov/codex/commit/b60e626
- https://x.com/mattshumer_/status/2076794038456385546