LangChain Tools工具使用
未完待续
关于大模型工具使用有关前置知识和原理,已经在下面文章提到:
1.概述
本文介绍基于langchain开发具有工具使用(Function calling)功能的智能体Agent
2.实现
langchain开发Agent,需要安装包
pip install langchain==1.1.2
pip install langchain-openai
pip install langchain-classic实现工具方法供大模型调用,并通过函数装饰器@tools修饰工具方法
@tools常用属性
| 属性 | 类型 | 描述 |
|---|---|---|
| name_or_callable | str | Callable | 名称 |
| description | str | 描述工具的功能,会作为上下文发送给大模型 |
| args_schema | ArgsSchema | 可选择性地指定参数格式 |
| return_direct | bool | 是否直接从工具返回 |
/my_tools.py
from langchain.tools import tool
from pydantic import BaseModel
from pydantic import Field
class FiledInfo(BaseModel):
"""
定义参数信息
"""
city: str = Field(description='城市')
@tool(args_schema=FiledInfo, description='根据城市名称获取温度')
def tp_tool(city: str) -> int:
print('=======tp_tool=======')
if city == '北京':
return 12
elif city == '武汉':
return 23
elif city == '沈阳':
return -10
elif city == '泉州':
return 27
else:
return None
if __name__ == '__main__':
print( tp_tool.invoke({'city': '沈阳'}) )
使用create_agent创建智能体agent,绑定模型和工具,然后调用invoke()执行
/test_tool2.py
import os
from langchain.agents import create_agent
from langchain.chat_models import init_chat_model
from my_tool import tp_tool
llm = init_chat_model(
model = 'deepseek-chat',
model_provider = 'openai',
api_key = os.getenv('DSKEY'),
base_url = 'https://api.deepseek.com'
)
# 创建 Agent,绑定tp_tool工具
agent = create_agent(
llm,
tools=[tp_tool],
system_prompt="""你是一个天气查询助手"""
)
# 执行
result = agent.invoke({
"messages": [{"role": "user", "content": "泉州温度多少"}]
})
for msg in result['messages']:
if hasattr(msg, 'content'):
print(f"{msg.__class__.__name__}: {msg.content}")输出结果
=======tp_tool=======
HumanMessage: 泉州温度多少
AIMessage: 我来帮您查询泉州的温度。
ToolMessage: 27
AIMessage: 根据查询结果,泉州的当前温度是**27°C**。"如果文章对您有帮助,可以请作者喝杯咖啡吗?"
微信支付
支付宝
LangChain Tools工具使用
https://blog.liuzijian.com/post/2025/12/24/langchain-tools/