News

AI Agent与工具:为大模型赋予“双手”的秘密

AI Agent与工具:为大模型赋予“双手”的秘密

过去一周,我们构建了预定义每一步骤的AI程序。但如果事先不知道所有步骤,AI需要根据用户问题自主决定是搜索Google、查询数据库还是使用计算器呢?这就是AI从“链(Chains)”迈向“代理(Agents)”的关键。如果说链是一条固定的铁路轨道,那么代理就是一辆自动驾驶汽车,它有目的地(你的目标)和一套工具,并能自主决定最佳路线。

什么是AI Agent?

AI Agent是一个使用“推理循环(Reasoning Loop)”来完成任务的大型语言模型(LLM)。在官方文档中,这通常被称为“ReAct模式”(Reason + Act)。Agent不再仅仅提供答案,而是遵循以下循环:

  1. 思考(Thought):“用户想知道比特币的当前价格。我不知道,所以应该使用搜索工具。”
  2. 行动(Action):调用搜索工具。
  3. 观察(Observation):读取搜索结果。
  4. 最终响应(Final Response):将观察结果组合成一个有用的答案。

工具的力量

工具是AI的“双手”。一个工具本质上是一个LLM知道如何调用的Python函数。LangChain内置了数十种工具,你也可以创建自己的工具!

常见工具包括:

  • Tavily/Google Search:用于获取实时信息。
  • Wikipedia:用于获取一般知识。
  • Python REPL:用于执行复杂的数学或数据分析。
  • 自定义API:连接到你公司自己的数据。

构建你的第一个Agent(现代方式)

在现代LangChain中,我们使用一个专门的“Agent Executor”来管理循环。以下是设置的简要示例:

from langchain_openai import ChatOpenAI

from langchain_community.tools.tavily_search import TavilySearchResults

from langchain.agents import create_react_agent, AgentExecutor

from langchain import hub

# 1. 定义工具

tools = [TavilySearchResults(max_results=1)]

# 2. 从LangChain Hub获取“Prompt Template”

# 这个提示模板告诉AI如何使用工具

prompt = hub.pull("hwchase17/react")

# 3. 初始化大脑(LLM)

llm = ChatOpenAI(model="gpt-4o")

# 4. 构建Agent

agent = create_react_agent(llm, tools, prompt)

# 5. 创建执行器(运行循环的引擎)

agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

# 6. 运行它!

agent_executor.invoke({"input": "What is the current stock price of NVIDIA?"})

总结

本文介绍了:

  • Agent:能够推理并自主决定路径的AI。
  • 工具(Tools):如何让LLM访问外部世界。
  • ReAct循环:AI在行动前如何思考。
  • Agent Executor:管理整个过程的运行时。
↗ 阅读原文