构建第一个 AI Agent:LangChain 入门实战

2,464 阅读3分钟

专栏系列第 2 篇 · 智能体纪元

在上一篇文章中我们介绍了 AI Agent 的基本概念和生态全景,这一篇我们将动手实战:用 LangChain 构建你人生中的第一个 AI Agent!


01. 为什么选择 LangChain?

LangChain 是一个专门为构建 LLM 应用(特别是 Agent)而设计的框架,它的核心优势在于:

  • ✅ 组件丰富:内置 Prompt 模板、记忆机制、工具调用等模块
  • ✅ 灵活组合:像乐高一样拼出你想要的 Agent
  • ✅ 支持多模型:OpenAI、ChatGLM、Claude、Gemini、文心一言等都能接
  • ✅ 社区活跃:生态完善、教程丰富

LangChain 就像是 AI Agent 的“游戏引擎”,特别适合入门使用。


02. 最小可用 Agent 框架:4 个核心组件

LangChain 中,一个最小的 Agent 由以下部分构成:

组件作用示例
LLM语言模型ChatOpenAI()ChatGLM()
Prompt提示词模板ChatPromptTemplate.from_messages(...)
Tool工具(函数)搜索、计算器、文件读写等
Agent智能体控制逻辑initialize_agent(...)

03. 实战:构建一个带工具调用的 Agent

我们来动手实现一个「能自动查资料 + 回答问题」的 Agent。

📦 环境准备

pip install langchain openai duckduckgo-search

🔧 步骤 1:定义工具函数

from langchain_community.tools import DuckDuckGoSearchRun

search = DuckDuckGoSearchRun()
tools = [search]

🧠 步骤 2:配置语言模型(DeepSeek API 与 OpenAI API 格式兼容)

from langchain_community.chat_models import ChatOpenAI

llm = ChatOpenAI(
    model='deepseek-chat',
    openai_api_key=YOUR_API_KEY,
    openai_api_base='https://api.deepseek.com',
    max_tokens=1024
)

🧩 步骤 3:初始化 Agent

from langchain.agents import initialize_agent, AgentType

agent = initialize_agent(
    tools=tools,
    llm=llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True,
    handle_parsing_errors=True
)

✅ 步骤 4:运行 Agent!

response = agent.invoke({"input": "请用中文回答这个问题:最近有哪些关于AI Agent的新研究?"})
print(response)

效果预期:Agent 会自动搜索并整合内容回答你,非常适合做知识助手!

全部代码及输出:

# 导入 DuckDuckGo 搜索工具,用于联网搜索信息
from langchain_community.tools import DuckDuckGoSearchRun
# 导入 ChatOpenAI 类,用于与兼容 OpenAI 接口的语言模型交互
from langchain_community.chat_models import ChatOpenAI
# 导入 initialize_agent 和 AgentType,用于创建 LangChain 智能体
from langchain.agents import initialize_agent, AgentType

# 实例化 DuckDuckGo 搜索工具,作为 agent 可用的工具之一
search = DuckDuckGoSearchRun()
tools = [search]  # 工具列表,目前只包含搜索工具

API_KEY = 'sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

# 创建一个 LLM(大型语言模型)客户端,连接到 DeepSeek 的 OpenAI 兼容接口
llm = ChatOpenAI(
    model='deepseek-chat',  # 指定使用 deepseek-chat 模型
    openai_api_key=API_KEY,  # 使用你的 API 密钥进行认证
    openai_api_base='https://api.deepseek.com',  # DeepSeek 的 API 接口地址
    max_tokens=1024  # 最大生成 token 数
)

# 初始化智能体 Agent,使用 Zero-Shot ReAct 模式(零样本推理 + 工具调用)
agent = initialize_agent(
    tools=tools,
    llm=llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,  # agent 类型:基于 ReAct 的 Zero-Shot 智能体
    verbose=True,  # 输出 agent 的推理过程,便于调试和观察
    handle_parsing_errors=True  # 容错处理,避免格式解析出错时中断
)

response = agent.invoke({"input": "请用中文回答这个问题:最近有哪些关于AI Agent的新研究?"})
print(response)

屏幕截图 2025-05-08 162418.png


04. 拓展方向:打造你的「专属智能体」

LangChain 还支持非常多的高级能力,你可以:

  • 加入记忆机制:让 Agent 记住上下文
  • 自定义工具函数:如调用数据库、写文件、调用 API
  • 多 Agent 协作:多个角色协同处理复杂任务

05. 小结与预告

今天我们使用 LangChain 快速构建了一个能联网查资料的 AI Agent,体验了最小 Agent 架构的魅力。

下一篇文章,我们将探索如何让 Agent 具备长期记忆,构建更像“人”的智能体,敬请期待!