## 前言:为什么所有人都在聊Agent?
2025年,ChatGPT让所有人知道了LLM。
2026年,所有人都在问同一个问题:**怎么做一个属于自己的AI Agent?**
这不是追热点。我见过太多人学了一堆理论,真正动手时还是一头雾水——环境怎么搭?框架怎么选?接了LLM之后下一步是什么?
本文的目的很明确:**让你跟着做,做出一个真正能用的Agent。**
我会用三个主流框架(LangChain、AutoGen、Semantic Kernel)各做一个完整案例,然后告诉你什么时候该用哪个。
> **前置知识**:本文假设你了解Python基础,知道API调用是什么,有基本的命令行操作能力。
> 💡 免费资源推荐:想要系统学习LLM开发,可以从 [AI提示词工程基础课](https://aiagenttools.gumroad.com/l/sribgq?utm_source=juejin&utm_medium=article&utm_campaign=free-lead&ref=juejin&referrer=juejin-article) 开始,零基础也能跟上。
---
## 一、什么是AI Agent?先搞懂这个再动手
AI Agent(AI智能体)的核心定义:
**一个能够自主感知环境、做出决策、执行动作的AI系统。**
听起来很复杂,但其实你每天都在用:
- **自动驾驶** = Agent(感知路况→决策→执行)
- **推荐算法** = Agent(感知兴趣→推荐→反馈)
- **客服机器人** = Agent(理解问题→检索→回答)
在LLM语境下,Agent的本质是:**给大模型加上了"手"和"脚",让它不只是回答问题,而是能真正做事。**
**Agent的核心组件(四个部分)**:
| 组件 | 作用 | 类比 |
|------|------|------|
| **规划(Planning)** | 拆解复杂任务为步骤 | 的大脑 |
| **记忆(Memory)** | 存储历史信息和上下文 | 电脑硬盘 |
| **工具(Tools)** | 调用外部能力(搜索/代码/数据库) | 人的手 |
| **执行(Action)** | 根据决策调用工具并反馈 | 行动 |
---
## 二、环境搭建:30分钟准备开发环境
### 2.1 基础依赖
```bash
# Python 3.10+ 推荐
python --version
# 创建虚拟环境
python -m venv agent-env
source agent-env/bin/activate # Mac/Linux
# agent-env\\Scripts\\activate # Windows
# 核心依赖
pip install langchain langchain-openai langchain-community
pip install autogen-agentchat
pip install semantic-kernel
pip install python-dotenv requests duckduckgo-search
```
### 2.2 配置API Key
创建 `.env` 文件(**注意加入 .gitignore**):
```bash
# .env
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
# 如果用Azure OpenAI
AZURE_OPENAI_API_KEY=your-key
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
```
> ⚠️ API Key不要硬编码到代码里,也不要上传到GitHub。每年因此泄露的Key造成数百万美元损失。
### 2.3 验证环境
```python
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4", temperature=0)
response = llm.invoke("用一句话解释什么是AI Agent")
print(response.content)
```
如果输出正常,说明环境OK。
---
## 三、框架对比:LangChain vs AutoGen vs Semantic Kernel
### 3.1 LangChain — 最成熟,生态最全
**适合场景**:需要复杂工具链、多文档RAG、多种记忆方案的复杂Agent。
**核心优势**:
- 文档加载器生态极其丰富(PDF、网页、Notion、数据库)
- LCEL(LangChain Expression Language)让链式调用可读性极高
- 社区活跃,教程多,遇到问题容易找到解法
**实战案例:带搜索能力的问答Agent**
```python
from langchain_community.tools import DuckDuckGoSearchRun
from langchain_openai import ChatOpenAI
from langchain.agents import AgentType, initialize_agent
# 初始化搜索工具
search = DuckDuckGoSearchRun()
# 初始化LLM
llm = ChatOpenAI(model="gpt-4", temperature=0)
# 创建Agent
tools = [search]
agent = initialize_agent(
tools,
llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)
# 运行
result = agent.invoke("2026年AI Agent领域的最新进展有哪些?")
print(result['output'])
```
### 3.2 AutoGen — 多Agent协作最强
**适合场景**:需要多个AI角色协作、对话式工作流的场景(客服、销售、辩论、代码审查)。
**核心优势**:
- 天生的多Agent框架,支持角色定义和Agent间对话
- 微软出品,企业级稳定性
- 内置人工反馈机制(Human Feedback)
**实战案例:产品经理 + 工程师协作写需求文档**
```python
from autogen import ConversableAgent, UserProxyAgent
# 产品经理Agent
pm_agent = ConversableAgent(
name="ProductManager",
system_message="你是一个资深产品经理,负责分析用户需求并产出PRD。",
llm_config={"model": "gpt-4", "temperature": 0.7}
)
# 工程师Agent
engineer_agent = ConversableAgent(
name="Engineer",
system_message="你是一个资深工程师,负责评估技术可行性和给出实现建议。",
llm_config={"model": "gpt-4", "temperature": 0.5}
)
# 用户代理(人工输入)
user_proxy = UserProxyAgent(name="User", code_execution=False)
# 启动对话
chat_result = user_proxy.initiate_chat(
pm_agent,
message="用户想要一个AI Agent,可以自动总结会议记录并生成待办事项。请产出PRD。"
)
```
### 3.3 Semantic Kernel — 企业级C#/.NET首选
**适合场景**:微软技术栈(Azure、.NET、C#)的企业项目。
**核心优势**:
- 微软官方,稳定性有保障
- 与Azure OpenAI深度集成
- Planner能力强,能自动拆解复杂任务
**注意**:Python版功能相对较弱,如果你用C#/.NET,Semantic Kernel是首选。
---
## 四、生产级Agent必备:RAG + Memory + Tools
一个能用的Demo容易,一个能上生产环境的Agent难。
### 4.1 RAG:让Agent拥有专业知识
RAG(检索增强生成)是让Agent回答精准答案的关键。
```python
from langchain_community.document_loaders import WebBaseLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.vectorstores import FAISS
from langchain_openai import OpenAIEmbeddings
# 1. 加载知识库文档
loader = WebBaseLoader(["https://docs.example.com/api-guide"])
docs = loader.load()
# 2. 切分文本
splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
chunks = splitter.split_documents(docs)
# 3. 向量化存储
vectorstore = FAISS.from_documents(chunks, OpenAIEmbeddings())
# 4. 创建检索链
from langchain.chains import RetrievalQA
retrieval_chain = RetrievalQA.from_chain_type(
llm=llm,
chain_type="stuff",
retriever=vectorstore.as_retriever()
)
```
### 4.2 Memory:让Agent记住上下文
| 方案 | 适用场景 | 复杂度 |
|------|----------|--------|
| **BufferMemory** | 短期对话上下文 | 低 |
| **ConversationSummaryMemory** | 长对话摘要 | 中 |
| **VectorStoreRetrievedMemory** | 长期知识记忆 | 高 |
### 4.3 Tools:给Agent装上手
常用工具清单:
- 🔍 **搜索**:DuckDuckGo、Bing Search、Google Search
- 📊 **计算**:Python解释器、数学计算
- 📁 **文件**:读写本地文件
- 🌐 **API**:天气、股票、数据库查询
- 💻 **代码**:代码执行、GitHub操作
---
## 五、避坑指南:我在实战中总结的血泪经验
### 坑1:LLM的随机性是双刃剑
GPT-4在创意任务上表现优秀,但在需要确定性输出的场景(比如格式化数据),记得把temperature调到0,并且给出更详细的输出格式说明。
### 坑2:Context Window 不是越大越好
上下文越长,LLM的注意力越分散,成本也越高。最佳实践是**只喂最相关的上下文**,而不是把所有信息都塞进去。
### 坑3:Agent的规划能力有上限
复杂任务(>10步)建议拆成多个子Agent,每个Agent负责一个阶段,再用主Agent协调。不然GPT-4也会迷失。
### 坑4:工具调用失败的处理
每个Tool都要考虑失败情况——超时、权限、格式错误。Agent代码里必须处理这些边界条件,否则上线后会频繁崩溃。
---
## 六、进阶路径:下一步学什么
| 阶段 | 技能 | 推荐资源 |
|------|------|----------|
| 入门 | LangChain基础 | 官方Quickstart |
| 进阶 | RAG + VectorDB | LangChain RAG课程 |
| 高级 | Multi-Agent架构 | AutoGen官方示例 |
| 生产 | 监控 + 安全 + 成本控制 | 自行实践 |
---
## 结语:动手才是最好的学习方式
看10篇教程,不如亲手做一个小项目。
建议从LangChain的Quickstart开始,30分钟跑通第一个Agent,然后根据自己的需求逐步添加工具和记忆模块。
AI Agent开发没有捷径,但有方法论。掌握核心组件,理解框架设计逻辑,然后不断实践——这是我在这个领域学到的最重要的事情。
> 💡 **想要完整的Agent开发学习路径和代码模板?** [AI Agent开发入门包](https://aiagenttools.gumroad.com/l/kqbdva?utm_source=juejin&utm_medium=article&utm_campaign=free-lead&ref=juejin&referrer=juejin-article) 包含5个完整案例代码,直接可用。
---
*本文代码基于2026年3月各框架最新版本实测。建议跟着动手实践,光看不动手等于没学。*