一、开源的不是模型,而是驾驭模型的缰绳
8月19日,OpenAI做出了一项比发布新模型更具战略意义的举动:将驱动Codex App、CLI和IDE插件的底层执行框架——Codex agent harness——完整开源,采用Apache-2.0协议。这次开源的主体并非模型本身,而是管理模型的那套系统。官方给出的对照实验数据极具冲击力:在ARC-AGI-3基准上,保持同一模型不变,仅对Harness进行两项调整——保留推理痕迹与上下文压缩——得分便从13.3%飙升至38.3%,Token消耗反而降低6倍。这组数据首次以量化方式证明:在Agent时代,如何管理模型与模型本身的能力同等重要。
长期以来,业界对Agent存在一种简化认知:好模型加上好Prompt就等于强Agent。真正做过生产级系统的人明白,这最多只覆盖了30%的真相。一个能在业务中稳定运行的Agent,背后需要一套处理脏活累活的执行系统:维护长对话状态、调度工具调用、隔离命令执行、流式推送进度、崩溃后恢复现场,以及在危险操作前等待人类审批。这套系统就是Harness——直译是“马具”,引申为驾驭模型的装备。官方博客说得直白:你的应用负责业务上下文、规则和工具,Codex app-server负责Agent循环。模型只是可插拔的引擎。
二、三层集成接口:从脚本到产品的完整谱系
这次开源的核心交付物,是覆盖三种接入深度的接口,分别对应“拧螺丝”“装发动机”“造整车”三个层级。第一层是codex exec,适合一次性任务与CI流水线,审批策略支持auto、suggest、manual三档,其中auto用于全自动场景,manual则强制人工介入危险操作。第二层是Codex SDK,允许开发者将Agent编排进自己的代码,支持thread/fork、thread/resume、turn/interrupt等操作,v0.149.0还新增了reasoningEffort参数,可在简单任务与复杂推理之间动态权衡成本。第三层是codex app-server,这是本次开源最重磅的部分,官方VS Code插件和桌面应用都运行在它之上,采用JSON-RPC 2.0协议,支持stdio、Unix socket和实验性的WebSocket三种传输方式。
协议层只有三个核心原语:Thread代表一次完整会话,可fork、可resume;Turn代表单轮交互,从用户输入到Agent完成工作;Item是Turn内的原子事件流,包括推理步骤、Shell命令、文件编辑、工具调用结果,全部流式推送。这样的设计让开发者无需手写类型定义,直接从服务器生成即可。值得注意的是,这套接口并非孤立存在,它们全部收敛到同一个Rust核心,意味着无论你从哪一层接入,底层引擎都与官方App完全一致。
三、Rust核心的工程智慧与生态对比
打开仓库的codex-rs目录,模块划分堪称教科书级别。几个工程细节尤其值得借鉴:状态管理集中化,所有SQLite连接创建被Clippy lint强制收口到一处,从根源上杜绝连接泄漏;Shell工具大一统,废弃了旧的shell_command,统一为exec_command和write_stdin两个工具,审批、沙箱、输出截断能力全部保留,工具数量越少,模型选错的可能性越低;MCP作为一等公民,连接状态机细分到七种状态,TUI中通过/mcp命令一目了然。
与LangGraph等编排框架相比,Codex Harness的定位截然不同:LangGraph提供图纸让你自己盖楼,Codex Harness则直接交付一台精装发动机。更有趣的是,Codex还可以作为子代理(Profile Bundle)装进DeepSeek Harness里,形成“Harness套Harness”的嵌套关系。这种开放姿态显示出OpenAI的野心:它不仅要成为模型供应商,更想成为Agent基础设施的标准制定者。从社区反馈看,截至8月21日仓库已收获107k+ Star和16k+ Fork,热度印证了这一判断。
四、上手路径与必须知道的边界
接入其他模型非常简单,model-provider抽象层允许任意OpenAI兼容端点。你可以通过环境变量设置OPENAI_BASE_URL指向DeepSeek、Kimi或GLM,也可以修改~/.codex/config.toml中的provider配置。v0.149.0还带来了一系列配套功能:codex agents仪表盘提供Agent会话的进程管理器;codex queue让你在Agent运行测试时追加新需求;TUI内支持/cd、/pwd切换工作区;codex doctor增强网络与代理自检;同时修复了resumed/forked线程静默回退审批策略的Bug,确保CI场景权限策略始终一致。
冷静审视,这次开源存在几个边界。开源的是Harness,不是模型,模型访问、账号额度和Cloud托管服务仍然独立收费;IDE插件的内部实现没有开源,开源的只是驱动它的协议和服务端;仓库明确不接受外部PR,只能提Issue,这更接近“源码可见的开放核心”模式,深度定制需要自己fork;WebSocket传输仍属实验性,生产环境建议使用stdio或Unix socket。即便如此,对于正在自研Agent的团队,codex-rs的模块划分和状态管理思路依然值得逐行研读。它本质上是ReAct循环、审批闸门、沙箱与持久化的工业化封装,是OpenAI将“怎么管好一个模型”的工业级答案公之于众。你准备直接接入产品,还是继续用LangGraph自行编排?答案或许就藏在你对生产级稳定性的真实需求里。
