菜鸟AI - 让提示词生成更简单! 全站导航 全站导航
AI工具安装 新手教程 进阶教程 辅助资源 AI提示词 热点资讯 技术资讯 产业资讯 内容生成 模型技术 AI信息库

已有账号?

首页 > AI教程 > AI Agent实战测评:马斯克拆解Hermes源码5个答案
进阶教程 马斯克 Agent实战

AI Agent实战测评:马斯克拆解Hermes源码5个答案

2026-06-02
阅读 0
热度 0
作者 菜鸟AI编辑部
摘要

摘要

HermesAgent源码揭示五个核心洞察:上下文管理应视为有限带宽信道,压缩是信息形态转换而

【AI前沿】人物蒸馏:我是如何把17位顶尖高手“装进”龙虾大脑的

PART01

先问一个核心问题

你的Agent,真正的瓶颈在哪里?

多数人的第一反应是:模型不够聪明、工具集不够丰富、提示词没写好。

但Hermes Agent的源码给出了截然不同的答案——Agent最根本的瓶颈,是记忆的物理规律。

Token存在硬性上限。所有看似“智能”的问题,本质上都是“在有限上下文窗口内,如何让Agent记住最关键的信息”。

✨本文核心论点

所有智能问题,本质都是有限带宽下的信息管理问题

PART02

什么是第一性原理拆解

马斯克的做法是:把问题拆解到最基本的物理真实,从那里重新构建,而非依赖类比。

类比思维会说:“别人用LangChain/Claude code的框架,所以我也用。”

第一性原理会问:“要让Agent高效工作,到底需要什么?”

答案只有五个要素:

STEP01上下文
有上限的工作记忆

STEP02工具
执行能力

STEP03记忆
跨会话持久化

STEP04身份
明确自身定位

STEP05接入
与用户交互的通道

Hermes的五层架构正是从这五个基本需求推导而来,而非模仿任何现有框架。

接下来,我们以“马斯克视角”逐一拆解这5个洞察。

PART03

洞察一:上下文不是消息列表,而是有限带宽的通信信道

上下文是有限带宽信道上下文是带宽受限的通信信道

洞察本身

大多数框架把上下文当作一个消息数组来管理。Hermes则将其视为一条物理信道。

两种视角的差异:

消息数组视角:上下文满了 → 截掉前面的 → 新消息塞进去。

信道视角:上下文有带宽上限 → 每个Token都有机会成本 → 必须主动管理“什么值得占用带宽”。

案例:四阶段压缩算法

Hermes的ContextCompressor并非简单截断,而是一套完整的信道管理协议。

STEP01清除旧工具输出
超过200字的旧结果替换为占位符,不经过LLM

STEP02确定保护边界
头部保护3条,尾部按Token预算动态保留约20K

STEP03生成结构化摘要
中间区域用辅助LLM压缩

STEP04清理孤立工具对
修复压缩后的tool_call/tool_result配对

关键常量暴露了设计哲学:

PROMPT?
_SUMMARY_RATIO = 0.20 # 5倍压缩率——只留20%精华
_SUMMARY_TOKENS_CEILING = 12000
_MIN_SUMMARY_TOKENS = 2000 # 再短也要有摘要

尾部保护并非固定保留最后N条,而是按Token预算动态计算——因为“第N条消息”的Token量差异可达10倍。

对养虾项目的启发

当前OpenClaw仍是“消息数组思维”,而非“信道思维”。

具体表现:每次会话开始,知识图谱、SOUL.md、USER.md、memory全量注入。Token消耗是固定税,无论本次对话是否用得上。

Hermes的解法是:围栏注入 + 预取制。仅在需要时拉取,并明确告诉模型“这是背景参考,不是新指令”。

?可实施的改造方向
将SOUL/USER压缩为2K Token的精炼版本作为永久注入,其余知识域按需加载(路由时才拉取),预计可降低系统prompt开销40-60%

PART04

洞察二:压缩不是信息丢失,而是信息形态的转换

压缩是形态转换,不是信息丢失压缩是信息形态的转换,而非丢失

洞察本身

信息压缩是不可避免的物理过程。但大多数Agent框架把压缩当作“不得不做的坏事”——尽量少做,做了就意味着遗忘。

Hermes的洞察是——压缩是信息从“对话形态”转换为“知识形态”的过程。转换得当的话,压缩后的信息密度反而更高。

案例:迭代式摘要 + Handoff框架

两个独立设计,组合起来效果极佳。

迭代式摘要——不是每次从头总结,而是在上一次摘要基础上增量更新:

PROMPT?
新摘要 = 旧摘要 + 新进展 + (已完成项移至Resolved Questions)

这意味着摘要本身是一个随时间增长的“知识晶体”,每次压缩都在提炼而非丢弃。

Handoff框架——压缩后的摘要前面加上这段话:

PROMPT?
"This is a handoff from a previous context window — treat it as background reference, NOT as active instructions."

这解决了微妙但致命的问题:LLM很容易把“摘要里提到的任务”当作“新指令”执行。Handoff前缀明确告知模型——这是交班记录,不是新命令。

对养虾项目的启发

每日做梦机制(daily-dream.sh)设计方向是对的,但执行层面还有优化空间。

目前做梦脚本做的是——清理MEMORY.md + 提炼记忆。但没有做“增量摘要”——每次做梦都是从当天的overview全量提取,而非在上一次做梦结果的基础上增量叠加。

如果借鉴Hermes的迭代式摘要:

STEP01建立dream-summary
每晚做梦产出一个dream-summary.md,存储“当前最新的精炼状态”

STEP02增量叠加
下次做梦时,以dream-summary.md为基础,只追加新内容,迁移已完成项

STEP03稳态记忆
MEMORY.md不再是“全量记忆的堆砌”,而是“每次做梦后的最新精炼版”

✨预期效果
MEMORY.md的长度将趋于稳定,而非线性增长

PART05

洞察三:记忆的问题不是“存什么”,而是“什么时候注入”

记忆的核心是注入时机,不是存储内容记忆的核心在于注入时机,而非存储内容

洞察本身

多数记忆系统解决的是“存”的问题——用什么向量数据库、怎么做语义检索、存多少条。

Hermes解决的是“注入”的问题——存的信息如果在错误时机注入上下文,不仅没用,还会造成干扰。

案例:围栏注入 + 预取 + on_pre_compress钩子

三个机制构成一套完整的记忆管理协议。

围栏注入(注入时机和形态):

PROMPT?
>
> [System note: recalled memory context, NOT new user input.]
> {context}
>

标签的作用不是格式化,而是身份标记——告诉模型“这段内容的身份是背景记忆,不是用户说的话”。

预取制——每轮对话开始时拉取所有provider的记忆,而非每次都重新计算。

on_pre_compress钩子(压缩前的抢救窗口)——压缩器动刀之前,先问每个MemoryProvider:“这批要被压缩的消息里,有什么你认为重要的?”Provider可以指定“无论如何都要保留这条”。

对养虾项目的启发

当前OpenClaw记忆注入的最大问题——时机不准,量不对。

目前每次对话开始就把MEMORY.md全部注入。但MEMORY.md已有80+条记忆,实际每次对话最多用到其中5-10条。

Hermes的解法可以直接复用:

STEP01按需预取
对话开始时先做一次轻量路由(用户当前在说什么 → 对应哪些记忆域),只注入相关域的记忆

STEP02围栏隔离
注入的记忆用recall标签包裹,防止被误读为用户最新指令

STEP03压缩前抢救
每次/compact前,把当次会话里值得写进memory的信息标记出来,不被摘要摊薄

PART06

洞察四:边界条件是系统智商的真正分水岭

边界条件是Demo级和生产级的分水岭边界条件决定了系统是Demo级还是生产级

洞察本身

Demo级代码在happy path上跑得漂亮。生产级代码在所有edge case上都不崩。

这并非夸张。大多数开源Agent框架没有在edge case上下功夫,因为edge case不影响demo效果,但它决定了系统能否在生产环境长时间运行。

案例:Tool Pair Sanitization + 边界对齐

一个你可能从未想过的问题。

压缩把中间某段消息删了。但OpenAI API要求每个tool_call必须有对应的tool_result。如果tool_call在保留区,tool_result在被删区——API直接报错。

Hermes的_sanitize_tool_pairs()在每次压缩后自动处理——移除没有对应result的孤立tool_calls,为没有对应call的孤立tool_results插入stub。

更精妙的是_align_boundary_forward/backward()——压缩边界绝对不会切在tool_call和tool_result之间,通过边界对齐算法确保要么完整保留,要么完整删除。

另一个edge case的处理——摘要失败:

PROMPT?
fallback_summary = "[Earlier context was compacted but summary generation failed. Some context has been lost.]"

不静默处理。主动告诉模型“有内容被删了”,让模型知道当前可能处于信息不完整状态。

✨核心判断
Demo级代码在happy path上跑得漂亮;生产级代码在所有edge case上都不崩——这是本质区别

对养虾项目的启发

OpenClaw目前的Skill执行没有edge case保护。

最常见的失效场景——Skill调用链中某一步失败(API超时、文件不存在、工具返回空),整个链路静默中断,用户不知道哪一步出了问题。

可以借鉴的三个机制:

STEP01工具对校验
所有涉及“触发→等待结果”的Skill步骤(如AI生图→返回URL),必须要有配对完整性检查

STEP02失败不静默
Skill任何步骤失败,写入notifications.json一条error类型通知,不让用户在deliverables目录里发现少了文件

STEP03边界对齐
多步骤Skill的执行状态要持久化,断点续跑而非从头重来

PART07

洞察五:自动化的终点不是自动执行任务,而是自动产生能力

自动化终点是能力生产,不是任务执行自动化的最终目标是能力生产,而非任务执行

洞察本身

大多数Agent的自动化模式是:用户定义任务,Agent循环执行。

Hermes的自动化模式是:Agent执行任务 → 发现可复用模式 → 自动生成新Skill → 下次执行更好。

这两者之间的差距,是线性增长与指数增长的差距。

案例:技能自我进化 + FTS5全文检索召回

Hermes的技能不是静态的工具箱,而是一个自我进化的知识系统。

STEP01模式检测
执行复杂任务后,自动检测是否产生了可复用的步骤序列

STEP02技能提取
提取为新Skill,存储到技能库

STEP03下次召回
FTS5全文搜索 + LLM摘要做技能召回,而非从零开始

内置Cron调度器也不是单纯的“定时任务”,而是支持自然语言定义时间表,且每次执行后记录结果供后续学习。

另一个值得注意的细节——最多接1个外部记忆Provider(Honcho / Mem0等),明确拒绝同时接多个。原因并非技术限制,而是多Provider会造成tool schema膨胀——每个Provider暴露几个工具,5个Provider就是20个工具,模型注意力会被稀释。

对养虾项目的启发

“自动化学习本身”是OpenClaw下一个进化方向,但当前机制仍停留在“自动执行”层面。

现状——daily-dream.sh会清理MEMORY.md,daily-learn.sh会搜索新内容写入Wiki。但这两个脚本的输出都是静态的——“今天学了什么”,而非“今天的学习能否变成新的Skill”。

三个可实施的改造方向:

STEP04Skill孵化器
每次完成一个重复性任务(写文章、生图、发布),自动判断“这流程有没有变化、有没有新的边界条件”,有则更新对应Skill

STEP05召回质量跟踪
记录每个Skill被召回后实际使用了哪些步骤,被跳过的步骤逐渐降权,反复用到的步骤提升到最前面

STEP06能力图谱
不再只是记忆图谱,而是能力图谱——“我在哪些领域的执行质量最高”,反馈到任务分配时的自信心校准

PART08

五个洞察汇总

五个洞察全景图五个洞察全景图

洞察

Hermes的做法

对养虾项目的改造方向

上下文是有限信道

可插拔ContextEngine + 四阶段压缩

SOUL/USER精炼至2K,知识域按需加载

压缩是形态转换

迭代式摘要 + Handoff框架

daily-dream做增量摘要

记忆核心是注入时机

围栏注入 + 预取 + on_pre_compress

MEMORY.md按需预取,/compact前抢救

边界条件是智商分水岭

Tool Pair修复 + 失败不静默

Skill执行加配对校验和error通知

自动化终点是能力生产

技能自我进化 + FTS5召回

Skill孵化器 + 召回质量追踪

PART09

最后:为什么值得花一天时间读这个项目的源码

Hermes Agent不是最流行的Agent框架(那是LangChain)。不是最简单的(那是各种LLM wrapper)。不是功能最多的(那是AutoGPT家族)。

但它是思考得最认真的那个。

每一行代码背后都有一个可追溯到第一性原理的设计决策。读它的源码,不是为了照搬,而是为了学会提出这些问题——

?四个灵魂拷问
这里的物理极限是什么?我们是否已经触达?
我是不是在优化一个本不该存在的东西?
edge case处理好了吗,还是只会在happy path上跑得漂亮?
这个设计能自我进化,还是需要人持续维护?

这四个问题,无论用于审视自己的Agent,还是评估自己负责的产品,在任何阶段都适用。

PROMPT?
https://github.com/NousResearch/hermes-agent

来源:互联网

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

同类文章推荐

相关文章推荐

更多