|
阶段
|
Claude Code
|
Codex
|
|
提示词组装
|
12–15 个具名分节。静态前缀(身份、规则、工具)经 Blake2b 哈希缓存;动态后缀(环境、记忆、MCP)逐轮重算。SYSTEM_PROMPT_DYNAMIC_BOUNDARY 分隔两者。
|
按模型的提示词作为服务端下发的目录数据(models.jsonbase_instructions,远程刷新并带捆绑回退);人格模板化。AGENTS.md 经根到 cwd 的拼接注入(嵌套内容追加在最后)。
|
|
工具暴露
|
43 个工具,但初始只加载子集。延迟工具经 ToolSearchTool(关键词检索 + select: 语法)按需发现。提示词 token 减少约 40%。
|
25–30 个内建;schema 经 create_tools_json_for_responses_api() 转换为 OpenAI Function 格式。延迟加载如今成镜像: defer_loading 旗标(默认对 MCP 工具)+ BM25 tool_search。
|
|
API 协议
|
Anthropic Messages API。SSE 流式,带 content_block_{start,delta,stop} 事件。扩展思考经 budget_tokens。
|
OpenAI Responses API。WebSocket 为主,SSE 回退。连接预热(generate=false)。轮次状态经 x-codex-turn-state 头。推理力度(minimal–xhigh,另有 max/ultra;ultra 加自动委派)。
|
|
工具派发
|
partitionToolCalls():单趟归约按 isConcurrencySafe() 划分。连续的安全工具成批;不安全工具单独执行。信号量上限 10 并发。
|
FuturesOrdered 经一个专门的 ToolCallRuntime;逐工具 supports_parallel 旗标(默认 false)门控一把执行锁——并发不安全的工具独占执行。
|
|
权限
|
3 层:(1) PreToolUse Hook(静态模式匹配),(2) LLM 风险分类器,(3) 交互对话框。子智能体跳过第 3 层。
|
4 层:(1) ExecPolicy Starlark 规则,(2) 生命周期 Hook(与 Claude Code 兼容的词汇),(3) Guardian LLM 审批审查器(失败即关闭),(4) 操作系统级沙箱强制。
|
|
执行
|
宿主执行加可选操作系统沙箱(Anthropic sandbox-runtime:Bubblewrap/Seatbelt、网络限制、dangerouslyDisableSandbox 逃生舱);git worktree 做分支隔离。
|
沙箱内执行。Vendored Bubblewrap(Linux;Landlock 旧版回退)、Seatbelt(macOS)、受限令牌(Windows)。
|
|
压缩
|
剩余上下文低于 AUTOCOMPACT_BUFFER_TOKENS(13K)时触发,另有环境变量可覆盖的百分比阈值。图片剥离、按 API 轮次的消息分组、LLM 摘要、SystemCompactBoundaryMessage。压缩后清理:恢复 5 个文件(50K token 预算)。
|
model_auto_compact_token_limit 可配置。本地或云端压缩经 /responses/compact;rollout token 预算带轮次中止。
|