个人记录(7月)——主流 AI 编程 Agent 的上下文压缩机制与单会话记忆机制调研
1. 文档范围
本文记录主流 AI 编程 Agent / 通用任务 Agent 在单次对话 / 单个 session 内的上下文压缩机制与单会话记忆机制。
本文重点包括:
本文不展开讨论跨会话长期记忆、用户画像长期沉淀、历史会话检索、项目级持久化记忆等内容。
2. 单会话上下文与记忆的基本概念
AI Agent 在单个会话中通常需要处理以下几类上下文:
| 用户当前输入 | 用户最新一轮请求,是当前推理的直接入口 |
| 最近对话历史 | 最近若干轮用户与 Agent 的交互内容 |
| 历史摘要 | 对较早对话内容进行压缩后的摘要 |
| 工具调用结果 | 搜索、文件读取、代码执行、测试、检索等工具返回内容 |
| 当前任务状态 | 当前目标、执行进度、待解决问题、下一步动作 |
| 当前工作对象 | 当前文件、代码片段、业务对象、问题对象或任务对象 |
| 用户约束 | 用户在本轮会话中明确提出的限制、偏好或修正 |
| Agent 行动轨迹 | Agent 已经执行过的步骤、尝试过的方法和失败原因 |
单会话上下文压缩通常要解决的问题是:
| 上下文窗口有限 | 长对话、代码片段、日志、工具结果会快速消耗 token |
| 历史信息丢失 | 早期用户目标、约束或决策可能被截断 |
| 工具结果冗长 | 原始日志、检索结果、终端输出通常不适合全文保留 |
| 摘要可能失真 | 简单摘要可能遗漏关键事实或改变原始含义 |
| 当前状态不明确 | Agent 可能不知道当前应继续执行、追问用户还是结束任务 |
| 指代消解困难 | 用户后续说“这个”“刚才那个”时,需要依赖前文上下文 |
3. 主流 Agent 机制分析
3.1 OpenAI Codex / Codex CLI
3.1.1 上下文压缩机制
OpenAI Codex / Codex CLI 的上下文压缩机制通常被描述为一种 handoff summary / memento 式压缩。
其核心不是简单截断旧消息,而是在上下文变长时,将此前会话压缩成一份可供后续继续执行任务的任务交接摘要。
这类摘要通常包含:
- 用户原始目标;
- 当前任务进度;
- 已完成的操作;
- 已读取或修改的文件;
- 已尝试过的方案;
- 失败原因;
- 当前错误或测试结果;
- 用户明确提出的约束;
- 后续应继续执行的方向。
其上下文结构可以抽象为:
System / Developer Instructions
+ 项目或环境指令
+ 历史压缩摘要
+ 最近若干轮原始对话
+ 当前相关文件或工具结果
+ 当前用户请求
3.1.2 单会话记忆机制
Codex 在单个会话中主要依赖以下内容维持短期记忆:
在单会话中,Codex 的记忆更多围绕当前任务推进过程组织,而不是围绕用户画像或长期偏好组织。
3.1.3 机制特点
| 压缩方式 | 任务交接式摘要 |
| 压缩对象 | 早期对话、工具调用过程、任务探索过程 |
| 保留重点 | 当前任务目标、进度、失败尝试、下一步 |
| 单会话记忆来源 | 对话历史、工具结果、文件上下文、压缩摘要 |
| 风险 | 摘要可能遗漏关键细节,多次压缩后可能出现信息漂移 |
3.2 Anthropic Claude Code
3.2.1 上下文压缩机制
Claude Code 支持 /compact 以及自动压缩相关机制。
其基本逻辑是:当当前会话上下文变长后,将较早对话和工具使用过程压缩成更短的上下文状态,以便继续当前任务。
Claude Code 文档中明确提到,compact 后部分稳定上下文会重新加载。例如项目根目录中的 CLAUDE.md 会在压缩后重新注入当前会话上下文。
其压缩后的上下文可抽象为:
System Prompt
+ 重新加载的项目级指令
+ compact summary
+ 最近对话
+ 当前用户输入
3.2.2 单会话记忆机制
Claude Code 在单会话内主要维护:
- 当前用户请求;
- 最近对话内容;
- compact 后生成的摘要;
- 已加载的项目说明文件;
- 当前文件上下文;
- 工具调用结果;
- 当前任务状态。
Claude Code 的记忆体系中还包含 CLAUDE.md、rules、auto memory 等机制,但其中 auto memory 更偏跨会话记忆,不属于本文重点。
3.2.3 机制特点
| 压缩方式 | /compact / auto-compact |
| 压缩对象 | 长对话历史、工具调用过程、冗余上下文 |
| 保留重点 | 当前任务状态、最近对话、项目级指令 |
| 单会话记忆来源 | 最近对话、compact summary、文件上下文、工具结果 |
| 风险 | 仅存在于对话中的临时约束可能在压缩后丢失 |
3.3 OpenCode
3.3.1 上下文压缩机制
OpenCode 是开源 AI 编程 Agent,其上下文压缩机制通常围绕 compaction agent / continuation summary 展开。
当上下文接近窗口限制时,OpenCode 可以通过专门的压缩提示词或压缩流程,将已有 session 转换为一份 continuation prompt,用于后续继续任务。
压缩内容通常包括:
- 当前用户目标;
- 已完成事项;
- 已修改或读取的文件;
- 当前错误;
- 已做出的决策;
- 用户约束;
- 后续步骤。
3.3.2 单会话记忆机制
OpenCode 在单会话内通常维护:
- session messages;
- 工具调用历史;
- continuation summary;
- 当前文件上下文;
- 项目指令文件;
- 插件注入的上下文。
由于 OpenCode 开源且插件化程度较高,其上下文压缩和记忆机制可以根据具体实现进行调整。
3.3.3 机制特点
| 压缩方式 | continuation summary / compaction agent |
| 压缩对象 | session 历史、工具调用轨迹、任务执行过程 |
| 保留重点 | 当前任务目标、已完成事项、下一步 |
| 单会话记忆来源 | session messages、工具结果、summary、项目上下文 |
| 风险 | 具体行为取决于配置和插件实现,一致性可能不如闭源产品固定 |
3.4 Cursor Agent
3.4.1 上下文压缩机制
Cursor 是 IDE 场景下的 AI 编程 Agent。其上下文管理重点不是保留完整对话历史,而是动态选择当前代码工作区中最相关的信息。
Cursor 的上下文通常包括:
- 当前打开文件;
- 当前选中代码;
- 最近编辑区域;
- 用户当前请求;
- 最近对话;
- 相关代码片段;
- 检索到的上下文。
其压缩或上下文控制方式更偏向“相关上下文选择”,即让当前文件、当前选区和最近编辑内容优先进入上下文。
3.4.2 单会话记忆机制
Cursor 在单会话中主要维护:
- 用户当前正在处理的文件;
- 当前选中的代码片段;
- 最近编辑内容;
- 当前错误或诊断信息;
- 最近对话内容;
- 当前代码任务目标。
3.4.3 机制特点
| 压缩方式 | 动态上下文选择、相关文件片段选择 |
| 压缩对象 | 非当前文件、非相关代码片段、较早对话 |
| 保留重点 | 当前文件、当前选区、最近编辑、当前请求 |
| 单会话记忆来源 | IDE 状态、最近对话、文件上下文、诊断信息 |
| 风险 | 如果相关上下文选择不准确,可能遗漏必要文件或历史信息 |
3.5 Windsurf / Cascade
3.5.1 上下文压缩机制
Windsurf / Cascade 类 Agent 强调 flow-aware 的开发体验,即围绕当前开发流程持续推进任务。
其上下文管理通常关注:
- 当前任务目标;
- 当前代码状态;
- 最近操作;
- 工具执行结果;
- 多步骤任务进度;
- 用户当前意图。
其上下文压缩更偏向保留当前流程状态,而不是保留完整原始聊天记录。
3.5.2 单会话记忆机制
Windsurf / Cascade 在单会话中通常维护:
- 当前目标;
- 当前步骤;
- 已执行动作;
- 当前结果;
- 下一步动作;
- 最近用户反馈。
3.5.3 机制特点
| 压缩方式 | flow-aware 上下文维护、任务流程摘要 |
| 压缩对象 | 较早对话、无关操作记录、重复工具输出 |
| 保留重点 | 当前流程状态、最近动作、下一步 |
| 单会话记忆来源 | 当前任务流、编辑器状态、工具结果、用户反馈 |
| 风险 | 公开实现细节有限,具体机制较难完整验证 |
3.6 Devin
3.6.1 上下文压缩机制
Devin 是偏自主软件工程任务的 Agent,主要面向长周期、多步骤开发任务。
其公开底层细节有限,但从产品形态看,它需要在长任务中持续维护:
- 任务计划;
- 当前进度;
- 已完成步骤;
- 已尝试方法;
- 失败原因;
- 环境状态;
- 代码修改状态;
- 测试结果;
- 后续 todo。
因此其上下文压缩通常需要围绕任务状态和执行轨迹展开。
3.6.2 单会话记忆机制
Devin 类 Agent 的单会话记忆可以抽象为:
Plan
+ Progress
+ Environment State
+ Tool Observations
+ Next Action
它需要在一个持续任务中记住当前计划、已完成工作、环境反馈和下一步操作。
3.6.3 机制特点
| 压缩方式 | 任务状态摘要、执行进度摘要 |
| 压缩对象 | 长任务历史、工具输出、尝试过程 |
| 保留重点 | plan、progress、blocking issue、next action |
| 单会话记忆来源 | 任务计划、执行轨迹、工具结果、环境状态 |
| 风险 | 闭源产品,公开机制有限,部分结论依赖产品行为推断 |
3.7 SWE-agent
3.7.1 上下文压缩机制
SWE-agent 面向软件工程 issue 修复任务,其运行过程通常是 action-observation 轨迹:
observation → thought/action → tool execution → observation → next action
上下文变长时,需要管理 Agent 的 trajectory,即已经观察到什么、执行了什么、得到了什么结果。
压缩重点通常包括:
- 当前 issue;
- 已查看文件;
- 已执行命令;
- 命令输出;
- 错误反馈;
- 已尝试 patch;
- 当前失败原因。
3.7.2 单会话记忆机制
SWE-agent 的单会话记忆主要是 action-observation 轨迹记忆。
它需要保留:
- 任务目标;
- 观察结果;
- 已执行动作;
- 工具返回;
- 当前代码状态;
- 失败尝试;
- 下一步操作。
3.7.3 机制特点
| 压缩方式 | trajectory summary、工具轨迹压缩 |
| 压缩对象 | 命令输出、观察历史、patch 尝试过程 |
| 保留重点 | issue 状态、失败原因、已尝试动作、下一步 |
| 单会话记忆来源 | action-observation 轨迹、工具结果、代码状态 |
| 风险 | 偏软件工程 issue 修复,对通用对话适配性有限 |
3.8 Aider
3.8.1 上下文压缩机制
Aider 是命令行代码修改 Agent。其上下文管理机制包括:
- chat history;
- repo map;
- 当前加入上下文的文件;
- 用户请求;
- 代码 diff;
- 最近编辑结果。
Aider 的 repo map 机制会构造代码库结构摘要,而不是把整个仓库全文放入上下文。
repo map 通常包含:
- 文件结构;
- 关键符号;
- 函数 / 类定义;
- 相关引用;
- 代码库整体结构线索。
3.8.2 单会话记忆机制
Aider 在单会话中主要维护:
- 当前用户请求;
- 当前聊天历史;
- 已加入上下文的文件;
- repo map;
- 当前 diff;
- 最近修改结果。
3.8.3 机制特点
| 压缩方式 | repo map、文件上下文选择、聊天历史控制 |
| 压缩对象 | 全仓库代码、无关文件、较早对话 |
| 保留重点 | 当前文件、代码结构摘要、diff、用户请求 |
| 单会话记忆来源 | chat history、repo map、文件上下文、diff |
| 风险 | repo map 质量会影响模型对代码库的理解 |
3.9 Continue.dev
3.9.1 上下文压缩机制
Continue.dev 是开源 IDE Agent,其上下文主要来自用户显式选择和 IDE 当前状态。
常见上下文来源包括:
- 当前文件;
- 选中代码;
- 用户手动添加的上下文;
- 检索到的代码片段;
- 最近对话;
- IDE 诊断信息。
其上下文控制方式强调上下文来源的显式性和可控性。
3.9.2 单会话记忆机制
Continue.dev 在单会话中主要维护:
- 当前用户选择的上下文;
- 当前文件;
- 当前选区;
- 最近对话;
- 检索片段;
- 当前编辑任务。
3.9.3 机制特点
| 压缩方式 | 用户显式上下文选择、文件片段选择、检索片段注入 |
| 压缩对象 | 未选择文件、无关片段、较早对话 |
| 保留重点 | 用户指定上下文、当前文件、当前选区 |
| 单会话记忆来源 | IDE 状态、用户选择上下文、最近对话 |
| 风险 | 上下文质量依赖用户选择和检索准确性 |
3.10 PI Agent / Personal Agent 类
3.10.1 上下文压缩机制
PI Agent / Personal Agent 类产品更偏个人助理场景,其上下文管理重点通常不是代码库,而是用户当前会话中的意图连续性。
其单会话上下文通常关注:
- 用户当前目标;
- 用户当前语境;
- 用户反复强调的信息;
- 用户临时偏好;
- 用户对回答方向的修正;
- 当前对话主题。
当对话变长时,这类 Agent 通常需要压缩早期对话,同时保留用户在当前会话中表达出的关键事实、情绪、约束或目标。
3.10.2 单会话记忆机制
PI Agent / Personal Agent 类单会话记忆通常包括:
- 当前对话主题;
- 用户当前目标;
- 用户临时偏好;
- 用户反复强调的限制;
- 上下文中的人物、事件或对象;
- 当前回答风格要求。
例如用户在同一会话中多次强调:
不要展开长期记忆。
只讨论单对话内机制。
不要只覆盖三家 Agent。
这类信息通常会被作为当前会话约束保留。
3.10.3 机制特点
| 压缩方式 | 当前会话语境摘要、用户目标和偏好提取 |
| 压缩对象 | 早期闲聊、重复表达、非关键语境 |
| 保留重点 | 用户目标、临时偏好、反复强调的信息 |
| 单会话记忆来源 | 用户表达、对话主题、当前语境 |
| 风险 | 可能把临时偏好过度固化,或误判用户真实意图 |
3.11 Manus / 通用任务 Agent
3.11.1 上下文压缩机制
Manus 等通用任务 Agent 通常面向多步骤任务执行。
其上下文管理重点包括:
- 用户目标;
- 当前计划;
- 已执行步骤;
- 工具调用结果;
- 当前产物;
- 失败原因;
- 下一步动作。
当上下文变长时,这类 Agent 通常需要将长任务过程压缩为任务状态摘要。
3.11.2 单会话记忆机制
Manus / 通用任务 Agent 的单会话记忆可以抽象为:
Goal
+ Plan
+ Steps Done
+ Current Artifacts
+ Tool Results
+ Next Step
它需要维护当前任务是否完成、已经生成了哪些产物、还有哪些步骤未完成。
3.11.3 机制特点
| 压缩方式 | 多步骤任务摘要、计划进度摘要 |
| 压缩对象 | 任务执行过程、工具输出、历史中间步骤 |
| 保留重点 | goal、plan、steps done、artifacts、next step |
| 单会话记忆来源 | 任务计划、工具调用结果、当前产物、执行轨迹 |
| 风险 | 如果任务状态维护不准,可能导致重复执行或遗漏步骤 |
3.12 GitHub Copilot Chat / Agent Mode
3.12.1 上下文压缩机制
GitHub Copilot Chat / Agent Mode 主要运行在 IDE 和 GitHub 开发环境中,其上下文来源通常包括:
- 当前打开文件;
- 当前选中代码;
- 工作区相关文件;
- GitHub issue / pull request 上下文;
- 终端或测试输出;
- 最近聊天历史。
其上下文压缩方式通常体现为相关代码上下文选择、最近历史保留和工具结果摘要。
3.12.2 单会话记忆机制
Copilot Chat / Agent Mode 在单会话中主要维护:
- 当前代码任务;
- 当前文件上下文;
- 最近用户指令;
- 当前诊断信息;
- 最近工具执行结果;
- issue 或 PR 相关上下文。
3.12.3 机制特点
| 压缩方式 | IDE 上下文选择、代码片段选择、最近历史保留 |
| 压缩对象 | 无关文件、较早聊天历史、冗长日志 |
| 保留重点 | 当前文件、当前任务、诊断信息、GitHub 上下文 |
| 单会话记忆来源 | IDE 状态、GitHub 上下文、最近对话、工具结果 |
| 风险 | 上下文选择不准确时可能漏掉跨文件依赖 |
3.13 JetBrains AI Assistant
3.13.1 上下文压缩机制
JetBrains AI Assistant 集成在 JetBrains IDE 中,其上下文主要来自 IDE 对代码结构的理解。
常见上下文包括:
- 当前文件;
- 当前光标位置;
- 当前选中代码;
- 项目结构;
- IDE 索引信息;
- 错误诊断;
- 最近对话。
其上下文压缩方式更偏向利用 IDE 结构化上下文,只选取与当前任务相关的代码和诊断信息。
3.13.2 单会话记忆机制
JetBrains AI Assistant 在单会话中主要维护:
- 当前编辑位置;
- 当前代码符号;
- 当前问题或错误;
- 最近对话;
- IDE 提供的结构化项目信息。
3.13.3 机制特点
| 压缩方式 | IDE 结构化上下文选择、当前符号/文件优先 |
| 压缩对象 | 无关项目文件、旧对话、非当前诊断信息 |
| 保留重点 | 当前文件、当前符号、错误诊断、项目结构 |
| 单会话记忆来源 | IDE 索引、当前编辑状态、最近对话 |
| 风险 | 依赖 IDE 对项目结构和当前任务的理解 |
3.14 Sourcegraph Cody
3.14.1 上下文压缩机制
Sourcegraph Cody 面向代码搜索和代码理解场景,依托代码搜索和索引能力选择上下文。
其上下文通常包括:
- 当前代码片段;
- 代码搜索结果;
- 相关定义和引用;
- 仓库结构;
- 当前问题;
- 最近对话。
上下文压缩主要体现为代码检索结果筛选和相关片段选择。
3.14.2 单会话记忆机制
Cody 在单会话中主要维护:
- 当前问题;
- 相关代码片段;
- 搜索结果;
- 当前仓库上下文;
- 最近对话。
3.14.3 机制特点
| 压缩方式 | 代码搜索结果筛选、相关片段注入 |
| 压缩对象 | 无关搜索结果、无关文件、较早对话 |
| 保留重点 | 相关定义、引用、当前代码片段、搜索证据 |
| 单会话记忆来源 | 代码搜索、仓库索引、最近对话 |
| 风险 | 检索召回不足时可能缺少关键上下文 |
3.15 Replit Agent
3.15.1 上下文压缩机制
Replit Agent 面向在线开发环境和应用构建任务,其上下文通常包括:
- 当前项目文件;
- 用户应用需求;
- 运行结果;
- 错误日志;
- 修改历史;
- 当前任务计划。
其上下文压缩需要处理长时间应用构建过程中的步骤、错误和代码修改记录。
3.15.2 单会话记忆机制
Replit Agent 在单会话中通常维护:
- 当前应用目标;
- 已创建或修改的文件;
- 当前运行状态;
- 错误日志;
- 用户反馈;
- 下一步构建动作。
3.15.3 机制特点
| 压缩方式 | 应用构建过程摘要、错误日志摘要、文件修改状态维护 |
| 压缩对象 | 冗长运行日志、旧构建步骤、重复错误输出 |
| 保留重点 | 应用目标、文件变更、运行状态、错误原因 |
| 单会话记忆来源 | 项目文件、运行结果、用户反馈、构建计划 |
| 风险 | 长任务中如果文件变更状态不准,可能导致重复修改或回退 |
4. 横向对比表
| OpenAI Codex / Codex CLI | handoff summary / memento,将历史压缩为任务交接摘要 | 当前 session、工具结果、文件上下文、压缩摘要 | 用户目标、任务进度、失败尝试、下一步 | 适合长编程任务连续推进 | 摘要可能遗漏关键细节或发生漂移 |
| Claude Code | /compact / auto-compact,压缩后重新加载部分稳定上下文 | 最近对话、compact summary、工具结果、文件上下文 | 当前任务状态、最近对话、项目级指令 | compact 机制产品化较强 | 对话内临时约束可能压缩后丢失 |
| OpenCode | compaction agent / continuation summary | session messages、工具历史、summary、项目上下文 | 当前目标、已完成事项、下一步 | 开源、可配置、可插件化 | 机制一致性依赖具体实现 |
| Cursor Agent | 动态选择当前文件、选区、最近编辑和相关代码片段 | IDE 状态、最近对话、文件上下文 | 当前文件、当前选区、最近编辑 | 当前工作对象相关性强 | 可能遗漏跨文件或早期对话信息 |
| Windsurf / Cascade | flow-aware 上下文管理,保留任务流程状态 | 当前目标、当前步骤、最近动作、下一步 | 当前流程状态、最近动作 | 适合连续开发流程 | 公开细节有限 |
| Devin | 长任务状态摘要、执行进度摘要 | plan、progress、environment state、tool observations | 任务计划、进度、阻塞点 | 适合复杂长任务 | 闭源,机制不完全透明 |
| SWE-agent | action-observation trajectory summary | 工具调用轨迹、失败原因、代码状态 | issue 状态、已尝试动作、失败原因 | 工程任务链路清晰 | 偏 issue 修复场景 |
| Aider | repo map、文件上下文选择、chat history 控制 | chat history、repo map、当前文件、diff | 代码结构、当前文件、修改 diff | 不必全文加载代码库 | repo map 质量影响效果 |
| Continue.dev | 用户显式上下文选择、文件片段选择、检索片段注入 | 用户选择上下文、IDE 状态、最近对话 | 当前文件、选区、用户指定上下文 | 上下文来源可控 | 依赖用户选择和检索质量 |
| PI Agent / Personal Agent | 当前会话语境摘要、用户目标和偏好提取 | 当前主题、用户目标、临时偏好、反复强调的信息 | 用户意图、会话语境、偏好约束 | 对用户意图连续性较强 | 可能误判或过度固化临时偏好 |
| Manus / 通用任务 Agent | 多步骤任务摘要、计划进度摘要 | goal、plan、steps done、artifacts、tool results | 任务计划、产物、下一步 | 适合通用多步骤任务 | 状态维护错误会影响任务推进 |
| GitHub Copilot Chat / Agent Mode | IDE 上下文选择、代码片段选择、最近历史保留 | IDE 状态、GitHub 上下文、最近对话、工具结果 | 当前文件、当前任务、诊断信息 | 与 GitHub / IDE 场景结合紧密 | 可能漏掉跨文件依赖 |
| JetBrains AI Assistant | IDE 结构化上下文选择、当前符号/文件优先 | IDE 索引、当前编辑状态、最近对话 | 当前符号、当前文件、错误诊断 | 依托 IDE 结构化理解 | 依赖 IDE 对任务相关性的判断 |
| Sourcegraph Cody | 代码搜索结果筛选、相关片段注入 | 代码搜索、仓库索引、最近对话 | 相关定义、引用、搜索证据 | 适合大型代码库检索 | 检索召回不足会影响上下文完整性 |
| Replit Agent | 应用构建过程摘要、错误日志摘要、文件修改状态维护 | 项目文件、运行结果、用户反馈、构建计划 | 应用目标、文件变更、运行状态 | 适合在线应用构建 | 长任务中文件状态维护复杂 |
5. 机制分类总结
5.1 按压缩方式分类
| 任务交接式摘要 | Codex、OpenCode | 将历史压缩为后续 Agent 可继续执行的 handoff summary |
| compact 压缩 | Claude Code | 用户手动或系统自动触发上下文压缩 |
| 当前工作对象选择 | Cursor、Continue.dev、JetBrains AI Assistant | 优先保留当前文件、选区、符号、诊断信息 |
| 代码结构摘要 | Aider、Sourcegraph Cody | 使用 repo map、代码搜索、定义引用等构造结构化上下文 |
| 任务轨迹摘要 | Devin、SWE-agent、Manus、Replit Agent | 保留计划、步骤、工具结果、失败原因和下一步 |
| 用户语境摘要 | PI Agent / Personal Agent | 保留用户当前目标、偏好、约束和会话主题 |
5.2 按单会话记忆来源分类
| 最近对话 | 几乎所有 Agent | 最近若干轮用户与 Agent 的交互 |
| 压缩摘要 | Codex、Claude Code、OpenCode、Manus | 较早历史的摘要或任务交接说明 |
| IDE 状态 | Cursor、Continue.dev、Copilot、JetBrains | 当前文件、选区、诊断、编辑位置 |
| 代码库结构 | Aider、Cody | repo map、定义、引用、搜索结果 |
| 工具调用轨迹 | SWE-agent、Devin、Manus、Replit Agent | 已执行动作、工具结果、失败原因 |
| 用户会话偏好 | PI Agent / Personal Agent | 用户当前目标、偏好、约束、修正 |
| 任务计划与进度 | Devin、Manus、Replit Agent | plan、progress、steps done、next action |
5.3 按主要风险分类
| 摘要遗漏 | Codex、OpenCode、Claude Code、Manus | 压缩时可能丢失关键事实 |
| 摘要漂移 | Codex、OpenCode | 多次压缩后事实可能被改写或弱化 |
| 上下文选择错误 | Cursor、Continue.dev、Copilot、JetBrains | 相关文件或片段选择不准确 |
| 检索召回不足 | Cody、Aider | 代码搜索或 repo map 未覆盖关键依赖 |
| 状态维护错误 | Devin、SWE-agent、Manus、Replit Agent | 计划、进度、工具结果记录错误会影响后续动作 |
| 临时偏好误固化 | PI Agent / Personal Agent | 将一次性偏好当成持续约束 |
| 公开机制不透明 | Devin、Windsurf、部分商业 Agent | 无法完全验证内部实现 |
6. 总结
主流 AI Agent 的单会话上下文压缩与记忆机制大体可以分为六类:
这些机制的共同目标是:
在上下文窗口有限的情况下,保留当前任务继续推进所必需的信息,同时减少无关历史、冗长工具输出和重复上下文对模型判断的干扰。
不同 Agent 的差异主要体现在:
- 是否偏代码工作区;
- 是否偏长任务执行;
- 是否偏用户意图连续性;
- 是否依赖 IDE 状态;
- 是否依赖代码搜索或 repo map;
- 是否使用显式任务状态;
- 是否支持自动 compact 或手动 compact;
- 是否将工具轨迹作为核心上下文。



