首页 / 文章

10分钟角色构建揭示了真实建筑学的哪些真相

像TrueForge这样的十分钟代理构建工具会隐藏Deep Agents或LangGraph迫使你面对的架构决策:技能、MCP工具、状态以及失败路径。

发布者:REACTAPP.TOP阅读约 7 分钟1630 词

来源: I Built an Agent in 10 Minutes. Then I Understood Why Building One Takes So Long.

通过使用 LangGraph、Deep Agents 和 TrueForge,我们了解了抽象概念、控制机制以及智能体实际的行为方式。

在开发 DEVIN 的过程中,大量精力都投入到了那些人们在直接使用 AI 智能体时根本看不到的环节中。

连接 Deep Agents 的组件。

将 Daytona 配置为沙箱环境。

利用 Ingest 处理流式数据与后台任务。

让所有这些组件协同工作。

进展十分缓慢。

但在这漫长的努力过程中,人们逐渐清晰地认识到构成智能体系统的真正要素是什么。

不仅仅是模型本身。

围绕它的所有要素。

运行时环境。

相关工具。

沙箱环境。

协调层。

智能体之间交流以及任务交接的方式。

后来一场黑客松出现了,TrueForge也随之诞生。

几乎立刻就显而易见,那些原本需要耗费大量精力手工搭建的基础设施,其实可以交由平台来处理。

构建一个可运行的智能体仅需大约十分钟:连接相关的MCP,加入必要的工具,编写描述其行为的SKILL.md文件,然后直接运行即可。

在花了那么多时间从零开始构建基础设施之后,这简直容易得令人难以置信。

说实话,这真的很厉害。

这正是优秀的抽象层应有的体验。

不过,这种便捷背后隐藏的代价当时还不明显。

十分钟就能搞定的智能体

最初的反应完全是惊叹于这一过程的轻松便捷。

TrueForge负责处理相关的基础设施,而将描述智能体实际应执行任务的职责交给了技能定义。

这确实是一种非常出色的抽象方式。

新增的MCP是可见的。

各种工具也是可见的。

SKILL.md文件同样清晰可见。

所有内容都一目了然,易于理解。

因此人们便养成了习惯,总是优先使用它。

只有经过持续使用后,一个在黑客松期间并未显现的细微问题才浮出水面。

人们关心的并非能够检查什么,

而是真正的架构存在于何处。

单凭一个技能并不足以构成架构

根代理会读取技能文件,并以此决定如何运用所赋予的能力,包括何时以及以何种方式启动子代理。

这意味着一个单独的SKILL.md文件就能悄然决定代理大部分行为结构。

想象一下想要构建类似这样的系统:

                    Root Agent
                   /          \
                  /            \
            Researcher        Coder
                /                \
               /                  \
          Searcher              Tester

仅仅告诉根代理“这是你的工具,自行创建所需的子代理并处理问题”与设计整个系统并非同一回事。

真正重要的是直接定义架构:

  • 存在哪些代理
  • 每个代理负责什么任务
  • 哪些工具分配给哪个代理
  • 每个代理会接收到什么上下文信息
  • 何时应该进行任务委派
  • 出现故障后的恢复方案是什么

这就是开始显现出来的区别。

使用 Deep Agents 方法时,架构是需要人工刻意构建的。

使用 TrueForge 时,基础设施部分要简单得多,但行为架构最终取决于核心智能体是否按照预期方式理解技能。

这种依赖性使得整个系统的行为更紧密地与底层模型相连。

性能更强的模型可能会完全按照设计意图来解读技能。

性能较弱的模型则可能对相同的指令采取完全不同的处理方式。

同样的技能文件。

同样的工具。

却产生不同的行为结果。

纸面上的架构并未改变。

只有模型对这一架构的理解发生了变化。

正是这一差距使得这种方法难以被完全信任。

参与AEGIS项目进一步加剧了这种担忧

在开发AEGIS的过程中,团队遇到了一个简单却能揭示问题的状况。

该智能体应当负责调查Node.js事件循环阻塞的情况。

它需要检查代码、复现问题、分析运行时行为、诊断根本原因、提出修复方案,并确认修复措施确实有效。

初期,验证阶段基本上只是向模型下达指令,内容大致如下:

执行实验,比较所得指标,判断修复方案是否真正解决了问题。

然而让大型语言模型自行判断其修复方案是否成功,其实并不能算作真正的验证。

因此,该逻辑中的确定性部分被移至代码中,而非提示文本中。

模型负责进行推理。

系统负责执行测量。

验证器负责发起调用。

这段经历形成了一项如今广泛适用于智能体设计的原则:

如果某事物无法被观察,就无法对其进行恰当测试。若无法测试,就无法对其进行评估。而一旦无法评估,也就无法可靠地对其进行改进。

这正是架构至关重要的原因。

并非因为包含更多框和箭头的图表就一定更优。

而是因为你需要清楚地了解究竟是什么导致了你试图改进的行为。

“它能运行”与“我明白它为何能运行”

两种不同的智能体在技术层面上都可能取得成功。

它们都能完成分配的任务。

在现场演示中,它们的表现也可能都很出色。

真正的考验在于出现故障时。

对于某一类智能体,可以追踪其精确的执行路径:

Root Agent
    ↓
Researcher
    ↓
Search Tool
    ↓
Result
    ↓
Root Agent
    ↓
Coder
    ↓
Sandbox

每个决策点都可以被仔细检查与分析:

为什么会出现这一步?

而对于另一类智能体,只有描述预期结果的规则,具体路径则由模型自行决定。

当这种方式有效时,它看起来极为简单。

但一旦失败,调试时的问题就变得难以解答:

故障是源于模型本身、指令内容、任务分配逻辑、提供的上下文,还是模型自行设计的架构?

第二种情况是更难解决的难题。

而这正是TrueForge所传授的

在接触该平台之前,人们通常认为构建智能体的难点完全在于基础设施层。

实际使用后这种观念发生了改变。原来基础设施只是问题的一半而已。

基础设施是可以被抽象出来的。

行为则难以被抽象。

平台可以提供沙箱环境。

它可以提供MCP接口。

它可以提供流式数据传输功能。

它甚至可以提供完整的运行时环境。

然而,如果你要构建的智能体的行为真正具有实际意义,你仍然需要自己回答一些问题:

是哪个组件在做出何种决策?

什么被允许执行什么操作?

授权究竟发生在哪里?

你对这一流程能了解多少?

你实际上能够衡量或评估什么?

当出现问题时,有哪些手段可以解决?

这些都是绝不能轻易交由他人处理的事项。

要弄清楚失败原因需要多长时间?

在十分钟内组装出一个代理程序确实是一项了不起的成就。

但相比速度,一个更有意义的问题愈发重要:

要弄清楚失败原因需要多长时间?

生产环境不会因为首次演示成功而给予奖励。

它们惩罚的是第十次失败。

那些返回意外结果的工具。

那些较为薄弱的底层模型。

在不应交接任务时却进行交接的代理。

在该交接任务时未能完成交接的代理。

宣称“已完成”,但实际上什么都没做到的代理。

正是在这种情况下,架构才显得至关重要。

实际学到了什么

回顾DEVIN项目,真正的收获并非掌握Deep Agents、Daytona或Ingest这些独立工具,

而是理解了代理系统各组件之间是如何相互连接的。

TrueForge进一步展示了如何快速将这些组件抽象出来隐藏起来。

而使用它也揭示了这种便利性的另一面:

基础设施可以从工作流中消失,但相关行为并不会随之消失。

仍然需要有人来管控这些行为。

仍需有人亲自观察其实际运行情况。

仍需有人评估它是否有效运作。

还有人需要决定在系统出故障时该做哪些调整。

这种责任应当由自己掌控,而非外包出去。

智能体架构的发展方向

这一经验也改变了我们更广泛地理解智能体系统发展路径的方式。

该领域已经历多个发展阶段:

模型 → 工具 → MCP → 智能体 → 深度智能体

在每个阶段,所需的配套基础设施都变得越来越容易获取。

从这一视角来看,未来最重要的层面是围绕模型的支撑框架。

重要的不仅仅是模型本身的原始能力,还有为其提供支持的整个系统:

上下文、工具、执行流程、权限、协调机制、内存管理、可观测性、评估以及控制。

随着模型不断改进,仅靠模型的原始质量已无法成为决定性因素。

未来值得探讨的工程问题将越来越倾向于:

围绕该模型构建了怎样的环境?我们能在多大程度上控制它的行为?

这可以说是构建DEVIN以及后来在十分钟内组装智能体的核心经验。

构建智能体的难度越低,理解其周边所有要素的重要性就越高。