AI Agent开发教程:9. Agent框架(下)
上下两篇文章,我们分析了Agent框架的四大类型(通用SDK、专用框架、基础设施、实验性项目),并深入学习了LangChain、CrewAI、AutoGPT等代表性框架。选择框架的核心原则任务复杂度决定是否需要框架团队技能和场景决定选哪个框架可控性和可维护性比自主性更重要2026年的趋势图结构编排成为主流(LangGraph、Google ADK)每个大厂都有自己的框架可观测性和评估成为标配框架从
CrewAI:让Agent像团队一样协作
LangChain适合单个Agent或简单的多Agent场景。但如果你要搭建一个"Agent团队",每个Agent有明确的角色和职责,CrewAI是更好的选择。

CrewAI的核心理念:模拟人类团队的工作方式。
想象一个产品开发团队:产品经理负责需求分析,工程师负责写代码,测试负责质量保证。每个人有自己的专长,大家协作完成项目。CrewAI就是把这个模式搬到了Agent世界。
2024-2025年,CrewAI的GitHub星标从几千涨到了44.5K,成为多Agent协作领域的领军框架。为什么发展这么快?因为它解决了一个真实痛点:复杂任务需要分工协作。
一个简单的团队协作例子
我们来模拟一个产品开发团队,用三个Agent协作完成一个项目。
"""
CrewAI风格的多Agent协作示例 (代码为模拟示例)
模拟产品开发团队:产品经理 + 工程师 + 测试
"""
from typing import List, Dict
from openai import OpenAI
class CrewMember:
"""团队成员Agent"""
def __init__(self, role: str, expertise: str):
self.role = role
self.expertise = expertise
self.client = OpenAI(
api_key="ollama",
base_url="http://localhost:11434/v1"
)
self.model = "qwen3:latest"
def work(self, task: str) -> str:
"""执行任务"""
prompt = f"""
你是一个{self.role},专长是{self.expertise}。
任务: {task}
请根据你的专业知识完成这个任务。
"""
response = self.client.chat.completions.create(
model=self.model,
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
class Crew:
"""Agent团队"""
def __init__(self, members: List[CrewMember]):
self.members = members
def collaborate(self, project: str) -> Dict[str, str]:
"""团队协作完成项目"""
results = {}
print(f"\n🎯 项目: {project}\n")
print(f"👥 团队成员: {len(self.members)}人\n")
for member in self.members:
print(f"👤 {member.role} 开始工作...")
result = member.work(project)
results[member.role] = result
print(f"✅ {member.role} 完成\n")
return results
# 使用示例
if __name__ == "__main__":
# 创建团队
crew = Crew([
CrewMember("产品经理", "需求分析和产品设计"),
CrewMember("开发工程师", "代码实现"),
CrewMember("测试工程师", "质量保证")
])
# 协作完成项目
results = crew.collaborate("开发一个待办事项应用")
print("\n📊 项目成果:")
for role, result in results.items():
print(f"\n{role}的贡献:")
print(result[:200] + "...")
这个例子展示了什么?
每个Agent有明确的角色(产品经理、工程师、测试),各自完成自己的部分,最后汇总成完整的项目成果。这就是CrewAI的核心思想。
实际使用CrewAI框架会更简单,它提供了现成的角色模板、任务分配机制、结果聚合等功能。上面的代码只是演示概念。
CrewAI适合什么场景?
-
✅ 需要多个专业角色协作的复杂任务
-
✅ 任务可以明确分工的场景
-
✅ 需要模拟人类团队工作流程
-
❌ 简单的单Agent任务(用LangChain更轻量)
AutoGPT:自主规划执行的先驱
AutoGPT在2023年火爆全网,182K的GitHub星标让它成为Agent领域的现象级项目。值得注意的是,AutoGPT已经从最初的Python脚本项目转型为AutoGPT Platform——一个可视化的Agent构建和部署平台,产品形态发生了根本性变化。它提出的"目标驱动、自主规划"理念深刻影响了整个行业。

AutoGPT的核心思路:
给Agent一个目标,它自己分解任务、执行任务、检查结果、继续执行,直到完成目标。不需要你一步步指导,它自己搞定。
一个简化的AutoGPT风格实现
"""
AutoGPT风格的自主Agent(代码为模拟示例)
给它一个目标,它自己规划和执行
"""
from typing import List
from openai import OpenAI
class AutoAgent:
"""自主Agent - 目标驱动"""
def __init__(self, goal: str):
self.goal = goal
self.tasks: List[str] = []
self.completed_tasks: List[str] = []
self.client = OpenAI(
api_key="ollama",
base_url="http://localhost:11434/v1"
)
self.model = "qwen3:latest"
def plan_tasks(self) -> List[str]:
"""根据目标规划任务"""
prompt = f"""
目标: {self.goal}
请将这个目标分解为3-5个具体的、可执行的子任务。
每个任务应该是独立的、明确的。
返回格式:
1. [任务1]
2. [任务2]
...
"""
response = self.client.chat.completions.create(
model=self.model,
messages=[{"role": "user", "content": prompt}]
)
# 解析任务列表
content = response.choices[0].message.content
tasks = []
for line in content.split('\n'):
if line.strip() and line[0].isdigit():
task = line.split('.', 1)[1].strip()
tasks.append(task)
self.tasks = tasks
return tasks
def execute_task(self, task: str) -> str:
"""执行单个任务"""
prompt = f"""
当前目标: {self.goal}
已完成的任务: {', '.join(self.completed_tasks) if self.completed_tasks else '无'}
现在要执行: {task}
请描述如何执行这个任务,并给出结果。
"""
response = self.client.chat.completions.create(
model=self.model,
messages=[{"role": "user", "content": prompt}]
)
result = response.choices[0].message.content
self.completed_tasks.append(task)
return result
def run(self, max_iterations: int = 5):
"""运行Agent - 自主规划和执行"""
print(f"\n🎯 目标: {self.goal}\n")
# 第一步:规划任务
print("📋 正在规划任务...")
tasks = self.plan_tasks()
for i, task in enumerate(tasks, 1):
print(f" {i}. {task}")
# 第二步:执行任务
print("\n⚙️ 开始执行任务...\n")
for i, task in enumerate(tasks[:max_iterations], 1):
print(f"任务 {i}/{len(tasks)}: {task}")
result = self.execute_task(task)
print(f"✅ 完成: {result[:150]}...\n")
print("🎉 所有任务完成!")
# 使用示例
if __name__ == "__main__":
# 给它一个目标,它自己搞定
agent = AutoAgent(goal="学习Python编程基础")
agent.run(max_iterations=3)
AutoGPT的优势和局限:
优势:
-
✅ 高度自主,不需要人工干预
-
✅ 适合长时间运行的任务
-
✅ 能自己分解复杂目标
局限:
-
❌ 容易"跑偏",需要好的目标设定
-
❌ 成本高,会调用很多次LLM
-
❌ 可控性差,不知道它会做什么
实际使用建议:AutoGPT风格适合探索性任务,但生产环境中更推荐可控的工作流(如LangGraph)。
框架选择指南
看完这么多框架,到底该选哪个?先按类型确定方向,再按具体需求选择:
按类型选
|
你要做的事 |
选择类型 |
推荐框架 |
|---|---|---|
|
写Agent代码(大部分情况) |
通用SDK |
LangChain、CrewAI、AG2 |
|
特定场景深度优化 |
专用框架 |
browser-use、LlamaIndex、mem0、Letta |
|
Agent运行和管理 |
基础设施 |
Agno、Composio |
|
探索自主Agent |
实验性 |
AutoGPT |
按具体需求选
|
你的情况 |
推荐框架 |
分类 |
|---|---|---|
|
刚开始学Agent |
LangChain |
通用SDK |
|
需要复杂状态流转 / 条件分支 |
LangGraph |
通用SDK |
|
多个Agent角色协作 |
CrewAI 或 AG2 |
通用SDK |
|
类型安全、结构化输出 |
PydanticAI |
通用SDK |
|
使用开源模型 |
Smolagents |
通用SDK |
| 浏览器自动化 / Web操作 | browser-use |
专用框架 |
| 数据密集 / RAG | LlamaIndex |
专用框架 |
| 轻量级Agent记忆 | mem0 |
专用框架 |
| 需要长期跨会话记忆 | Letta |
专用框架 |
| 生产级Agent部署和管理 | Agno |
基础设施 |
| 需要大量外部工具集成 | Composio |
基础设施 |
|
企业级 / .NET技术栈 |
Semantic Kernel |
通用SDK |
|
快速验证自主规划想法 |
AutoGPT Platform |
实验性 |
框架之间的核心差异
|
维度 |
高抽象(CrewAI、AutoGPT) |
中间层(LangChain) |
低抽象(LangGraph、原生SDK) |
|---|---|---|---|
|
上手速度 |
快,几行代码跑起来 |
中等 |
慢,需理解图结构 |
|
可控性 |
低 |
中等 |
完全可控 |
|
定制化 |
困难 |
灵活 |
任意定制 |
|
适合场景 |
快速验证 |
大部分生产场景 |
复杂工作流 |
执行模式上,2026年主流已从链式调用转向图结构编排(LangGraph、Google ADK),支持并行、条件分支和循环;AG2则采用多Agent对话驱动的模式。
三条核心原则:
-
可控性 > 自主性:生产环境避免完全自主的AutoGPT风格,优先选LangGraph这类可追踪状态的框架
-
可观测性是刚需:LangChain + LangSmith目前在日志追踪、性能监控上最成熟
-
锁定版本:LangChain迭代快,
requirements.txt中指定具体版本,重要项目不追最新
核心结论:没有"最好"的框架,只有"最合适"的框架。 不确定的话,从LangChain入手——生态最完整、资料最多,学会后切换其他框架很快。
总结
上下两篇文章,我们分析了Agent框架的四大类型(通用SDK、专用框架、基础设施、实验性项目),并深入学习了LangChain、CrewAI、AutoGPT等代表性框架。
选择框架的核心原则:
-
任务复杂度决定是否需要框架
-
团队技能和场景决定选哪个框架
-
可控性和可维护性比自主性更重要
2026年的趋势:
-
图结构编排成为主流(LangGraph、Google ADK)
-
每个大厂都有自己的框架
-
可观测性和评估成为标配
-
框架从"方便开发"走向"保证质量"
-
浏览器Agent爆发:browser-use等框架让AI能像人一样操作网页,Web自动化成为Agent最热门的应用场景
-
AgentOS兴起:Agno等框架提供完整的Agent运行时,包括隔离、治理、追踪,标志着Agent从SDK走向操作系统
-
Agent技术产品化:像OpenClaw(23万+ stars)这样的个人AI助手产品涌现,让普通用户无需编码即可拥有自己的Agent,标志着Agent从开发者工具走向消费级产品
前面八篇文章,我们从零搭建了Agent的各个组件。现在你知道了,这些组件都有现成的框架实现。什么时候自己写、什么时候用框架,这是一个工程判断问题。
下一篇,我们会深入多Agent系统,看看多个Agent怎么协作、通信、分工,完成单个Agent做不到的复杂任务。
下一篇预告:《多Agent系统:1+1>2的协作艺术》
我们会讲:
-
多Agent系统的架构模式
-
Agent之间的通信机制
-
任务分配和协调策略
-
实战案例:搭建一个完整的多Agent系统
继续加油! 💪
📚 相关资源链接
主流框架官方资源
LangChain 生态
-
LangChain 官方文档 (https://python.langchain.com/)
-
LangChain GitHub (https://github.com/langchain-ai/langchain)
-
LangGraph 官方文档(https://langchain-ai.github.io/langgraph/)
-
LangGraph GitHub (https://github.com/langchain-ai/langgraph)
-
LangSmith 平台 - Agent监控和调试 (https://smith.langchain.com/)
CrewAI
-
CrewAI 官方文档 (https://docs.crewai.com/)
-
CrewAI GitHub (https://github.com/crewAIInc/crewAI)
-
CrewAI 官网 (https://www.crewai.com/)
LlamaIndex
-
LlamaIndex 官方文档 (https://docs.llamaindex.ai/)
-
LlamaIndex GitHub (https://github.com/run-llama/llama_index)
AutoGPT
-
AutoGPT GitHub (https://github.com/Significant-Gravitas/AutoGPT)
-
AutoGPT 官方文档 (https://docs.agpt.co/)
BabyAGI
-
BabyAGI GitHub (https://github.com/yoheinakajima/babyagi)
企业级框架
Microsoft AutoGen
-
AutoGen 官方文档 (https://microsoft.github.io/autogen/)
-
AutoGen GitHub (https://github.com/microsoft/autogen)
Microsoft Semantic Kernel
-
Semantic Kernel 官方文档 (https://learn.microsoft.com/en-us/semantic-kernel/)
-
Semantic Kernel GitHub (https://github.com/microsoft/semantic-kernel)
Letta (原 MemGPT)
-
Letta 官方文档 (https://docs.letta.com/)
-
Letta GitHub (https://github.com/letta-ai/letta)
新兴框架
PydanticAI
-
PydanticAI 官方文档 (https://ai.pydantic.dev/)
-
PydanticAI GitHub (https://github.com/pydantic/pydantic-ai)
HuggingFace Smolagents
-
Smolagents GitHub (https://github.com/huggingface/smolagents)
-
Smolagents 文档 (https://huggingface.co/docs/smolagents)
Google ADK
-
Google ADK GitHub (https://github.com/google/adk-python)
OpenAI Agents SDK (演变自Swarm)
-
OpenAI Agents SDK 文档 (https://openai.github.io/openai-agents-python/)
-
OpenAI Agents SDK GitHub (https://github.com/openai/openai-agents-python)
Anthropic Claude Agent SDK (专为代码执行类Agent设计)
-
Claude Agent SDK Python (https://github.com/anthropics/claude-agent-sdk-python)
-
Claude Agent SDK TypeScript (https://github.com/anthropics/claude-agent-sdk-typescript)
-
Anthropic 官方文档 (https://docs.anthropic.com/)
其他有用资源
Haystack
-
Haystack 官方文档 (https://haystack.deepset.ai/)
-
Haystack GitHub (https://github.com/deepset-ai/haystack)
DSPy
-
DSPy GitHub (https://github.com/stanfordnlp/dspy)
-
DSPy 文档 (https://dspy-docs.vercel.app/)
CAMEL-AI
-
CAMEL-AI GitHub (https://github.com/camel-ai/camel)
-
CAMEL-AI 文档 (https://www.camel-ai.org/)
学习资源
-
LangChain State of Agent Engineering 报告 (https://www.langchain.com/state-of-agent-engineering)
-
AI Agent Tools Landscape 2026 (https://www.stackone.com/blog/ai-agent-tools-landscape-2026)
提示:以上链接中的GitHub星标数据截至2026年2月底,实际数据每天都在变化。建议访问GitHub页面查看最新数据。
最后
从0到1!大模型(LLM)最全学习路线图,建议收藏!
想入门大模型(LLM)却不知道从哪开始? 我根据最新的技术栈和我自己的经历&理解,帮大家整理了一份LLM学习路线图,涵盖从理论基础到落地应用的全流程!拒绝焦虑,按图索骥~~

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取