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

推荐订阅源

雷峰网
雷峰网
Security Archives - TechRepublic
Security Archives - TechRepublic
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
WordPress大学
WordPress大学
爱范儿
爱范儿
J
Java Code Geeks
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理
宝玉的分享
宝玉的分享
博客园 - 【当耐特】
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Help Net Security
Help Net Security
Hacker News: Ask HN
Hacker News: Ask HN
月光博客
月光博客
S
Secure Thoughts
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 聂微东
Hugging Face - Blog
Hugging Face - Blog
V
Visual Studio Blog
博客园 - 三生石上(FineUI控件)
O
OpenAI News
酷 壳 – CoolShell
酷 壳 – CoolShell
N
News and Events Feed by Topic
腾讯CDC
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Webroot Blog
Webroot Blog
博客园 - Franky
有赞技术团队
有赞技术团队
美团技术团队
Jina AI
Jina AI
S
Security @ Cisco Blogs
博客园 - 叶小钗
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园_首页
C
CERT Recently Published Vulnerability Notes
T
Threat Research - Cisco Blogs
Project Zero
Project Zero
A
Arctic Wolf
大猫的无限游戏
大猫的无限游戏
Latest news
Latest news
小众软件
小众软件
IT之家
IT之家
S
Security Affairs

人人都是产品经理

为什么你的产品找不到差异化?90%的失败都卡在第一步上(下) – 人人都是产品经理, 3年从30万到1300万用户、获2200万美元融资,这个AI教育产品用“抽卡”破解了获客难题 – 人人都是产品经理, 园区招商系统怎么做才能真正帮到去化?我加了这一个功能,推广链接转发400次阅读过万 – 人人都是产品经理, AI大事件:OpenAI发完网络安全模型又搞药物研发,小鹏汽车要抓”DeepSeek时刻” – 人人都是产品经理, 电商不是卖货,是一场更残酷的产品经理实战 – 人人都是产品经理, 没想到,活动营销又回来了! – 人人都是产品经理, 为何All-in海外KOC:一场关于AI时代窗口期的豪赌 – 人人都是产品经理, 重新理解企业的内部协作 – 人人都是产品经理, 苹果的 AI 战略到底是什么? – 人人都是产品经理, 医疗智能体·第2讲——合规护城河:等保、PIPL与HIPAA的架构实战 – 人人都是产品经理, 向量知识库五步法:从“答非所问”到“精准回复” – 人人都是产品经理, 鸿蒙PC三方库构建总指挥HPKBUILD(sha)库为例 – 人人都是产品经理, 何时该用LLM?AI产品经理的LLM设计指南 – 人人都是产品经理, 医疗信息领域的需求方、决策方、准入方以及关注点(二) – 人人都是产品经理, 即梦涨价:一场被误读的「傲慢」 – 人人都是产品经理, 面试AI PM必答题:Hermes和OpenClaw的区别,如何讲清楚业务价值 – 人人都是产品经理, AI的下一张船票:世界模型——AI产品经理必须理解的技术拐点 – 人人都是产品经理, 小红书做GEO,怎么让AI信你?记住这 3 个重要信息 – 人人都是产品经理, 5 家印度 AI 初创公司,看看印度 AI 再做什么 – 人人都是产品经理, AI项目跨团队协作:产品技术业务如何不打架 – 人人都是产品经理, Agentic Workflow(智能体工作流):让AI从”答案生成器”变成”数字员工” – 人人都是产品经理, lycium_plusplus 项目全景解读:OpenHarmony 三方库构建的“大管家” – 人人都是产品经理, 从爆单救火到前置履约:两套预采策略,把生鲜大促履约效率拉满 – 人人都是产品经理, 什么时候该补货?我用一轮数据做了一个决定 – 人人都是产品经理, 从“机械兜底”到“动态分流”:AI客服重复进线治理的4大底层逻辑 – 人人都是产品经理, 抖音拼效率,红书拼洞察 – 人人都是产品经理, 全民狂欢与退潮——为什么龙虾这波热潮冷却得如此之快? – 人人都是产品经理, Stripe押注!MPP重塑全球支付 – 人人都是产品经理, 小红书GEO:AI引用你的内容,不是因为你对,而是因为你看起来可信 – 人人都是产品经理, 前百度副总裁押注办公Agent,日韩付费爆发,Manus迎来强劲对手 – 人人都是产品经理, 企事业单位数字化的业务供需本质 – 人人都是产品经理, 医疗智能体·第1讲——医疗信息化重构:从“辅助软件”到“自主智能体”的范式转移 – 人人都是产品经理, 粉丝量就是空气!!! – 人人都是产品经理, 用户说“薯片碎了”,机器回“要买吗?”:意图识别的翻车与破局 – 人人都是产品经理, RAG召回准确率从75到90 我做对了这三件事 – 人人都是产品经理, AI大事件:Anthropic改收费、OpenAI发安全版、手术机器人纳入医保、阿里发布”秒悟” – 人人都是产品经理, Chrome 推出 Skills 新功能,Agent 重塑上网方式 – 人人都是产品经理, GitHub前创始人拿了a16z的1700万美元,做Agent时代的Git – 人人都是产品经理 拷贝或克隆其他 Flutter OH 项目到本地后无法运行 – 人人都是产品经理, 优惠券设计:优惠券创建 – 人人都是产品经理, 不用死磕文档!AI 助手 1 小时搞定飞书 CLI 安装 + 配置 + 知识库 – 人人都是产品经理, 用小龙虾做竞品分析报告:从2天到20分钟,我是怎么做到的 – 人人都是产品经理 用小龙虾做市场分析报告:搞懂这3个公式,市场规模不再靠猜 – 人人都是产品经理, 你早就在做 Harness 工程,只是不知道它叫这个名字 – 人人都是产品经理, Think Long就够?你可能想多了! – 人人都是产品经理, 货代SRM实战:供应商准入怎么做,才能让资源池不是通讯录而是可交付网络? – 人人都是产品经理, 如何做好用户调研?详解基本技巧 – 人人都是产品经理, 木鸟、途家、美团对打,平台春天行动开“卷” – 人人都是产品经理, 入职才发现公司不靠谱?小红书从业者求职避坑指南 – 人人都是产品经理, 美国 AI 三巨头联手封堵,中国 AI 突围之路在何方 – 人人都是产品经理, 小红书,放在需求对面的镜子 – 人人都是产品经理, AI 会带来大规模失业吗? – 人人都是产品经理, 从出单到补货前,我第一次犹豫:该不该放大? – 人人都是产品经理, Flutter 三方库鸿蒙化适配:5 种高效检查方式,快速判断是否需要适配 – 人人都是产品经理, 从做产品进阶拿结果:医美机构产品经理转岗科室运营经理 – 人人都是产品经理, 阿里HappyHorse,一场关于“Token经济”的阳谋 – 人人都是产品经理, To B AI:客户留存落地的观察与思考 – 人人都是产品经理, AI产品的“生命线”——数据采集、标注、清洗的产品化设计 – 人人都是产品经理, 谈谈AI Agent(二):当“孩子”能自己“体验世界”时,你该学什么? – 人人都是产品经理, UI/UX设计师的3层能力进阶,前两层让你活下来,第三层…才是真正的分水岭 – 人人都是产品经理, 2分钟 → 30秒,效率提升75%:B端产品经理如何用「规则枷锁」驯服AI幻觉? – 人人都是产品经理, 还没来得及学OpenClaw,来了个更猛的:Hermes Agent – 人人都是产品经理, AI日报:宇树机器人跑出10m/s刷新世界纪录 – 人人都是产品经理, 一文说透基金互金如何用情绪价值引导用户决策做转化 – 人人都是产品经理, 当浏览器开始替你”看”网页:AI 浏览器正在亲手拆掉它脚下的那张网 – 人人都是产品经理, 0代码,一天时间我Vibe Coding了个网站 – 人人都是产品经理, Hermes 和 OpenClaw 之争,Agent 的能力应该“装上去”还是“长出来”? – 人人都是产品经理 视频生成的“桌子”,字节Seedance 2掀完,阿里快乐马掀 – 人人都是产品经理, 从听不懂到完全信任:我的 Codex 深度产品体验 – 人人都是产品经理, 当虚拟偶像有了北京户口,与真人偶像还有什么区别? – 人人都是产品经理, 会说,远远比会做更重要 —— 对 SBTI 爆火现象的五层观察 – 人人都是产品经理, AI产品经理必看:当“搭环境”比“选模型”更重要,你的认知还在2024年吗? – 人人都是产品经理, 2026年AI产品商业化核心逻辑:从功能demo到规模化营收的3个必破卡点 – 人人都是产品经理, 京东围绕供应链,卷起裤腿下场的那些事儿 – 人人都是产品经理, SBTI一夜刷屏:它赢在了“太会说人话” – 人人都是产品经理, 折扣零售的真相:不是便宜,而是价值感! – 人人都是产品经理, 和甲方吵了一架,最后加钱做了——我学到的ToB产品经理生存法则 – 人人都是产品经理, 和几位小红书操盘手聊了8小时,干货全在这 – 人人都是产品经理, 智谱GLM-5.1登场,开源模型首超Opus4.6!!! – 人人都是产品经理 Anthropic收入凭什么反超OpenAI,终于有人把这事说清楚了 – 人人都是产品经理, 史上最有故事感的技术报告——Claude最强模型Mythos 7个极其精彩的细节 – 人人都是产品经理, 模型不是壁垒,Harness 也不是 – 人人都是产品经理, 抖音本地生活业务思考21 – 人人都是产品经理, Superpowers:145k Star的AI编码框架,到底是什么来头? Superpowers:145k Star的AI编码框架,到底是什么来头? – 人人都是产品经理, OpenAI 的路走错了,Anthropic Harness 解法启示:模型需要实践专科生 – 人人都是产品经理, 画原型图的前一步:设计站点地图 – 人人都是产品经理, 给 DeepSeek 的最后一封催更信 – 人人都是产品经理, 手把手教你用 Claude Code 搭建 AI 营销团队:5 个 Agent、12 项技能,独立完成研究、写作、设计全流程 – 人人都是产品经理, 你以为大模型在学语言?不,它在重新发明语言学 – 人人都是产品经理 所谓Skill,不过是AI时代的工业垃圾 – 人人都是产品经理, 聊一聊内容传播的几个方法 – 人人都是产品经理, 当平台开始吃掉生态:从 OpenClaw 被封杀,读懂 Anthropic 的这盘棋 – 人人都是产品经理, 你装了 10 个 AI 插件,Obsidian 还是一个文件夹 – 人人都是产品经理 关于AI智能体架构演进的系统性思考:从单体试水到多体协同的重构 – 人人都是产品经理, 当“人”变成Skill,我们又该何去何从? – 人人都是产品经理 Mythos 事件:前沿 AI 治理的意外实验 – 人人都是产品经理, 货代CRM:信用与风险管理怎么做,才能把坏账风险拦在放货之前? – 人人都是产品经理, 从HR收集自拍照到员工自助录入——我见证了园区人脸识别从”不可用”到”真好用”的全过程 – 人人都是产品经理 千问闯关AI混沌期:阿里画靶,吴嘉张弓,马云射箭? – 人人都是产品经理,
超越 Prompt 和 RAG,「上下文工程」成了 Agent 核心胜负手
海外独角兽 · 2025-09-20 · via 人人都是产品经理

当 Prompt 已卷成八股、RAG 也堆成图书馆,Agent 的下一轮护城河只剩一条——「上下文工程」:让 AI 像人类一样“把书读厚再把书读薄”,在 100 万 token 里秒筛 0.1% 关键信号,并随对话持续重写自己的“记忆权重”。谁能把动态上下文压缩成可解释、可干预、可迁移的“认知缓存”,谁就握住了 Agent 从“答得对”到“做得成”的生死开关。

最近这段时间,context engineering(上下文工程)是 agent 开发者中的 buzzword。这个概念由 Andrej Karpathy 提出,引起了很多开发者的共鸣,直指当下 agent 开发的核心痛点:搭建流程看似简单,但在实际运行中,由海量工具调用和 long horizon reasoning 产生的冗长上下文,正成为 agent 性能和成本的巨大瓶颈,甚至会导致模型能力的下降。

Context engineering 指的就是在正确时间为 agent 提供正确信息的方法论,这个概念覆盖并超越了 prompt engineering 和 RAG,成为了 agent 开发的核心胜负手。如果把 LLM 类比为计算机的 CPU,那么 context window 就是计算机的 RAM,它处理信息的信噪比直接决定了产品的效果,因为在构建 agent 的过程中,输入的 context 不仅来自人类指令,还来自 agent 运行中的工具调用和思维链,把内存空间压缩到最关键的信息上就至关重要。

为了深入探讨这一挑战,我们系统梳理了 LangChain 工程师 Lance Martin、Chroma 的联合创始人 Jeff Huber、Manus、Anthropic、Cognition 等一线团队的实践经验,将他们的解决方案归纳为五大策略:转移(Offload)、压缩(Reduce)、检索(Retrieve)、隔离(Isolate)和缓存(Cache)。本文将详解这些方法论,并结合 The Bitter Lesson 的启示,探讨在模型能力持续迭代的今天,我们应该如何构建真正面向未来的 AI agent。

01.Context Engineering 是什么?

很多人认为 2025 年是 agent 元年,但在实践中,开发者普遍发现虽然 agent 的搭建流程看起来简单,但要让整个系统高效运行却非常困难,context 管理是其中的关键瓶颈。

今年 6 月,Karpathy 发布一条篇推文,正式提出了 context engineering:“filling an LLM’s context window with just the right information for the next step(在大语言模型的上下文窗口中放入正好适合它执行下一步所需的信息)”,这个概念迅速引起了众多开发者的共鸣。

Karpathy 发布的推文

Chroma 的联合创始人 Jeff Huber 认为, context engineering 本质上是 AI engineering 的一个子集,核心在于每次调用 LLM 时,都要明确哪些信息需要放入 context window,这其实包含了两个循环:

  1. 内循环(innerloop):即时筛选,明确当前结果生成所需的context;
  2. 外循环(outerloop):长期优化,通过迭代确保contextwindow始终只包含相关信息。

Chroma 是一家 AI 初创公司,核心产品是开源向量数据库 ChromaDB,可以为 AI 应用提供高效的数据检索和存储解决方案。

为什么需要 context engineering?

Prompt engineering 是 context engineering 概念的子集和早期形式。

ChatGPT 这样的 Chatbot 主要依赖人类输入,因此优化 prompt 非常重要。但在构建 agent 的过程中,输入的 context 不仅来自人类指令,还来自 agent 运行中的工具调用和检索的多元信息,这时 context engineering 就变得格外重要。

随着工具调用的次数越来越多,agent 会动态生成大量新的需要管理的 context。Manus 团队在技术博客中指出一个典型任务通常需要约 50 次工具调用。Anthropic 的一个 multi-agent 研究也表明,生产级 agent 在运行时甚至可能需要多达数百次工具调用;Lance Martin 在开发开源 AI 研究助手 Open Deep Research 这个项目时发现,agent 每次工具调用都会消耗大量 token,如果不对此进行优化,单次运行可能就要消耗 50 万个 token,成本会达到 1-2 美元。

Manus 在官方发布的《AI 代理的 context 工程:构建 Manus 的经验教训》中表示:

Manus 中的一个典型任务平均需要大约 50 次工具调用。这是一个很长的循环——由于 Manus 依赖 LLM 进行决策,它很容易偏离主题或忘记早期目标,尤其是在长上下文或复杂任务中。

通过不断重写待办事项列表,Manus 将其目标复述到上下文的末尾。这将全局计划推入模型的近期注意力范围内,避免了”丢失在中间”的问题,并减少了目标不一致。实际上,它使用自然语言来使自己的注意力偏向任务目标——而不需要特殊的架构变更。

而且如果每次工具调用产生的 context 都直接传入模型,很快就会触及 LLM 的 context window 上限。Chroma 在 7 月发布的报告 Context Rot: How Increasing Input Tokens Impacts LLM Performance 显示,随着 context 长度增加,模型的注意力会分散,推理能力也会随之下降。Jeff Huber 把这种现象称为 context 衰减(context decay),他甚至认为当前大多数出色的 AI 初创公司或 AI native 应用的核心能力实际上就是 context engineering。

Source: Chroma, Context Rot: How Increasing Input Tokens Impacts LLM Performance

Claude Sonnet 4, GPT-4.1, Qwen3-32B, and Gemini 2.5 Flash on Repeated Words Task

总而言之,简单 agent(naive agent)在实际运行时往往陷入双重困境:

1. 它必须要处理几十到上百次工具调用累积出来的大量 context;

2. 它在面对过长 context 时不仅可能因超出 context window 而无法继续运行,还可能容易发生 context decay 让模型能力下降。

正是这些痛点,催生了“context engineering”这一新方向,目标就是在 agent 的构建过程中,通过精心设计和选择传递给模型的 context 来提升模型的效率和效果。围绕这一目标,学界和业界提出了多种方法,其中比较具有代表性的做法可以归纳为五类:Offload(转移)、Reduce(简化)、Retrieve(检索)、Isolate(隔离)和 Cache(缓存)。

context engineering 的五种方法

02.方法一:Offload 转移

Lance Martin 在 Latent Space 的分享中提到 offload context 有以下用法:

使用文件系统来记录笔记;

使用文件系统(如 todo.md)来规划/跟踪进度;

使用文件系统读写 token 占用很大的 context;

使用文件来存储长期记忆。

Offload 方式

如前文所述,基础版 agent 在执行过程中会进行多次工具调用,每一次调用的结果都会直接传回给 LLM,这导致所有 context 也会被完整传入 LLM,context window 会迅速膨胀,token 消耗过高,效率也会下降。为了解决这个问题,Manus 认为 offload context 是非常重要且有用的。

Offload context 的核心思想在于 agent 不必在每次工具调用时都把完整的 context 原封不动地传回模型,而是可以将这些信息转移到其他形式。最常见的方式是把文件系统当作一种外部 memory。在这种模式下,agent 仅会给模型返回一个摘要或 URL 作为标识,模型只在需要时才会调用这些外部存储的内容,而不是一直持有全部原始 context,因此这种方式能够显著优化资源利用率,使得 agent 运行更高效、更具扩展性。

offload context 运行原理

有一个值得关注的问题是应该如何在 context 中保留足够的摘要或元数据,让模型能够理解被 offload 的内容到底包含什么。尤其是在 deep research 时,agent 往往需要 offload 整页的内容,因此必须要生成一个有效的摘要来描述文件中的信息,prompt engineering 在其中起到了非常重要的作用:用户可以通过反复打磨 prompt,让摘要在能够覆盖文档核心信息的同时,实现显著的内容压缩。

  • 以OpenDeepResearch为例,LanceMartin表示在实践中,OpenDeepResearch生成摘要的方式是通过精心设计的prompt来引导模型产出一份详尽的要点,将文档的核心信息逐条列出。这样不仅能在信息压缩的过程中尽量保持内容的准确还原,还能让LLM在必要时判断是否要调取完整的context。
  • Cognition在Don’tBuildMulti-Agents这篇博客中强调,摘要生成是一个值得投入大量精力的环节,不能被简单对待。他们甚至提出可以用微调模型(fine-tunedmodel)专门来做摘要工作。虽然Cognition当时的语境主要是讨论agent边界和历史消息摘要,但LanceMartin认为这个逻辑同样适用于由工具调用产生的大量context,核心目标始终是让模型清楚context里有什么。

Source: Cognition, Don’t Build Multi-Agents

03.方法二:Reduce 压缩

Lance Martin 在 Latent Space 的分享中提到,reduce context 有以下几种用法和注意事项:

总结 agent 的消息历史;

剪裁消息历史中不相关的部分;

对工具调用的输出进行总结或剪裁;

在 agent 之间交接时进行总结或剪裁;

但要小心信息丢失!

Reduce 用法和注意事项

Context reduce 指的是通过摘要(summarization)、剪裁(pruning)等方法来减少 context 所包含的内容。一个典型场景是当 Claude Code 里 95% 的 context window 都被占满时,系统会自动触发 reduce 机制。

context reduce 运行原理

但 context reduce 也存在风险。Manus 认为如果 reduce 是不可逆的,将可能会导致严重的信息丢失,这也是 Manus 选择使用 context offload 的原因:先将工具调用的完整结果 offload 到磁盘保存,确保原始数据不丢失,然后再进行 reduce,即使 reduce 后的信息是有损的,仍然可以随时回溯原始 context。Cognition 也强调摘要生成必须非常谨慎,如前文所述,他们甚至认为可以用微调模型(fine-tuned model)专门来做摘要来确保关键信息不会遗漏。

Manus 在官方发布的《AI 代理的 context 工程:构建 Manus 的经验教训》中表示:

许多代理系统实现了上下文截断或压缩策略。但过度激进的压缩不可避免地导致信息丢失。这个问题是根本性的:代理本质上必须根据所有先前状态预测下一个动作——而你无法可靠地预测哪个观察结果可能在十步之后变得至关重要。从逻辑角度看,任何不可逆的压缩都带有风险。

这就是为什么我们在 Manus 中将文件系统视为终极上下文:大小不受限制,天然持久化,并且代理可以直接操作。模型学会按需写入和读取文件——不仅将文件系统用作存储,还用作结构化的外部记忆。

我们的压缩策略始终设计为可恢复的。例如,只要保留 URL,网页内容就可以从上下文中移除;如果沙盒中仍然保留文档路径,则可以省略文档内容。这使得 Manus 能够缩短上下文长度,而不会永久丢失信息。

在开发这个功能时,我发现自己在想象**状态空间模型(State Space Model, SSM)**在智能体环境中有效工作需要什么条件。与 Transformer 不同,SSM 缺乏完整的注意力机制,并且在处理长距离的后向依赖关系时表现不佳。但如果它们能够掌握基于文件的记忆——将长期状态外部化而不是保存在上下文中——那么它们的速度和效率可能会开启一类新型智能体。基于 SSM 的智能体可能是神经图灵机真正的继任者。

Manus 官方发布的《AI 代理的 context 工程:构建 Manus 的经验教训》

考虑到不同任务场景对 context reduce 的要求可能并不相同,有一个值得讨论的问题是 context reduce 是否应该保留 agent 之前的错误路径(wrong paths)。

有观点认为如果错误路径被保留下来,agent 可能会不断重复相同的错误操作,因此必须去掉错误信息,明确告诉 agent 不要再沿着错误方向继续下去,而是需要去尝试新的方法。

  • DrewBreunig在文章HowtoFixYourContext中表示模型产生的幻觉如果被写入context,就会持续污染agent的后续决策;
  • Gemini在技术报告中也记录了相关案例,比如Gemini在玩宝可梦游戏时出现了幻觉,这会导致Gemini在后续的步骤中不断偏离正确方向。

Source: Drew Breunig, How Long Contexts Fail

但从工程角度看,判断应该什么时候在消息历史中移除错误记录往往是非常复杂的,这会加大 agent 框架(agent scaffolding/harness)的逻辑负担和维护成本。因此有人认为,与其增加这种复杂性,不如直接保留错误信息。

此外,还有观点认为保留错误信息可以让 agent 在下次行动时根据错误调整自己的行为,比如在 coding 场景中,agent 需要持续构建和修改代码,保留较完整的历史信息通常能提升模型表现,即便是在代码修改任务里,模型如果能理解早期的决策依据,整体效果会更好:

  • Manus认为保留错误能让agent从失败中学习;
  • ClaudeCode会打印错误日志,并在后续过程中利用这些日志进行调整。

04.方法三:Retrieve 检索 & Memory 记忆

Lance Martin 在 Latent Space 的分享中提到,retrieve context 有以下几种用法:

结合多种检索方法并进行重排序;

构建系统,将检索结果组装进提示词中;

基于工具描述检索相关工具。

Retrieve 用法

Retrieve context 指的是从外部资源(比如知识库、历史对话、文档、工具输出等)检索与当前任务相关的信息,然后把这些检索到的内容加入到模型的 context 中,来辅助模型生成更准确、可靠的输出。Retrieval 的出现时间虽然早于 context engineering,但已经成为 context engineering 的重要组成部分。

其中,RAG 就是一种传统检索方法,用经典的向量检索或语义检索。比如 Windsurf 从引擎设计的角度切入,先根据精心设计的语义边界,把代码拆分成独立的代码块,并为这些代码块生成向量嵌入(embedding),然后利用语义相似性向量搜索来完成检索。但 Windsurf 并不只依赖这一手段,还会结合传统的 grep 搜索,甚至构建知识图谱,最后将所有检索结果统一排序和整合,形成了一个典型的复杂、多步骤 RAG 流程。

grep 搜索全称为 global regular expression print,是一种基于字符串匹配的文本搜索方法,能逐行扫描文件内容,查找与给定正则表达式或关键字匹配的结果。

还有一种方法是通过调用简单的工具(例如 grep)在文件中进行探索式搜索(poke around files),完全绕过了传统机制,方式非常简洁,效果却很好,有些团队甚至公开表示他们只做抓取(scrap),不做索引(indexing),比如在 Anthropic 负责 Claude code 的 Boris Cherny 就表示 Claude Code 完全没有做任何索引,只依靠生成式检索。

为了系统比较不同方法的效果,Lance Martin 在今年 4 月设计了一次基准测试,核心问题是如何在多语言文档中实现有效检索。测试内容包括 20 个与 LangGraph 相关的编码任务,不同的 coding agent 需要依靠文档检索来生成 LangGraph 代码。对比对象为 Claude Code 和 Cursor,采用的检索方法分为三类:

1. 经典向量检索:将有约 300 万 token 的文档导入向量数据库,再通过标准向量搜索完成检索;

2. 文件工具检索:基于文本文件和简单文件加载工具的检索,更接近生成式搜索,做法是提供一个包含所有文档 URL 和简要描述的 Markdown 文件,让 agent 可以借助工具调取所需文档;

3. context 填充(context stuffing):直接将全部约 300 万 token 的文档一次性输入到 coding agent 的 context 中。

结果表明,在特定测试场景下,第二种方法效果最佳。在第二种方法下,agent 会先根据 Markdown 文件的描述判断需要调用哪些文档,再逐步调取并阅读,最终生成正确代码。这个结果也印证了 Anthropic 的 Boris 的观点:为 LLM 提供基础文件工具的访问能力,并通过文本描述让它能够理解文件内容,往往就能取得良好效果。同时,这种做法还避免了复杂索引所带来的高成本和高维护负担。

Lance Martin 后来长期采用这一方法,他认为仅依靠文本和简单搜索工具,并结合 Claude Code,就能满足大部分检索需求。Latent Space 主持人 Shawn Wang 认为简单的方法往往已经能够解决 80% 的问题,而复杂的索引和多步骤检索可能只在少数追求极高精度的场景下才是真正必要的。

特别的是,在代码仓库的文档管理与检索中,“文本”形式展现出了独特优势,它不仅简洁,而且可读性极高:

  • Cognition的DeepWiki用的就是类似“文本”的思路,它可以将任意公开GitHub仓库自动转换成类似wiki的文档形式,并附带架构图、源代码链接、摘要等,以便让开发者快速理解仓库结构与内容;
  • ShawnWang开发了一个浏览器插件,能在任意代码仓库中直接打开Wiki;
  • LanceMartin开发了一个小项目,可以将代码仓库整理成易读的文本格式,并借助LLM生成高质量描述,具体流程是这个工具会先自动遍历仓库内的所有文档页面,再将每个页面传递给GPT或其他LLM,然后生成详尽摘要,最后将这些摘要汇总成一份文本文件。ClaudeCode得到这个文本文件后,就能准确判断该调用哪个文档页面,例如依据问题快速定位到对应URL。

记忆检索是特定 Context 下的检索

Agent 的记忆可分为四类:情景记忆(episodic memory)、语义记忆(semantic memory)、程序记忆(procedural memory)和背景记忆(background memory)。对于长期运行的 agent 来说,区分这些记忆类型尤为关键。但在传统的 context engineering 讨论中,这种细分的记忆分类还没有得到充分重视。

Source: LangChain, Context Engineering

在记忆与 context engineering 的关系上,Lance 认为可以从写入记忆(writing memories)和读取记忆(reading memories)这两个维度来理解,同时还要考虑自动化程度(degree of automation)。在实际应用中,agent 依据自动化程度,可以分成两种模式:

1. 类似 Claude Code 的极简模式:Claude Code 的设计非常直观,在读取记忆时,它会在启动时自动加载用户的 GitHub 仓库,而在写入记忆时,则需要用户手动指定,将内容保存到 GitHub 的某个文件。

2. 全自动记忆:在这种模式下,agent 会在后台自动决定何时写入或读取记忆。但这种方式存在明显风险,尤其是记忆检索的不可控性。比如曾有用户希望生成某个场景的图片,模型却自动检索到用户的地理位置,并把这个位置信息意外融入生成内容中,而这并非用户的真实意图。从实际发展来看,OpenAI 在 ChatGPT 的记忆功能上投入了大量精力,但效果依然有限,这也表明了全自动记忆仍是一个极具挑战性的方向。

Lance 认为写入记忆的难点在于如何判断何时写入,而读取记忆在大规模场景下则可以直接理解为 retrieval。换句话说,大规模的记忆读取本质上就是在做检索操作。因此,记忆的读取部分应当被视为检索的一种特定应用场景。只是这种检索的特殊性在于,它并不是检索外部知识库或公开网页,而是检索过去的对话内容。例如,当系统需要回顾用户的历史对话时,本质上就是一种带有 context 约束的检索。

进一步来说,复杂的记忆系统往往就是复杂的 RAG 系统。虽然外界并不清楚 OpenAI 记忆工具的具体实现细节,但很可能是通过对用户过往对话做索引,并结合向量搜索或类似方法来实现检索功能。这与 Windsurf 提出的多步骤 RAG 流程在逻辑上类似。相比之下,Claude Code 的做法则非常简单,它在每次启动时自动加载用户的代码仓库,虽然方式朴素,但在实际使用中效果出奇地好。这些案例表明,记忆的读取与检索在很多情况下可以视为同一类问题,只是场景和语境有所不同。

05.方法四:Isolate 隔离

Lance Martin 在 Latent Space 的分享中提到,isolate context 有以下几种用法和注意事项:

将 context 拆分给多个 agent;

但要谨慎!

Multi-agent 可能会做出相互冲突的决策;

如果能让 sub-agent 避免参与决策,则能降低风险。

Isolate 用法和注意事项

Isolate context 指的是将 context 拆分开来,从而避免不同类型信息相互干扰,这与 multi-agent 架构密切相关。在 Isolate context 的背景下,不同角色的 agent 能够各自压缩并管理不同的内容,从而避免单一 agent 承担全部 context 的负担,这种分工被认为是更高效的。

isolate context 运行原理

但 Cognition 认为在 multi-agent 架构下,sub-agent 要获得足够的 context 是极其困难的。为此,Cognition 投入了大量精力在 context 的摘要与压缩上。

特别的是,在 coding 场景中,如何在 sub-agent 之间分配和传递 context 是一个非常棘手的问题。在 coding 任务中,sub-agent 之间往往存在状态依赖(state dependency),这意味着不同 sub-agent 的决策可能会相互影响甚至产生冲突。例如,一个 sub-agent 负责写测试,另一个负责修改逻辑,如果它们各自独立决策,最后在整合时可能会出现不一致的问题。因此,Cognition 认为不要依赖 sub-agent 来处理此类任务。

此外,Cognition 的 Walden Yan 还提到过“反向书写任务(reverse write tasks)”,比如 coding 这类任务需要不同 sub-agent 分别负责最终系统的不同组件,这会导致 agent 之间必须频繁沟通,而当前 agent 间的通信机制仍处于早期阶段,这使得 coding 类场景的问题更加突出和复杂。

这也反映了 Cognition 与 Anthropic 的核心分歧:Cognition 认为不要使用 multi-agent,而 Anthropic 则认为 multi-agent 非常有用。Lance Martin 认为这取决于 multi-agent 要解决的具体问题:应用场景和使用方式会极大影响 multi-agent 的运行效果,应该将 multi-agent 用于易并行、只读(read-only) 的场景。

比如在 deep research 场中,agent 的工作主要是读取信息,也就是收集 context,当所有并行的读取任务完成后,最后才会统一进行书写,比如撰写最终的研究报告。Anthropic 的报告中提到,他们的 deep research agent 就是采用了这种架构:sub-agent 并行收集信息,最后统一产出结果。

相比之下,coding agent 的情况更加复杂,虽然现在 Anthropic 的 Claude Code 已经支持 sub-agent 模式,表明 Anthropic 认为这种架构在 coding 任务中至少是值得尝试的,但 Lance Martin 还是认为,如果 sub-agent 的任务需要高度协同,coding 场景就会非常棘手。

Cognition 与 Anthropic 的观点分歧

06.方法五:Cache 缓存

Lance Martin 在 Latent Space 的分享中提到,cache context 有以下几种用法:

缓存输入的 tokens,在 Claude-sonnet 上成本可降低 10 倍!

将 agent 的指令、工具描述缓存到前缀中。

将可变 context / 最近的观测结果添加到后缀中。

Cache 用法

开发者在初次搭建 agent 时常遇到高昂的循环成本问题,因为 agent 每一次循环都需要重复传递之前的工具调用结果,从而要消耗大量 token。为了降低延迟和成本,将消息历史进行缓存被视为一种有效策略。2025 年 7 月,Manus 提出了缓存(caching)概念,利用键值(KV)缓存机制来提高 AI agent 在处理多步骤任务时的效率和成本效益。

Manus 在官方发布的《AI 代理的 context 工程:构建 Manus 的经验教训》中表示:

如果我必须选择一个指标,我认为 KV-cache 命中率是生产阶段 AI 代理最重要的单一指标。它直接影响延迟和成本。为了理解原因,让我们看看典型代理是如何运作的:

在接收用户输入后,代理通过一系列工具使用链来完成任务。在每次迭代中,模型根据当前上下文从预定义的动作空间中选择一个动作。然后在环境中执行该动作(例如,Manus 的虚拟机沙盒)以产生观察结果。动作和观察结果被附加到上下文中,形成下一次迭代的输入。这个循环持续进行,直到任务完成。

正如你所想象的,随着每一步的推进,上下文不断增长,而输出——通常是结构化的函数调用——保持相对简短。这使得代理(agents)相比聊天机器人的预填充和解码比例高度倾斜。例如在 Manus 中,平均输入与输出的 token 比例约为 100:1。

幸运的是,具有相同前缀的上下文可以利用 KV 缓存,这大大减少了首个 token 的生成时间(TTFT)和推理成本——无论你是使用自托管模型还是调用推理 API。我们说的不是小幅度的节省:例如使用 Claude Sonnet 时,缓存的输入 token 成本为 0.30 美元/百万 token,而未缓存的成本为 3 美元/百万 token——相差 10 倍。

但不同的 API 在实际应用中存在差异,比如 OpenAI 会自动缓存,从而避免重复传输;而早期的 Anthropic 需要用户自己显式设置缓存请求头(caching header)。

需要注意的是,缓存只能优化延迟和成本问题,但无法解决 long context 的根本问题,也就是说即使缓存生效,当 context 达到十万 token 时,模型仍然需要完整处理这么长的 context,无论是否有缓存,模型的性能衰减(context decay)问题依然会存在。

更进一步,缓存策略往往与服务商绑定。如果用户非常依赖厂商提供的缓存机制,那用户可能面临“厂商锁定”,难以自由切换服务,但如果是运行自有开源模型,那能完全掌控缓存策略,实现更高灵活性。

07.the Bitter Lesson 的启发

OpenAI 的 Hyung Won Chung 在 the Bitter Lesson in AI Research 的演讲中指出,在相同成本下,计算能力每五年大约增长十倍,这种 scaling 的趋势是推动 AI 进步的关键因素。历史经验表明,那些归纳偏置较少、更通用、更依赖大量数据和计算的算法,往往比依赖手工特征设计或内置归纳偏置的算法表现更好。简单来说,the Bitter Lesson 指出了让机器通过大量数据和计算自主学习如何思考,比人工教机器如何思考更有效。

Hyung Won Chung 曾是 OpenAI 的 Research Scientist,主要研究推理(reasoning)与 agents,他是 o1-preview、o1、Deep Research 等项目的核心贡献者,并领导过 Codex mini 的模型训练。

“归纳偏置”(Inductive bias)指的是系统在面对有限数据时,为了能够进行合理的泛化而内在带有的一套假设或偏好。换句话说,它是一种先验约束,让模型在无限可能的解释中,更倾向于选择某些解释,从而提高学习效率。

Source: the Bitter Lesson in AI Research

Hyung Won Chung 还提出,在任何研究阶段,为了在当时的计算条件下获得理想性能,通常需要为算法添加一些结构(structure),例如更多的建模假设或归纳偏置。这在计算资源有限时确实是有帮助的,但随着计算能力增加,这些人为添加的结构反而会成为进一步发展的瓶颈。

Source: the Bitter Lesson in AI Research

只要框架透明,就有实用价值

Lance 表示,当人们讨论架构框架(frameworks)时,往往包含两类不同的东西:agent 抽象(agent abstractions)和底层编排框架(low-level orchestration frameworks)。很多开发者反对的其实是前者,而不是后者。

Source: LangChain, How to think about agent frameworks

以 Shopify 的 Roast 框架为例,这是一个开源的 AI 工作流编排(workflow orchestration)工具,提供了可组合的底层构建块,没有预设状态判断(no judges state),允许用户自由搭建 agent 和工作流。Lance 并不反对这种架构,他认为这种方式可以充分利用底层构建块的灵活性,他在搭建 Open Deep Research 时也是先搭工作流,再拆解重构成 agent。相比之下,agent 抽象(agent abstractions)则容易隐藏逻辑,使系统在模型能力提升时难以拆解和重构。

Lance 认为开发者需要警惕 agent 抽象(agent abstractions),但这并不意味着要排斥底层编排框架,只要框架提供的是透明、可自由组合的节点,而非黑箱,就具有实用价值。

企业客户在内部尝试搭建 agent 和工作流时,往往一开始都选择自行搭建,但随着代码难以管理、协作和评审问题逐渐出现,标准化框架和可组合组件就显得尤为必要。比如,在 2024 年年中,随着 Anthropic 模型的工具调用能力提升,许多企业纷纷开始集成,但由此带来了很多混乱。于是 MCP 出现,为工具访问制定标准协议,降低协同成本与认知负担。这表明,大型组织推动标准化框架的根本动因是为了解决实际的协作问题,而不是为了框架本身。

实践经验

Lance Martin 在过去一年搭建 Open Deep Research 的过程中,最初采用的是高度结构化的流程,几乎不依赖工具调用,因为当时业界普遍认为工具调用并不可靠,所以他在系统中预先嵌入了大量假设,将研究问题拆解为多个部分并行处理,最后再整合成完整报告。这个流程在当时确实更稳定,但随着模型能力的快速提升,这种繁复的结构反而限制了模型对 MCP 和工具调用能力的使用。

因此 Lance 转向使用 agent 架构,去掉过多结构,允许 agent 自主决定研究路径,实现工具调用。这验证了 Hyung Won Chung 的观点:researcher 需要不断重新评估“基于当前模型能力,我的假设是否还成立”。Lance 甚至用 GPT-5 进行了测试,结果表明,随着模型能力不断提升,Open Deep Research 这个开源系统也能够同步跟进并适应这些进展。

此外,Anthropic 的 Boris 在设计 Claude Code 的时候也遵循了 the Bitter Lesson:让 Claude Code 的系统保持尽可能地简单、通用,为用户提供广泛的模型访问权限。

值得注意的是,传统企业采用 AI 的常见做法是将 AI 嵌入已有工作流,因为这些企业已经拥有成熟的流程和结构,AI 的作用主要是优化和增强这些流程。但 AI-native 产品则往往不会受限于现有流程,而是在模型能力达到足够水平后,从零开始构建产品:

  • 相比VSCode,Cursor和Windsurf更适合AIcoding,因为它们无需改造旧流程;
  • Cognition也是从一开始就以agent为核心进行原生设计,而不是把agent当作现有工具的补充。

过去两年半,企业常常在纠结应该是将 AI 嵌入现有流程还是重构流程,产生这种纠结的原因在于早期模型能力不足,重构效果不好,因此结构化方法往往表现更好,因此容易让人误以为这些结构是长久有效的解决方案。但现在模型能力已超过临界点,最佳策略是用更少结构化来搭建系统。

Anthropic 创始人 Jared Kaplan 表示构建“目前尚不完美的产品”或许是合理策略,因为随着模型指数级进步,产品价值会被逐步释放。这也正是 the Bitter Lesson 在企业应用中的具体体现:早期依赖结构获得短期优势,但长期来看,灵活、少结构、通用的方法才能在模型能力增长的浪潮中取得最终胜利。

  • Cursor早期并不完美,但随着Claude3.5发布,正好匹配了模型能力追上产品需求的节点。
  • Windsurf的产品曲线表现出一个平台期(ceiling),随后快速爆发(boom),增长最终放缓。

Source: Lance Martin 在 Latent Space 演示的 PPT

编译:Haozhen 编辑:Cage 排版:夏悦涵

本文由人人都是产品经理作者【海外独角兽】,微信公众号:【海外独角兽】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。

题图来自Claude官网截图