为什么我要造一个500行的Agent轮子?
你好,我是 FROST 的作者。
2026年了,Agent 框架多得能让人挑花眼:LangGraph 有 34.5M 月下载量,Dify 在 GitHub 斩获 129.8K Stars,各大厂商都在疯狂推自己的 SDK。这种环境下,再写一个"轮子",是不是有点多余?
说实话,我也纠结了很久。
一个困惑:新学者的两难困境
事情要从一次失败的辅导说起。
我帮一个朋友入门 Agent 开发,推荐了 LangChain。结果他学了两个月,还在和 chain.invoke() 搏斗,脑子里依然没有"Agent 到底是怎么工作的"这个概念。
问题出在哪?
现在的框架太强了,强到把所有的复杂性都藏了起来。 你可以三行代码跑起来一个 Agent,但你也永远不知道它内部发生了什么。就像学开车,你学会了踩油门转弯,但发动机是怎么工作的、变速箱怎么换挡,一概不知。
而对于想真正理解 Agent 本质的人来说,这是一个巨大的 Gap:
| 需求 | 现有选项 |
|---|---|
| 快速开发产品 | LangChain/CrewAI |
| 理解底层原理 | 论文 + 源码 |
| 入门级教学框架 | ❌ 空白 |
这个空白,就是 FROST 存在的原因。
FROST 的设计哲学:Less is More
FROST 不是一个生产级框架,它是一个教学框架。
这意味着它刻意放弃了:
- ❌ 复杂的依赖生态(不需要 LangChain)
- ❌ 丰富的工具集成(没有 100+ 内置工具)
- ❌ 分布式部署能力(就是单机 Python)
它只保留了三个核心概念:
\`python
Store - 记忆容器(类似神经细胞的存储功能)
class Store:
"""存储上下文、记忆、状态"""
def init(self): self.data = {}
Skill - 纯函数变换(类似神经细胞的处理功能)
class Skill:
"""输入→处理→输出,无状态"""
def call(self, store, *args, **kwargs): pass
Agent - 执行单元(类似神经细胞本身)
class Agent:
"""调用 Skill,操作 Store,完成目标"""
def init(self, skills: list[Skill], store: Store): pass
`\
是的,就这么简单。三个类,不超过 500 行代码。
但正是这种简单,让"理解"变得可能。
一行代码跑起来的 Agent
\`python
from frost import Agent, Store, Skill
定义一个"搜索助手"技能
class SearchSkill(Skill):
def call(self, store, query):
result = web_search(query) # 这里是你的搜索实现
store.set("last_search", result)
return result
创建 Agent 并运行
store = Store()
agent = Agent(skills=[SearchSkill()], store=store)
response = agent.run("北京今天天气怎么样")
print(response)
`\
对比一下用 LangChain 实现同样的功能:
\`python
from langchain.agents import AgentExecutor, create_react_agent
from langchain_openai import ChatOpenAI
... 还有十几行初始化代码
`\
FROST 让你从第一行代码开始,就知道自己在做什么:
- Agent 是执行者
- Skill 是它的能力
- Store 是它的记忆
没有魔法,没有黑箱,只有清晰的数据流。
为什么叫 FROST?
FROST 的全称是 Fractal Remote Organ of Scalable Thoughts——可扩展思维的分形远程器官。
这个名字源于它的设计灵感:神经细胞(Neural Cell)。
在生物学中,每个神经细胞都很简单:
- 接收信号
- 处理信号
- 发出信号
但当 亿万个神经细胞 连接在一起,就涌现出了智能。
FROST 试图在软件层面复现这个过程:
Neural Cell → Agent
Synapse → Skill
Long-term Memory → Store
Brain (Emergence) → Multi-Agent System
这不是在模仿大脑,而是在学习生物界的智慧:简单单元 + 清晰连接 = 复杂行为。
我的踩坑日记
作为一个从零开始写框架的人,踩的坑比代码行数还多:
坑1:追求"完整"差点毁掉项目
最初我设计了一个包含配置管理、日志系统、错误重试的"完整框架"。写了 2000 行后,我发现:
- 代码复杂度指数级上升
- 核心概念被淹没在细节里
- 教学价值归零
教训:教学框架的第一原则是最小化。功能可以以后加,但第一印象无法重来。
坑2:被"这有什么用"质疑
最常见的质疑是:"你这么简单的框架,生产环境谁会用?"
我的回答是:这不是给生产环境用的。
FROST 的用户画像是:
- 刚学完 Python,想了解 Agent 的学生
- 想从应用层深入到底层原理的开发者
- 想给学生演示 Agent 工作原理的讲师
为特定用户解决特定问题,比"什么都能做"更有价值。
FROST-SOP:思想的开花结果
在 FROST 的基础上,我又开发了 FROST-SOP——一个面向工程实践的 Agent 开发平台。
如果说 FROST 是"理解 Agent"的教材,那 FROST-SOP 就是"使用 Agent"的工具箱。
- FROST:教学框架,500行代码,揭示本质
- FROST-SOP:工程框架,完整功能,用于生产
两者共享同样的设计思想:分形架构 + 家族治理,只是侧重点不同。
加入我们
FROST 还有很多不完善的地方:
- 文档还在补全
- 示例还不够丰富
- 测试覆盖还有提升空间
但这恰恰是一个开源项目的真实状态。
如果你对 Agent 框架感兴趣,无论是想学习原理、贡献代码,还是只是想看看"一个 500 行的框架长什么样",欢迎:
- GitHub:https://gitee.com/liao_liang_7514/frost
- 文档:项目 README
- 提 Issue:功能建议、Bug 反馈、代码贡献
最后
造轮子不是目的,理解轮子才是。
当你读完 FROST 的 500 行代码,希望你收获的不只是一个框架,而是:
"原来 Agent 的本质,就是这么简单。"
如果你觉得这篇文章有帮助,欢迎转发给需要的朋友。
Tags: python, agent, ai, opensource
Top comments (0)