AI智能体生态正在经历一场词汇碰撞。"工具"在LangChain里是一个意思,在AutoGPT里是另一个意思,到了Claude的函数调用文档里又完全不同。"Skill"和"agent"同样被过度加载——一个"agent"可能是简单的提示包装器,也可能是能订机票、部署代码的完全自主系统。2024年底出现的"MCP"又给这个混乱的词汇表添了新成员。
这种混乱在架构层面是有代价的。当层级被混为一谈,测试变得更困难,复用性下降,更换模型意味着重写半个系统。一个编排15个步骤的函数被称为"工具",一个把API调用串起来的提示被称为"agent"。结果是代码库中没有任何东西是可组合的。
一个四层心智模型能解决大部分困惑——类似于OSI模型为网络提供了共享词汇,MVC澄清了Web应用结构。这不是僵硬的规范,而是让架构讨论更高效的框架。
第一层:Tools——原子
工具是执行单一原子操作的无状态函数。它点击按钮、读取文件、调用API或截取屏幕截图。工具没有记忆、没有规划能力,也不知道自己为何被调用。
核心特性:确定性(或接近确定性)、可独立测试、可组合——设计为被更高层调用、环境特定——macOS上的click()与Android上的click()实现不同,即使接口相同。
典型示例:screenshot()截取当前屏幕、click(x, y)在坐标处点击、read_file(path)返回文件内容、http_get(url)获取URL。工具是最小的可组合单元:接受输入,执行一个动作,返回结果。没有支线任务。网络类比:单个HTTP端点。GET /users/:id不了解业务逻辑——它从数据库获取一行并返回。
第二层:MCP(Model Context Protocol)——连接器
MCP是跨进程边界的工具发现与调用的标准化传输层。把它想象成AI系统的GraphQL或gRPC——它定义工具如何被发现、描述和调用,而非它们做什么。
MCP出现之前,每个智能体框架都有自己的工具集成规范。为LangChain构建工具意味着要为AutoGPT重建,为CrewAI又要再做一次。MCP标准化了三件事:发现——"这个服务器上有哪些工具可用?"、模式——"这个工具接受什么参数?返回什么?"、传输——stdio、HTTP或WebSocket,调用代码选择传输方式。
MCP关乎互操作性,而非智能。MCP服务器暴露工具,从不决定何时使用它们。调用智能体做所有决策。MCP服务器是呈上菜单、接受点单的服务员——它不选择菜品。
MCP的价值场景:工具存在于不同进程或机器上时;需要热插拔工具集而不重启智能体时;构建工具生态,希望一次编写、到处运行时。
第三层:Skills——编排逻辑
Skill是将多个工具按特定顺序组合以完成连贯任务的工作流。它知道先调用什么、后调用什么,以及如何将一个工具的输出映射为下一个工具的输入。
关键区别:Skill做决定,但不做开放域决策。它遵循预定义路径。如果说工具是词汇表中的单词,Skill就是语法规则——它把单词组合成有意义的句子,但不发明新句子。
示例:一个"预订航班"Skill可能:1)搜索航班 2)选择最便宜的选项 3)填写乘客信息 4)提交预订。每一步都是工具调用,但Skill编排顺序并处理工具间的数据流。
Skill通常是硬编码的(代码中的显式步骤)或半动态的(基于模板,带条件分支)。它们不是通用的——一个为预订航班编写的Skill不能直接用于预订酒店,即使底层工具相似。
第四层:Agents——目标驱动的执行者
Agent是接收高层次目标并自主决定如何达成它的系统。它把目标分解为子任务,选择使用哪些Skill或工具,应对错误,并在过程中调整策略。
Agent的关键能力:规划——将"部署这个应用"分解为步骤;工具选择——决定调用哪个Skill或工具;错误恢复——当工具失败时尝试替代方案;状态跟踪——在多次调用间维护上下文。
Agent本身通常不实现工具逻辑。它编排Skills,而Skills编排Tools,Tools通过MCP暴露。Agent是CEO,Skills是部门主管,Tools是一线员工,MCP是内部沟通协议。
这种分层为什么重要?清晰的边界让测试成为可能——单独测试Tools,用mock测试Skills,用模拟环境测试Agents。它实现复用——同一个Tool可以通过MCP被多个Skills使用,同一个Skill可以被多个Agents调用。更换模型时,只有Agent层需要调整,底层保持不变。
当这些层级被混淆,系统变成一团无法测试、无法复用、无法演进的泥球。四层模型不是银弹,但它提供了一个足够清晰的共享词汇,让团队能讨论架构而不陷入定义之争。
热门跟贴