二、核心角色与组成
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 是模型识别调用场景的关键,描述越精准,调用准确率越高;
结构化交互:不再是纯文本流转,全程靠结构化参数 + 专用消息对象通信;
可多轮调用:复杂任务可连续调用多个工具、循环调用同一工具,直至任务完成。
夜雨聆风