职贝云数AI新零售门户

标题: AI代理的上下文工程:构建Manus的阅历教训 [打印本页]

作者: jro    时间: 昨天 04:21
标题: AI代理的上下文工程:构建Manus的阅历教训
本文转载Mansu构建Agent的阅历,原文可见:https://manus.im/blog/Context-Engineering-for-AI-Agents-Lessons-from-Building-Manus

在项目的最后阶段,我和我的团队面临一个关键决策:我们是应该运用开源基础模型训练一个端到端的智能体模型,还是基于前沿模型的才能构建一个智能体? 在我的NLP生涯的第一个十年里,我们没有这种选择的朴素。在悠远的时代(是的,曾经过去七年了),模型必须先停止微调——和评价——才能迁移到新义务。这个过程通常每次迭代需求数周工夫,虽然与明天的LLM相比,这些模型非常小。对于疾速发展的运用,特别是在产品市场婚配(PMF)之前,这种缓慢的反馈循环是一个致命缺陷。这是我上一个创业公司的惨痛教训,当时我从头末尾训练模型用于和语义搜索。然后和出现了,我的外部模型一夜之间变得有关紧要。具有讽刺意味的是,这些相反的模型标志着上下文学习的末尾——以及一条全新的行进道路。 这个来之不易的教训使选择变得明白:Manus将押注于上下文工程。这使我们可以在几小时而非几周内交付改进,并使我们的产品与底层模型保持正交:假如模型提高是下跌的潮水,我们希望Manus成为那条船,而不是固定在海床上的柱子。

虽然如此,上下文工程证明绝非易事。这是一门实验迷信——我们曾经重建了我们的代理框架四次,每次都是在发现了更好的塑造上下文的方式之后。我们亲切地将这种手动架构搜索、提示调整和阅历猜测的过程称为"随机研讨生下降"。这并不优雅,但它有效。

这篇文章分享了我们经过本人的"SGD"所达到的部分最优解。假如你正在构建本人的AI代理,我希望这些准绳能协助你更快地收敛。
围绕KV缓存停止设计

假如我必须选择一个目的,我以为 KV-cache命中率 是消费阶段AI代理最重要的单一目的。它直接影响延迟和成本。为了了解缘由,让我们看看是如何运作的:

在接收用户输入后,代理经过一系列工具运用链来完成义务。在每次迭代中,模型根据当前上下文从预定义的动作空间中选择一个动作。然后在环境中执行该动作(例如,Manus的虚拟机沙盒)以产生观察结果。动作和观察结果被附加到上下文中,构成下一次迭代的输入。这个循环持续停止,直到义务完成。 正如你所想象的,随着每一步的推进,上下文不断增长,而输入——通常是结构化的函数调用——保持相对简短。这使得代理(agents)相比聊天机器人的预填充和解码比例高度倾斜。例如在Manus中,平均输入与输入的token比例约为100:1。

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

![](/Users/guotao/Library/Application Support/typora-user-images/image-20250720232940473.png)

从上下文工程的角度,提高KV缓存命中率触及几个关键实际:

此外,假如你正在运用像 这样的框架自托管模型,请确保启用了,并且你正在运用会话 ID 等技术在分布式工作节点之间分歧地路由央求。
遮盖,而非移除

随着代理才能的加强,其举动空间自然变得愈加复杂——简单来说,工具数量爆炸式增长。最近盛行的只会火上浇油。假如你允许用户自定义工具,置信我:总会有人将数百个奥秘工具插入到你精心策划的举动空间中。结果,模型更能够选择错误的举动或采取低效的途径。简而言之,你武装过度的代理变得愈加愚笨。

一个自然的反应是设计一个动态举动空间——能够是运用相似于的方法按需加载工具。我们在Manus中也尝试过这种方法。但我们的实验表明了一个明白的规则:除非相对必要,避免在迭代过程中动态添加或移除工具。这次要有两个缘由:

为了处理这个成绩并依然改进动作选择,Manus运用上下文感知的来管理工具可用性。它不是移除工具,而是在解码过程中掩蔽token的logits,以基于当前上下文阻止(或强迫)选择某些动作。

在实际中,大多数模型提供商和推理框架支持某种方式的呼应预填充,这允许你在不修正工具定义的状况下约束动作空间。函数调用通常有三种形式(我们将运用 NousResearch 的 作为示例):

这些设计有助于确保Manus代理循环保持波动——即便在模型驱动的架构下。
运用文件系统作为上下文

古代前沿LLM如今提供128K令牌或更多的上下文窗口。但在真实世界的代理场景中,这通常不够,有时甚至是一种负担。有三个常见的痛点:

为了处理这个成绩,许多代理系统完成了上下文截断或紧缩策略。但过度激进的紧缩不可避免地导致信息丢失。这个成绩是根本性的:代理本质上必须根据一切先前形态预测下一个动作——而你无法牢靠地预测哪个观察结果能够在十步之后变得至关重要。从逻辑角度看,任何不可逆的紧缩都带有风险。 这就是为什么我们在Manus中将文件系统视为终极上下文:大小不受限制,自然持久化,并且代理可以直接操作。模型学会按需写入和读取文件——不只将文件系统用作存储,还用作结构化的外部记忆。

(, 下载次数: 0)

我们的紧缩策略一直设计为可恢复的。例如,只需保留URL,网页内容就可以从上下文中移除;假如沙盒中依然保留文档途径,则可以省略文档内容。这使得Manus可以延长上下文长度,而不会永世丢失信息。 在开发这个功能时,我发现本人在想象**形态空间模型(State Space Model, SSM)**在智能体环境中有效工作需求什么条件。与Transformer不同,SSM缺乏残缺的留意力机制,并且在处理长间隔的后向依赖关系时表现不佳。但假如它们可以掌握基于文件的记忆——将长期形态外部化而不是保存在上下文中——那么它们的速度和效率能够会开启一类新型智能体。基于SSM的智能体能够是真正的继任者。
经过复述操控留意力

假如你运用过Manus,你能够留意到一个风趣的现象:在处理复杂义务时,它倾向于创建一个todo.md文件——并在义务停止过程中逐渐更新它,勾选已完成的项目。

这不只仅是心爱的行为——这是一种操控留意力的刻意机制。

(, 下载次数: 0)

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

经过不断重写待办事项列表,Manus将其目的复述到上下文的末尾。这将全局计划推入模型的近期留意力范围内,避免了"丢失在中间"的成绩,并减少了目的不分歧。实践上,它运用自然言语来使本人的留意力倾向义务目的——而不需求特殊的架构变更。
保留错误的内容

代理会犯错。这不是bug——这是理想。言语模型会产生幻觉,环境会前往错误,外部工具会出现异常行为,不测的边缘状况随时都会出现。在多步骤义务中,失败不是例外;它是循环的一部分。

但是,一个常见的冲动是隐藏这些错误:清算痕迹,重试操作,或重置模型的形态并将其留给神奇的""。这感觉更安全,更受控制。但这是有代价的:擦除失败会移除证据。没有证据,模型就无法顺应。

(, 下载次数: 0)

根据我们的阅历,改善代理行为最有效的方法之一出奇地简单:将错误的尝试保留在上下文中。当模型看到一个失败的举动——以及由此产生的观察结果或堆栈跟踪——它会隐式地更新其外部决计。这会改变其先验,降低反复相反错误的能够性。 理想上,我们以为错误恢复是真正代理行为的最分明目的之一。但是,在大多数学术工作和公共基准测试中,这一点依然代表性不足,它们通常关注理想条件下的义务成功。
不要被少样本示例所困

是提高LLM输入的常用技术。但在代理系统中,它能够会以巧妙的方式适得其反。 言语模型是优秀的模拟者;它们模拟上下文中的行为形式。假如你的上下文充满了相似的过去举动-观察对,模型将倾向于遵照该形式,即便这不再是最优的。

这在触及反复决策或举动的义务中能够很风险。例如,当运用Manus协助审查20份简历时,代理通常会堕入一种节拍——仅仅由于这是它在上下文中看到的,就反复相似的举动。这导致偏离、过度泛化,或有时产生幻觉。

(, 下载次数: 0)

处理方法是添加多样性。Manus在举动和观察中引入大批的结构化变化——不同的序列化模板、替代性措辞、顺序或格式上的宏大噪音。这种受控的随机性有助于打破形式并调整模型的留意力。 换句话说,不要让本人堕入少样本学习的窠臼。你的上下文越单一,你的智能体就变得越脆弱。
结论

上下文工程依然是一门新兴的迷信——但对于智能体系统来说,它曾经是必不可少的。模型能够变得更弱小、更疾速、更经济,但再多的原始才能也无法替代对记忆、环境和反馈的需求。你如何塑造上下文最终决议了你的智能体的行为方式:它运转的速度、恢复的效果以及扩展的范围。

在Manus,我们经过反复的重写、死胡同以及面向数百万用户的实践测试学到了这些阅历。我们在这里分享的内容并非放之四海而皆准的真理——但这些是对我们有效的形式。假如它们能协助你避免哪怕一次痛苦的迭代,那么这篇文章就达到了它的目的。

智能体的将来将一次构建一个上下文。好好设计它们吧。
学习交流圈

你好,我是影子,曾先后在🐻、新动力、老铁就职,兼任Spring AI Alibaba开源社区的Committer。目前新建了一个交流群,一个人走得快,一群人走得远,关注公众号后可获得个人微信,添加微信后备注“交流”入群。另外,本人长期维护一套飞书云文档笔记,涵盖后端、大数据系统化的面试材料,可私信收费获取

(, 下载次数: 0)






欢迎光临 职贝云数AI新零售门户 (https://www.taojin168.com/cloud/) Powered by Discuz! X3.5