research

Codex — 패러다임과 약점

Codex — 패러다임과 약점

OpenAI의 Rust 기반 코딩 agent CLI. "agent loop는 unroll 가능한 trivial 30줄"이라는 명제와 Submit/Event 비동기 protocol로 agent 통신의 표준을 제시. Apache 2.0 license — 라이선스 안전 reference.


Codex가 서있는 가정들

가정표현
Loop는 trivial하다agent loop 자체는 ~30줄. 중요한 건 그 주변 인프라와 protocol
Agent와 client는 protocol로 분리해야 한다Submit/Event 비동기 enum. 어떤 client도 같은 protocol로 연결
보안은 OS 커널까지 가야 한다UI 토글은 보안이 아니라 UX. Landlock·seccomp·Seatbelt까지
Tool은 protocol(MCP)이고, agent도 protocol(MCP)이다양방향 — MCP client + MCP server
Edit는 LLM의 자연어로apply_patch 포맷. 라인번호 X
단일 binary, 다양한 client같은 codex binary가 CLI/IDE/Web/Desktop에서 사용
ChatGPT 구독으로 entry barrier 낮춤API key 없이도 사용 가능

핵심: 모든 통신을 enum 기반 비동기 protocol로 표현하면, agent 내부와 외부 client 사이의 경계가 명확해지고 어떤 frontend도 동일하게 연결됨.


추상적 작동 구조

핵심 통찰: "agent를 함수가 아니라 protocol로 본다." 이게 Goose의 "Provider trait + extension" 방식과 다른 결정적 분기점.


이 패러다임의 강점

  • protocol-first의 명확함 — Op/EventMsg가 명세, 어떤 client도 같은 명세 따름
  • OS-level sandbox — Cline/OpenHands가 UI 토글이거나 Docker 격리인 데 비해 진짜 deny-first
  • MCP 양방향 — agent를 server로 노출하면 다른 agent의 tool이 됨. 합성 가능
  • apply_patch의 자연어성 — LLM에게 라인번호 같은 인위적 표기를 강요하지 않음
  • Rust 단일 binary — 빠른 cold start, native 배포, IDE/Web/CLI 모두 같은 코어

약점 — 어디서 균열이 보이는가

1. OpenAI 모델 의존

apply_patch 포맷, prompt 패턴, tool calling convention이 OpenAI 모델에 최적화. 다른 모델로 바꾸면 patch 적용 실패율 급증. Codex가 표방하는 "vendor neutral protocol" 명제와 모순.

2. Op/EventMsg enum이 시간이 지나며 자란다

protocol을 enum으로 표현하면 안전하지만, 새 기능마다 enum variant 추가 → backward compatibility 부담. JSON-RPC payload schema가 점점 복잡해짐.

3. JSON-RPC overhead

agent ↔ client가 모두 JSON-RPC를 거침. 가벼운 IDE inline completion에는 과한 무게. 단순 stream 호출도 protocol 한 겹을 거쳐야 함.

4. 다양한 client = 다양한 product line

CLI / IDE / Web / Desktop 각자 product line. 같은 binary를 쓰지만 UX/feature는 분기. 사용자 입장에서 어디서 무엇을 받을지 혼란 (Claude Code와 같은 약점).

5. ChatGPT 구독 통합의 lock-in

"ChatGPT plan으로 Codex 사용 가능"은 진입 장벽을 낮추지만, 동시에 OpenAI 생태계 안에 묶이는 강한 인력. 학내 LLM 토큰 같은 별도 endpoint는 진입이 부자연스러움.

6. Sandbox 3-tier의 추상화 한계

read-only / workspace-write / danger-full-access는 단순하고 강력하지만, fine-grained capability가 없음. "이 디렉토리만 쓰기" 같은 정책이 어렵다. Cerbos 같은 capability-based보다 낮은 표현력.

7. MCP server 노출의 실용 한계

codex mcp-server로 agent를 tool로 노출 가능하지만, 실제 외부 agent가 Codex를 sub-agent로 부르는 사례는 드뭄. 기능은 있는데 ecosystem이 안 형성됨.


이 약점들을 깨려는 흐름들

A. ACP — vendor-neutral agent protocol

  • Codex의 Submit/Event 패턴을 vendor 불문 표준으로 추상화
  • Goose가 client로 채택, Symposium ACP로 정착
  • 어떤 agent도 같은 protocol로 연결되면 vendor lock-in이 풀림

B. multi-vendor edit format

  • Aider의 SEARCH/REPLACE — 모델 무관하게 잘 작동 (특히 GPT-4 Turbo의 lazy coding 잡음)
  • Architect/Editor 분리 (강한 reasoning + 가벼운 editor) — 모델 자유도 회복
  • Codex의 apply_patch 의존 약점에 대한 시장의 답

C. lightweight protocol (LSP-style minimal)

  • JSON-RPC overhead 회피 — 더 작은 protocol layer
  • Continue, Aider, Cline의 inline completion은 protocol 우회하는 방향

D. capability-based sandbox

  • Cerbos + sparkishy/openclaw-harness — capability + parser. 3-tier보다 정교
  • compound bash command parser, 35+ dangerous builtin 차단

E. agent-as-MCP-server의 ecosystem 형성

  • 단순 노출이 아니라 발견 가능성까지 — agent registry, agent marketplace
  • Anthropic의 mcp-server-dev, agentskills.io 같은 표준이 ecosystem을 키움

F. unbundling: protocol과 product 분리

  • Codex protocol은 표준, Codex product는 OpenAI 한 가지 — 라는 분리
  • ACP가 protocol을 가져가고, product는 vendor 자유

v0.1이 흡수할 인사이트

  1. agent와 client를 protocol로 분리하는 사고방식 — v0.2에서 agent loop를 SDK 안에 둘지, protocol 뒤로 둘지 결정 시 이 통찰
  2. OS-level sandbox가 진짜 deny-first — v0.8 보안 layer는 UI 토글로 끝내지 않는다
  3. agent를 MCP server로 노출 가능하게 — v0.7 단계에서 양방향 MCP 채택
  4. edit format은 LLM의 자연어 — 라인번호 같은 인위적 표기 X
  5. Op/EventMsg 같은 enum protocol의 위험 — backward compatibility 부담을 미리 인지
  6. ChatGPT 구독 같은 자기 vendor lock-in 패턴 거부 — v0.1은 처음부터 multi-vendor

v0.1이 다르게 갈 가설

  • protocol을 vendor 표준(ACP)에 위탁 — 자체 Op/EventMsg 만들지 않음. ACP를 외부 인터페이스로
  • edit format은 별도 layer — v0.x SDK에서 다루되, 처음엔 plain text + diff. apply_patch 같은 vendor format은 옵션
  • sandbox 정책은 capability + parser 형태로 처음부터 — Codex의 3-tier는 좋지만 더 fine-grained
  • 다양한 client product line을 layer로 표현 — 같은 v0.1 위에 CLI / IDE bridge / Web bridge가 layer로 쌓이도록
  • ChatGPT plan 같은 전용 진입은 채택 X — 캠퍼스 토큰 같은 endpoint를 첫 사용자로 둠

메타 통찰 — Codex가 산업에 남긴 것

"agent loop는 unrolling 가능한 ~30줄이고, 그 주변의 protocol이 product다."

이 명제는 Claude Code의 "98.4% infrastructure"와 다른 각도. Claude Code는 내부 인프라에 무게를 두고, Codex는 외부 protocol에 무게를 둔다. 둘이 같은 통찰의 다른 표현이지만, v0.1에는 Codex 쪽이 더 가깝다 — library 지향이고, 위 layer의 client가 protocol로 연결되는 그림.


관련


Sources