周末躺床上刷GitHub看到的。纯Python写的Hermes,把Rust写的OpenAI Codex给干了。
11项真实世界CLI任务基准测试,比分6:5。
别觉得是模型厉害或者堆了算力。这次翻盘全靠三个纯工程优化。刀刀见血。
从701ms砍到258ms。整整砍掉了443毫秒。63%的性能提升。
原来Hermes每次启动都要调Bitwarden Secrets Manager的API拉凭据。一次380毫秒。
蠢的地方在哪?缓存是纯进程内的。就是说你连续执行两次hermes chat -q,第二次还要重新拉一遍。
我自己写脚本的时候也犯过这毛病。总觉得进程内缓存够用,忘了用户是反复敲命令的。
解决方案简单到离谱。加了个L2磁盘缓存。
缓存文件权限锁死0600,存在<hermes_home>/cache/bws_cache.json。访问token绝不落盘,默认300秒TTL,过期才重新拉。
一刀砍掉380ms。
说个题外话,我上周优化自己的小工具,也是类似的问题。每次启动读远程配置,搞了个本地缓存,直接快了小几百毫秒。程序员的快乐有时候就这么简单。
hermes_cli.models._PROVIDER_MODELS。一个包含所有AI供应商模型信息的巨型字典。
之前在模块加载时就急切导入。吃掉约55ms。
问题是,实际上只有model_flow相关的处理函数才需要它。大部分命令根本碰不到这个字典。
团队用PEP 562的模块级getattr实现了懒加载。只在真正访问模型目录时才付出这笔开销。
又省了55毫秒。
这种优化最考验人。你得真的去profiling,真的去看每一行代码的执行时间,不然根本发现不了一个字典导入能吃掉55ms。
main.py顶部原本读了两次config.yaml。
第一次用yaml.safe_load,用于密钥脱敏桥接。第二次用完整的load_config()(含深度合并),只为检查一个布尔值。
合并成一次原始加载。
省下17ms。
三刀加起来,701ms → 258ms。
这才是真正的工程暴力美学。纯靠profiling找到瓶颈,一刀一刀切掉冗余。
我见过太多团队一碰到性能问题就想着换语言、换架构。结果呢?换了Rust还是慢。因为真正的瓶颈往往不在语言,而在这些没人注意的小地方。
优化前,Hermes对Codex是5胜6负。
单轮任务被Codex压制。多轮任务略有优势但不够明显。
优化后,局面彻底反转。
单轮任务(8项):Hermes的中位框架开销,降到了与Codex持平甚至略低的水平。原本被Codex碾压的启动劣势,被完全抹平。
多轮任务(3项):Hermes在5轮对话的总开销上已经领先,优化后优势进一步拉大。
最终总分6:5。
一个用Python写的开源项目,在框架开销——这个最考验底层功力的维度,击败了用Rust写的、背后站着万亿市值公司的闭源产品。
长期以来,Python在性能圈几乎是"原罪"般的存在。解释型语言、GIL锁、动态类型开销……
OpenAI选择用Rust构建Codex CLI时,所有人都觉得理所当然。Rust生来就是为性能而生的。
但Hermes的这次逆袭说明了一个关键事实。
在Agent这个赛道上,框架层面的架构决策,比语言层面的原始速度更重要。
开发者netrunner的评论一针见血。"Python在多轮任务上打赢Rust,本质上是架构决策的胜利,而不是语言速度的胜利。"
"Codex可能在上下文处理上,过度工程化了。"
还有人问,为何不把Hermes也迁移到Rust?那不是更快?
Hermes联创兼首席科学家Teknium直言,"那样就无法编辑代码,以及实时改进和迭代。"
Python的优势不在于快,而在于活。
对于一个需要持续进化、从每次交互中学习的Agent来说,开发者友好性和迭代速度,就是最大的性能优势。
我之前用LangChain做过一个小Agent。一开始追求性能,想用Go重写。后来发现根本没必要。因为真正耗时的是LLM调用,不是框架本身。我花在调试Go上的时间,比Python慢那几毫秒值钱多了。
从2026年2月25日上线至今,三个月。GitHub星标突破16万。
日活Token消耗量达到353B,是同类项目OpenClaw的近两倍。
2026年增长最快的开源Agent框架。没有之一。
核心杀手锏是一套闭环学习架构。
每次完成复杂任务后,Agent会自动将解决方案提炼为可复用的Skill。下次遇到类似任务,直接调用已有技能,跳过从头推理。
NousResearch内部基准测试显示,积累20个以上自创技能的Hermes实例,完成同类任务的速度比全新实例快40%。
v0.12版本引入的自治Curator。一个后台自动运行的Agent,会定期评分、修剪、合并你的技能库。
Hermes不仅能学,还能自己整理学到的东西。
Python打赢Rust这件事,看起来是一个编程语言之间的逆袭爽剧。
但它真正揭示的东西,要深刻得多。
在AI Agent的世界里,底层语言的性能差异正在变得越来越不重要。
Hermes这次优化砍掉的443毫秒,已经是框架层能挤出的极限了。而一次LLM调用的延迟,动辄几百毫秒甚至数秒。
这意味着,在通往ASI的路上,真正的竞争从来不是"用什么语言写",而是"怎么让Agent越用越聪明"。
Hermes这次用Python干翻Rust,恰恰证明了。
在Agent进化的赛道上,开放、可编辑、可迭代的架构,比"跑得快"更接近ASI的本质。
Rust是一把好刀。但ASI需要的不是一把更快的刀。
GitHub地址:https://github.com/nousresearch/hermes-agent
有兴趣的可以自己去看看。PR #31968就是这次优化的具体代码。
对了,提醒一句。别看完就想着把自己的Python项目全优化一遍。先profiling,找到真正的瓶颈再动手。不然就是瞎忙活。