news 2026/4/18 3:41:51

Manus与LangChain智能体实战经验!DeepMind工程师的上下文工程哲学

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Manus与LangChain智能体实战经验!DeepMind工程师的上下文工程哲学

随着大模型能力的边界不断拓展,我们构建智能体的方式正在经历一场静悄悄却剧烈的范式转移,核心不再是堆砌更复杂的提示词,而是学会如何优雅地让路。

Google DeepMind 工程师 Philipp Schmid,总结了 Manus 创始人 Peak Ji,LangChain 的工程师 Lance Martin 的实战经验,以及最新的行业研究,深度剖析了上下文工程(Context Engineering)的核心逻辑。

这并非一篇枯燥的技术文档,而是一份关于如何在六个月内通过五次代码重构,从复杂性泥潭中杀出重围的工程手记。

真正的智慧在于删繁就简,在于对抗模型的遗忘,在于用最精确的通信替代冗余的共享。

对抗上下文腐烂(Context Rot)

在探讨具体战术之前,我们需要重新审视我们手中的工具。

大语言模型并非全知全能的神,它更像是一个拥有惊人推理能力但短期记忆极度脆弱的大脑。

为了让这个大脑在复杂的现实任务中发挥作用,我们需要构建一套被称为智能体线束(Agent Harness)的软件系统。

线束之于模型,如同缰绳之于赛马。

它包裹着模型,管理着消息的历史循环,处理工具调用的执行逻辑,并负责所有的上下文逻辑。

在这个层面上,开发者不再仅仅是提示词的编写者,而是系统架构师。

我们面临的挑战不再是如何让模型说话,而是如何防止上下文腐烂(Context Rot)。

上下文腐烂是一个隐蔽的系统性风险。

许多模型宣称拥有百万级的上下文窗口,这让开发者产生了一种错觉,以为可以无限制地向模型灌输信息。

事实并非如此。

模型的有效上下文窗口往往远小于其标称上限,通常在 256k Token左右达到性能峰值。

一旦超越这个界限,即便未触及硬性上限,模型的推理能力也会断崖式下跌。

更致命的是上下文污染与混淆。

过多的无关信息如同噪音,淹没了关键指令;复杂的工具定义让模型在指令与数据之间迷失。

Manus 团队在半年的开发周期里,五次推倒重来,最终悟出的真理令人警醒:随着模型变得越来越强大,我们不应该搭建更复杂的脚手架,而应该学会做减法。

为了维持 Agent 的长期运行,我们必须学会遗忘。

但这并非盲目的删除,而是一场关于信息压缩的精细手术。

Manus 团队将上下文缩减策略提炼为两个核心维度:紧凑化(Compaction)与摘要化(Summarization)。

紧凑化是首选策略,它的核心价值在于可逆性。

在智能体与其环境的交互中,大量信息其实是冗余的。

当一个编程智能体刚刚编写并保存了一个 500 行的代码文件,在聊天记录中保留这 500 行代码就是对上下文资源的极度浪费。

系统应当做的是将这部分内容替换为文件已保存至 /src/main.py的路径信息。

这种处理方式极其高明。

它将庞大的文本内容卸载到了外部存储中,仅在上下文中保留了索引。

模型并没有真正遗忘这部分内容,它只是知道内容在哪里。

如果未来的任务需要读取代码,模型随时可以调用工具将内容重新加载回上下文。

这种以路径代内容的策略,在不损失任何信息精度的前提下,极大地释放了宝贵的注意力窗口。

当紧凑化仍不足以应对上下文压力时,摘要化作为一种有损压缩手段才会登场。

但这其中隐藏着一个极易被忽视的细节:节奏(Rhythm)。

许多开发者在使用摘要功能时,倾向于将所有历史交互一刀切地压缩成一段文本。

Manus 的经验表明,这种做法会破坏模型的惯性。

模型在生成输出时,很大程度上依赖于最近几次交互的格式和风格。

如果历史记录被完全抹平为一段枯燥的摘要,模型往往会丢失原有的输出格式,导致性能降级。

因此,正确的摘要策略应当是掐头去尾留中间。

将久远的历史总结为结构化的 JSON 数据,但必须保留最近几轮(例如最后 3 轮)工具调用的原始、全细节格式。

这就像是在接力赛中,虽然我们不再关注起跑时的姿势,但必须保持交接棒瞬间的速度和节奏。

优先级链条由此确立:首选保留原始数据,次选可逆的紧凑化,最后才是带有节奏保护的摘要化。

每一步都是为了在有限的窗口内,压榨出最高的智能密度。

隔离与通信:多智能体的协作哲学

当我们从单一智能体走向多智能体(Multi-Agent)系统时,架构设计的复杂度呈指数级上升。

一个最直观但错误的直觉是:让所有子智能体共享同一个庞大的上下文。

这种大锅饭式的内存共享看似高效,实则灾难。

它不仅带来了巨大的 KV-Cache(键值缓存)计算惩罚,增加了推理成本,更严重的是导致了严重的上下文污染。

想象一下,一个负责搜索网页的智能体,真的需要知道负责写代码的智能体之前的调试报错信息吗?这些无关信息只会成为干扰决策的噪音。

Manus 在这里借鉴了 Go 语言(GoLang)并发编程的经典格言:通过通信来共享内存,而不要通过共享内存来通信。

在智能体架构中,这意味着我们需要对任务进行严格的离散化处理。

对于输入输出明确的任务,例如在文档库中检索特定条款,系统应当启动一个全新的子智能体。

这个子智能体拥有一个完全空白的上下文,除了明确的指令外,不携带任何历史包袱。它就像一个被临时雇佣的特种兵,任务单纯,执行高效。

只有在处理极其复杂的推理任务,比如需要根据之前的长篇对话历史来调试代码逻辑时,我们才谨慎地选择共享上下文。

在这种视角下,共享上下文不再是默认选项,而是一种需要极力避免的昂贵依赖。

每一次分叉上下文(Forking Context),本质上都是在增加系统的熵,破坏缓存的连续性。

这种隔离机制不仅提升了各个子智能体的专注度,也让调试变得更加容易。

因为每个智能体的输入和输出都是清晰界定的,开发者可以像测试独立函数一样测试每个智能体的表现,而不必在庞大的对话历史中寻找故障的根源。

扁平化的行动空间:像程序员一样思考

工具是智能体的手脚。

给予模型何种工具,直接决定了它的行为模式。

这里存在一个误区:给模型提供尽可能多的工具,让它自己选择。

实验数据表明,当工具数量超过 100 个时,模型不仅会出现选择困难,更会产生严重的幻觉,开始捏造参数甚至调用不存在的工具。

为了解决这一问题,Manus 提出了一套层级化的行动空间(Hierarchical Action Space)设计方案。

这一方案将工具分为三个层级,构建了一个金字塔式的能力结构。

位于塔尖的是原子层(Atomic Level)。

这一层仅包含约 20 个最核心的工具,如文件读写、浏览器导航、搜索等。

这些工具是智能体生存的基础,必须保持高度的稳定性和通用性。

由于数量少且定义清晰,模型对这些工具的掌握程度极高,几乎不会出错。

位于中间的是沙盒实用程序(Sandbox Utilities)。

这是该架构最精彩的部分。

不要为每一个命令行工具(如 grep, ffmpeg, git)单独定义一个 LLM 工具。

相反,我们应该教会模型使用 Bash。

Manus 定义了类似mcp-cli <command>的通用接口,将具体的工具定义排除在上下文窗口之外。

这意味着,模型不再需要学习成百上千个特定工具的 API,它只需要学会像人类程序员一样,在终端中输入命令。

这不仅极大地减少了上下文的占用,更赋予了模型无限的扩展性。

只要是终端能运行的命令,模型就能使用,而无需重新修改工具定义。

位于底层的是代码/包层(Code/Packages)。

对于复杂的逻辑链条,比如获取城市列表 -> 遍历查询 ID -> 获取天气数据,我们不应让 LLM 通过三次往返对话来完成。

这太慢,且容易在中间环节出错。正确的做法是提供封装好的 Python 库,让 Agent 编写一个动态脚本,一次性执行完毕。

通过这种层级划分,我们将模型的认知负担降到了最低。它只需要在原子层做高层决策,在沙盒层调用通用能力,在代码层处理复杂逻辑。

Agent 即工具:去拟人化的组织架构

在设计多智能体系统时,我们很容易陷入拟人化的陷阱,设计出复杂的科层制组织架构:经理 Agent 指挥小组长 Agent,小组长 Agent 指挥执行 Agent。

这种层层汇报的机制在人类社会中或许有效,但在 AI 系统中却是效率的杀手。

Manus 的第五次重构得出结论:不要过度拟人化。Agent 即工具(Agent as Tool)才是最高效的模式。

对于主模型而言,制定计划或深度研究不应该是一个需要通过对话来协商的同事,而应该仅仅是一个被调用的函数。

当主 Agent 需要规划时,它调用call_planner(goal="...")

线束在后台启动一个临时的规划子智能体,完成任务后返回一个结构化的 JSON 对象,而不是一段啰嗦的自然语言对话。

这种模式实际上是 MapReduce 思想在 Agent 领域的投射。

主 Agent 将任务分发(Map)给子 Agent,子 Agent 在独立的上下文中并行处理,最终将结果汇总(Reduce)返回。

整个过程对主 Agent 是透明的,它看到的只是一个函数调用的输入和输出。

这极大地扁平化了系统的复杂性。

数据在不同模块间的流转不再依赖于模糊的自然语言理解,而是变成了精确的结构化数据传递。

系统不再需要解析好的,老板,我这就去办这样的废话,而是直接处理{"status": "success", "data": {...}}

苦涩的教训与最佳实践

在工程落地的深水区,Philipp Schmid 总结了一系列血的教训。这些经验不仅是技术指南,更是对 AI 发展规律的深刻洞察。

绝不要使用 RAG(检索增强生成)来管理工具定义。

这种做法听起来很诱人:根据当前任务动态检索最相关的工具。

但在实践中,这会导致工具列表在不同轮次间跳变,打破 KV 缓存,让模型产生精神分裂般的幻觉。

工具集应当是像基石一样稳定且明确的存在。

重读苦涩的教训(The Bitter Lesson)。

不要试图通过微调模型来获得短期优势,也不要针对特定的动作空间过度训练强化学习(RL)策略。

你今天辛苦获得的 5% 性能提升,很可能会被明天发布的下一代基础模型轻松碾压。

上下文工程应当是一个灵活的接口,旨在适应基础模型能力的提升,而不是将自己锁死在某个特定的模型版本上。

我们构建的是系统,而不是补丁。

建立严格的预腐烂阈值(Pre-Rot Threshold)监控。

如果你的模型上限是 100 万 Token,不要天真地等到 99 万时才开始处理。

性能的衰减往往在 256k 甚至更早的时候就已经开始。

开发者必须实时监控 Token 计数,在系统进入腐烂区之前,主动触发紧凑化或摘要化循环。

最后,通过实习生测试(The Intern Test)来验证系统。

放弃那些主观的、基于 LLM 打分的基准测试。

你应该关注那些计算可验证(Computationally Verifiable)的任务:生成的代码能编译通过吗?执行的命令产生了预期的文件吗?

在真实环境中,二进制的成功/失败指标远比看起来写得不错要有价值得多。

回顾这段技术演进,最令人深思的并非那些被添加的功能,而是那些被剔除的冗余。

Manus 删除了动态工具定义,拥抱了通用的 Shell;删除了繁琐的管理层级,采用了函数式的调用。

这正是上下文工程的终极奥义:在这个算力与智能爆炸的时代,我们构建的系统不应成为模型的束缚。

真正的工程智慧,在于寻找完成任务所需的最小有效上下文(Minimal Effective Context)。

就像米开朗基罗面对大理石时所做的那样,去掉多余的部分,剩下的就是艺术。

参考资料:

https://www.philschmid.de/context-engineering-part-2

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 7:38:06

如何用AI工具3步制作专业解说视频?零基础也能轻松上手

如何用AI工具3步制作专业解说视频&#xff1f;零基础也能轻松上手 【免费下载链接】NarratoAI 利用AI大模型&#xff0c;一键解说并剪辑视频&#xff1b; Using AI models to automatically provide commentary and edit videos with a single click. 项目地址: https://gitc…

作者头像 李华
网站建设 2026/4/16 23:40:08

milvus向量数据库使用尝试

一.背景在大语言模型&#xff08;LLM&#xff09;、计算机视觉、推荐系统等人工智能应用落地过程中&#xff0c;非结构化数据&#xff08;文本、图片、音频、视频&#xff09;的相似性检索成为核心需求 —— 这类数据需先通过模型转化为高维向量&#xff0c;再通过向量相似性计…

作者头像 李华
网站建设 2026/4/16 12:09:55

EasyGBS:一体化视频监控与智能管理解决方案

在数字化转型加速推进的背景下&#xff0c;视频监控已成为各行业安全管理、应急处置、运营优化的核心支撑手段。国标GB28181算法算力平台EasyGBS&#xff0c;凭借全协议兼容接入、全流程协同调度等核心能力&#xff0c;构建了一体化视频监控解决方案&#xff0c;广泛适配多样化…

作者头像 李华
网站建设 2026/4/16 16:42:00

为什么顶尖团队都在用MCP PL-600设计多模态Agent?真相令人震惊

第一章&#xff1a;MCP PL-600与多模态Agent的革命性融合MCP PL-600作为新一代高性能控制处理器&#xff0c;凭借其强大的并行计算能力与低延迟通信架构&#xff0c;正成为多模态智能体&#xff08;Multimodal Agent&#xff09;系统的核心驱动引擎。该处理器集成了专用AI加速单…

作者头像 李华
网站建设 2026/3/31 8:36:10

为什么你的量子模拟总卡顿?:深入VSCode性能分析底层机制

第一章&#xff1a;为什么你的量子模拟总卡顿&#xff1f;量子模拟在现代科研与算法开发中扮演着关键角色&#xff0c;但许多开发者发现其运行效率远低于预期。性能瓶颈往往并非来自算法设计本身&#xff0c;而是底层资源管理与模拟器配置的不合理。硬件资源分配不足 量子态的指…

作者头像 李华
网站建设 2026/4/15 17:28:29

天远全国自然人多头借贷风险API接口的Go语言(Golang)对接与AES加解密实现

一、用 Go 语言构建高并发风控中台 在微服务架构盛行的今天&#xff0c;Go (Golang) 凭借其卓越的并发处理能力和极低的内存占用&#xff0c;已成为构建金融风控中台的首选语言之一。在处理海量信贷申请时&#xff0c;如何快速、准确地获取申请人的多头借贷风险数据&#xff0c…

作者头像 李华