惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
Recent Announcements
Recent Announcements
雷峰网
雷峰网
The GitHub Blog
The GitHub Blog
罗磊的独立博客
月光博客
月光博客
J
Java Code Geeks
A
About on SuperTechFans
Microsoft Security Blog
Microsoft Security Blog
D
Docker
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
F
Fortinet All Blogs
U
Unit 42
C
Check Point Blog
Martin Fowler
Martin Fowler
有赞技术团队
有赞技术团队
博客园 - 叶小钗
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
酷 壳 – CoolShell
酷 壳 – CoolShell
Blog — PlanetScale
Blog — PlanetScale
大猫的无限游戏
大猫的无限游戏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
阮一峰的网络日志
阮一峰的网络日志
MyScale Blog
MyScale Blog

博客园 - 人艰不拆_zmc

AI 里的“本体”到底是什么?一篇写给技术小白的通俗解释 15000mAh 到底是什么概念?一篇看懂电池容量 go2_ros2_sdk 到底是干什么的?从 Go2、官方 SDK、ROS2 一路讲到 SLAM 和 Nav2 买了宇树 Go2 以后怎么二次开发?写给第一次做机器狗项目的人 买了一块 NVIDIA Jetson,怎么在上面安装 ROS2?从 JetPack 到 ROS2 的完整入门指南 NVIDIA Jetson 到底是什么?写给第一次接触机器人和边缘 AI 的人 ROS / ROS2 到底是什么?写给第一次接触机器人开发的人 大模型到底能同时多少人用?一篇看懂并发、排队与容量估算 大模型为什么有快有慢?一篇看懂响应速度背后的关键因素 技术小白也能看懂:大模型里的量化、蒸馏到底是什么意思? Codex 使用技巧:从“会聊天”到“真正能干活” 我终于搞懂了:Codex 对话中插件和 Skill 到底怎么用 我终于搞懂了 Agent Spec:它其实就是 Agent 的“标准设计图” 我终于搞懂了 Tool:原来不只是 Function Calling 里的函数 Skill 里的 Python 脚本,到底是不是 Tool? 我终于搞懂了 Codex 的 Plugin 和 Skill:顺便把 App、MCP 一次理清 我终于搞懂了 Codex 的“应用”:App 到底是什么,怎么添加和维护? 我终于搞懂了 Tool、Function Calling 和 MCP:大模型到底怎么知道该调哪个接口? 我终于搞懂了 MCP:从 HTTP API 到 ERP MCP Server 的完整入门 Codex 用久了越来越慢?我的上下文管理小技巧 我终于搞懂了 Codex 里的 Thread、Turn 和 Session 从 Qwen3.8-27B 到 FP8、NVFP4、MoE:一次搞懂几个常见大模型概念 FPS 是什么意思?简单理解 60 FPS、25 FPS 和视频帧率 DeepSeek Harness 明明像 AI Coding 工具,为什么又能用来构建各种 Agent? 使用 Codex 开发项目,怎么才能节约 Token? 模型里的 32K、128K、256K 是什么意思?简单聊聊上下文限制 Codex 一次对话到底会给模型发送什么?以 Spring Boot 项目为例讲清 Context、代码读取与 Token 消耗 AI Agent 中的 Rule 是什么?以 Codex 为例,小白也能看懂 我终于搞懂了 Harness:它不是论文,也不是标准,更不是 Codex 独有 小白也能看懂:RTSP 到底是什么?
我终于搞懂了 Codex 的“记忆”是怎么回事
人艰不拆_zmc · 2026-09-04 · via 博客园 - 人艰不拆_zmc

最近在学习 Codex 时,最容易混淆的就是 Thread History、Compaction、Memory、AGENTS.md、Context

其实它们不是一回事。

1. Codex 是什么

Codex 可以理解成一个 软件智能体(Agent)产品,底层由 Harness / Agent Loop 负责把大模型、工具、上下文和执行过程串起来。

简单理解:

LLM 是大脑,Codex 是让这个大脑真正能读取代码、调用工具并持续完成任务的运行系统。


2. Codex 里几种容易混淆的“记忆”

Thread History

就是当前这个 Thread 以前发生过什么

例如:

我:这个项目使用 Vue3
Codex:好的

我:所有列表页的操作列固定右侧
Codex:好的

这些属于当前 Thread 的历史。

同一个 Thread 继续对话时,之前的消息、Tool Call、Tool Result 等都可能成为后续 Context 的一部分。


Compaction

Thread 聊得越来越长后,不可能无限把全部原始历史都塞给模型。

Codex 会进行 Compaction(上下文压缩),把以前的大量 Context 压缩成更小的可继续使用状态。

可以简单理解成:

原始历史很多
    ↓
Compaction
    ↓
保留重要信息的压缩状态
    ↓
继续后面的对话

所以:

Compaction = 为了让当前 Thread 能继续聊,而不是为了形成长期 Memory。

需要注意,Compaction 并不一定只是生成一段普通文字摘要,也可以理解成对旧上下文进行更紧凑的保存和表示。


Memory

Memory 才更接近我们平时说的长期记忆

它主要保存过去工作中,未来仍然可能有价值的信息,例如:

用户偏好:
- 技术解释尽量简单
- 修改完成后先测试

长期习惯:
- 回复尽量简洁
- 输出代码前先说明修改思路

历史经验:
- 某类启动问题之前是配置错误导致的

所以可以把它理解成:

Memory = 以后还可能再次有用的长期工作笔记。


3. Memory 不是把每句话都保存下来

假设一次聊天有 100 句话:

打开 user.vue
看看第 38 行
按钮颜色改浅一点
重新启动项目
……

这些大部分只是当前任务过程,没有必要都成为长期 Memory。

更值得长期保留的通常是:

  • 稳定的用户偏好
  • 用户明确纠正过的内容
  • 已经确认的重要事实
  • 长期项目背景
  • 花费较多时间才排查出来的经验
  • 以后很可能继续复用的信息

可以简单理解成:

大量工作过程
    ↓
识别重要信息
    ↓
形成 Memory
    ↓
以后需要时再次使用

4. Memory 是怎么发挥作用的

Memory 的核心并不是:

“大模型的大脑永久记住了这些内容。”

而是:

过去的工作
    ↓
保留有价值的信息
    ↓
以后出现相关任务
    ↓
Codex 使用相关 Memory / Context
    ↓
放进本次模型可见的 Context
    ↓
交给 LLM

所以可以记住:

Memory
=
保存重要信息
+
以后需要时重新使用

至于 Codex 底层具体使用什么数据库、向量库以及完整的检索算法,目前并没有完全公开,因此不要简单理解成“Codex Memory 就是某个向量数据库”。


5. Memory 会全部发给大模型吗

不会把所有长期信息无脑塞进每一次 Context。

例如我现在问:

继续优化这个页面

真正有用的可能是:

- 当前项目的长期规则
- 之前已经做出的设计决定
- 用户的开发习惯
- 之前纠正过的重要要求

而其他无关内容没有必要参与当前任务。

所以可以理解成:

Memory 是长期资料库,Context 是这一次真正拿出来给模型看的资料。


6. AGENTS.md 和 Memory 有什么区别

这两个也很容易混。

AGENTS.md
=
项目长期指导和规则

Memory
=
从过去经验中保留下来的长期信息

例如:

AGENTS.md:
修改代码后必须执行测试

Memory:
用户更喜欢简短、通俗的技术解释

可以类比成:

AGENTS.md = 员工手册
Memory = 员工长期积累的工作笔记

Codex 会自动识别适用的 AGENTS.md,并把其中的项目指导加入模型输入。


7. Thread History、Compaction、Memory 的区别

最后用最简单的方式记:

Thread History
= 当前这个聊天以前发生过什么

Compaction
= 当前聊天太长了,把旧 Context 压缩后继续使用

Memory
= 跨时间保留的长期有价值信息

AGENTS.md
= 项目长期规则和指导

项目文件
= 正式代码和资料

Context
= 这一次真正给大模型看的所有信息

LLM
= 负责看这些信息并思考的大脑

最重要的一句话:

Codex 的“记忆”并不是让大模型永久记住所有聊天,而是把不同类型的信息保存下来,在需要的时候重新组成 Context,再交给大模型。