tools#

工具是代理用来与世界交互的类。

每个工具都有一个描述。代理使用描述来选择适合工作的工具。

类层次结构:

RunnableSerializable --> BaseTool --> <name>Tool  # Examples: AIPluginTool, BaseGraphQLTool
                                      <name>      # Examples: BraveSearch, HumanInputRun

主要助手:

CallbackManagerForToolRun, AsyncCallbackManagerForToolRun

tools.base.BaseTool

LangChain工具必须实现的接口。

tools.base.BaseToolkit

基础工具包,表示一组相关工具的集合。

tools.base.InjectedToolArg()

用于标注一个应由模型生成的工具参数的注释。

tools.base.InjectedToolCallId()

用于注入 tool_call_id 的注解。

tools.base.SchemaAnnotationError

当 'args_schema' 缺失或类型注释不正确时引发。

tools.base.ToolException

工具在执行错误时抛出的可选异常。

tools.retriever.RetrieverInput

检索器的输入。

tools.simple.Tool

直接接收函数或协程的工具。

tools.structured.StructuredTool

可以在任意数量的输入上操作的工具。

函数

tools.base.create_schema_from_function(...)

从函数的签名创建一个pydantic模式。

tools.base.get_all_basemodel_annotations(cls, *)

tools.convert.convert_runnable_to_tool(runnable)

将Runnable转换为BaseTool。

tools.convert.tool()

将函数转换为工具,可以带参数或不带参数使用。

tools.render.render_text_description(tools)

以纯文本形式呈现工具名称和描述。

tools.render.render_text_description_and_args(tools)

以纯文本形式呈现工具名称、描述和参数。

tools.retriever.create_retriever_tool(...[, ...])

创建一个用于文档检索的工具。