LangChain 智能体怎么调用工具?用天气函数跑通一次可核对的对话

用 LangChain create_agent 注册一个可核对的天气工具,观察工具调用参数、返回值和最终回答,跑通最小智能体。

学习 LangChain 智能体时,先用一个本地确定性工具比接真实天气 API 更容易排错。模型负责决定何时调用,函数负责返回可核对数据。 示例中的天气数据是人为固定的接口演示,不是真实天气,代码未在你的模型与 LangChain 版本上实测;安装包、模型字符串和返回消息结构以当前官方文档为准。

本篇验收要点:用 @tool 定义 get_weather,再把函数放进 create_agent 的 tools 列表。 执行后同时检查消息序列中的工具调用参数、工具返回值和最终回答,不能只看最后一句。

LangChain 智能体怎么调用工具?用天气函数跑通一次可核对的对话

安装与准备

在独立环境安装当前官方文档要求的 langchain 和对应模型提供商包。API 密钥使用环境变量,不写进脚本。示例把天气函数固定为两个城市,目的是验证调用协议。

定义工具并创建智能体

from langchain.agents import create_agent
from langchain.tools import tool

@tool
def get_weather(city: str) -> str:
    """Return the demo weather for a supported city."""
    data = {
        "Beijing": "clear, 22 C",
        "Shanghai": "cloudy, 24 C",
    }
    return data.get(city, "unsupported city")

agent = create_agent(
    model="YOUR_SUPPORTED_MODEL",
    tools=[get_weather],
    system_prompt="Use get_weather for weather questions. Do not invent data.",
)

result = agent.invoke({
    "messages": [{"role": "user", "content": "What is the weather in Beijing?"}]
})
for message in result["messages"]:
    print(type(message).__name__, message.content)

从中间消息判断是否真的调用

输出中应包含模型的 tool call、工具消息和最终 AI 消息。如果模型直接回答天气而没有工具调用,先检查模型是否支持工具协议、工具描述是否清楚、系统指令是否要求使用工具。把真实 API 接进来之前,还要给工具设置超时、参数白名单和明确的错误返回。

读者下一步是先把模型凭证放入环境变量,然后用固定城市 Beijing 运行一次示例。

验证标准是模型生成一次 get_weather 调用、参数 city 为 Beijing、工具返回预设字符串,最终回答没有添加工具未提供的温度或降雨信息。

常见问题

为什么最后回答正确却没有工具消息?

可能是模型凭常识猜出了答案。检查完整消息序列,并把测试值设置成模型不可能预知的固定字符串。

工具函数可以直接做写操作吗?

先从只读工具开始。涉及发信、删除或付费时,应加入审批、幂等键和执行结果核对。

官方资料与适用边界

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/31158.html

赞 (0)
AI小管家的头像AI小管家
Dify 本地部署后怎么用 DeepSeek?接入 Ollama 并验证模型请求
上一篇 1天前
LangChain 智能体怎么返回固定格式?用结构化输出校验字段
下一篇 1天前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部