上一篇文章我们自己手写了 Agent。写到后面你会发现:消息管理、工具注册、记忆维护……有很多重复劳动。于是就有了框架。今天来聊聊市面上最主流的几个,帮你选一个接着玩。
上一篇:「从零玩转 AI Agent」【第九篇】用 Python 从零写一个 Agent(下)——记忆与实战
一、为什么需要框架?
自己写 Agent 到后面会变成这样:
# 你需要手写很多东西- messages 管理(追加、截断、压缩)- 工具注册和匹配- 多轮 Function Calling 循环- 错误重试- 记忆持久化- 多 Agent 通信- 流式输出- ...而框架把这些封装好了,你只需要关心两件事:定义 Agent 的行为 + 配置工具。
二、四大框架速览
| LangChain | |||
| CrewAI | |||
| AutoGen | |||
| Agno |
三、LangChain —— Agent 界的"乐高"
3.1 它是什么?
LangChain 不是一个"Agent 框架",而是一个LLM 应用的万能工具箱:
想做 RAG?有 RAG 模块 想做 Agent?有 Agent 模块 想做 Chains(链式调用)?有 Chains 模块 想要记忆?有 Memory 模块
优点就是缺点——太灵活了,灵活到你不知道从哪开始。
3.2 用 LangChain 写 Agent 有多简单?
from langchain_openai import ChatOpenAIfrom langchain.agents import create_tool_calling_agent, AgentExecutorfrom langchain.tools import tool# 1. 定义工具@tooldefget_weather(city: str) -> str:"""获取城市天气"""returnf"{city}:晴天 25°C"# 2. 创建 LLMllm = ChatOpenAI( model="deepseek-chat", api_key="sk-...", base_url="https://api.deepseek.com")# 3. 创建 Agent(一行代码!)agent = create_tool_calling_agent(llm, [get_weather], prompt)# 4. 执行(一行代码!)executor = AgentExecutor(agent=agent, tools=[get_weather])result = executor.invoke({"input": "北京天气怎么样?"})跟手写 Agent 比,代码量少了至少一半。
3.3 适合谁?
✅ 你想深度定制 Agent 的每个环节 ✅ 你想把 Agent 嵌入 Web 应用、API 服务 ❌ 零基础新手——学习曲线陡 ❌ 你只需要简单功能——用 LangChain 是杀鸡用牛刀
四、CrewAI —— 多 Agent 协作入门首选
4.1 它是什么?
CrewAI 的核心概念:让多个 Agent 像团队一样协作。
每个 Agent 有独立的角色、目标和工具。多个 Agent 组成一个 Crew(团队),按流程协作。
4.2 一个例子:写一篇市场分析报告
from crewai import Agent, Task, Crew# 研究员 Agentresearcher = Agent( role="市场研究员", goal="搜集市场最新数据并整理成结构化信息", tools=[search_tool], llm="deepseek-chat")# 分析师 Agentanalyst = Agent( role="数据分析师", goal="基于研究数据生成洞察和建议", llm="deepseek-chat")# 写手 Agentwriter = Agent( role="报告撰写人", goal="将分析结果写成专业报告", llm="deepseek-chat")# 定义任务research_task = Task(description="调研中国 AI 市场 2026 年趋势", agent=researcher)analysis_task = Task(description="分析数据并给出 5 个关键洞察", agent=analyst)writing_task = Task(description="写成 2000 字市场分析报告", agent=writer)# 组建团队crew = Crew( agents=[researcher, analyst, writer], tasks=[research_task, analysis_task, writing_task])# 一键启动result = crew.kickoff()print(result)研究员 → 分析师 → 写手,三个人自动流水线作业。
4.3 适合谁?
✅ 想探索多 Agent 协作 ✅ 任务流程明确、可以线性拆解 ❌ 只有一个 Agent 的场景(用 CrewAI 牛刀杀鸡)
五、AutoGen —— 微软出品的企业级方案
5.1 它是什么?
AutoGen 是微软研究院推出的多 Agent 对话框架。核心理念:Agent 之间通过"对话"来协作。
5.2 跟 CrewAI 的区别
| 协作方式 | ||
| 适合场景 | ||
| 上手难度 | ||
| 生态 | ||
| 谁在用 |
5.3 一个例子
from autogen import AssistantAgent, UserProxyAgent# 用户代理(代表你,执行代码)user_proxy = UserProxyAgent( name="user", code_execution_config={"work_dir": "coding"})# AI 助手代理assistant = AssistantAgent( name="assistant", llm_config={"config_list": [{"model": "deepseek-chat", ...}]})# 发起对话user_proxy.initiate_chat( assistant, message="写一个 Python 脚本,爬取百度热搜前 10 条")# AutoGen 会自动多轮对话:# assistant 提议方案 → user_proxy 执行 → 报错了 →# assistant 修正 → user_proxy 再执行 → 成功!六、Agno —— 新锐轻量选手
6.1 它是什么?
Agno 是 2024 年冒出来的新框架,口号是"最轻量的 Agent 框架"。代码极简,学习成本低。
6.2 一个例子
from agno import Agentfrom agno.tools import search_webagent = Agent( model="deepseek-chat", tools=[search_web], instructions="你是一个新闻助手")agent.print_response("今天 AI 领域有什么大新闻?")真的只需要几行代码。
6.3 适合谁?
✅ 新手入门,想先跑起来再说 ✅ 快速原型验证 ❌ 复杂的多 Agent 协作场景(功能还在追赶)
七、终极选择指南
你是零基础新手? ├─ 是 → 用 Agno 或 扣子/Dify(零代码) └─ 不是 → 继续你需要多 Agent 协作? ├─ 是 → 任务流程固定? │ ├─ 是 → CrewAI │ └─ 不是(需要自由讨论)→ AutoGen └─ 不需要 → 需要深度定制? ├─ 是 → LangChain └─ 不是 → Agno 或手写你是企业级开发? ├─ 是 → AutoGen(微软生态)或 LangChain(开源生态) └─ 不是 → CrewAI 或 Agno一图总结:
简单 ←──────────────────────────────→ 强大 │ │Agno CrewAI AutoGen LangChain │ │ │ │适合新手 多Agent入门 企业级 万能工具箱八、我的推荐
如果你是看这个系列一路走来的零基础读者:
- 先玩扣子/Dify
(第 7 篇),不写代码感受 Agent - 再手写 Python Agent
(第 8、9 篇),理解底层原理 - 然后用 Agno
,享受框架的便利但不会被框架的复杂度淹没 - 想探索多 Agent 时,上 CrewAI
千万别一上来就 LangChain——它的学习曲线会让零基础读者劝退。
九、下篇预告
搭建篇结束,进阶篇开始——第一个话题:《多 Agent 协作:为什么一个 Agent 不够用?》带你理解"团队作战"的 Agent 能做什么单个 Agent 做不到的事。
关注本号,不错过更新。
下一篇:《多 Agent 协作——为什么一个 Agent 不够用?》
夜雨聆风