趋近智
代理不只进行简单的文本生成,它们的能力因此得以提升。它们通过工具进行交互。可以将工具看作是代理可以选择使用的专业功能或服务,以完成任务的特定部分。如果说大型语言模型(LLM)是代理的大脑,负责决定做什么,那么工具就是它的手,让它能够执行操作。LangChain 提供了一系列预构建工具,并且可以方便地定义自己的工具。
让代理能够使用工具,会显著增加其能力范围。仅凭大型语言模型本身,无法浏览当前的互联网、执行精确计算或查询私有数据库中的信息。工具弥补了这一不足。
LangChain 提供了多种工具,通常分为几个实用的类别:
搜索工具: 这类工具让代理能够查询 Google、DuckDuckGo、Bing 等搜索引擎,或专门的搜索 API(例如维基百科、ArXiv)。当代理需要获取最新信息或训练数据中没有的事实时,这类工具非常必要。例如,当代理被问及今天的天气时,就会使用搜索工具。设置这些工具通常需要从相应的搜索提供商获取 API 密钥,并安全地配置它们(如第 2 章中说明的)。
计算工具: 尽管大型语言模型理解数学思想,但它们在精确算术或复杂计算方面常有不足。计算工具解决了这个问题。
LLMMathChain:此工具使用大型语言模型确定需要进行什么计算,然后使用一个独立的、性能稳定的计算器(如 Python 的 numexpr 库)来获得精确答案。Python REPL Tool:这为代理提供了访问 Python 读取-评估-打印循环(Read-Eval-Print Loop)的能力。代理可以编写和执行 Python 代码来执行计算、操作数据或进行 Python 允许的任何其他操作。请极其谨慎地使用此工具,因为它允许任意代码执行。数据库工具: 代理可以与存储在 SQL 数据库中的结构化数据进行交互。SQLDatabaseToolkit(或特定工具如 QuerySQLDataBaseTool)允许代理查看数据库模式、根据自然语言请求构建 SQL 查询、执行这些查询并理解结果。这使得询问公司数据库中存储的业务指标等应用成为可能。
API 交互工具: 许多现代应用程序依赖于 API。代理可以配备与特定 API 交互的工具。这可能包括:
requests 库的封装),代理可以在其中生成 API 调用。文件系统工具: 代理可以获得在本地文件系统上读取、写入和列出文件的工具。与 Python REPL 工具类似,这需要仔细考虑安全方面的问题,因为它可能授予广泛的访问权限。
网页浏览工具: 除了简单的搜索,有些工具还允许代理加载网页内容,可能从中提取特定信息,甚至在网站中进行导航。这在底层使用了 requests 或 BeautifulSoup 等库。
当你初始化一个代理时,你需要向它提供一个可用 Tool 对象列表。每个 Tool 通常都有一个 name(例如,“搜索”、“计算器”)和一个 description。代理的大型语言模型利用这些描述来决定哪个工具(如果有的话)适合满足用户的请求或帮助达成其目标。代理的内部逻辑决定了序列:接收输入,决定采取行动(使用工具或直接回应),执行行动,观察结果,然后重复,直到任务完成。
一个代理接收用户输入,分析所需动作,选择并执行合适的工具(如搜索),观察结果,并组织最终回应的过程。
你不仅限于使用 LangChain 提供的工具。此框架的一个重要优势在于能够轻松地从自己的 Python 函数创建自定义工具。通过添加一个描述函数功能的特定文档字符串(docstring),你可以将其封装在一个 Tool 对象中,赋予其名称和描述,并使其可供代理使用。这使你能够整合专有逻辑、内部服务或应用程序所需的任何专业功能。
了解可用工具以及代理如何选择和使用它们,对于构建能够有效解决复杂多步问题的智能工作流程非常重要。接下来的部分将指导你如何实现代理并在实际中应用这些工具。
简洁的语法。内置调试功能。从第一天起就可投入生产。
为 ApX 背后的 AI 系统而构建
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造