专栏系列第 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 DuckDuckGoSearchRunsearch = DuckDuckGoSearchRun()tools = [search]
🧠 步骤 2:配置语言模型(DeepSeek API 与 OpenAI API 格式兼容)
from langchain_community.chat_models import ChatOpenAIllm = 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, AgentTypeagent = 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)
04. 拓展方向:打造你的「专属智能体」
LangChain 还支持非常多的高级能力,你可以:
- 加入记忆机制:让 Agent 记住上下文自定义工具函数:如调用数据库、写文件、调用 API多 Agent 协作:多个角色协同处理复杂任务
05. 小结与预告
今天我们使用 LangChain 快速构建了一个能联网查资料的 AI Agent,体验了最小 Agent 架构的魅力。
下一篇文章,我们将探索如何让 Agent 具备长期记忆,构建更像“人”的智能体,敬请期待!