第 3 章 / 共 10 章
一次会话的生命:开始、跑偏、拉回、留档
3.1 会话为什么会”越聊越傻”
新手最常见的困惑:开头几轮它表现很好,聊到第二十轮开始答非所问,甚至忘了你十分钟前定的约束。
原因是会话的上下文是累积的。一个会话里塞进去的东西包括:项目说明文件的内容、你的每一轮提问、它读过的文件片段、它执行过的命令和输出、它自己的推理过程。这些都占位置。当一个会话里混进了三个不相关的任务、两次失败的调试、一堆无关文件的内容,重要的约束就被稀释了。
正确的心智模型是:一个会话 = 一个任务。任务换了,会话就该换。这条纪律比任何提示词技巧都有用。
3.2 高频斜杠命令的实际用途
在会话里输入 / 会弹出命令菜单。命令集合会随版本变化,以你本机菜单显示的为准。下面这几个是使用频率最高、也最值得先记住的:
| 命令 | 什么时候用 | 它实际解决什么问题 |
|---|---|---|
/status | 开工第一件事 | 确认模型、沙盒、审批策略、工作目录 |
/init | 进入一个新项目时 | 生成 AGENTS.md 初稿,见第5章 |
/permissions | 需要它开始写文件时 | 会话内调整它能做什么,不必重启 |
/model | 任务明显更难或更简单时 | 切换模型和推理档位,见第7章 |
/plan | 改动可能涉及多个文件时 | 先出方案再动手,见第6章 |
/review | 提交前 | 只读地审一遍改动,见第9章 |
/clear | 任务换了、上下文乱了 | 清空当前对话上下文 |
/rename | 这个会话以后还要回来 | 起个能搜到的名字 |
3.3 跑偏了怎么办:三种拉回手段,从轻到重
手段一:直接纠正,并说明理由。
不要只说”不对,重来”。说清楚偏在哪:
你改了
config/database.py,但我要求只改 API 层。把这个文件还原,改动限制在api/目录内。
带理由的纠正会进入上下文,后续轮次它会继续遵守;不带理由的否定只会让它换一个同样错误的方向再试一次。
手段二:/clear 清空上下文,重述任务。
当你发现自己已经连续纠正了三次以上,说明上下文里的错误信息比正确信息还多。这时清空重来比继续纠正更快。重述时把前面那三次纠正的内容合并进初始描述里。
手段三:退出重开,并把规则落盘。
如果同一类纠正在不同会话里反复出现(比如每次都要告诉它”这个项目用 pnpm 不用 npm”),那就不是会话的问题,是项目缺少说明文件。停下来,去写第5章的 AGENTS.md。
3.4 收工动作:resume、fork、archive
一个会话结束时,你有几种处理方式:
codex resume # 回到最近的会话,或按 ID 恢复指定会话
codex fork # 基于已有会话分叉出新会话,保留原有记录
codex archive # 归档会话,从常用列表里收起来
codex delete # 永久删除会话
fork 的用法值得单独说:当你已经和 Codex 把某个任务的上下文铺垫好了(读完了相关文件、定好了约束),想试两种不同的实现方案时,fork 出两个分支分别尝试,比在同一个会话里来回横跳干净得多。

/clear 重述,跨会话反复出现的纠正必须流向落盘——这条线如果不走,你会在每个新会话里重复同样的话。