使用@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内部保留的
开发中,习惯使用函数名作为工具名称,不推荐自定义工具名称