記事一覧

How OpenAI Thinks About Codex: Model + Harness + Surfaces

2026年3月2日

How OpenAI Thinks About Codex: Model + Harness + Surfaces

Gabriel Chua, an OpenAI Developer Experience engineer, published a clean decomposition of the Codex system that's worth internalizing. He breaks it into three layers:

Codex = Model + Harness + Surfaces

  • Model: The intelligence layer. Reasoning models optimized for software engineering — currently GPT-5.3-Codex.

  • Harness: The instructions and tools that connect the model to real development environments. This is the agent loop — tool use, execution, compaction, iterative verification. It's open source at github.com/openai/codex under Apache 2.0.

  • Surfaces: The runtime interfaces — the Codex web app, CLI, VS Code extension, macOS app, and third-party integrations like Cursor and Copilot.

The key detail: the Codex model family is trained in the presence of the harness. Tool use, execution loops, and failure recovery aren't behaviors bolted on after training. They're part of how the model learns to operate. The harness shapes the model and the model shapes the harness. Simon Willison flagged this as the first acknowledgment from an OpenAI insider that this co-design is happening.

The App Server Ties It Together

OpenAI recently published the architecture for their Codex App Server — a bidirectional JSON-RPC API that powers every Codex surface through a single protocol. Three conversation primitives: an Item (atomic unit of input/output), a Turn (sequence of items from one unit of agent work), and a Thread (durable container for an ongoing session, supporting creation, resumption, forking, and archival).

Client implementations already exist in Go, Python, TypeScript, Swift, and Kotlin. All source code is in the open repo.

Why This Decomposition Is Useful

If you're explaining agent architecture to a team, a client, or a stakeholder who hasn't been deep in this space, Model + Harness + Surfaces is a clean mental model.

Most people conflate the model with the agent. They think "GPT" or "Claude" is the agent. It's the intelligence layer, but an agent is a model wrapped in a harness — instructions, tools, execution environment — presented through a surface. Understanding those three layers separately clarifies where to invest, where to customize, and where you're dependent on a vendor.

The harness being open source matters. It means you can inspect how OpenAI connects models to real development environments, build custom agent workflows on top of it, or use it as a reference architecture for your own harness around different models. The Agent Client Protocol from Zed Industries and JetBrains is taking a complementary approach — a universal standard for connecting any coding agent to any editor.

This is the same architectural thinking that applies regardless of which model you're using. The model is one layer. The harness and surface design are where engineering teams differentiate.