Files
tradecatlabs f1f0b9fe75 refactor: move research domain to repository root (#58)
Move the complete research domain from docs/research to root-level research, update indexes and path-aware tooling, and align raw snapshot governance and CODEOWNERS.\n\nVerified with make test and GitHub CI.
2026-07-11 22:18:37 +08:00

5.2 KiB

openai/codex 深度研究

研究级别

  • 当前级别:L2 源码/结构深度研究。
  • 研究对象:openai/codex
  • 证据来源:本目录 raw/ 下的 GitHub 元数据、README 快照和本地仓库工作树。
  • 观察日期:2026-07-03。

L2 结论

openai/codex 不是简单的 CLI 包,而是一个以 Rust 工作区为核心的 coding agent 控制面。它把协议、配置、沙箱、工具、提示词、技能、TUI、CLI 包装和 MCP 服务拆成相对清晰的 边界,说明成熟 coding agent 的核心不是“会调用模型”,而是把模型能力放进可配置、可审计、 可限制、可交互的执行系统里。

对本仓最有价值的不是复制实现,而是学习它的边界设计:执行策略、沙箱策略、Agent 指令、 技能、配置和交互文档都被显式建模,避免把高风险行为藏在零散脚本或提示词里。

源码证据

  • raw/repository/codex-rs/protocol/:协议层,说明 agent 运行时需要稳定消息边界。
  • raw/repository/codex-rs/config/:配置层,承载运行参数、模型和权限相关配置。
  • raw/repository/codex-rs/sandboxing/:跨平台沙箱抽象,说明执行权限是核心产品能力。
  • raw/repository/codex-rs/linux-sandbox/:Linux 沙箱实现,说明本地命令执行必须有边界。
  • raw/repository/codex-rs/tools/:工具层,说明 agent 能力通过显式工具接口接入。
  • raw/repository/codex-rs/skills/:技能层,说明可复用操作经验被工程化为独立对象。
  • raw/repository/codex-rs/tui/:终端交互层,承载人机协作的主要用户界面。
  • raw/repository/codex-cli/bin/codex.js:npm 分发入口,本质上是对核心运行时的包装。
  • raw/repository/docs/exec.md:命令执行文档,说明执行行为需要公开契约。
  • raw/repository/docs/execpolicy.md:执行策略文档,说明权限策略需要独立表达。
  • raw/repository/docs/sandbox.md:沙箱文档,说明安全边界不是实现细节。
  • raw/repository/docs/agents_md.md:Agent 指令文档,说明项目级上下文是正式接口。
  • raw/repository/docs/skills.md:技能文档,说明技能不是杂项 prompt,而是可治理能力单元。

关键机制

协议优先

Codex 将 agent 运行时拆成协议、客户端、服务和界面等层次。这个结构把“模型说了什么”与 “系统如何执行”分开,降低了 CLI、TUI、MCP 和未来其他入口之间互相污染的概率。

沙箱和审批是核心对象

本地 agent 的最大风险来自命令执行、文件写入、网络访问和外部工具调用。Codex 把 sandbox、 exec policy 和配置作为显式层,而不是把风险控制埋进一段提示词。这是企业级 agent 的底线: 风险必须是系统能力,不是靠模型自觉。

文档就是运行契约

docs/exec.mddocs/execpolicy.mddocs/sandbox.mddocs/agents_md.mddocs/skills.md 共同构成运行契约。它们不是营销文档,而是告诉使用者和贡献者: 哪些行为可执行,哪些行为受限,哪些上下文会被读取,技能如何介入系统。

分发壳和核心运行时分离

codex-cli/ 更像分发入口,核心复杂度集中在 codex-rs/。这种结构适合长期维护: 包管理、安装体验和跨平台入口可以变化,但 agent 核心边界保持稳定。

可迁移模式

  • 把 agent 执行相关内容分成 configsandboxexec policytoolsskillsagent context 六类,不混在一个 README 或提示词里。
  • 对任何会执行命令、改文件或访问网络的脚本,增加风险等级、dry-run、审批策略和审计说明。
  • AGENTS.md 视为项目级上下文接口,而不是临时提示词。
  • 将 skills 视为可复用能力单元,要求有触发条件、边界、输入输出和验证方式。
  • 对本仓 scripts/skills/research/ 建立类似的控制面文档。

对本仓的影响

本仓已经有 AGENTS.mdskills/scripts/research/ 和 raw 事实层,下一步应把这些 对象之间的运行关系写得更明确:

  • scripts/ 是仓库控制面,不是杂物间。
  • skills/ 是 Agent 可复用能力层,不是提示词收藏夹。
  • research/ 是研究对象网络,不是外链列表。
  • AGENTS.md 是 AI 协作的项目级接口,不是单纯贡献指南。

风险和待验证项

  • Codex 是官方产品仓库,行为可能随版本快速变化;动态事实必须以 domain.yml 观测日为准。
  • 本地源码只能说明公开实现和文档,不能完整代表云端模型、服务端策略或私有运行逻辑。
  • 本轮没有运行 Codex 自身测试,结论只覆盖结构研究,不覆盖性能、稳定性或真实使用体验。

下一步 L3 验证任务

  • 把本仓 scripts/ 的风险分级和可执行入口整理成 manifest.yml 或等价登记表。
  • 为高风险脚本补齐 dry-run、输入输出、owner、CI 状态和审计说明。
  • 从 Codex 的 exec policysandbox 文档中抽象本仓可用的脚本治理检查清单。
  • docs/references/ 沉淀“coding agent 控制面”模板,避免研究结论长期滞留在 research。