MANUS步骤的创始人 - 逐步拆除:如何系统地创建
时间:2025-07-22 10:37 作者:365bet体育注册

资料来源:Zhen Fund Z Talk是Zhen基金分享理解的专栏。在“马努斯谈论YouTube联合创建Chen Shijun”中,Manus联合创始人兼首席科学家Peak(Ji Yichao)都提到,每次团队讨论特定功能的技术实施时,他都需要思考:此功能是否会对产品产生影响?作为一般代理,每次MANUS都会增加能力时,团队都希望它对现有功能产生意外的耦合效果。例如,在增加了图像读取功能之后,他们发现手掌可以单独删除生成的数据视觉代码,甚至可以神奇地解决其他模块的问题。这是他们重视的复合效应。昨天,美国曼海(Manthe)的官方网站发布了一篇新文章,其中Peak分享了他们在开发上下文项目及其经验的过程中所进入的陷阱。这是一个真诚,深刻且高度实用的说明。峰结合了体验该团队植根于试验和错误的系统,为建立AI代理的开发人员提供了参考,并将我们带到了Manus的勘探过程从零重新定义。马努斯仍在前进。正如Peak在文章中所说的那样:“如果模型的开发是增加水,我们希望手工是一艘船,而不是钉在海床上的柱子。”如果您也正在建立自己的代理商,希望此摘要可以帮助您更快地找到方向。本文是从创始人公园(Founder Park)复制的,基于Kimi K2的翻译,以下是原始汇编文本:在Manus项目的开头,我和我的团队都面临着一个基本选择:我们是否应该使用开放资源基本模型来培训端到端代理,或者依靠在这里生成较前沿模型的能力来在这里产生代理商的背景?在NLP入学的头十年中,我们没有这样的奢侈选择。返回 - 伯特出来的时间(是的,那是七年前),在将其转移到新任务之前,必须修复模型并诊断。每次重复通常持续数周,尽管与当今LLM相比,当时模型的体积微不足道。对于快速迭代的应用程序,尤其是在PMF之前的阶段,如此缓慢的反馈回路几乎是致命的。这是梅格最后一开始的痛苦课程:我从一开始就培训了开放信息获取和语义搜索的模型。然后,GPT-3和Flan-T5出现了,我的自发展模型在一夜之间失去了含义。特别是,这些新模型为研究环境开辟了大门,并教会了我们一条全新的道路。这本强硬的课程是一个明确的选择:手腕是一种上下文工程手工。我们被允许在几个小时内(而不是几周)内发布改进,同时还可以在基础模型中维护我们的正交产品:如果模型的开发是升水的水,我们希望肛门是船,而不是Pillar钉在海床上。但是,上下文工程远非平稳的航行。这是一门实验科学。我们每次都发现了一种更好的方式来塑造上下文后,我们每次都重新排列了代理四次。我们平静地称呼这种手动架构搜索的过程,促使对“随机研究生血统”进行微调和经验预测。它不是优雅的,但可以起作用。本文分享了我们通过自己的“ SGD”提供的本地最佳解决方案。如果您要建立自己的AI代理,则可以预期这些原则将帮助您更快地转换。如果您只能选择一个度量标准,则围绕KV-CACHE进行设计,我想说的是,KV高速缓存命中率是AI-Grade AI代理的最重要的单一指标,它直接影响延迟和成本。要了解原因,让我们首先看一下典型代理的工作流程:接收到用户的输入后,代理通过一系列工具调用完成了任务。每次重复,模型选择A基于当前上下文的预定动作空间,然后执行环境动作(例如Manus的虚拟机沙盒)并产生观察结果。动作和观察是在上下文中提出的,并成为了下一次重复的投入。这个周期一直持续到任务完成。可以想象,每个步骤上下文都会生长,并且输出(通常是结构化的调用)相对较短。与预填充代理的比率相比,这使聊天机器人严重不平衡。以手动为例,输出令牌比的平均输入约为100:1。幸运的是,具有相同前缀的上下文的上下文可以利用KV缓存,而KV缓存显着施加了,这是第一个令牌延迟(TTTFT)和识别成本,无论您是使用自我托管模型还是使用自动模型还是调用API推荐。这不是一点点节省:以克劳德十四行诗为例,缓存的代币价格为0.30美元/百万个令牌,而uncache是一个S高达3美元/百万令牌,这是10倍的变化。从对上下文工程的洞察力,提高KV缓存命中率需要以下一些基本技能:1。保持前缀稳定。由于LLM的自回旋性质,尽管令牌只有一个差异,但可以从该令牌中释放整个缓存。一个常见的错误是在系统提示开始时包括时间戳 - 尤其是在几秒钟内准确的时间戳。虽然允许该模型告诉您当前时间,但它也将重置您的高速缓存率零。 2。保持上下文的上下文。避免改变过去的动作或观察。确保序列化是决定主义者。编程和库中的许多程序不能保证在JSON对象逐步下降时遵守密钥稳定的依从性,这可以默默地破坏缓存。 3。显然根据需要标记缓存断点。一些模型提供商或推理盒子架不支持自动广告在上下文中输入缓存断点时,前缀缓存的区别。设置这些断点时,请考虑缓存的潜在到期,并至少确保断点包含系统提示的末端。此外,如果您使用诸如VLLM之类的框架来拥有模型,请确保始终在共享工作者节点上始终在路由请求上使用诸如会话ID之类的技术。通过掩盖而不是删除行为选项,而不是在您的代理人假设的更多功能时删除,其行动空间自然会变得更加复杂。为了空白,工具的数量将爆炸。 MCP最近的受欢迎程度增加了大火的燃料。如果您允许用户自己配置工具,请相信我:有人一定会进入您的行动空间中的神秘工具。结果,模型更容易选择错误的操作或执行糟糕的路线。简而言之,完全武装的代理商mes一个愚蠢的人。一个自然的想法是设计PPILK的动态空间 - 也许以抹布的方式加载需求工具。我们还在手腕上尝试了它。但是,实验结果提供了一个明确的规则:除非绝对必要,否则避免在变化过程中的动态添加和删除工具。有两个主要因素:1。在大多数LLM中,该工具的定义通常在序列化后,通常在系统激励之前或之后。因此,任何更改都将证明所有随后的KV-CACHE动作和观察结果。 2。当先前的动作和观察仍然指当前上下文中不再存在的工具时,模型会感到困惑。在没有强迫解码的情况下,这通常会导致模式违规或幻觉。为了在改进行动选择的同时解决问题,Manus利用国家意识对国家的存在来管理工具的存在。它并没有真正删除该工具,而是阻止了T的ligits他在解码过程中对应令牌,从而根据当前上下文阻止(或强迫)某些动作。实际上,大多数模型提供者和识别框架都支持某种形式的预填充响应,从而使您可以防止动作空间而不更改工具的定义。函数调用通常具有三种模式(我们以Nousrearch Hermes格式为例):自动 - 模型可以选择是否将调用函数。实现方法:前缀仅回复前缀:| im_start | AssistAntrequired-该模型应调用操作,但是要拨打的特定邮寄量不受限制。实施:预先填充工具调用标签:| im_start |辅助指定 - 该模型应从某个子集中调用操作。实施方法:预先填写功能名称的开头:| im_start |帮助{名称:“浏览器\ _我们使用它直接将掩码应用于令牌logits以限制操作的选择。例如,当用户提供一个新的输入,MANUS必须立即做出回应,并且不能采取任何行动。我们还为操作名称设计了一个统一的前缀 - 例如,所有与浏览器相关的浏览器相关浏览器命令行以shell \ _.ssor开头。这些设计有助于确保即使在模型驱动的架构下,MANUS智能周期也保持稳定。现代前沿LLM现在支持128K甚至更大的窗户。但是在真正的代理商的情况下,这通常还不够,有时会成为负担。有三个常见的疾病点:1。观察结果可能是压倒性的,尤其是当代理与无人占用的数据(例如网页或PDF)接触时。很容易超过上下文的限制。 2。模型性能在超过一定上下文长度后趋于下降,即使在技术上仍然支持窗口。 3。长输入很昂贵,即使有前缀缓存,您仍然必须为每个令牌的移动和预填充付费。解决t他的问题是,许多代理系统实施截断或压缩技术。但是,过度的侵略性压缩将不可避免地导致信息丢失。该问题的本质是,基于所有先前状态的下一步行动,代理人应该很重要。您不能指望在十个步骤后预测哪种观察结果将很重要。从逻辑的角度来看,任何不可逆的压缩都有风险。因此,我们将文件系统视为手腕中的最终上下文:无限能力,自然耐用,代理可以直接运行。该模型学会了读写所需的文件,并将文件系统视为存储,还将文件系统视为结构化和外部的内存。我们的压缩方法总是可以恢复。例如,只要“ URL”不保留,可以在上下文中删除网页的内容;只要该路径仍在沙箱中可用,文档的内容也可以是删除。它允许手腕缩短上下文的长度,而不会永久性信息丢失。在开发此功能的过程中,我开始考虑在代理环境中良好地使空间空间(SSM)模型所需的条件。与变压器不同,SSM缺乏完整的注意力机制,很难处理远程反向依赖性。但是,如果他们可以掌握基于文件的基于内存的长期状态的内存,而不是在上下文中保存它们的速度和效率,则可以导致全新的代理类。 SSM代理可以是神经图灵机的真正替代方法。通过重新运行pansin来操纵pansin,如果您使用了手腕,您可能会注意到一个有趣的现象:处理复杂的任务时,它通常会创建一个todo.md文件,并随着任务正在出现,单独完成项目而逐渐更新它。这不是一个很小的举动,它是故意设计的注意力控制机制。在马努斯中,一个共同的任务需要平均大约有50个工具调用。这是一个漫长的循环。由于马努斯依靠LLM来做出决策,因此它很容易偏离主题,或者在长篇小说或复杂的任务中忘记早期目标。通过继续写下该怎么做的列表,Manus在上下文结束时“写”目标。通过这种方式,全球计划被推向了近期关注的范围,避免了“ gitllose”问题并减少了虚假反击的目标。实际上,它使用自然语言将注意力偏向于任务目标,而没有任何特殊的建筑变化。保持错误的内容,智能将出错。这不是一个缺陷,而是现实。语言模型将产生幻觉 - 枪支,侧面似乎是一个。失败的目的是删除证据。没有证据,该模型将无法适应。根据我们的经验,改善代理行为的最有效方法之一似乎很简单,但极具欺骗性:在上下文中留下了错误的道路。何n模型看到了失败的动作,以及随后的堆栈观察结果或痕迹,它巧妙地更新了内部信念。这将使前身从相似的动作中删除,并减少重复相同错误的可能性。实际上,我们认为错误恢复是代理人真实存在的最亮指标之一。但是,大多数学术研究和公共基准仍未衡量,这些研究倾向于在完美条件下关注任务的成功。几次射击动机不要被适得其反,是提高LLM输出的常见方法,但是在代理系统中,它可以轻柔地适得其反。语言模型是伟大的模仿者;他们模仿上下文行为模式。如果您的上下文中充满了许多类似的动作观察动作对,那么该模型即使不再是最好的,也倾向于遵循此模式。对于涉及重复决策或活动的情况可能是危险的。例如,当使用男人时为了帮助完成20次简历,代理人倾向于陷入节奏 - 仅重复,因为在上下文中出现了类似的操作。它可能导致漂流,过度概括,有时甚至是幻觉。解决方案是增加差异。 Manus在动作和观察结果(例如各种序列化模板)中引入了一小部分结构化变化,以换取以这种方式的部分扰动表示,遵守或格式。这种受控的随机性有助于打破固定模式,并且模型的注意力很好。换句话说,不要用一些示例捕获自己。上下文越简单,代理越脆弱。结论上下文的上下文是一门新兴学科。但是对于代理系统,这是必要的。模型可以更强,更快,更便宜,但是无论本地能力有多强大,它们都无法取代记忆,环境和反馈。您如何塑造上下文最终决定代理的行为:操作速度,恢复能力和局限性。在马努斯(Manus)中,我们通过重新构思,死胡同,对数百万用户进行真实试验,从而了解了这些经验。我们在这里共享的内容不是普遍的事实,而是被证明和有效的模型。如果他们帮助您避免重复痛苦,那么这篇文章是值得的。代理商的未来逐渐通过上下文建立。请正确设计它们。