在讨论人工智能代理(AI Agent)的设计时,我们主要关注两个核心概念:skill 和 subagent。这些概念都通过prompt来组织和实现,类似于工具的使用说明书。大模型拥有一个工具清单,可以根据不同场景决定何时触发skill、agent或MCP的prompt。此外,上下文管理也是设计中的重要部分。

MCP(可能指某种管理或处理上下文的组件)被批评为过于臃肿,因为它倾向于一次性将所有工具的详细说明加载到上下文中。相比之下,skill采用渐进式加载,仅在需要时加载工具的完整说明。Subagent则解决了上下文污染和过载的问题,通过将子任务委托出去,子任务的中间结果不会影响或占用主agent的上下文。例如,强大的chrome dev tool mcp如果封装成subagent,只需执行特定的任务如查日志、截图、分析,并将分析结果返回给主agent。

Skill的重点在于prompt发现和懒加载,适合任务复合程度不高的情况。例如,一个主agent作为路由,根据用户请求加载不同的场景能力,如YouTube总结或写PPT。Subagent则侧重于过程压缩,执行过程独立于当前agent,对当前agent而言仅是一个工具调用。此外,还有一种结合两种方式的方法,即在节点发现需要skills时,加载执行后压缩从需要skills的节点到结果节点的tool use过程。

AI Agent要变强,可以通过两种不同的路径:一是通过skill内化新能力,二是通过subagent外包任务。Skills像是给主agent装插件,而subagent像是委托外包。两者的区别主要在于上下文管理,即AI的记忆。Skills模式下,所有能力说明都放在同一张“桌子”上,信息互通但容易混乱;Subagent模式下,subagent在另一张桌子上工作,保持主agent的桌面干净但需注意信息传递。

选择哪种方式取决于子任务的复杂性和是否需要全程掌控。Skills适合任务不复杂或需要全程掌控的情况,而subagent适合子任务复杂、耗时且中间过程繁琐的情况。例如,浏览器调试工具如果封装成subagent,可以避免占用主agent的上下文。

此外,Skills和Subagent可以结合使用,如“先展开再压缩”或使用文件系统做中转站,以提高效率和保持上下文精简。最后,AI Agent的竞争正在从能调用多少工具转向如何优雅地管理这些工具,这需要深入思考AI的工作记忆如何组织,以及如何选择合适的技能和subagent来完成任务。

标签: none

评论已关闭