LangChain 的 Agent 会将模型与工具结合起来,在实现上由一个基于 LangGraph 的图结构来编排执行流程,如下所示。
![图片[1]-4.2 工具调用流程分析-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-812.png)
这与前文得到的 Agent 图结构是一致的,本质上就是经典的 ReAct 结构:一个具备“ 思考-行动-观察”不断循环的自主工作者。
用户问题 → AI 思考 → 调用工具 → 观察结果 1 → 继续思考 → … → 最终答案
当用户提出一个复杂需求时,Agent会像人类一样,先理解任务、规划步骤、使用合适的工具(如搜索网络、查询数据库、执行计算)获取信息,Agent 会在一个循环中反复调用模型和工具,直到某次模型输出中不再包含工具调用则结束,最后综合所有信息给出最终答案。
完整流程:
![图片[2]-4.2 工具调用流程分析-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-813.png)
举例:用户问题:“找出当前最流行的无线耳机并检查库存”的任务。
![图片[3]-4.2 工具调用流程分析-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-814.png)
![图片[4]-4.2 工具调用流程分析-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-815.png)
![图片[5]-4.2 工具调用流程分析-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-816.png)
4.3 重试机制
Agent可以在工具调用结果不满足要求时,自主重试。
![图片[6]-4.2 工具调用流程分析-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-817.png)
![图片[7]-4.2 工具调用流程分析-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-818.png)
模型三次调用get_weather ,最终获得了满意的结果。
4.4 常见问题
问题1:Agent 如何选择工具?
依据:工具的 docstring
![图片[8]-4.2 工具调用流程分析-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-819.png)
AI 会根据:
- 问题内容
- 每个工具的描述
- 自动选择最匹配的工具
问题2:Agent 为什么没有调用工具?
原因:
- 工具的 docstring 不清晰
- 问题表述不明确
- 模型认为不需要工具
解决:
![图片[9]-4.2 工具调用流程分析-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-820.png)
问题3:Agent 选错工具?
原因:
- 多个工具的功能描述相似
- 工具太多导致混淆
解决:
- 只给必要的工具
- 工具描述要有明确区分
- 在 system_prompt 中说明工具使用场景
![图片[10]-4.2 工具调用流程分析-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-821.png)
问题4:如何知道 Agent 何时完成?
当 AIMessage 不包含 tool_calls 时:
![图片[11]-4.2 工具调用流程分析-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-822.png)
问题5:Agent 可以调用多少次工具?
默认没有限制,直到得到最终答案。但可能会:
- 超时
- 达到 token 限制
- 模型决定停止
问题6:如何限制工具调用次数?
LangChain 1.0 的 create_agent 默认使用 LangGraph,可以通过配置限制:
![图片[12]-4.2 工具调用流程分析-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-823.png)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
















请登录后查看评论内容