AI Agent 开发入门:用 LangChain 构建你的第一个智能体
什么是 AI Agent?
AI Agent(智能体)是一种能够自主感知环境、做出决策并执行行动的 AI 系统。与传统的 ChatBot 不同,Agent 具备以下能力:
- 🔍 工具调用(Tool Use):调用外部 API、执行代码
- 🧠 记忆系统(Memory):记住对话历史和上下文
- 📋 规划能力(Planning):将复杂任务分解为子任务
- 🔄 自我纠错(Self-Correction):根据结果调整策略
ReAct 范式
目前主流的 Agent 实现基于 ReAct(Reasoning + Acting) 范式:
用户输入 → LLM 思考 → 决定调用工具 → 工具返回结果 → LLM 继续思考 → 最终输出
这就是为什么 Agent 能「做事情」而不仅仅是「说事情」。
实战:构建天气查询 Agent
使用 LangChain 和 OpenAI 构建一个简单的 Agent:
from langchain.agents import initialize_agent, AgentType
from langchain.tools import tool
from langchain.chat_models import ChatOpenAI
import requests
1. 定义工具
@tool
def get_weather(city: str) -> str:
"""查询指定城市的实时天气"""
response = requests.get(
f"https://api.weather.com/v1/{city}"
)
return response.json()["weather"]
@tool
def search_web(query: str) -> str:
"""搜索互联网获取最新信息"""
# 调用搜索 API
pass
2. 初始化 LLM
llm = ChatOpenAI(model="gpt-4", temperature=0)
3. 创建 Agent
agent = initialize_agent(
tools=[get_weather, search_web],
llm=llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True,
)
4. 运行
result = agent.run("北京今天天气怎么样?适合出门吗?")
print(result)
Agent 记忆系统
Agent 需要记住上下文才能进行多轮对话。LangChain 提供了多种记忆类型:
| 类型 | 说明 |
|------|------|
| ConversationBufferMemory | 保存完整对话历史 |
| ConversationSummaryMemory | 保存对话摘要,节省 Token |
| ConversationTokenBufferMemory | 按 Token 数限制历史 |
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory(
memory_key="chat_history",
return_messages=True
)
agent = initialize_agent(
tools=[...],
llm=llm,
memory=memory,
...
)
注意事项
- 工具描述很重要:LLM 根据工具描述决定调用哪个工具,描述要清晰准确
- 错误处理:工具调用可能失败,Agent 需要能够处理异常
- 安全边界:不要给 Agent 授予过高的权限(如直接操作数据库)
小结
AI Agent 是 LLM 应用的下一个重要方向。从简单的工具调用到复杂的多步骤自主规划,Agent 正在让 LLM 从「聊天机器人」进化为「数字助手」。
下一篇文章,我们将深入探讨如何构建多 Agent 协作系统。