趋近智
智能体提供推理能力,让大型语言模型(LLM)能决定一系列动作,但它们通常需要一些方式与外部环境交互,或执行超出纯文本生成的任务。这时,工具便发挥作用。可以将工具视为智能体能用来收集信息或执行特定操作的专业器具,大幅扩展了其应用范围和功能。
在LangChain这类LLM框架的背景下,工具本质上是智能体可以调用的函数或服务。这些工具封装了特定功能,例如:
通过为智能体提供一套精心选择的工具,您可以使其具备能力克服LLM本身的固有限制,使其回答基于外部数据或动作。
智能体究竟如何决定使用工具并整合其输出?这个过程通常遵循一个迭代循环,常基于像ReAct(推理与行动)这样的模式:
web_search),并为该工具制定所需的输入(例如搜索查询 current weather in London)。7 摄氏度,多云)。这个循环持续到智能体判断它有足够的信息来完成最初的请求。
智能体推理循环。LLM决定是进行内部推理,使用工具采取行动,还是生成最终响应。
像LangChain这样的框架提供了定义和管理工具的便捷方式。工具通常表示为一个对象或函数,它至少具有:
calculator、web_search)。这里是一个使用LangChain的Python @tool 装饰器定义一个简单计算器工具的例子:
# 假设已导入必要的LangChain模块
from langchain.tools import tool
@tool
def simple_calculator(expression: str) -> str:
"""
使用此工具来计算简单的算术表达式。
输入应为一个有效的数学表达式字符串(例如 '2 + 2'、'10 * (4 / 2)')。
只处理基本的加、减、乘、除运算符和括号。
"""
try:
# 警告:对不可信的输入使用 eval() 可能不安全。
# 在生产环境中,请使用更安全的解析库,如 numexpr 或 ast.literal_eval。
result = eval(expression)
return str(result)
except Exception as e:
return f"计算表达式出错:{str(e)}"
# 示例用法(在智能体上下文之外)
# print(simple_calculator.name) # -> simple_calculator
# print(simple_calculator.description) # -> 文档字符串内容
# print(simple_calculator.run("5 * (3 + 1)")) # -> 20
请注意,文档字符串充当了工具的描述。一个好的描述能有效引导LLM。例如,该描述明确说明了何时使用该工具(“计算简单的算术表达式”)、期望的输入格式(“有效的数学表达式字符串”)以及示例。
一旦定义,您在智能体初始化时会向它提供这些工具对象的一个列表。当LLM需要在提示中决定一个行动时,框架会处理向其呈现这些工具(特别是它们的名称和描述)的逻辑。
# LangChain智能体与工具的初始化
from langchain_openai import ChatOpenAI
# 假设 'web_search_tool' 是另一个已定义的工具实例
# from langchain.agents import AgentExecutor, create_react_agent # (示例导入)
# from langchain import hub # (示例导入)
llm = ChatOpenAI(model="gpt-4o", temperature=0)
tools = [simple_calculator, web_search_tool] # 可用工具列表
# 示例:使用预定义的ReAct提示模板
# react_prompt = hub.pull("hwchase17/react")
# agent = create_react_agent(llm, tools, react_prompt)
# agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
# result = agent_executor.invoke({"input": "What is the result of 99 divided by 3, and what's the weather in Paris?"})
在此设置中,当智能体接收到输入时,底层LLM将看到 simple_calculator 和 web_search_tool 的描述,并凭借其推理能力来判断调用哪个工具(或按顺序调用多个工具)并提供适当的输入,以回答组合问题。
智能体可以配备多种多样的工具:
纳入工具时,请记住这些要点:
工具将智能体从纯粹的推理者转变为能够与不同来源交互并获取信息的主动参与者。通过仔细选择、设计和集成工具,您可以构建更强大、更可靠的LLM应用。本章后面的动手实践将指导您构建一个使用特定工具的智能体。
简洁的语法。内置调试功能。从第一天起就可投入生产。
为 ApX 背后的 AI 系统而构建
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造