# Codex Native Adapter > v0.20 起,Codex 是 Deep Research 的表层 adapter。共享核心迁移到 Python runtime:`scripts/dr.py`、`scripts/runtime/**`、`configs/models.yaml` 和 `.agents/skills`。Codex 不再复制核心调度逻辑。 ## Architecture | Layer | Shared | OpenCode | Codex | |---|---:|---:|---:| | 方法论 | `AGENTS.md` | ✅ | ✅ | | Skills | `.agents/skills` | 继续保留 `.opencode/skills` | ✅ | | Agent 定义 | Python role runtime 为准 | `.opencode/agents/*.md` 仅兼容 | `$CODEX_HOME/agents/*.toml` 仅兼容 | | 命令入口 | `scripts/dr.py` | `.opencode/commands/*.md` wrapper | `$CODEX_HOME/commands/*.md` wrapper | | Phase 4 确定性流水线 | `scripts/*.py` | ✅ | ✅ | Codex 官方行为要点: - 用户级配置放在 `~/.codex/config.toml` 或 `$CODEX_HOME/config.toml`;项目级 `.codex/**` 不是 v0.20 推荐路径。 - Codex 会从项目根向当前目录读取 `AGENTS.md`。 - repo skills 放在 `.agents/skills/*/SKILL.md`。 - adapter templates 保存在 `codex_adapter_templates/codex/**`,部署脚本会复制到 `$CODEX_HOME`。 - subagents/agent threads 是 Codex 表层增强能力;v0.20 默认研究并发由 Python worker pool 执行。 ## Setup ```bash cd /Users/tankai/Documents/Projects/deep_research source scripts/activate.sh ``` 首次使用 Codex adapter 前确认: ```bash uv run python scripts/deploy_adapters.py codex --dry-run uv run python scripts/deploy_adapters.py codex --force find .agents/skills -maxdepth 2 -name SKILL.md | sort uv run python scripts/dr.py status ``` 默认部署不会写入 `config.toml`,避免覆盖现有 Codex 全局配置。只有确认要安装本项目 bundled profile 时,才运行 `uv run python scripts/deploy_adapters.py codex --force --include-config`。 新机器部署后可以先跑自检: ```bash uv run python scripts/deploy_check.py ``` 如果 `$CODEX_HOME` adapter 缺失或 skills 没同步: ```bash uv run python scripts/deploy_check.py --repair --force ``` 默认自动化权限: - `sandbox_mode = "workspace-write"`:允许写入当前研究 workspace。 - `approval_policy = "never"`:命令执行不逐次弹窗。 - `web_search = "live"`:默认使用实时网络检索。 - `[sandbox_workspace_write].network_access = true`:脚本和 MCP server 默认可访问网络。 - Tavily / Brave / Exa MCP 默认启用,且 `required = false`,某个搜索服务临时不可用时不阻塞 Codex 主流程。 ## Codex Commands Codex custom command templates 的真源位于 `codex_adapter_templates/codex/commands/`,部署后位于 `$CODEX_HOME/commands/`。在 CLI 中也可以绕过平台命令,直接用 `scripts/dr.py prompt` 从模板展开: ```bash uv run python scripts/dr.py prompt dr-run dual-target-rnai-pipeline-2026 codex exec "$(uv run python scripts/dr.py prompt dr-run dual-target-rnai-pipeline-2026)" ``` 推荐入口是 Python core。Codex command 只包装 CLI,不再让 Codex 主线程主动调度 subagents。 ```bash uv run python scripts/dr.py run uv run python scripts/dr.py research --workers 6 uv run python scripts/dr.py finalize ``` 分阶段命令保留为调试和人工接管入口: ```bash codex exec "$(uv run python scripts/dr.py prompt dr-init '')" codex exec "$(uv run python scripts/dr.py prompt dr-frame )" codex exec "$(uv run python scripts/dr.py prompt dr-research )" codex exec "$(uv run python scripts/dr.py prompt dr-review )" uv run python scripts/dr.py finalize ``` Phase 4 默认中文原生成稿: ```bash uv run python scripts/dr.py finalize --model-profile medium ``` 旧英译中 pipeline 仅用于兼容旧项目: ```bash uv run python scripts/dr.py finalize --legacy-translate ``` 网络不稳时可显式降并发: ```bash uv run python scripts/dr.py finalize \ --model-profile medium \ --translate-workers 1 \ --glossary-workers 3 \ --polish-workers 1 ``` 术语核查策略可选: ```bash uv run python scripts/dr.py finalize --model-profile medium --glossary-mode low-confidence uv run python scripts/dr.py finalize --model-profile medium --glossary-mode full uv run python scripts/dr.py finalize --model-profile medium --glossary-mode off ``` ## Adapter Boundary Codex 可以继续用于审阅、解释和少量人工接管,但默认研究并发由 Python task-card runtime 控制。模型选择与 role/task 映射以 `configs/models.yaml` 为准。 ## Git Hygiene 本仓库常有大量 `projects/**` 研究产物处于修改状态。Codex adapter 提交时只 stage 系统文件: ```bash git add codex_adapter_templates .agents/skills scripts docs configs README.md PLAN.md AGENTS.md git diff --staged --name-only ``` 提交前确认 staged 列表不包含: - `projects/**` - 已生成 PDF/DOCX/TXT - 临时检查脚本或一次性研究产物 ## Deploying Adapter Files 不要在仓库内维护 `.codex/**`。如果需要 Codex native adapter,请把模板部署到用户级 Codex home: ```bash uv run python scripts/deploy_adapters.py codex --force ``` 兼容旧命令仍可用,但默认也会走外部部署: ```bash uv run python scripts/install_codex_adapter.py --force ``` 部署来源: - `codex_adapter_templates/codex/**` → `$CODEX_HOME/**` 或 `~/.codex/**` - `.agents/skills/**` → `$CODEX_HOME/skills/**` 如果旧版本已经把仓库内 `.codex/**` 加进 Git,需要在本机清一次索引,让它回到“本地部署产物”身份: ```bash git rm -r --cached .codex ``` 部署后,在 Codex 中运行 `/debug-config`,确认 user config 或 `CODEX_HOME` config 已加载。 ## Config Troubleshooting 如果 Codex adapter 配置生效后启动报错,先按下面顺序排查: 1. 确认部署目标正确:默认是 `$CODEX_HOME`,未设置时是 `~/.codex`。 2. Tavily / Brave / Exa MCP 默认启用但不是 required。若某个 server 启动异常,先确认对应环境变量存在,再临时把该 server 改成 `enabled = false`。 3. 如果要完全离线排障,先把第三方 MCP 全部关掉,只保留 OpenAI Docs MCP 和内置 web search。 4. 如果仍然报错,临时保留最小配置确认 Codex 主体能启动: ```toml model = "gpt-5.4" model_reasoning_effort = "high" sandbox_mode = "workspace-write" approval_policy = "never" project_doc_max_bytes = 65536 web_search = "live" [agents] max_threads = 6 max_depth = 1 [sandbox_workspace_write] network_access = true ``` 这个最小配置只启用模型、沙盒、项目说明、web search 与 subagent 上限;确认能启动后,再逐个恢复 profiles 和 MCP server。