Codex Harness 源码课 / 中文
LESSON 02 / 12 15 分钟

仓库边界与依赖:先定位状态所有者

目录只提供起点。阅读重点是状态由谁持有、哪些接口跨组件、转换在哪里发生。

公开源码快照 · 2026-10-13 · f82e365922

学完你能做到

本课目录 · 3 节

先认清两层目录

根目录包含文档、脚本、 分发包装与 等内容;codex-rs 是主要 工作区。 工作区管理很多 ,每个 的 .toml 描述名称与依赖。核心包名是 codex-core,公开库名是 codex_core。

目录名称会随版本变化。这个版本的主循环在 core/src/session/turn.rs, 主要库在 codex-rs/codex-mcp;照着旧文章寻找 core/src/codex.rs 或 core/src/mcp_connection_manager.rs,可能会走错。我们以实际存在的文件为准。

阅读路线:cli 入口、core 会话与工具,再按问题分支到协议、执行、配置和扩展。
阅读路线:cli 入口、core 会话与工具,再按问题分支到协议、执行、配置和扩展。 · 教学示意,省略次要分支;不是完整调用图。

一张职责清单

用符号找调用关系

先定位函数定义,再找调用点和测试。不要把“文本里出现一个名字”当成“这段代码一定执行”。 的导出、条件编译和功能开关都会影响可达路径。阅读时写下:谁调用它?输入是什么?输出由谁消费?

cd codex-rs
rg -n "async fn run_turn|run_turn\(" core/src
rg -n "ToolRouter|build_tool_call" core/src/tools
rg -n "codex-mcp|codex-rollout" Cargo.toml

上面是本地只读搜索示例。rg 是快速文本搜索工具;未安装时可用编辑器全局搜索。无需登录服务。

沿着源码读

以下定位均锁定本课程版本。先读注释与分支,再深入类型定义。

READ & VERIFY / 小练习

实现推演

找到 core/.toml 中的包名,再从工作区 .toml 找到 codex-mcp 的 path。最后确认它的 lib.rs 确实存在。

阅读练习无需模型账号。示例命令请先确认目录与环境。

自测与边界检查

为什么应该同时看 .toml 和文件树?

展开自测答案

包名和目录名不总是相同。依赖的 path 是可核验的入口;文件树确认文件存在,类型导出确认公开边界。

遇到工具执行失败,首先只读 代码合适吗?

展开自测答案

界面可帮助追踪显示,但执行失败通常需要继续追到核心工具运行逻辑和执行环境。先按职责定位,再沿调用链核对。

学习记录保存在本机

搜索课程

输入关键词,搜索全部课程、词典与来源。

就地词典

在完整词典中查看 →

完整架构总图

放大后横向、纵向滚动阅读;聚焦图示区域后可用方向键滚动。

完整架构职责图,内容与正文总图相同