GPT-6 Astra 发布,Codex 支持”近乎”无限上下文了?

兹拉坦的 AI Agent 2026 年 9 月 14 日 07:30

"...it must be stored, and above all it must be consulted."

"录而存之,尤须考而用之。"

Vannevar Bush,《As We May Think》 [1] ,1945。

楔子

GPT-6 Astra 发布后,小编在 LINUX DO 论坛里,看到了一个引发很多网友讨论的帖子《不用担心爆上下文了,Astra 新技术,"几乎"无限上下文》 [2] ,帖子里贴出了 Codex 的一项实验配置,并引发了很多网友的讨论 ------ 打开 codex 里的这个配置,上下文是不是就能"几乎无限"了?

按照 Codex 的官方说明 [3] ,Astra 支持通过这个实验配置,跨窗口保留 Notes,还能搜索旧消息与工具输出。即使某次测试的细节没写进 Notes,也有机会重新找到原始记录。

欢迎大家关注 OceanBase 社区公众号 "老纪的技术唠嗑局"。在这里,我们会持续为大家更新与 #AI 和 #Data 相关的技术内容~

帖子中的追问

它有无限上下文,你有无限 Token 吗?

帖子下网友的反问,点出了一个容易混淆的前提:历史可以长期保存,模型仍在有限的窗口中推理。每次读回的材料,都要占用这一轮的输入预算。

旧消息全部重放,输入量会随历史增长;只留下摘要,失败的条件、未完成的检查又可能被压掉。何况历史里还会同时存在已撤回的要求和已经过期的结论。保存得越完整,越需要知道这一轮应当取用什么。

由此,网友的讨论终于落到了两个具体问题上:Codex 如何找回遗漏的证据,组织下一轮的上下文?如果任务交给另一个 Agent,当前状态、判断依据和未完成的工作,又该怎样交出去?

Codex 的进化

窗口快满时,任务往往还没做完,模型却必须给后续推理腾出空间。Astra 的新流程会提醒模型先留下任务状态和回查线索,再换一个窗口继续。

ChatGPT 官方文档 [4] 给出的启用方式,是在支持该实验的客户端中修改 config.toml ,然后新建任务:

plain 复制代码
[features.context_management]
experimental_mode = true

说明:实验特性默认关闭,目前官方列出的首发范围是 ChatGPT Plus、Pro 登录用户;启用还依赖模型能力、客户端和后端支持。

整体来看,codex 新版本在处理上下文方面,主要有以下三招:

参考自:github.com/openai/code...

第一招:在预算耗尽前,保存带索引的检查点

Astra 的配置,会将提醒阈值设为 6,144 Token 。剩余窗口预算低于或等于阈值时,Codex 提醒模型记录目标、决策、进度、经验和下一步,并保存未解决请求、关键工具操作的 window ID / item ID 。预算归零时另有兜底提醒,要求先保存检查点,再调用 new_context 。

也就是说:只记一句"测试通过",下一轮可能不知道通过的是哪次改动、哪些检查。检查点保留"结论 + 原始记录位置",就能把模型带回那份输出,省去在笔记里重抄日志。

至于该记什么,仍由模型按指令整理,客户端并不保证每项事实都已记全。

第二招:换上下文,保留工作环境

codex 通过 new_context 推进窗口编号、重置窗口计数,并用重新构建的初始上下文替换活动历史。当前指令、工具、环境和协作信息会重新进入窗口;普通旧对话不会整段重放。

也就是说:文件修改、进程等实际环境状态,不会因换窗被重置。

新窗口还要知道从哪里继续。扩展为此向后端请求 thread_hint ,只在返回文本有效且不超过 4,000 UTF-8 字节 时注入。它提供恢复入口,模型再读取笔记、定位历史;这 4,000 字节并不包括后续回读的全部材料。

第三招:笔记与历史分开,遗漏可以回查

在 codex 的实现中, notes 是可读写的后端笔记,支持按路径、行范围读取,以及追加、覆盖和搜索; history 是只读历史,支持按窗口、角色、工具筛选,再按条目 ID 读取消息或工具输出。两者公开的内容搜索接口均采用区分大小写的字面子串匹配。

比如,笔记里只剩一句"索引方案无效",接手者却需要知道当时的数据量和过滤条件。有历史可查,就还能把这个结论放回原来的测试环境里理解。

相对传统 compact,关键变化在这里: 旧信息可以通过历史接口重新取回,不必全部依靠压缩摘要传递。 源码中的 TokenBudget 分支明确跳过模型或服务端摘要,改为安装新窗口;原有压缩分支仍保留。

这套机制也支持同一根任务内跨 Agent 读取:子 Agent 继承根任务的 session_id ,请求另带 current_agent_name 。公开实现覆盖的是这一任务体系内的连续工作。

PowerContext 登场

一次会话结束了,项目往往还没结束。

开发之后还要审查,审查之后可能又要换个 Agent 继续做一些特定的新需求。

每位接手者都需要知道,此前为什么这样改。

PowerContext [5] 将上下文保存在独立服务中。客户端通过 Hook、MCP 接入,资料按 Scope 组织。它与 Codex 同样采用外置存储、按需读取,但进一步处理跨会话共享、交接版本、结果证据和召回预算。

交接:从共享笔记到版本协议

PowerContext 的跨会话复用由 Scope 绑定实现。 服务保存 (integration, kind, external_id) → scope_id 的映射。Codex 插件按显式 Scope、Session 绑定、workspace 绑定、默认 Scope 的顺序解析;不同宿主接入同一服务并绑定相同 Scope 后,可以复用资料。

自动准备上下文时,Runtime 只从当前 Scope 及其显式 context_references 召回资料,不沿父子层级递归扩展。

交接时的一句"收到",未必意味着对方拿到了最新内容,更不意味着它有条件继续执行。版本和回执,就是为了把这些事情明确记录下来。

当前任务通过 Handoff 交接,其实现有三项约束:

  1. 状态有来源。 handoff_current_work 先将提交的工作状态保存为 Source,再生成带引用的交接内容;状态和列出的下一步均需 citation。
  2. 提交有版本。 准备阶段记录基础版本 base ,提交不同内容时要求它与当前版本一致,否则抛出 RevisionConflictError 。A、B 同从第 3 版准备,A 先提交第 4 版,B 就不能直接覆盖 A 的结果。
  3. 接收有回执。 accepted 要求接收方确认现场状态、执行能力和授权,且引用证据可读取。回执绑定精确 Revision 或 Prepared 内容,不能只写一个会变化的 latest 。

引用保证来源可追溯,现场事实仍由接收方核验。详见:交接版本校验代码 [6] 、交接接收条件与回执定义代码 [7] 。

Codex 提供任务内跨 Agent 的记录读取;PowerContext 进一步明确了 跨会话资料归属、并发提交检查,以及接收者接受的具体版本 。

评估:召回过程与任务结果都能追查

Agent 回答偏了,相关记忆究竟有没有被找到,又有没有进入最终上下文?只看最后一段回复,很难定位问题出在哪一步。

PowerContext 已提供 OpenTelemetry 接入。启用 tracing 并安装导出依赖后,可以把内部操作发送到 Phoenix 等平台。

与上下文直接相关的 Span 包括:

Span 可以观察什么
memory.search Memory 查询,以及其下的 Embedding 调用
memory.rerank 实际发生的重排及其模型调用
context.build 候选数量、最终入选数量、输出字节数和状态
chat PowerContext 内部模型调用的 Token 用量、耗时与错误

这些记录可以区分召回耗时、重排耗时和上下文装配结果。具体配置、Span 层级和记录属性,详见:Phoenix Trace 接入文档 [8] 、上下文装配追踪代码 [9] 。

Codex 自身也支持 OpenTelemetry 和 Trace 导出,详见:Trace 导出代码 [10] 。PowerContext 在这里提供的是上下文服务内部的召回、重排与装配记录,用来追查注入材料的生成过程。

查清调用过程以后,还得回到任务本身。一次构建成功,并不能替代需求里尚未执行的回归测试;"运行正常"和"完成要求"需要分别核对。

任务评估另有一条记录链: Work Contract → Handoff → Acknowledgement → Task Outcome 。Contract 保存完成标准;Outcome 区分任务状态、检查结果和剩余工作。检查若声明 basis="verified" ,必须附精确证据;结果若关联交接,只能引用 已接受、指向精确已提交版本 的回执。

这些记录由调用方提交,为"任务要求是否落实、哪次交接仍没有结果"提供查询依据;它们不会自动给 Agent 的工作质量打分。

预算:检索、筛选、注入分别受控

查一个超时问题,错误码和日志原句能帮助精确定位;换了种描述,相同故障又可能需要语义检索。资料找到后,还要决定哪些值得带进这一轮。

Codex 的公开历史搜索提供字面匹配;PowerContext 的 Memory 提供全文、向量、混合检索。 auto 模式在后端、Embedding 配置和索引完整性满足条件时选择混合检索,否则使用可用的全文检索。

在 Codex 接入中, UserPromptSubmit Hook 每轮请求一次 POST /v1/context/prepare 。Runtime 召回 Memory 和配置后参与召回的 Experience,再生成最终的 PreparedContext 。v0.2.0 的限制直接写在代码里:

  • 总预算默认 8,000 UTF-8 字节 ,包含正文、引用和包装文字;请求范围为 512 至 32,768 字节。
  • 最终最多 8 条 ,其中 Experience 最多 2 条;单条正文最多 2,000 字节。
  • 按精确引用去重,超预算时截断或舍弃,渲染后再次校验实际字节数。

请求模型与装配算法共同执行预算,详见:上下文请求与字节预算定义代码 [11] 、上下文筛选与预算控制代码 [12] 。Hook 校验返回格式后原样注入;Handoff 走独立流程,不自动混入日常召回。

这里减少的是本轮携带的正文,原始 Memory 不会因此被删掉。被截断的条目仍保留引用,需要细节时可以按版本回查。

这让使用者可以在服务端控制检索方式和单轮历史注入量。字节预算约束的是这份上下文包,不代表整轮模型调用的 Token 总量。

版本:旧知识退出检索,历史仍可定位

需求已经变了,旧约束却还在被反复召回,Agent 就可能认真执行一条过时的规则。长期记忆要能纠错,也要能撤下不再适用的内容。

Memory 用 entry_id 标识条目,用 entry_version_id 标识内容版本。更新产生新版本;停用将条目标记为 inactive ,保留历史内容。查询面向当前版本,搜索索引只包含启用条目,过期规则因此可以退出日常召回。

历史交接里的引用仍指向当时的精确版本。回读时,服务检查条目身份、版本和内容哈希,防止旧引用被替换成新内容;重建索引时还会复用未变条目的向量,仅对需要更新的部分计算 Embedding。

相比可覆盖的笔记接口,这套条目、版本和状态机制更适合长期项目:当前召回使用有效知识,历史复盘保留当时依据。

留给后来者

在《As We May Think》 [13] 中,Bush 谈到过一种知识传承:前人留给后来者的,除了已有成果,还有通向成果的关联路径。

模型会不断更新。一次排查为何中止、一个方案为何被放弃、某条规则何时失效,这些判断却是具体项目一点点积累出来的。

它们需要能被接手、核验和修订,才能在下一次工作里继续发挥作用。

更换 Agent 时,除了比较模型能力,我们可能也需要清点一下:这个项目积累的经验,究竟有多少能够随我们一同迁移。

参考资料

1

《As We May Think》: www.theatlantic.com/magazine/ar...

2

《不用担心爆上下文了,Astra 新技术,"几乎"无限上下文》: linux.do/t/topic/285...

3

Codex 的官方说明: learn.chatgpt.com/docs/models...

4

ChatGPT 官方文档: learn.chatgpt.com/docs/models...

5

PowerContext: github.com/oceanbase/p...

6

交接版本校验代码: github.com/oceanbase/p...

7

交接接收条件与回执定义代码: github.com/oceanbase/p...

8

Phoenix Trace 接入文档: github.com/oceanbase/p...

9

上下文装配追踪代码: github.com/oceanbase/p...

10

Trace 导出代码: github.com/openai/code...

11

上下文请求与字节预算定义代码: github.com/oceanbase/p...

12

上下文筛选与预算控制代码: github.com/oceanbase/p...

13

《As We May Think》: www.theatlantic.com/magazine/ar...

往期内容推荐

微信扫一扫赞赏作者

PowerContext · 目录

作者提示: 个人观点,仅供参考

阅读原文

相关推荐
HDU-Dade11 小时前
【校招笔试真题】简要介绍 Self-Attention 的前沿算法
人工智能·算法
在所不辞兄12 小时前
【零基础学智能仿真-63】ABACUS作业工具与MCP接口
人工智能·深度学习·神经网络·机器学习·智能仿真
楚山之石12 小时前
【Medical Image Analysis】深度学习医学图像合成综述:伪CT、合成MRI与合成PET的架构、性能与临床边界
图像处理·人工智能·学习·mr·mri
blackappleD12 小时前
百度 Unlimited OCR 2 拆解:SR-SWA 如何让百页文档的 KV 缓存不再涨
人工智能·llm
数字新视界12 小时前
国产动环数据库在智能机房环境监控中的应用与优势分析
大数据·人工智能·数据中心·机房管理·模块化机房
holly就是我12 小时前
AI 编程助手为什么跑偏?用开源 ccglass 看清 Prompt、工具调用和 Token 消耗
人工智能·后端
雨中飘荡的记忆12 小时前
额度又见底了?这个开源项目,给 AI 编程助手接上 61 家"加油站"
人工智能
天远Date Lab12 小时前
零信任架构实战:基于天远企业年报信息核验构建自动化商业保理财务与社保穿透评估网关
人工智能·架构·自动化
EnCi Zheng12 小时前
后端怎么把AI接口稳定安全低成本接进业务:超时重试、密钥隔离与成本熔断清单
人工智能·后端·安全·架构·api
loulanyue_13 小时前
给概率大模型套上确定性缰绳:GraphRAG、神经符号与知识超图重构可信AI底座——读陈华钧杨博等CNCC2026第十届知识图谱论坛实录
人工智能·rag