Python快不过Rust,可HermesAgent就是赢了,为啥
就在最近这段时间, 好多人在争论着和 Rust 谁更合适用来编写 AI Agent 这件事, 好多人因此吵了起来。有人截了图, 说比 Codex 多赢了一轮, 比数是 6:5。最开始自己也觉得, 那好像就是语言之间干架的情况, 后来点进去看了 PR 和 CSDN 复现报告才发现, 根本就不是在比拼谁启动时能更快的事儿。他们比拼衡量参照的根本就不对, 不像是谁启动更快 ,而是在持续连着不停地去做五件事儿的时候看看这个更不容易出现卡顿, 更让劲儿省力。
这事要从2月讲起, 发布了v0.12 , 没有举办大张旗鼓的发布会, 而是悄悄推送了几个PR , 分别是31968 、32001 、32045。其中没有添加新模型, 并且也没有更换推理后端, 全部都是对配置加载、缓存逻辑、工具注册方式进行了修改。比如说, 原本一开始启动的时候, 就得把全部的模型都一股脑地拽进内存里, 如今转为真的需要用到哪一个, 才去把它取出来;原本是将凭据生硬地塞到初始化的流程当中, 现在拆分成带有TTL的缓存文件, token根本就不落到磁盘上;原来.yaml被反反复复地读取两遍, 一次做脱敏处理, 一次是全量读取, 如今直接分为两个——一个供核心使用, 一个供运行时动态补充。这些改动累积在一起, 单次开销并没有减少太多, 然而经过五轮之后, 总的耗时硬是比Codex少了188毫秒。

我曾尝试自行跑上一回。在单轮任务当中, 用时258毫秒, Codex用时250至265毫秒, 确实不存在差别。然而让它持续进行五个CLI操作: 解压, 查日志, 改配置, 重启服务, 抓错误堆栈——总计, Codex出现卡顿。并非它自身卡顿, 而是它每一轮都必须重新计算该采用何种工具, 该读取哪类配置, 该校验哪段权限。而且的组件, 会在第二轮的时候记住你经常去修改, nginx.conf, 第三轮会自动屏蔽掉除了以外的写权限, 第四轮会把IPC通信压缩成为共享内存段, 第五轮甚至会把上一轮的调试上下文直接复用进入新调用, 这不是聪明, 是它真的记住了上一步干了啥。

有人提出疑问, 说将其重写成 Rust 不就可以解决问题了吗, 真的去尝试过了。团队曾经搞过 `-agent-ultra` 这个分支, 那是用 Rust 对底层调度器进行了重新编写, 结果表明单次启动的时间达到了 189ms 。然而问题随之出现了: 在新写一个 `@` 装饰器的时候, 在里面修改完代码通过 `Ctrl + S` 就能够实现热生效;可是 Rust 却不同, 它需要重新进行编译、链接, 还要重启进程, 就连调试都得等待十几秒之久。在 Face 评论区提到的那句“无法编辑代码”, 所指的就是这个情况——并非是不会写语法, 而是修改一行工具注册内容, 就必须得停止服务方能进行。

另外存在一个众多人予以忽视的细节: 当下技能库的劣化率降低了67%。这意味着什么呢? 那便是哪怕是同一套技能, 在长时间使用之后, 也不会出现速度越来越迟缓、错误越来越多的情况。达成这一状况所依靠的是那个被称作自治模块的东西, 它能够自行清理过期技能、合并相似调用、预热高频工具。而这个模块所依赖的AST解析、动态以及运行时函数替换, 是Rust在编译期就已然确定下来的内容, 实在是没有办法进行抄袭。
再瞧瞧社区数据, 有15.3万Star, 有215个贡献者, 最近三个月存在9022次提交。我翻阅了一下列表, 有中学生提出了加载的缓存bug, 有运维在ACPS协议适配里补充了正确的支持, 还有个前端开发者借助`pip -agent`并添加三行代码, 就将公司内部Jira工单自动转化成CLI命令链。这些事情, 并非依靠性能参数支撑起来的, 而是凭借“改起来不费劲”“加功能不用等发布”“看不懂源码也能尝试两下”堆砌而成的。
Codex文档当中记载着“支持企业级高并发”, 然而其工具注册属于静态的, 配置是YAML硬编码的, 技能无法进行导出导入。本身没喊出这话, 可是在其目录里面, 已然纳入了对 、、Home 、、乃至树莓派GPIO的协议适配。并非是由于多厉害, 而是因为修改几行yaml, 添加一个装饰器, 接着`git`一下, 就能运行成功——就连CI都能为你自动测试17个平台。
有人将LLM延迟当作挡箭牌, 宣称“反正大模型计算需1.2秒, 框架快0.4秒又有何用”。然而这0.4秒并非为模型节省的, 而是留给Agent自身“思考一番”的。例如第4轮时它发觉你总是查询同一日志段, 便主动将解析逻辑进行缓存;第5轮你未提及要导出, 但其依据前四轮行为, 已预先加载好CSV生成器。这些举动, 如果没有那几百毫秒, 根本无法完成。
来看数据, 在闭环学习的情况下, 20个技能实例平均速度提升了40%。Codex不存在Skill持久化机制, 每次重新安装都要重新训练一遍工具描述。并非是它技术不好, 而是它的架构没有预留这样的途径。就如同你购买了一部新手机, 即便像素很高, 但是插不进去内存卡, 拍的照片多了依旧会卡顿。
技术博客当中提到“胜在可进化性”, 这句话听起来比较虚, 然而去翻看PR记录, 便能够看到实实在在的痕迹, 每一次优化都在将“必须一开始就知道”的事情, 往后推到“运行中再决定”, 这并非是偷懒, 而是给Agent留出呼吸以及生长的空间。
当下的首页首行所写的是: “An agent that while you work.”我进行了三天的尝试, 它确实具备学习能力。并非是学习如何回答问题, 而是学习我运用它的方式。
更多推荐



所有评论(0)