文章

你的 AI Agent 框架,不过是在重新发明 Erlang

你的 AI Agent 框架,不过是在重新发明 Erlang

今天在 Hacker News 上看到一篇很有意思的文章:《Your Agent Framework Is Just a Bad Clone of Elixir》。作者 George Guimarães 指出,2026 年 Python AI 生态里疯狂造轮子的那些 Agent 框架,核心模式(隔离状态、消息传递、监督层级、故障恢复)在 Erlang/BEAM 虚拟机上已经跑了 40 年。

这个观点很犀利,也很值得展开聊聊。

30 秒请求问题

传统 Web 框架为毫秒级请求设计——用户点击,服务器查库,返回 HTML,100ms 内搞定。Rails、Django、Laravel 都是这个模式。

AI Agent 打破了这个模型。一个用户提问,Agent 可能要调用 LLM 等 5-30 秒,中间还要调工具、再调 LLM、再流式输出。一个”请求”可能包含三轮 LLM 调用、两次数据库查询、一次网页搜索。而且连接全程保持。

一万个并发用户,每个连接保持 15 秒以上。传统的 thread-per-request 架构直接窒息。

而 BEAM 虚拟机天生就是干这个的。Ericsson 在 1986 年设计它来处理电话通话——最原始的长连接场景。每个通话保持状态,持续数分钟,系统需要同时处理数百万个。BEAM 的轻量进程只有 ~2KB,可以 spawn 数百万个,每个有独立堆和 GC,还有抢占式调度。

Actor Model = Agent Model?

这是全文最核心的洞察:Erlang 的 Actor 模型和 AI Agent 模型在架构上是同构的。

Actor Model (1986) Agent Model (2026)
轻量进程,隔离状态 独立 Agent,隔离上下文
消息传递通信 Agent 间 message passing
Supervisor 监督树 Orchestrator 编排层
Let it crash + 自动重启 Agent 失败重试/降级
热代码替换 Agent 动态更新

对比一下就会发现,LangGraph 的状态图、CrewAI 的角色编排、AutoGen 的多 Agent 对话……这些框架在做的事情,本质上都是在 Python 里重新实现一个蹩脚版的 OTP(Erlang 的标准库框架)。

为什么大家不用 Erlang/Elixir?

答案很现实:生态

Python 拥有 AI 领域绝对统治性的生态——PyTorch、HuggingFace、LangChain、各家 LLM SDK 全是 Python first。选技术栈不是选最优雅的语言,而是选最低摩擦的路径。

而且说实话,大部分 Agent 应用的并发需求没到需要 BEAM 级别。几十个并发 Agent?Python async 完全够用。几万个?上 Kubernetes 横向扩展也能撑住。

但这不意味着 Erlang/Elixir 的思想没有价值。恰恰相反,理解 Actor 模型能帮你设计更好的 Agent 架构,无论你用什么语言实现。

真正值得学的教训

从 Erlang 40 年的工程实践中,Agent 开发者应该带走这几点:

1. “Let it crash” 哲学。 别试图在 Agent 内部处理所有异常。让 Agent 崩溃,让上层 Supervisor 决定重启还是降级。大部分 Agent 框架的错误处理太脆弱——要么忽略异常,要么整个 pipeline 挂掉。

2. 状态隔离是第一原则。 共享状态是并发系统的万恶之源。每个 Agent 应该拥有自己的独立状态,通过明确的消息协议通信。别用全局变量或共享内存在 Agent 之间传数据。

3. 监督树,而非扁平编排。 多 Agent 系统需要层级化的监督结构——谁监督谁,失败了谁负责重启,哪些 Agent 可以独立失败而不影响全局。

4. 背压和流控。 当下游 LLM API 变慢时,上游的请求队列会无限膨胀。Erlang 社区在背压处理上积累了大量经验(GenStage、Broadway),而大部分 Agent 框架对此完全没有设计。

写在最后

技术领域最常见的误区就是认为”这次不一样”。AI Agent 的核心挑战——并发、状态管理、故障恢复、系统韧性——都是分布式系统的经典问题。Erlang 在 40 年前就给出了优雅的解答。

与其从零造轮子,不如先看看前人走过的路。

如果你也在关注 Agent 架构演进,想亲自对比不同模型在 Agent 场景下的表现,推荐试试 OfoxAI(ofox.ai)— 一个账号聚合 Claude、GPT、Gemini 等主流模型,方便快速验证想法。

本文由作者按照 CC BY 4.0 进行授权