工具的定义方式2:使用@tool装饰器(推荐)

使用@tool装饰器修饰,可以自动将普通Python函数转化为智能体可调用的工具。

此方式最直接,代码量极少,非常适合快速验证想法或创建参数简单的工具

自定义工具描述:description

情况1:仅提供docstring信息

在bind_tools()调用时,先将函数封装为BaseTool类型的对象,再传递给convert_to_openai_tool函数,生成工具的描述。

@tool会从docstring生成描述信息,同样要求遵循Google docstring规范,如果没有docstring则报错

情况2:添加工具描述:description

@tool的参数description可以更改工具描述,优先级高于docstring的函数说明

情况3:解析docstring:parse_docstring

当我们没有向@tool传递description参数时,默认情况下,tool会将docstring整体视为description,如下

通过将parse_docstring 设置为True,docstring会被解析,填充到相应的字段描述中

description参数优先级依然最高

要注意:不使用@tool装饰器时,docstring不合法会被视为普通文本,作为description,但如果使用@tool时docstring不合法,将会抛出异常

更改工具名称:name_or_callable

默认情况下,使用函数名作为工具名称,但可以向@tool传参name_or_callable,以更改工具名称

说明:不要使用config或runtime作为参数名,这些是LangChain内部保留的

开发中,习惯使用函数名作为工具名称,不推荐自定义工具名称

相关推荐
爱泡脚的鸡腿2 小时前
langchain学习-D1-了解langchain家族与rag
langchain
读书读傻了哟2 小时前
langfuse部署相关
langchain·language model·langfuse
小易老师AI实战4 小时前
LangChain + MCP 协议:Agent 接入联网搜索(Tavily MCP)完整实践
langchain·agent·ai智能体·大模型应用·mcp·联网搜索
hackchen7 小时前
LangChain 学习第 2 课 - 提示词模板(Prompt Template)
学习·langchain·prompt
for_ever_love__8 小时前
LangChain 1.0 迁移指南:哪些 API 变了,怎么改
chatgpt·langchain·升级·新版本·迁移·变化·1.0
for_ever_love__9 小时前
LangChain 结构化输出:让模型稳定吐出符合 schema 的 JSON
langchain·json
flash俊杰1 天前
给 7B 小模型当 Agent 框架:真机三轮排障,十条失败链逐个补
langchain
打工仔折腾 AI1 天前
LangChain 工具调用实战:从 Tool 定义到 Agent 执行链路拆解
java·前端·人工智能·后端·python·langchain·ai agent 实战
for_ever_love__1 天前
LangChain 上线部署:把链和 Agent 变成能对外服务的 API
langchain·部署·fastapi·rest api·服务·上线·langserve