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

Codex笔记与可搜索历史上下文管理

传统compaction会把较早的对话压成一份摘要。任务持续数小时后,同一份历史可能被重复压缩,错误日志、失败原因和早期约束会逐渐变模糊。

Astra的新模式把“保留什么”和“在哪里找细节”拆成两层:当前窗口携带精简笔记,旧窗口继续可检索。模型需要某个测试结果时,可以回查原消息和工具输出。


📌 新模式改变了什么

OpenAI在Astra发布说明 中确认了三点:

  1. Astra可以跨上下文窗口维护笔记;
  2. 更早的上下文窗口保持可搜索;
  3. 搜索范围包含历史消息和工具结果。
方式当前窗口携带内容早期细节
传统反复摘要一份持续压缩的摘要依赖摘要是否保留
笔记 + 可搜索历史结构化笔记需要时回查原记录
全量上下文大量原始消息直接存在窗口内,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通常在新会话开始时重新构建模型、功能和项目指令环境。

检查清单:

  1. Codex客户端已更新到支持Astra与该配置项的版本;
  2. 使用ChatGPT账户登录,套餐具备对应功能权限;
  3. 模型选择器中能看到并使用Astra;
  4. config.toml的TOML层级和布尔值正确;
  5. 工作区管理员没有通过受管配置关闭实验功能。

官方配置参考把该功能标为“under development / off by default”,并列出ChatGPT登录与套餐要求。Business、Enterprise等受管账户还会受到工作区策略影响。


📝 AGENTS.md最小模板

Codex长任务上下文工作流与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消耗

“可搜索历史”并不等于免费历史。搜索、恢复内容、继续推理和工具调用都可能产生用量。更稳的控制方法是减少无价值上下文。

  1. 工具输出只返回相关片段,避免整份日志塞回会话;
  2. 大文件先搜索定位,再读取目标区间;
  3. 把稳定规则放进精简的AGENTS.md
  4. 阶段结束后保留决策、测试和风险,清理重复描述;
  5. 让代码、测试和结构化状态文件保存可验证事实;
  6. 新阶段开始时明确目标和可接受修改范围。

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。全局和项目目录都可以放置,嵌套目录可提供更具体的覆盖规则。

它能彻底避免上下文遗忘吗?

笔记质量、历史搜索命中和任务结构都会影响结果。关键约束仍应写入项目文件、测试和可审查的状态记录。

适合直接用于无人值守生产任务吗?

实验功能适合先在可回滚环境验证。生产任务还需要权限限制、审批、日志、超时和故障回退。