乐于分享
好东西不私藏

AI Agent应用开发框架(一)工具调用

AI Agent应用开发框架(一)工具调用
一、工具调用基础概念
工具调用(Tool Calling)
大模型不再只输出纯文本,而是根据用户需求,主动判断并调用外部工具 / 函数执行任务,再结合工具返回结果整理回答,是大模型落地实用功能的核心能力。

二、核心角色与组成

1、大模型(Chat Model):负责理解意图、判断是否需要调用工具、生成工具调用指令,是决策端。

2、工具(Tool):外部能力封装(查询天气、计算器、接口请求、数据库查询等),接收参数并返回执行结果。LangChain 中统一由 BaseTool 作为基类。

3、代理/执行器(Agent):串联流程:解析模型的调用指令 → 执行对应工具 → 把工具结果回传给模型,形成闭环。

4、消息体系:沿用聊天消息结构,新增工具相关消息类,承载调用请求、工具返回内容。

三、工作流程

(1)提供工具蓝图:展示工具列表—工具的模式—工具的说明书(名称、功能、参数)

(2)大模型进行推理和规划:挑选工具

(3)生成调用指令:生成结构化的JSON对象(工具名称、从用户请求中提取出的参数)

(4)代码负责执行:JSON对象作为模型的响应返回给应用程序—解析JSON—函数、方法

(5)将结果反馈给大模型:工具执行完毕—包装成一个特定的消息格式—返回给大模型

(6)大模型生成最终回复:大模型收到工具执行的结果—使用自然语言对这个结果进行解析和总结—生成一个友好的回复

四、LangChain 关键类

1、BaseTool:所有工具的抽象基类,自定义工具必须继承,核心属性:name(工具名)、description(功能描述,模型靠它判断是否调用)、args_schema(参数结构)。

2、ToolMessage:工具执行后返回结果的消息类,用于回传数据给模型。

3、AIMessage (带 tool_calls):模型发起工具调用时的消息,tool_calls 字段存放调用名称、参数等指令。

五、核心特点

依赖描述:工具的 description 是模型识别调用场景的关键,描述越精准,调用准确率越高;

结构化交互:不再是纯文本流转,全程靠结构化参数 + 专用消息对象通信;

可多轮调用:复杂任务可连续调用多个工具、循环调用同一工具,直至任务完成。