LangChain Webinar|Manus 创始人分享:AI Agent 上下文工程最佳实践
来源: LangChain Webinar | 嘉宾: Peek/Pete(Manus 联合创始人/工程师) 主持: Lance(LangChain 创始工程师) 时长: 约 61 分钟 | 内容类型: 访谈(演讲 + Q&A) 原始逐字稿: 2929 行 | 总结方法: 金字塔原理 + SCQA + 渐进式总结 本总结未使用 Shownotes 辅助信息
执行摘要
Manus 创始人 Peek 在 LangChain 主办的 webinar 中分享了构建通用 AI Agent 过程中关于上下文工程(Context Engineering)的实战经验。核心结论是:上下文工程的目标是让模型的工作更简单而非更复杂。Manus 团队经过 5 次架构重构后发现,最大的性能飞跃不是来自增加更多的上下文管理层,而是来自简化架构、移除不必要的技巧、更多地信任模型本身。具体实践包括:可逆的 Compaction 优先于不可逆的 Summarization;借鉴 Go 语言并发哲学来设计多 Agent 通信模式;以及通过 Sandbox + CLI 工具将无限的动作空间压缩到极少数原子级函数调用中。
SCQA 框架
| 要素 | 内容 |
|---|---|
| 情境 (S) | 2025 年,AI Agent 从概念走向生产,上下文窗口虽然扩大到百万 token 级别,但模型在约 200K token 后开始出现”上下文腐烂”(重复、推理退化);同时 MCP 协议的出现使 Agent 的动作空间从封闭变为无限可扩展 |
| 矛盾 (C) | Agent 每次工具调用都会向上下文中注入大量 token,上下文不断膨胀,但模型有效利用上下文的能力有限;微调/后训练看似可以解决问题,但产品迭代速度被训练周期拖慢,且 MCP 带来的开放域问题极难用 RL 优化 |
| 问题 (Q) | 如何在不微调模型的前提下,通过工程手段管理 Agent 的上下文,使其在长任务中保持高质量输出? |
| 答案 (A) | 将上下文工程作为应用层与模型层之间最清晰的边界;通过 Compaction(可逆压缩)、Summarization(不可逆摘要)、Context Isolation(多 Agent 隔离)和 Context Offloading(卸载到文件系统/Sandbox)四种手段协同管理上下文 |
核心论点结构
中心论点:上下文工程是当前 AI Agent 应用层最关键的工程实践,其核心原则是”做减法”——让模型的决策环境尽可能简洁。
-
上下文工程优于微调/后训练
- Peek 的前一家公司从零训练语言模型,产品迭代速度完全被训练周期(1-2 周/轮)所限制
- MCP 协议使动作空间从封闭变为无限可扩展,用 RL 优化开放域问题几乎不可能
- 上下文工程是应用层与模型层之间”最清晰、最实际的边界”
-
Compaction(可逆压缩)优先于 Summarization(不可逆摘要)
- Manus 为每个工具调用设计 full 和 compact 两种格式,compact 格式剥离可从文件系统重建的信息
- 可逆性至关重要:Agent 做链式预测,无法预测哪个历史动作会在 10 步后变得关键
- 仅当多轮 Compaction 后收益递减时才触发 Summarization,且始终基于 full 版本进行摘要
- Summarization 使用结构化 schema(表单字段)而非自由形式 prompt,确保输出稳定可迭代
-
上下文隔离:借鉴 Go 并发哲学的两种模式
- “通过通信共享”模式:子 Agent 仅接收指令,返回结果(类似 Claude Code 的 Task 工具)——适用于指令清晰、只需最终结果的任务
- “通过共享通信”模式:子 Agent 继承完整历史上下文但有独立系统 prompt 和动作空间——适用于需要中间搜索结果和笔记的复杂任务(如深度研究)
- Manus 的 Wide Research 功能内部称为 “Agentic MapReduce”:主 Agent 定义输出 schema,子 Agent 通过约束解码确保返回符合 schema 的结果
-
通过 Sandbox 实现动作空间的无限扩展而非工具膨胀
- Manus 仅保留约 10-20 个原子级函数调用(如 shell 执行、文本编辑)
- 所有其他能力通过 Sandbox 中的 CLI 工具、预装 API 包和脚本执行实现
- 工具说明不塞进函数调用 schema,而是让 Agent 用
--help自行发现用法 - 这使 Agent 理论上达到图灵完备——“计算机是人类最伟大的发明,Agent 能做任何初级实习生用电脑能做的事”
-
避免上下文过度工程
- Manus 自 3 月上线以来重构了 5 次架构,最大性能飞跃来自简化而非增加层
- 通过在弱模型和强模型之间切换来测试架构的”未来证明”程度
- “如果你今天只记住一件事,那就是:少构建,多理解(Build less, understand more)“
章节摘要
一、Lance 开场:上下文工程全景概览(0:00-10:15)
Lance 介绍了上下文工程在 Google Trends 上的热度已接近 ChatGPT 刚发布时的水平。他总结了当前 Agent 领域的五大上下文工程主题:
关键观点:
- 【Lance】上下文卸载(Offloading)——将 token 密集的工具输出存入文件系统按需检索,Manus、Claude Code、Open Deep Research 等项目均采用
- 【Lance】上下文缩减(Reducing)——裁剪工具调用输出、压缩消息历史;Claude 4.5 已将此功能内置到 SDK
- 【Lance】上下文检索(Retrieving)——Cursor 使用索引+语义搜索,Claude Code 仅使用文件系统+glob/grep,两者各有优劣
- 【Lance】上下文隔离(Isolating)——通过子 Agent 实现关注点分离
- 【Lance】上下文缓存(Caching)——利用 API 提供商的输入缓存降低成本
二、Peek 演讲:为什么需要上下文工程(12:00-14:30)
Peek 从自身经历出发,解释为什么即使微调变得越来越容易,上下文工程仍然是更优选择。
关键观点:
- 【Peek】前一家公司从零训练语言模型做信息抽取,产品迭代速度被训练周期(1-2 周)完全卡死,且花大量时间优化与产品无关的 benchmark
- 【Peek】即使开源基座模型变强后尝试微调,也是”另一个陷阱”——RL 训练需要固定动作空间和当前产品行为设计奖励,但 MCP 的出现彻底改变了 Manus 的设计,从紧凑封闭的动作空间变为无限可扩展
- 【Peek】“明确你在哪里画线——现在,上下文工程就是应用与模型之间最清晰、最实际的边界”
三、上下文缩减:Compaction vs Summarization(14:30-20:00)
Peek 详细区分了 Manus 中两种不同的上下文缩减操作。
关键观点:
- 【Peek】Compaction 是可逆的:每个工具调用和结果有 full 和 compact 两种格式,compact 版本去掉可从文件系统重建的信息(如文件写入操作只保留路径,去掉内容)
- 【Peek】“可逆性至关重要,因为 Agent 做链式预测,你永远无法预测哪个历史动作会在 10 步后突然变得极其重要”
- 【Peek】大多数模型在约 200K token 处开始出现”上下文腐烂”(context rot)——重复、推理变慢、质量下降;通过评估找到这个”腐烂前阈值”作为触发缩减的时机
- 【Peek】Compaction 优先于 Summarization:先压缩最老的 50% 工具调用,保留最新的完整详情作为 few-shot 示例;多轮 Compaction 收益递减后才触发 Summarization
- 【Peek】Summarization 前会先将关键上下文卸载到文件,甚至将整个摘要前上下文 dump 为日志文件,确保可恢复
- 【Peek】Summarization 始终基于 full 版本数据(非 compact 版本),且保留最后几个工具调用的完整详情
四、上下文隔离:Go 并发哲学的启示(20:00-27:00)
Peek 认同 Cognition(Devin)关于多 Agent 同步信息是噩梦的观点,并借用 Go 语言并发哲学来设计解决方案。
关键观点:
- 【Peek】引用 Go 语言名言:“不要通过共享内存来通信,而要通过通信来共享内存”——将”内存”替换为”上下文”,可以看到清晰的对应关系
- 【Peek】“通过通信”模式(类似 Claude Code 的 Task 工具):主 Agent 发送指令,子 Agent 的上下文仅包含该指令——适用于指令清晰、只需最终结果的任务
- 【Peek】“通过共享上下文”模式:子 Agent 继承完整工具使用历史,但有独立系统 prompt 和动作空间——适用于深度研究等需要中间结果的场景
- 【Peek】共享上下文模式成本更高:每个子 Agent 需要更大的输入预填充,且因系统 prompt 和动作空间不同无法复用 KV Cache
五、上下文卸载:多层工具架构(27:00-36:00)
Peek 介绍了 Manus 如何通过 Sandbox 解决工具膨胀导致的”上下文困惑”问题。
关键观点:
- 【Peek】工具过多会导致”上下文困惑”——模型可能调用错误的工具甚至不存在的工具
- 【Peek】不用动态 RAG 加载工具(会导致 KV Cache 重置),而是设计三层工具体系:① 少量原子级函数调用 ② Sandbox CLI 工具 ③ 预装 API 包
- 【Peek】原子函数仅约 10-20 个(如 shell 执行、文本编辑),其余全部通过 Sandbox 执行
- 【Peek】CLI 工具的优势:不改变函数调用的 schema;模型通过
--help自行学习用法;可用 Linux 标准工具(grep/cat/less)处理输出 - 【Peek】Manus 内部有 “Manus MCP CLI”——不将 MCP 工具注册为函数调用,而是作为 CLI 命令暴露
- 【Peek】“我们为什么有信心称 Manus 为通用 Agent?因为它运行在计算机上,计算机是图灵完备的”
六、避免过度工程(36:00-37:00)
关键观点:
- 【Peek】“回顾 Manus 上线以来的六七个月,最大的飞跃不是来自增加更多层或更巧妙的检索技巧,而是来自简化——移除不必要的技巧,更多地信任模型”
- 【Peek】“上下文工程的目标是让模型的工作更简单,而非更复杂”
- 【Peek】“如果你今天只记住一件事:Build less, understand more(少构建,多理解)“
七、Q&A 精华(37:00-61:00)
涵盖工具发现、索引、记忆、文件格式、摘要提示词、Agent 通信、规划、模型选择、安全防护、评估等话题。
关键观点:
- 【Peek】关于索引:Manus 不使用向量数据库,因为每个 Sandbox 是全新的,没有时间在线构建索引;依赖 grep/glob 等简单搜索工具
- 【Peek】关于长期记忆:Manus 有”知识”功能(显式记忆),用户确认后保存偏好;正在探索从用户纠正中自动学习的”参数无关自改进”机制
- 【Peek】关于文件格式:优先使用基于行的格式(非 Markdown),因为方便模型用 grep 或按行范围读取;Markdown 会导致某些模型输出过多列表项
- 【Peek】关于摘要 prompt:不用自由形式的 prompt,而是定义结构化 schema(表单),让 AI 填写字段——输出稳定且可迭代
- 【Peek】关于规划:早期的 todo.md 范式浪费大量 token(约 1/3 的动作在更新 todo),现改为结构化规划器(独立的 Planner Agent,通过 agent-as-tool 模式实现)
- 【Peek】关于多 Agent 设计:Manus 不按角色划分 Agent(如”设计师 Agent""程序员 Agent”),因为这是模仿人类公司组织架构的做法,受限于人类的上下文能力;Manus 只有少数几个 Agent:通用执行器、规划器、知识管理器
- 【Peek】关于模型选择:不使用开源模型——不是因为质量,而是因为成本;分布式 KV Cache 在开源方案中很难实现,前沿模型提供商的全球分布式缓存基础设施反而更便宜;采用任务级/子任务级模型路由(代码用 Claude、多模态用 Gemini、复杂推理用 OpenAI)
- 【Peek】关于架构验证:通过在弱模型和强模型之间切换来测试架构——如果从弱模型切换到强模型时获得大幅提升,说明架构更具”未来证明”能力
- 【Peek】关于安全:Sandbox 连接互联网后一切都很危险;对出站流量做检查确保无 token 泄露;敏感操作需用户手动确认;与 Anthropic、Google 等模型提供商紧密合作改进安全
关键洞察
-
“上下文腐烂”是 Agent 的隐形杀手 大多数模型在远未达到标称上下文窗口上限(如 1M token)时就开始退化,实际有效阈值通常在 128K-200K。Manus 通过评估确定这个”腐烂前阈值”,并将其作为触发上下文缩减的时机。
-
可逆操作永远优先于不可逆操作 Agent 的链式推理本质使得任何历史信息都可能在未来变得关键。Compaction(去掉可重建的冗余)是可逆的,应始终优先于 Summarization(不可逆的信息压缩)。
-
图灵完备的 Sandbox 是最佳动作空间 与其给 Agent 注册成百上千个工具导致”上下文困惑”,不如只给 10-20 个原子操作 + 一个图灵完备的执行环境。Shell + 文本编辑器已经足够,其余通过脚本和 CLI 扩展。
-
不要按人类组织架构设计多 Agent 系统 按角色(设计师、程序员、管理者)划分 Agent 是对人类认知局限的错误模仿。应按功能需求划分(执行、规划、知识管理),且尽量减少 Agent 数量以降低通信复杂度。
-
用弱强模型切换验证架构的未来适应性 固定架构、切换不同能力的模型,如果弱→强模型带来显著提升,说明架构能从模型进步中获益;今天的弱模型就是明天的强模型基线,这给了架构迭代的提前信号。
可行建议
- 实施双格式工具调用:为每个工具设计 full 和 compact 两种输出格式,compact 版本只保留可恢复的标识符(文件路径、URL、查询词)(来源:Peek)
- 找到你的”腐烂前阈值”:通过评估确定模型开始退化的实际 token 数(通常 128K-200K),将其作为触发上下文缩减的阈值(来源:Peek)
- 用结构化 schema 替代自由形式摘要:定义表单字段(修改的文件、用户目标、中断点等),让模型填写字段而非自由生成摘要(来源:Peek)
- 采用 Sandbox + 原子函数架构:只注册约 10-20 个核心函数调用,其余能力通过 Sandbox CLI 工具和脚本执行扩展(来源:Peek)
- 定期用弱模型测试架构:每 1-2 个月在弱/强模型间切换测试,确保架构能从模型进步中受益(来源:Peek)
名言金句
“Be firm about where you draw the line. Right now, context engineering is the clearest and most practical boundary between application and model.” — Peek(Manus 创始人)
“Do not communicate by sharing memory; instead, share memory by communicating.” — Peek 引用 Go 语言社区格言,将”memory”替换为”context”来指导多 Agent 设计
“The biggest leaps didn’t come from adding more fancy context management layers or clever retrieval hacks. They all came from simplifying.” — Peek
“Build less, understand more.” — Peek
“Why are we super confident to call Manus a general agent? Because it runs on a computer, and computers are Turing complete.” — Peek
嘉宾原创框架
Manus 上下文缩减阶梯
上下文增长 → 接近"腐烂前阈值"(128K-200K)
↓
Step 1: Compaction(可逆)
- 将最老的 50% 工具调用转为 compact 格式
- 保留最新工具调用的完整详情(作为 few-shot 示例)
↓
Step 2: 检查 Compaction 收益
- 收益足够 → 继续
- 收益递减 → 进入 Step 3
↓
Step 3: Summarization(不可逆)
- 先将关键上下文卸载到文件系统
- 基于 full 版本(非 compact 版本)做摘要
- 使用结构化 schema 而非自由形式
- 保留最后几个工具调用的完整详情
Manus 三层工具架构
Layer 1: 原子函数调用(~10-20 个)
- Shell 执行、文本编辑、浏览器操作等
- 注册在函数调用 schema 中
- 支持约束解码(Constrained Decoding)
Layer 2: Sandbox CLI 工具
- 团队开发的命令行工具,位于特定目录
- 不注册为函数调用,通过 --help 自行发现
- 包括 Manus MCP CLI(MCP 工具作为 CLI 暴露)
Layer 3: 预装 API 包和库
- 预授权的第三方 API(3D 渲染、金融数据等)
- Agent 通过编写脚本调用
- 大量数据处理在 Python 运行时内存中完成,只返回结果
Manus 多 Agent 通信双模式
模式 A: 通过通信共享(by communicating)
适用:指令清晰、只需最终结果
主 Agent → 指令 → 子 Agent(独立上下文)→ 结果
示例:搜索代码库中的特定片段
模式 B: 通过共享上下文(by sharing memory/context)
适用:需要完整历史、中间结果
主 Agent → 完整历史 + 独立 prompt + 独立动作空间 → 子 Agent → 结构化结果
示例:深度研究、Agentic MapReduce
注意:成本更高(无法复用 KV Cache)
资源清单
人物/概念
| 名称 | 类型 | 提及语境 |
|---|---|---|
| Peek/Pete | 人物 | Manus 联合创始人,本期嘉宾 |
| Lance | 人物 | LangChain 创始工程师,本期主持人 |
| Lee Robinson | 人物 | Cursor 团队,在 OpenAI Demo Day 上演讲过上下文检索方法 |
| Cognition (Devin) | 公司/产品 | 其博客讨论了多 Agent 信息同步的困难 |
| Context Engineering | 概念 | Manus 在 2025 年 7 月发表的博客首次系统阐述 |
| Context Rot | 概念 | Peek 提出,指模型在上下文过长时出现的重复、推理退化现象 |
| Agentic MapReduce | 概念 | Manus 内部对 Wide Research 功能的称呼 |
| MCP | 协议 | Model Context Protocol,彻底改变了 Manus 的动作空间设计 |
| Agent as Tool | 模式 | 从模型视角看是函数调用,实际触发独立子 Agent |
| Constrained Decoding | 技术 | 确保模型输出符合预定义 schema |
项目
| 名称 | 提及语境 |
|---|---|
| Open Deep Research (LangChain) | Lance 展示的开源深度研究实现,使用了 offloading、reduction、isolation |
| Claude Code | 使用文件系统 + glob/grep 检索上下文,有 compaction 功能 |
| Cursor | 使用索引 + 语义搜索 + glob/grep |
| Thinking Machine (TinkCare API) | Peek 提及的微调工具,设计优美但不适合通用 Agent |
共识与分歧
共识
- 上下文工程是当前 Agent 开发最重要的工程实践
- 文件系统是最可靠的上下文卸载目标
- 子 Agent 是实现上下文隔离的有效手段
- 简化架构比增加复杂度更能带来性能提升
分歧
- 索引 vs 简单搜索:Cursor 使用向量索引 + 语义搜索,Claude Code 和 Manus 仅使用 grep/glob;Peek 认为对于 Sandbox 场景简单搜索足够,但企业知识库场景仍需向量索引
- 工具注册方式:主流做法是将所有工具注册为函数调用 schema,Manus 则将大部分工具放入 Sandbox CLI,仅保留极少数原子函数
- RL/微调的价值:Claude Code 通过 RL 在自己的 harness 上训练获得显著提升,但 Peek 认为对于需支持 MCP 的通用 Agent,RL 优化开放域问题极其困难
本总结由 transcript-summarizer skill 生成 方法论:金字塔原理 (Minto) + SCQA + 渐进式总结 (Forte) + In Vivo Coding 原始文件:Manus创始人:深度干货!上下文工程的最佳实践.txt