「每个 LLM 都是一个 Agent」:Endo 想在 n8n 和 ReAct 之外再开一个形态

做 Agent 的人大概都卡在过同一个地方:流程要么硬得像 n8n 那种固定编排,跑起来一丝不苟但也改不动;要么放开成 ReAct 那种自由环,模型想怎么绕就怎么绕,灵活是真灵活,可你要它严格走某几步、算某一笔记账时,它自己就飘了。

Endo 今天挂上 Hacker News(github.com/longsurf-ai/endo),讲的就是在两者中间再开一个形态。作者自己说,这东西是他在写 OpenChart(longsurf-ai/openchart)、做交易工作流时想出来的:交易场景既要严格确定性,又想要模型在推理时的临场决策能力。两个都要,n8n 给不了第二个,纯 ReAct 给不了第一个。

Endo 的关键主张挺反直觉:每个 LLM 都是一个 Agent,别再把 LLM 当成外部 ReAct 环里的一个节点。它管自己叫 Higher-Order Harness(HOH),意思是一整个 Agent 可以被当成一次普通 LLM 调用来编排,于是 Agent 套 Agent,套出极其复杂的流程。作者试过的一个乐子案例,是让 Fable 和 Astra 两个 Agent 去模拟一场总统辩论。

名字也好玩,Endo 是 Endomorphism 的缩写,范畴论和函数式编程里「把一个对象变成同类对象」的函数,整个项目也是纯函数式思想搭的,重度依赖 Effect 这个 TypeScript 库。落到协议层,它要把任何 harness 抽象成标准化协议,让原始模型和 Agent 表现得完全一样,还对 KV-cache 友好,也就是尽量少浪费你已有的计算缓存。

这个项目上 HN 也就 3 个分,显然还没火起来,但方向我个人觉得踩在实处:很多人做 Agent 早就不满足于「让它自由发挥」,而是想要一种介于编排与自主之间的可控灵活度。Endo 算是把这种需求做成了一个开源的、用单一工作流语言就能任意组合的工具。它完全开源,作者原话说得也直白——「觉得这个想法酷就一起 build,就是图个乐子」。

至于它到底能不能落地、HOH 这套抽象在实际代码里会不会反而把问题搞复杂,现在没人知道。开源项目就是这样,想法先摆出来,剩下的交给想用它的人去踩坑。

相关链接

  • Endo 仓库:https://github.com/longsurf-ai/endo
  • OpenChart:https://github.com/longsurf-ai/openchart
  • Effect(TypeScript 函数式库):https://github.com/Effect-TS/effect
  • HN 讨论帖:https://news.ycombinator.com/item?id=50110614