1. 背景与目标

随着大语言模型(LLM)的发展,AI Agent 在智能问答、自动化任务等领域得到了广泛应用。然而,LLM 受限于其训练数据的时效性,无法获取最新信息。例如,如果你问 GPT-4:「2025 年奥运会在哪里举行?」它可能无法提供准确答案。

如何让 AI 具备实时搜索能力? 这正是 ReAct(Reasoning + Acting)框架的优势。通过 结合推理(Reasoning)与行动(Acting),AI 可以在回答问题前先分析是否需要查询最新信息,再通过工具获取外部数据,最后整合结果给出回答。

本篇文章的目标是:

✅ 实现一个 AI Agent,能基于 ReAct 框架进行两次任务调度

✅ 结合 SerpAPIWrapper,让 AI 具备实时搜索能力

✅ 让 AI 能够判断何时需要调用搜索工具,何时直接回答


2. ReAct 框架简介

2.1 什么是 ReAct?

ReAct(Reasoning + Acting)是一种让 AI 既能思考(Reasoning)又能执行任务(Acting)的方法。它的核心思路是:

1. 观察(Observe):接收用户问题。

2. 思考(Think):分析问题,决定下一步行动。

3. 执行(Act):调用工具(如搜索 API)获取数据。

4. 总结(Reflect):基于所有信息,生成最终回答。

2.2 ReAct 在 AI Agent 中的应用场景

• 信息查询:调用搜索 API,获取最新数据。

• 自动化任务:如计算、代码执行、数据库查询等。

• 复杂决策:结合多种工具,分析和推理最佳方案。


3. 让 AI 具备搜索能力:SerpAPIWrapper 介绍

3.1 为什么要使用 SerpAPI?

SerpAPI 是一个用于调用 Google/Bing 搜索的 API,可以让 AI 获取最新的网页数据。相比于 LLM 的静态知识库,SerpAPI 能帮助 AI 实时查询外部世界的信息。

3.2 安装与配置

在代码实现前,先安装 langchain,

安装 langchainhub:从langchainhub拉取标准提示词

安装 dashscope:使用Tongyi大模型

安装 google-search-results:使用serpapi进行搜索

API KEY获取:Google Search Engine Results API - SerpApi

pip install langchain langchainhub dashscope google-search-results

完整代码如下

import os
os.environ["SERPAPI_API_KEY"] = ''

# 导入LangChain Hub
from langchain import hub
# 从hub中获取React的Prompt
prompt = hub.pull("hwchase17/react")
print(prompt)

# 导入ChatOpenAI
from langchain_community.llms import Tongyi
# 选择要使用的LLM
llm = Tongyi(
    api_key = "",
    base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"
)

# 导入SerpAPIWrapper即工具包
from langchain_community.utilities import SerpAPIWrapper
from langchain_core.tools.simple import Tool
# 实例化SerpAPIWrapper
search = SerpAPIWrapper()
# 准备工具列表
search_tool = Tool(
    name="Search",
    func=search.run,
    description="用于查询最新信息,如新闻、事实验证等"
)

from langchain.agents import initialize_agent
from langchain.agents import AgentType

# 初始化 Agent
agent = initialize_agent(
    tools=[search_tool],  # 让 AI 具备搜索能力
    llm=llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,  # 使用 ReAct 进行推理
    verbose=True
)

# 运行示例
question = "2025 年奥运会在哪里举行?"
response = agent.run(question)
print(response)

运行 verbose=True 时,可以看到 AI Agent 任务调度的完整日志。例如,当用户问**「2025 年奥运会在哪里?」**时,AI 的思考过程可能是:

1️⃣ 思考:「这涉及 2025 年的最新信息,可能需要搜索。」

2️⃣ 行动:「调用 SerpAPI 进行 Google 搜索。」

3️⃣ 获取搜索结果:「SerpAPI 返回了最新新闻和维基百科信息。」

4️⃣ 总结并回答:「2025 年奥运会将在 XXX 地点举行。」

这样,AI 就能像人类一样,先分析问题,再利用工具,最终给出准确答案。


6. 代码优化与扩展方向

6.1 增强 Agent 记忆功能

目前的 AI 只是处理单个问题,可以增加记忆功能,让 AI 记住上下文。

• 方法 1:使用 langchain.memory.ConversationBufferMemory() 存储对话历史。

• 方法 2:使用 FAISS 向量数据库,让 AI 具备长期记忆能力。

6.2 增加更多工具

目前 AI 只能进行搜索查询,可以扩展:

• 计算工具(math tool):让 AI 能计算复杂数学问题。

• 数据库查询工具:让 AI 查询业务数据库,实现自动化办公。

• API 调用工具:让 AI 访问外部 API,如天气、金融数据等。

6.3 结合 RAG(检索增强生成)优化回答质量

可以使用 RAG(Retrieval-Augmented Generation) 结合企业内部知识库,让 AI 具备更强的知识查询能力,例如:

• 结合 企业文档(PDF, Word) 进行问答。

• 使用 向量数据库(如 FAISS, Chroma) 检索业务信息。


7. 总结:打造一个能实时搜索的 AI Agent

本篇文章,我们实现了一个 基于 ReAct 任务调度 + SerpAPIWrapper 的智能 AI Agent,能够:

✅ 判断问题是否需要搜索

✅ 调用 SerpAPI 进行 Google 查询

✅ 结合搜索结果,生成精准答案

这样,AI 具备了类似人类的思考 + 搜索 + 总结能力,而不是单纯依赖静态训练数据。

未来可以优化哪些方面?

📌 增加记忆,让 AI 记住上下文。

📌 增加工具,让 AI 具备计算、API 调用、数据库查询能力。

📌 结合 RAG,增强 AI 在特定领域的知识检索能力。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐