Agent
Agent 是一种能够感知环境、做出决策并执行动作的智能实体。
Agent是用更多的成本(多轮推理 + 多次工具调用 + 更高延迟/Token),换开发与维护成本的下降(分支更少、扩展更快、长尾更适配)
Function Calling
是模型和外部工具和系统交互的核心机制。
输入问题时,AI应用会将问题以及函数列表都塞给模型,模型会根据问题来判断是否需要调用函数,如果需要调用函数,会输出一个结构化的JSON,其中包含了要调用的函数名和参数。 之后AI应用再调用函数,将返回结果再给模型,模型处理结果,将最后结果返回出来。
模型额外的能力由预定义好的函数列表来决定,另外是否调用完全由模型的识别能力来决定。
优点:拓展了模型的训练集,提高了模型的知识面,能回答的问题更多了
缺点:
- 模型能力需要预定义,每次回答都需要携带定义的列表
- 模型需要额外的推理时间来判断是否调用函数,增加了响应时间
- 函数调用失败后,模型无法自动恢复,需要人工干预
MCP(Model Context Protocol)模型上下文管理协议
包裹了Function Calling的中间层,是为了解决AI应用逐渐复杂导致的难以维护的问题。
MCP引入了“客户端-服务器”架构标准化,只需要一个客户端,就能接入所有符合MCP协议的服务器; 同样的,一个MCP服务器,也能被所有标准的MCP客户端使用。AI应用的难度从N*M降到了N+M。
AI模型不再直连外部API,而是连接MCP Server
优点:解决了外部链接过多的维护问题,只要符合MCP标准的就可以
缺点:并没有解决过多链接带来的调用错误问题
Skills
Skills是对MCP和Function Calling的优化和改进,是进化版本。
Claude对Skills的定义是:一个包含了说明书、脚本和资源的包。模型在执行任务时会先扫描所有的Skills,判断哪些对当前任务有用,再将完整内容拉到上下文中使用。
不再由模型根据语义去理解判断调用哪个工具,而是直接在Skills中声明清楚,应该用什么工具、如何用。
核心价值在于“如何正确使用工具”,降低选择工具的随机性。
Skill中会有:该技能的用途,以及如何才能达到该技能的步骤。
简单的示例如下如:
用于写一份年度报告。
首先需要调用 get_date 获取时间,
再调用 report 写年度报告。
输出时需要用以下结构xxx
...