工具¶
许多 AI 应用程序直接与人类交互。在这些情况下,模型以自然语言进行响应是合适的。 但如果我们要让模型也直接与系统(如数据库或 API)交互呢? 这些系统通常有特定的输入模式;例如,API 通常需要特定的负载结构。你可以使用 工具调用 来请求符合特定模式的模型响应。
工具 是一种封装函数及其输入模式的方法,可以传递给支持工具调用的聊天模型。这允许模型请求使用特定输入执行此函数。
工具 可以传递给支持 工具调用 的 聊天模型,允许模型使用特定输入请求执行特定函数。
工具调用¶
工具调用的一个关键原则是,模型根据输入的相关性决定是否使用工具。模型并不总是需要调用工具。 例如,对于与工具*无关*的输入,模型将不会调用工具:
结果将是一个包含模型以自然语言回复的 AIMessage
(例如,“Hello!”)。
然而,如果我们传递一个与工具*相关*的输入,模型应该选择调用它:
和之前一样,输出 result
将是一个 AIMessage
。
但如果调用了工具,result
将具有一个 tool_calls
属性。
此属性包含执行工具所需的一切信息,包括工具名称和输入参数:
有关更多使用细节,请参阅如何操作指南。
执行工具¶
LangGraph 提供了预构建组件 —— ToolNode
和 create_react_agent
—— 代表用户调用工具。
请参阅此 操作指南 了解如何调用工具。
预构建工具¶
LangChain 支持与 API、数据库、文件系统、网络数据等交互的广泛预构建工具集成。这些工具扩展了代理的功能,并实现了快速开发。
您可以在 LangChain 集成目录 中浏览所有可用集成的完整列表。
一些常用的工具类别包括:
- 搜索:Bing、SerpAPI、Tavily
- 代码解释器:Python REPL、Node.js REPL
- 数据库:SQL、MongoDB、Redis
- 网络数据:网页抓取和浏览
- API:OpenWeatherMap、NewsAPI 等其他 API
这些集成可以通过上述示例中展示的相同的 tools
参数配置并添加到您的代理中。