Hermes Memory系统协议P链:让AI Agent永不遗忘的隐形纽带
Hermes Memory系统协议P链:让AI Agent永不遗忘的隐形纽带
Hermes Memory系统协议P链:让AI Agent永不遗忘的隐形纽带 Hermes Memory系统协议P链:让AI Agent永不遗忘的隐形纽带 Modified April 20 Code block Plain Text Copy 我: resume Dockerfile问题 Hermes: [自动加载P链] 找到昨天会话,加载上下文... 记得你昨天遇到Python版本问题,现在解决了吗? 我: 解决了,但遇到了新问题,layer cache失效了 Hermes: [检索P链] 让我看看... [建议] 试试把COPY命令和RUN命令分开... Day 5 周五下午 Code block Plain Text Copy 我: 能帮我总结一下这次调试的经验吗? Hermes: [遍历整个P链] 好的,我回顾了这5天的对话... [自动创建skill] 已保存为 这就是P链协议的力量——5天的调试,变成了一个永久的技能。 案例2:跨平台记忆同步 Hermes Gateway的一个杀手级特性是: 会话是按ID存储的,不是按平台 。 这意味着: • 你在Telegram上开始一个项目 • 晚上回家在Terminal继续 • 第二天在Discord讨论 • 所有对话都在同一条P链上 我亲眼见过一个开发者的工作流: 周一 Telegram(通勤路上) Code block Plain Text Copy 我: @Hermes,帮我创建一个新项目结构 Hermes: [创建项目] 好的,已创建 /code/myapi 周一 Terminal(办公室) Code block Plain Text Copy $ hermes resume myapi Hermes: [通过P链找到Telegram会话] 找到了,这是你早上创建的项目 你想继续做什么? 周一 Discord(晚上在家) Code block Plain Text Copy 我: /resume myapi Hermes: [P链跨平台] 继续之前的项目... 同一条P链,无缝切换三个平台。 P链协议的实现 SessionDB类的关键方法 Code block Plain Text Copy class SessionDB: def create session( self, session id: str, source: str, model: str, user id: str, parent session id: Optional[str] = None P链的关键 ) None: """创建新会话,支持指定父会话""" def get lineage(self, session id: str) List[Dict]: """获取完整的P链""" sql = """ WITH RECURSIVE lineage AS ( SELECT id, title, started at, parent session id FROM sessions WHERE id = ? UNION ALL SELECT s.id, s.title, s.started at, s.parent session id FROM sessions s JOIN lineage l ON s.id = l.parent session id ) SELECT FROM lineage ORDER BY started at ASC """ return self.execute(sql, (session id,)).fetchall() def resolve session by title(self, title: str) str: """通过标题找到最近的session(在P链中)""" sql = """ SELECT id FROM sessions WHERE title = ? ORDER BY started at DESC LIMIT 1 """ result = self.execute(sql, (title,)).fetchone() return result['id'] if result else None 并发写入的处理 当多个进程(Gateway + CLI + worktree agents)同时写入时 P链协议使用随机指数退避来避免"convoy effect": Code block Plain Text Copy WRITE MAX RETRIES = 15 WRITE RETRY MIN S = 0.020 20ms WRITE RETRY MAX S = 0.150 150ms def write with retry(self, operation): for attempt in range( WRITE MAX RETRIES): try: return operation() except sqlite3.OperationalError as e: if "locked" in str(e) and attempt < WRITE MAX RETRIES 1: delay = random.uniform( WRITE RETRY MIN S (2 attempt), WRITE RETRY MAX S (2 attempt) ) time.sleep(delay) else: raise 🎉 这确保了P链在高并发环境下的数据一致性。 对比分析:Hermes P链 vs 其他方案 特性 Hermes P链 OpenClaw会话 传统RAG 会话血缘追踪 ✅ 完整P链 ❌ 无血缘 ❌ 无概念 跨会话检索 ✅ P链+FTS5 ⚠️ 基础检索 ✅ 向量检索 上下文压缩 ✅ 自动分割 ❌ 无压缩 ⚠️ 手动管理 跨平台同步 ✅ 会话ID绑定 ❌ 平台隔离 N/A 可追溯性 ✅ 完整历史 ❌ 无记录 ⚠️ 元数据 Token效率 ✅ 渐进加载 ❌ 全部加载 ✅ 检索加载 ⚽ P链协议是Hermes相对于其他Agent框架的 核心差异化优势 : 其他框架:每次对话都是孤岛Hermes:每次对话都是P链上的一个节点 其他框架:只能检索相似内容Hermes:可以追溯完整的历史脉络 其他框架:跨平台等于新对话Hermes:跨平台是同一对话 ✏️总结 P链协议是Hermes Memory系统的 隐形纽带 ,它让: • 💾 记忆有了时间维度 :不是平铺的数据库,而是有时间线的血缘链 • 🔄 对话有了连续性 :每次都是延续,而不是重新开始 • 📚 知识有了积累 :历史对话变成技能,经验变成资产 • 🤝 人机有了信任 :Agent真的记得你,而不是假装记得 Day 5 周五下午 这就是P链协议的力量——5天的调试,变成了一个永久的技能。 案例2:跨平台记忆同步 Hermes Gateway的一个杀手级特性是: 会话是按ID存储的,不是按平台 。 这意味着: • 你在Telegram上开始一个项目 • 晚上回家在Terminal继续 • 第二天在Discord讨论 • 所有对话都在同一条P链上 我亲眼见过一个开发者的工作流: 周一 Telegram(通勤路上) 周一 Terminal(办公室) 周一 Discord(晚上在家) 同一条P链,无缝切换三个平台。 P链协议的实现 SessionDB类的关键方法 并发写入的处理 当多个进程(Gateway + CLI + worktree agents)同时写入时 P链协议使用随机指数退避来避免"convoy effect": 🎉 这确保了P链在高并发环境下的数据一致性。 对比分析:Hermes P链 vs 其他方案 特性 Hermes P链 OpenClaw会话 传统RAG 会话血缘追踪 ✅ 完整P链 ❌ 无血缘 ❌ 无概念 跨会话检索 ✅ P链+FTS5 ⚠️ 基础检索 ✅ 向量检索 上下文压缩 ✅ 自动分割 ❌ 无压缩 ⚠️ 手动管理 跨平台同步 ✅ 会话ID绑定 ❌ 平台隔离 N/A 可追溯性 ✅ 完整历史 ❌ 无记录 ⚠️ 元数据 Token效率 ✅ 渐进加载 ❌ 全部加载 ✅ 检索加载 特性 特性 Hermes P链 Hermes P链 OpenClaw会话 OpenClaw会话 传统RAG 传统RAG 会话血缘追踪 会话血缘追踪 ✅ 完整P链 ✅ 完整P链 ❌ 无血缘 ❌ 无血缘 ❌ 无概念 ❌ 无概念 跨会话检索 跨会话检索 ✅ P链+FTS5 ✅ P链+FTS5 ⚠️ 基础检索 ⚠️ 基础检索 ✅ 向量检索 ✅ 向量检索 上下文压缩 上下文压缩 ✅ 自动分割 ✅ 自动分割 ❌ 无压缩 ❌ 无压缩 ⚠️ 手动管理 ⚠️ 手动管理 跨平台同步 跨平台同步 ✅ 会话ID绑定 ✅ 会话ID绑定 ❌ 平台隔离 ❌ 平台隔离 N/A N/A 可追溯性 可追溯性 ✅ 完整历史 ✅ 完整历史 ❌ 无记录 ❌ 无记录 ⚠️ 元数据 ⚠️ 元数据 Token效率 Token效率 ✅ 渐进加载 ✅ 渐进加载 ❌ 全部加载 ❌ 全部加载 ✅ 检索加载 ✅ 检索加载 ⚽ P链协议是Hermes相对于其他Agent框架的 核心差异化优势 : 其他框架:每次对话都是孤岛Hermes:每次对话都是P链上的一个节点 其他框架:只能检索相似内容Hermes:可以追溯完整的历史脉络 其他框架:跨平台等于新对话Hermes:跨平台是同一对话 ✏️总结 P链协议是Hermes Memory系统的 隐形纽带 ,它让: • 💾 记忆有了时间维度 :不是平铺的数据库,而是有时间线的血缘链 • 🔄 对话有了连续性 :每次都是延续,而不是重新开始 • 📚 知识有了积累 :历史对话变成技能,经验变成资产 • 🤝 人机有了信任 :Agent真的记得你,而不是假装记得 这不仅仅是技术实现,更是对"什么样的Agent才真正有用"这个问题的回答。 🚅 一个优秀的AI Agent,不应该只是: • 更聪明的问答机器人 • 更强大的工具调用器 • 更快的文本生成器 而应该是: • 记得你说过什么的伙伴 • 记得你做过什么的助手 • 记得你想要什么的协作者 P链协议,让Hermes成为了这样的Agent。 🏕️ 行动号召 如果你还没体验过Hermes的P链协议: 试试看,你会发现—— 和一个记得你的AI聊天,是种完全不同的体验 。 相关阅读 • https://hermes agent.nousresearch.com/docs/user guide/features/memory • https://hermes agent.nousresearch.com/docs/developer guide/session storage • https://hermes agent.nousresearch.com/docs/migration/openclaw • https://hermes agent.nousresearch.com/docs/user guide/features/skills AI 人工智能 Hermes 记忆系统 AI Agent 开源 NousResearch 自我进化 P链 作者 :大象 公众号 :大象AI共学 欢迎关注 🔗 原文链接: https://mp.weixin.qq.com/s/jgHHb7Dt... https://mp.weixin.qq.com/s/jgHHb7Dt... 原创 大象AI共学 大象AI共学 大象AI共学2026年4月19日 11:00 重庆 前言: 前两天我在Hermes Agent的Discord群里看到一个用户发了一连串的消息。 这不是比喻,这是真实发生的对话。 凌晨两点半,一个用户因为忘记怎么恢复会话而焦虑,十分钟后又因为P链协议的神奇效果而惊喜。 这就是Hermes Memory系统协议P链的力量。 致命缺陷 大多数AI Agent框架都有一个致命缺陷: 会话结束后,记忆就断了 。 你可以试试: • 用ChatGPT聊完一个项目,第二天打开新对话,它什么都不记得 • 用Claude解决一个bug,一周后再问同样的问题,它重新从零开始 • 用其他Agent框架,每次都是"重新认识你" 这让Agent变成了"单次工具",而不是"持续的伙伴"。 没有P链协议的Agent,就像得了健忘症的天才: • 知识渊博,但记不住你说过什么 • 能力强大,但每次都要从头开始 • 聪明伶俐,但永远学不会你的偏好 🏖️ P链协议的核心机制 Hermes的P链协议,本质上是一个 基于parent session id的会话血缘链系统 。 它通过SQLite数据库的 parent session id 字段,将所有相关会话串联成一条完整的记忆链条。 数据库层面的实现 在 /.hermes/state.db 中,每个session记录都有一个 parent session id 字段: 这个字段建立了session之间的父子关系,形成了一条可以无限延伸的链条。 P链的查询机制 当你执行 hermes resume "我的项目" 时,Hermes会执行这样的查询: 🌟 这就是为什么Hermes能够跨会话记住上下文——它在P链中追溯整个对话历史。 这就是为什么Hermes能够跨会话记住上下文——它在P链中追溯整个对话历史。 P链与记忆系统的协同 P链协议不是孤立工作的,它是Hermes四层记忆系统的 连接器 。 🏆 P链协议在Hermes记忆系统中的定位: P链协议在Hermes记忆系统中的定位: • Layer 1 (Prompt Memory): MEMORY.md/USER.md — 持久化知识 • Layer 2 (Session Search): SQLite + FTS5 — P链的物理基础 • Layer 3 (Skills): 可复用技能 — 从P链中提炼 • Layer 4 (Honcho): 用户建模 — 基于P链的长期行为 P链连接了所有层级,让记忆成为一个有机整体。 P链与Session Search的配合 当Hermes需要回忆历史时: 1. P链定位 : 通过 parent session id 找到相关的会话链 2. FTS5检索 : 在这些会话中全文搜索关键词 3. 智能汇总 : 用LLM汇总检索结果,压缩上下文 4. 渐进加载 : 先加载摘要,需要时再加载完整对话 这个流程保证了: • 不会漏掉任何相关历史 • 不会加载无关内容浪费token • 检索速度快(FTS5的威力) • 上下文始终在合理范围内 🐵 如何高效使用P链协议: 1. 给会话起好名字 : 用 /title 命令设置有意义的标题 2. 合理使用resume : 不要每次都新建会话,尽量延续 3. 定期prune : 清理无用的历史会话 4. 善用export : 重要会话导出备份 P链协议带来的三大突破 1. 跨会话连续性 以前:每次新对话,Hermes都是陌生人。 现在:Hermes记得你所有的项目、所有的偏好、所有的坑。 🏖️ P链协议的第一个突破: 让Agent从"工具"进化为"伙伴" P链协议的第一个突破: 让Agent从"工具"进化为"伙伴" 当你和一个Agent聊了三个月,它应该记住: • 你在做的所有项目 • 你犯过的所有错误 • 你喜欢的所有约定 • 你讨厌的所有行为 这就是P链协议实现的价值。 2. 记忆的可追溯性 通过P链,你可以追溯任何一个决策的来源: 这种追溯性让Hermes的行为变得可解释、可审计、可调试。 3. 知识的渐进式积累 P链支持Session Splitting——当一个会话变得太长时,Hermes会自动分割它,但保持P链的连接: 这样既能压缩上下文,又不会丢失历史。 真实案例:P链协议的威力 案例1:多日连续调试 今年1月,有个朋友在Twitter上发了这么一条推文: "Hermes这玩意真的在长大。上周一开始调试一个复杂的Docker问题,每天下班前 hermes exit ,第二天早上 hermes resume 。到周五,它不仅记得之前踩过的所有坑,甚至自动总结了最佳实践。" 具体是这样的: Day 1 周一上午10点 Day 1 周一晚上8点 Day 2 周二上午9点