ORANGE BOOK · CODEX

第九章 项目与会话管理

9.1 一个新手会卡住的瞬间

你昨天用 Codex 把一个项目搭起来了,关掉了电脑。今天你打开 Codex,想继续——

你:继续昨天那个项目
Codex:我不太理解"昨天那个项目",能告诉我项目路径吗?
你:……

它不记得了。每次打开都是一张白纸。

这就是新手最容易卡住的地方:不知道怎么把"一次性的对话"变成"长期的协作"

这一章讲三件事:项目(Project)、会话(Session)、记忆(Memory)。掌握这三个,Codex 就成了一个"懂你的长期同事"。

9.2 三个核心概念

┌───────────────────────────────────────────────────┐
│ Project(项目)                                    │
│ ── 一个目录,包含 AGENTS.md、Skills、配置          │
│                                                   │
│   ┌─────────────────────────────────────────────┐ │
│   │ Session(会话)                               │ │
│   │ ── 一次连续对话的上下文                       │ │
│   │ ── 关掉就消失,除非保存                       │ │
│   └─────────────────────────────────────────────┘ │
│                                                   │
│   ┌─────────────────────────────────────────────┐ │
│   │ Memory(记忆)                                │ │
│   │ ── 跨会话保留的关键信息                       │ │
│   │ ── 用户偏好、项目规则、历史决策               │ │
│   └─────────────────────────────────────────────┘ │
└───────────────────────────────────────────────────┘

简单说:

  • Project:一个文件夹,是 Codex 工作的"工位"
  • Session:一次对话的"短期记忆"
  • Memory:跨会话的"长期记忆"

9.3 Project:Codex 的工位

什么是 Project

在 Codex 桌面版,每个你打开的文件夹就是一个 Project。Codex 会扫描这个文件夹里的:

  • AGENTS.md(如果有):项目级指令
  • .codex/skills/(如果有):项目专属 Skills
  • .codex/memory.md(如果有):项目记忆
  • .git/(如果有):识别为 Git 项目,启用 PR 功能

CLI 模式下,你启动 Codex 时所在的目录就是当前 Project。

怎么打开 Project

桌面版:

  • 启动后点 "Open Folder"
  • 或者点最近项目列表
  • 或者拖文件夹到 Codex 图标

CLI:

cd ~/codex-workspace/projects/my-project
codex

或者用绝对路径启动:

codex --workspace ~/codex-workspace/projects/my-project

Project 的目录结构推荐

无论是写代码项目还是写文档项目,推荐这个结构:

my-project/
├── .git/                # 版本控制
├── .gitignore
├── AGENTS.md            # Codex 的指令(第十章详讲)
├── README.md            # 给人看的说明
├── .codex/              # Codex 专属
│   ├── skills/         # 项目 Skills
│   └── memory.md       # 项目记忆
├── src/                 # 实际内容
└── tests/               # 测试或验证

.codex/ 文件夹通常被 .gitignore 排除(避免把记忆推到公共仓库):

# .gitignore
.codex/memory.md

AGENTS.md 应该提交到 git,让团队共享。

Project-less 模式

2026 年新增了 "Project-less" 模式——不选项目就开聊。适合:

  • 临时问问题
  • 写一段独立的内容
  • 思考一个概念

但任何涉及"读写文件"的任务,都建议先选个 Project。

9.4 Session:会话的"短期记忆"

什么是 Session

一次连续对话就是一个 Session。在同一个 Session 里:

  • Codex 记得你说过的所有话
  • Codex 记得它执行过的所有操作
  • Codex 知道当前的"上下文"

关闭 Codex App 或 Ctrl+C 退出 CLI,Session 就结束了。下次打开是一个新 Session,啥也不记得。

Session 的限制

Session 有上下文窗口限制(GPT-5.4 是 200K token,约等于 15-20 万字符)。但实际使用中,超过 50K token 后模型会变迟钝、容易遗忘前面的内容。

经验法则:

  • 5-20 轮对话:很好
  • 20-50 轮:开始有点重复
  • 50 轮以上:考虑开新会话

怎么管理 Session

保存当前会话:

CLI:

/save my-session-name

桌面版:菜单栏 → File → Save Session。

恢复会话:

CLI:

codex resume
# 或
codex resume my-session-name

桌面版:左侧栏选历史会话。

开新会话(保留 Project):

/new

列出历史会话:

/sessions

跨会话连贯性的实战技巧

技巧 1:会话开始时给 Codex"补课"

我们继续昨天那个家庭账本网页项目。
昨天我们完成了:
1. 项目搭建(Vite + React + Tailwind)
2. 交易记录表单
3. 数据本地存储

今天要做:月度报表页面。

5 秒钟就能让它进入状态。

技巧 2:在项目根目录留一份 PROGRESS.md

# 项目进度

## 已完成
- 项目骨架(2026-04-15)
- 用户登录(2026-04-16)
- 商品列表(2026-04-17)

## 进行中
- 购物车(卡在结账逻辑)

## 待办
- 订单管理
- 支付集成

每次开新会话先让 Codex 读这份:

读一下 PROGRESS.md,了解项目状态,然后我们继续。

技巧 3:用 git commit 记录每次成果

git commit -m "完成月度报表页面(与 Codex 协作 #2)"

下次让 Codex 看 commit 历史,它能快速理解项目演进:

看一下最近 10 个 commit,了解我们最近在做什么。

9.5 Memory:跨会话的"长期记忆"

Memory 是什么

Memory 是 Codex 在 2026 年新增的功能,专门解决"跨会话连贯性"问题。它分两层:

全局 Memory —— 记你这个人的偏好

例:

  • "我用 macOS"
  • "我喜欢简洁的代码风格"
  • "回复中不要用 emoji"
  • "技术栈偏好 Python + FastAPI"

项目 Memory —— 记某个项目的特殊约定

例:

  • "这个项目用的是 Vue 3 + Pinia"
  • "测试要求覆盖率 ≥ 80%"
  • "数据库是 PostgreSQL,schema 在 db/schema.sql"

怎么使用 Memory

让 Codex 主动记

记一下:以后所有 Python 代码都用 Black 格式化,行宽 88。

它会回答类似:

好的,我已经记到全局 Memory:
"Python 代码使用 Black 格式化,行宽 88"

手动编辑 Memory

CLI:

/memory

会打开你的默认编辑器,让你编辑 Memory 文件。

文件位置:

  • 全局:~/.codex/memory.md
  • 项目:<project>/.codex/memory.md

Memory 的最佳实践

好的 Memory 条目长什么样:

# 全局偏好

## 操作系统与工具
- 操作系统:macOS Sonoma
- 终端:iTerm2 + zsh
- Python 版本:3.12(系统装的,不要建虚拟环境)

## 编码风格
- Python:用 Black 格式化,行宽 88
- 不要用 type alias,直接写类型
- 函数名用 snake_case
- 不要在文件顶部写 docstring,函数内才写

## 沟通偏好
- 解释技术问题时,先给结论再给细节
- 不要用 emoji
- 不要说"很高兴帮助你"这种客套话

## 任务习惯
- 改代码前先 git commit 当前状态
- 大重构先列计划,我审核后再做

糟糕的 Memory 条目:

我喜欢吃苹果       ← 跟工作无关
我有一只叫小灰的猫 ← 跟工作无关
今天天气很好       ← 跟工作无关
我昨天去了北京     ← 一次性信息,不是长期偏好

记住一个原则:Memory 是给 Codex 看的"使用说明书",不是日记

Memory 的容量

Memory 有大小上限(具体取决于版本,2026 年是 8KB 左右)。超出会被截断或要求你删减。

定期检查、清理:

/memory
# 编辑器打开后,删除过时的、合并相似的

9.6 Triage 收件箱

桌面版有一个特别有用的功能:Triage(收件箱)

什么是 Triage

Triage 是一个"待审核"队列。Codex 完成定时任务、长任务、自动化任务后,结果不直接发出去,而是先到 Triage 排队。你打开 Triage,逐个审核:

  • 满意 → 发布 / 提交
  • 不满意 → 退回让 Codex 改 / 自己改 / 丢弃

适用场景

  • 定时新闻雷达:每天早上 8 点 Codex 整理出 5 条新闻,放 Triage,你审完再发到群里
  • 自动 PR:Codex 改完 bug 自动开 PR,进 Triage,你审完再 merge
  • 周报生成:周五下午 Codex 起草周报,进 Triage,你审完发出

一个完整的"两层交付"工作流

┌─────────────────────┐
│ Automation 定时触发  │
└──────────┬──────────┘
           ▼
┌─────────────────────┐
│ Codex 自主完成       │
│ (读、写、查、整理) │
└──────────┬──────────┘
           ▼
┌─────────────────────┐
│ 结果进入 Triage      │
└──────────┬──────────┘
           ▼
┌─────────────────────┐
│ 你审核(diff 视角)  │
└──────────┬──────────┘
           ▼
┌─────────────────────┐
│ 通过 → 发布 / 提交   │
│ 不通过 → 退回 / 丢弃 │
└─────────────────────┘

这个工作流的好处:

  • 效率:Codex 跑完整流程,不要人盯着
  • 责任:人最终把关,不会出大错
  • 可追溯:每个决策都有记录

第十二章会详讲 Automation。

9.7 Task Sidebar

桌面版右侧有一个 Task Sidebar,显示当前 Codex 正在做什么:

┌────────────────────────────┐
│ 当前任务                    │
├────────────────────────────┤
│ 1. 读取 invoices/ 目录      │  [✓]
│ 2. 解析 247 个 PDF         │  [进行中 60%]
│ 3. 提取金额、税号           │  [待办]
│ 4. 写入 invoices.xlsx      │  [待办]
└────────────────────────────┘

来源:
  - invoices/2024-Q1/*.pdf
  - invoices/2024-Q2/*.pdf

产出:
  - 草稿:invoices_draft.xlsx
  - 报告:summary.md

它让你随时知道 Codex 在干什么、卡在哪儿、出过什么。

9.8 多窗口与并行

2026 年的 Codex 桌面版支持同一台电脑上同时开多个 Agent(基于 Computer Use 的多代理隔离)。

适用场景

  • 一个 Codex 在写代码,另一个在帮你查资料
  • 一个 Codex 在自动化跑长任务,你打开另一个对话提问
  • 一个 Codex 操作浏览器,另一个操作终端

怎么开多个

桌面版:菜单栏 → File → New Window。

每个窗口独立 Session、独立 Project,互不干扰。

注意:所有 Agent 共享你的 ChatGPT Plus 配额。同时跑多个会更快烧完配额。

9.9 一些"管理"上的最佳实践

实践 1:每个项目有自己的目录

不要把 10 个项目都放在 ~/Desktop/。每个项目独立目录,Codex 才能精准服务。

实践 2:每个项目都有 AGENTS.md

哪怕只有 5 行的 AGENTS.md,也比没有强。下一章详讲。

实践 3:Memory 定期清理

每月一次:

/memory
# 检查、删除过时条目

实践 4:长任务用 Triage,短任务用即时模式

  • 5 分钟以内:你坐着等
  • 5-30 分钟:开 Triage,自己去做别的
  • 30 分钟以上:用 Automation 后台跑

实践 5:会话超过 30 轮,开新会话

不要恋战。30 轮后开新会话,让上下文重新干净。

9.10 本章小结

  • 三层管理:Project(工位)、Session(短期记忆)、Memory(长期记忆)
  • Project 推荐目录结构:AGENTS.md + .codex/ + src/
  • Session 关掉就忘,超 30 轮考虑新开
  • Memory 是"使用说明书",不是日记
  • Triage 让"自动化任务"有人审核
  • Task Sidebar 让你随时知道 Codex 在干什么
  • 多窗口可以并行,但配额共享

第三篇结束。下一篇是"进阶篇",从 第十章 · AGENTS.md 指南 开始,让 Codex 真正"懂你"。