b1.4动手⏱ 约 11 分钟
从 0 造一个迷你 Agent 框架(硬核选修)
把前面手写的 ReAct + 工具,封装成可复用的几十行——看穿所有框架的底
🔎 最后验证 2026-06📚 来源:🧰 Python
为什么学这个
上两节你用了 LangGraph、CrewAI 这些"黑箱"。这一节是硬核选修:我们亲手把前面手写的 ReAct + 工具调用,封装成一个可复用的迷你框架。
造完它,你会有种顿悟:所谓"智能体框架",内核就是你这几十行的工业级加强版。 从此你看任何框架,都能一眼看穿它在干嘛。(不想啃代码的同学可跳过,不影响后面。)
一个最小框架,需要哪几块?
🧰工具注册
名字 → 函数 + 说明书
🔁决策循环
想→做→看 + 步数上限
⚙️执行回填
跑工具,结果喂回模型
迷你框架三件套:注册工具 → 决策循环(想→做→看) → 执行工具回填
把这三块封进一个类,就是一个能复用的 Agent 框架了。
🔧 上手:~35 行,你的 MiniAgent
下面 复制即可运行。它用装饰器注册工具、用一个循环跑 ReAct——用起来像极了那些大框架:
import json
from openai import OpenAI
class MiniAgent:
def __init__(self, api_key, base_url="https://api.deepseek.com",
model="deepseek-chat", system="你是一个会用工具的智能体。"):
self.client = OpenAI(api_key=api_key, base_url=base_url)
self.model, self.system, self.tools = model, system, {} # tools: 名字 -> (函数, 说明书)
def tool(self, description, parameters):
"""装饰器:把一个普通函数注册成工具"""
def deco(fn):
self.tools[fn.__name__] = (fn, {"type": "function", "function": {
"name": fn.__name__, "description": description, "parameters": parameters}})
return fn
return deco
def run(self, user, max_steps=6):
messages = [{"role": "system", "content": self.system},
{"role": "user", "content": user}]
specs = [s for _, s in self.tools.values()]
for _ in range(max_steps): # ← 想→做→看 的循环 + 防跑飞
msg = self.client.chat.completions.create(
model=.model, messages=messages, tools=specs ).choices[].message
msg.tool_calls:
msg.content
messages.append(msg)
tc msg.tool_calls:
fn = .tools[tc.function.name][]
result = fn(**json.loads(tc.function.arguments))
messages.append({: , : tc., : (result)})
agent = MiniAgent(api_key=)
():
:
(expression)
Exception:
(agent.run())
看那两行 @agent.tool(...) 和 agent.run(...)——和你用 LangGraph 的体验几乎一样。区别只是:成熟框架在这套骨架上,又加了状态管理、流式输出、多智能体、记忆、调试可视化、错误重试……
但内核,就是你现在手里这 35 行。 你已经看穿了所有 Agent 框架的底。
❓ 测验
造完这个 MiniAgent,你对「智能体框架」的正确理解是?
⚠️ 避坑这是「理解用」的迷你版,别拿去上生产
我们的 MiniAgent 故意只留了内核,缺了一堆生产必需品:错误重试、流式输出、并发、超时、可观测/日志、记忆、多智能体、安全沙箱……
这些恰恰是 LangGraph/CrewAI 这些成熟框架替你做好的。所以正确姿势是:亲手造一个迷你版理解原理 → 真做项目用成熟框架。 懂底 + 用好工具,你就是真正会造智能体的人了。
🤖 给你的 MiniAgent 加一个能力
这是我的 MiniAgent 框架代码(贴上面那段)。请帮我加一个能力:『___』(比如:对话记忆 / 流式输出 / 工具执行出错时自动重试),给出改动后的关键代码并解释思路。
✅ 小结
🎉 你不仅会用框架,还亲手造了一个——从此 LangGraph、CrewAI 在你眼里不再是黑箱。这是"懂原理 + 用工具"的最高境界。
进阶 B1(框架)到这就通关了。接下来 进阶 B2,我们解决做出来之后更现实的问题:怎么科学地知道你的智能体到底好不好用、出了问题怎么追——评估与可观测,这是从"做得出"到"做得可靠"的分水岭。
下一节 → 评估与可观测:怎么知道它真的好用(进阶 B2)

都看到这了,打个赏呗!
接下来 · b2.1
评估与可观测:怎么知道它真的好用
继续读下一节 →