Skip to content

术语表:一页纸,忘了就回来查 ​

这不是第 42 章,是索引。每个词只给一句话定义 + 第一次被认真讲清楚的章节链接。忘了 B5 说的 TaskKind 是什么,别去翻 B5 全文,先回这里。

术语按书里出现的大致顺序分组,不是字母序——想线性建立心智模型的话,从上往下读也可以。


A:任务的骨架 ​

术语一句话详见
Thread一条能关掉再打开、能 resume 的"会话命";本地叫 CodexThreadA2
Turn用户看得见的"这一轮":可能包含好几次模型采样、好几次工具调用A2
StepTurn 里的一次采样:一次真正打给模型的请求A2
SessionThread 背后真正跑活的运行时,拥有 SQ/EQ,同时最多一个 running taskA2 B1
ThreadManager只管创建 / resume / fork Thread,不跑 turnA2
TurnContext一轮的壳,构造时冻住;initial_settings legacy 消费者用,current_settings 给下一步用A2
StepContext每次采样前重算:这一枪模型看见哪些工具、哪份说明书A2
Rollout落盘的事件日志(JSONL),resume 靠重放它重建 Session;真相源A2 B4

B:主循环与事件 ​

术语一句话详见
Op客户端往 Session 提交的一条控制指令(不止聊天,还有中断、resume 等)B1
Submission一条 Op 加上 id,进 Submission Queue(SQ)B1
Event / EventMsgSession 往外吐的投影:文本、工具生命周期、审批、turn 边界……进 Event Queue(EQ)B1
oneshotOp 提交时立刻拿到的一次性回包(start/steer/reject),不是 Event,不进 rolloutB1
submission_loopSession 里真正"活着"的那条循环,穷尽分发 OpB1
SessionTask"这一轮该干什么"的统一接口:kind / run / 取消令牌B1
TaskKind只有三种:Regular(含 user shell)/ Compact / ReviewB1
InputQueue内存里的插话队列,分 Steer 轨(改当前 Turn)和 Mailbox 轨(子代理回信)B1
持久队列(ext/queue)落 sqlite 的用户消息队列,跨进程存活,等 thread 空闲才派发B1
CancelToken取消信号的载体;取消的是 tokio 任务,不是杀 OS 进程B1
ModelClient / ModelClientSession前者活在 Session 上(鉴权、传输回退状态),后者每个 Turn 新建(WS、sticky routing)B1 G1

B:工具与执行 ​

术语一句话详见
ToolSpec模型这一枪能看见的工具表面(JSON),不执行任何副作用B2
Handler接模型的 call,解析参数、决定走哪条 RuntimeB2
ToolRuntime(Approvable + Sandboxable)"这次尝试"的合同:问不问人、要哪种隔离、失败能不能升级B2
Orchestrator所有工具副作用必经的同一条流水线:审批 → 选沙箱 → 尝试 → 失败升级重试B2
ToolRouter这一 Step 冻住的工具计划:模型可见列表 + 能 dispatch 的 registry,必须同源B2
Extension / ExtensionRegistry进程内 contributor 缝:产品能力先挂这里,不焊进 codex-core 的 HandlerB2
Plugin用户侧的安装单元(打包 Skill/MCP/Hook/App 声明),跟 Extension 是两个概念D2
unified_exec默认的可恢复 PTY 执行路径;Interrupt 取消采样,不杀这个进程B2 附录B
apply_patch结构化改文件的正路:Lark freeform 文法,可预览可审批,不是 shell 里 sedB2 附录E

B:安全三旋钮 ​

术语一句话详见
PermissionProfile能力档案:磁盘 + 网络能不能碰,三档(read-only/workspace/danger-full-access)只是内置快捷方式B3
SandboxPolicy / SandboxType运行时投影 / 平台实现(Seatbelt、bwrap、Windows token)B3
AskForApproval问不问人、问谁(人 or Guardian)的旋钮,跟能力旋钮独立B3
ExecPolicyspawn 之前的前缀禁令(Starlark 规则),机械拦截,不靠模型自觉B3
Guardian同意链上的隔离评审员子会话,替代部分"人点 Allow",不是第四套沙箱B3 附录A

B:上下文与配置 ​

术语一句话详见
Fragment / ContextualUserFragment注入模型上下文的最小可寻址单元,自带 role/content_kind/markers,可被 resume 和 compact 重新认出B4
Compact窗口要满时"换起点",不是改写过去的历史B4
Prompt 三块一枪打出去的合同:历史投影 + 这一 Step 的 tools + base 指令B7
CODEX_HOME本机身份根:登录态、rollout、sqlite 索引、memories/plugins/skills 都住这B5
信任(TrustLevel)项目层配置默认 untrusted:文件会读,但不参与 effective_config()B5

C/D:行为与扩展(各章一句话,细节点链接) ​

术语一句话详见
AGENTS.md进 git 的短项目政策;正本,CLAUDE.md 等是 fallbackC1
Memories本机默关的跨会话笔记,读/写分开拧,不替代 AGENTS.mdC2
GoalThread 上的完成条件,不是 cronC5
Skill说明书包:先目录(name+description)后正文,渐进披露D1
MCPCodex 是 client;stdio 服务器 initialize 即执行D3
Hook生命周期拦截点;同步 hook 用 exit 2 或 JSON 拦截D4
Subagent显式 spawn_agent;角色只能减权,不能加权D5

怎么用这张表 ​

新读者建议路径:先扫一遍这张表混个脸熟,不用记住细节 → 读 A0-A2 → 遇到生词回来查一次定义 + 链接 → 再进 B1。读完 B 之后大部分词会变成常识,这张表基本用不上了。