🎯 Astra在Codex里增加了实验性上下文管理:跨窗口维护笔记,同时保留可搜索的早期消息与工具结果。它主要解决长任务的细节丢失,Token是否下降仍取决于检索量、笔记长度和工作流设计。

传统compaction会把较早的对话压成一份摘要。任务持续数小时后,同一份历史可能被重复压缩,错误日志、失败原因和早期约束会逐渐变模糊。
Astra的新模式把“保留什么”和“在哪里找细节”拆成两层:当前窗口携带精简笔记,旧窗口继续可检索。模型需要某个测试结果时,可以回查原消息和工具输出。
📌 新模式改变了什么
OpenAI在Astra发布说明 中确认了三点:
- Astra可以跨上下文窗口维护笔记;
- 更早的上下文窗口保持可搜索;
- 搜索范围包含历史消息和工具结果。
| 方式 | 当前窗口携带内容 | 早期细节 |
|---|---|---|
| 传统反复摘要 | 一份持续压缩的摘要 | 依赖摘要是否保留 |
| 笔记 + 可搜索历史 | 结构化笔记 | 需要时回查原记录 |
| 全量上下文 | 大量原始消息 | 直接存在窗口内,Token占用高 |
这套机制适合复杂调试、大规模重构、跨阶段研究和多轮工具任务。短小、边界清楚的修改通常在单个上下文窗口内结束,收益有限。
该功能仍处于实验阶段,当前默认关闭。OpenAI计划在后续数周内把它设为Astra的默认方式,实际时间以Codex版本和账户开放状态为准。
⚙️ 如何开启实验功能
官方配置项是features.context_management.experimental_mode。编辑~/.codex/config.toml:
[features.context_management]
experimental_mode = true
也可以使用完整键写法理解其层级:
features.context_management.experimental_mode = true
配置完成后启动一个新任务。Codex通常在新会话开始时重新构建模型、功能和项目指令环境。
检查清单:
- Codex客户端已更新到支持Astra与该配置项的版本;
- 使用ChatGPT账户登录,套餐具备对应功能权限;
- 模型选择器中能看到并使用Astra;
config.toml的TOML层级和布尔值正确;- 工作区管理员没有通过受管配置关闭实验功能。
官方配置参考把该功能标为“under development / off by default”,并列出ChatGPT登录与套餐要求。Business、Enterprise等受管账户还会受到工作区策略影响。
📝 AGENTS.md最小模板

新记忆机制负责保留任务过程,AGENTS.md负责提供稳定规则。两者承担不同角色。
官方文档说明,Codex会在开始工作前读取AGENTS.md。全局文件通常位于~/.codex/AGENTS.md,项目文件放在仓库根目录;更接近当前工作目录的文件拥有更高优先级。
一个够用的项目模板:
# Project instructions
Repository:
- Application code: `src/`
- Tests: `tests/`
- Documentation: `docs/`
Commands:
- Install: `npm ci`
- Test: `npm test`
- Lint: `npm run lint`
- Build: `npm run build`
Engineering rules:
- Keep changes scoped to the requested feature or bug.
- Preserve public API compatibility unless the task requires a breaking change.
- Add or update tests for behavior changes.
- Never print secrets, tokens, customer data, or production credentials.
Done:
- Required tests pass.
- Changed files are reviewed for security and error handling.
- Report modified files, verification commands, and remaining risks.
模板里的命令必须换成项目真实命令。Codex官方建议让AGENTS.md保持简短、准确,把架构长文、计划和专项规范放到独立文件中引用。
🧠 何时用compaction与笔记
新模式依然围绕上下文窗口管理。它改变了跨窗口保存和找回信息的方法,并没有消除窗口上限。
| 任务状态 | 推荐做法 |
|---|---|
| 单文件小修 | 保持当前窗口,减少额外笔记 |
| 多文件重构 | 开启实验模式,记录关键决策与验证结果 |
| 反复调试 | 保存失败方案、错误文本和对应提交范围 |
| 多阶段迁移 | 配合PLANS.md或项目状态文件 |
| 高风险生产操作 | 使用人工审批、明确权限和可回滚步骤 |
长任务中可以主动要求模型维护阶段性记录:
完成每个阶段后,记录:
1. 已验证的事实;
2. 修改过的文件;
3. 失败方案及失败原因;
4. 测试命令与结果;
5. 下一阶段入口。
这能提高笔记质量。需要追溯细节时,再让Codex搜索早期窗口里的原始工具结果。
💰 怎么控制Token消耗
“可搜索历史”并不等于免费历史。搜索、恢复内容、继续推理和工具调用都可能产生用量。更稳的控制方法是减少无价值上下文。
- 工具输出只返回相关片段,避免整份日志塞回会话;
- 大文件先搜索定位,再读取目标区间;
- 把稳定规则放进精简的
AGENTS.md; - 阶段结束后保留决策、测试和风险,清理重复描述;
- 让代码、测试和结构化状态文件保存可验证事实;
- 新阶段开始时明确目标和可接受修改范围。
OpenAI曾在ARC-AGI-3实验中同时开启retained reasoning与compaction,测试分数提高且输出Token下降约6倍。那是特定基准和特定设置的结果,不能直接当成Astra新记忆模式的通用节省比例。
需要对比Astra与其他模型的缓存账单,可继续读Astra和Fable缓存成本 。补充API上游时可查看APIMart模型入口 ,实际用量以供应商账单为准。
❓ FAQ
功能的准确配置项是什么?
在~/.codex/config.toml中加入:
[features.context_management]
experimental_mode = true
开启后旧会话会自动转换吗?
官方说明聚焦于Codex配置和Astra的新上下文窗口。配置后从新任务开始,最容易确保新功能被加载。
AGENT.md还是AGENTS.md?
Codex官方约定是AGENTS.md,包含字母S。全局和项目目录都可以放置,嵌套目录可提供更具体的覆盖规则。
它能彻底避免上下文遗忘吗?
笔记质量、历史搜索命中和任务结构都会影响结果。关键约束仍应写入项目文件、测试和可审查的状态记录。
适合直接用于无人值守生产任务吗?
实验功能适合先在可回滚环境验证。生产任务还需要权限限制、审批、日志、超时和故障回退。
