跳到主要内容
  1. 文章/

三个 agent 框架,一个 eval

·1 分钟

同一个东西——agent 框架——我最后写了三遍:Go (agent-go)、Rust(harness-rs)、 Python(miniagent)。不是故意的。每一个回答了不同的问题:Go 是真要拿去用的, Rust 是想看严格类型系统下循环是什么手感,Python 是想用最少的仪式把概念讲清楚。

三个框架带来一个显然的问题:它们到底好不好,我怎么知道?“在我的 prompt 上能跑” 不算答案。于是我做了第四个东西——eval-go ——对照 rubric 给 agent 的运行打分,进而自己把 agent 跑起来,在同一批任务上对比。

benchmark 真正发现了什么 #

我给三个框架同样的文件工具任务——履约订单、对账、批处理中途遇到缺失文件后恢复。 有意思的结果不是排行榜。换上够强的模型,三个都正确。差距出现在一个条件下: 运行时的逆境。

在一个工具会报错的任务上(文件不存在),只有把错误回喂给模型、而不是直接中断运行的 那个框架,才真正恢复了。那个 bug 是真的,就在 agent-go 里,是这个 benchmark 把它 揪出来的。我把修复发布了。

这就是这个博客的主旨:agent 里在 demo 中最不起眼的部分——错误恢复、循环终止、诚实 的打分——恰恰是决定它能不能用的部分。后面还有更多。