智能体框架速览:别总从零写
你已经手写过 ReAct 了——现在该认识一下"省力的脚手架"
进入进阶篇,先恭喜你:前面你亲手写过 ReAct 循环、写过工具调用——你比 90% 只会调 API 的人都更懂智能体的里子。
但说句实话:现实里做 agent,没人从零写这么多。 状态管理、工具注册、重试、流式输出、调试可视化……全自己造,又累又容易错。就像盖房子不会自己烧砖。
这一节,我们认识"智能体框架"——一套省力的脚手架。学完你会知道:什么时候该用框架、用哪个、以及它到底替你包了什么。
三条路:低代码 / 框架 / 手写,怎么选
| 低代码(扣子/Dify) | 框架(LangGraph 等) | 手写(纯 Python) | |
|---|---|---|---|
| 上手 | 最快、零代码 | 中等 | 要自己造轮子 |
| 灵活度 | 受平台限制 | 高 | 最高 |
| 适合 | 快速验证、轻量应用 | 正经项目、上生产 | 学原理、极致定制 |
| 代价 | 复杂逻辑拼不出 | 要学框架 | 啥都自己写 |
一句话:低代码图快、手写懂原理、框架是生产里的主力——它让你既不被平台捆住、又不用重造轮子。
主流框架,认个脸
- LangGraph(LangChain 家):把智能体建成"状态图",最适合复杂、多步、要精确控制的流程。目前最主流之一。
- AutoGen(微软):擅长多智能体对话/协作(多个角色互相聊)。
- LlamaIndex:偏数据接入与 RAG,资料问答类项目顺手。
- AgentScope(阿里):国内生态,多智能体。
不用都学。入门先盯住 LangGraph(通用、流行),需要多智能体再看 AutoGen。
🔧 上手:框架版"ReAct",8 行搞定
还记得 a1.2 我们手写的 40 行 ReAct 吗?用 LangGraph,核心就这几行——循环、工具调用、解析,框架全替你包了:
# pip install "langgraph>=0.2" "langchain-openai>=0.2" # 钉版本,LangGraph 演进快
from langgraph.prebuilt import create_react_agent
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="deepseek-chat",
base_url="https://api.deepseek.com", api_key="你的KEY")
def get_weather(city: str) -> str:
"""查询某城市今天的天气。""" # ← 这段说明书框架会自动读,给模型当工具描述
return f"{city}:晴,20℃"
agent = create_react_agent(llm, tools=[get_weather]) # 一行造出会用工具的 ReAct 智能体
out = agent.invoke({"messages": [("user", "北京今天天气怎么样?")]})
print(out["messages"][-1].content)
对比一下:a1.2 里"想→做→看"的循环、解析模型要调哪个工具、把结果喂回去——这些 create_react_agent 全包了。你只要给它模型和工具。
📌 框架 API 随版本演进,以官方文档为准;但"给模型+给工具→拿到会用工具的智能体"这个思路是稳定的。
框架很香,但不是越早上、越多上越好:
- 小项目 / 快速验证:低代码或手写几十行就够,硬上框架反而更慢。
- 被黑箱困住:不懂原理就用框架,一出问题完全摸不着头脑(还好你手写过)。
原则:任务真的复杂、要上生产了,再上框架;选一个(先 LangGraph)吃透,别同时学三个。
我要做这样一个智能体:『___』(我来描述)。请帮我判断该用低代码(扣子/Dify)、框架(LangGraph/AutoGen)还是纯手写,给出理由;如果用框架,推荐哪个、大概分几步。
现在你心里有谱了:低代码图快、手写懂原理、框架是生产主力;主流里先盯 LangGraph,而且你已经看到——框架把你手写过的那套循环,浓缩成了几行。
但"会调一个现成的 create_react_agent"还只是入门。下一节,我们用 LangGraph 真正搭一个带多工具、带状态的 agent,让你摸到框架的骨架——知其然,也知其所以然。
