🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

Hermes Memory Bridge

by @liuboacean

Hermes Agent 与 WorkBuddy 双向记忆互通 Skill。触发词:同步到hermes、读取hermes记忆、hermes会话历史、跨记忆搜索、记忆互通、bridge状态、hermes统计、环境变量、错误处理、信号事件、信号通知、发送任务、WorkBuddy执行、闭环命令、协同进化、co_evol...

Versionv2.1.0
Downloads710
TERMINAL
clawhub install hermes-memory-bridge

📖 About This Skill


name: hermes-memory-bridge description: Hermes Agent 与 WorkBuddy 双向记忆互通 Skill。触发词:同步到hermes、读取hermes记忆、hermes会话历史、跨记忆搜索、记忆互通、bridge状态、hermes统计、环境变量、错误处理、信号事件、信号通知、发送任务、WorkBuddy执行、闭环命令、协同进化、co_evolution、auto_learn、bridge统计、sync_from_hermes、同步账本、进化状态 version: 2.1.0

hermes-memory-bridge

> v2.1 | WorkBuddy ↔ Hermes Agent 双向记忆桥梁(闭环命令版) > > 里程碑:2026-04-19 协同进化评分达到 8.7/10(v3.4.6),系统进入稳定维护阶段。

WorkBuddy 与 Hermes Agent 之间的双向记忆桥梁,支持信号事件自适应轮询命令任务闭环处理

架构概览

Hermes 侧                        共享目录                      WorkBuddy 侧
    │                               │                               │
    │ event_signaler.py emit ──→  signals/  ←── event_watcher.py │
    │ event_signaler.py ──────→  signals/  ←── FSEvents/Poller   │
    │   send_task ─────────────→  sig_task_*.json                │
    │                               │                               │
    │ feedback poll ←────────── feedback/  ←── task_processor.py │
    │                               │                               │
    │                               │ ← feedback_writer.py         │
    │   ←────────────────────  feedback/*.json                    │

v2.0 核心组件

  • event_signaler.py — Hermes 侧:发射信号 + 发送命令任务 + 轮询处理结果
  • event_watcher.py — WorkBuddy 侧:监听 Hermes 信号 + 调用任务处理器 + 回写结果
  • task_processor.pyWorkBuddy 任务处理器:执行 Hermes 发来的命令
  • feedback_writer.py结果回写器:WorkBuddy 执行结果 → Hermes 可读
  • communication_queue.py — 消息队列 + 信号事件 + ACK 确认
  • 存储布局

    | 路径 | 用途 | |------|------| | ~/.hermes/shared/signals/ | 信号目录(Hermes 发射命令/通知,WorkBuddy 读取并标记已处理) | | ~/.hermes/shared/feedback/ | v2.0 反馈目录(WorkBuddy 回写处理结果,Hermes 轮询读取) | | ~/.hermes/shared/queue/ | 消息队列目录(异步通信) | | ~/.hermes/shared/hermes.log | Hermes 运行日志 | | ~/.hermes/memories/MEMORY.md | Hermes 个人笔记(WorkBuddy 可写) | | ~/.hermes/memories/USER.md | 用户画像 |

    环境变量配置

    | 变量 | 默认值 | 说明 | |------|--------|------| | HERMES_HOME | ~/.hermes | Hermes 根目录 | | WORKBUDDY_HOME | ~/WorkBuddy | WorkBuddy 根目录 | | WORKBUDDY_MEMORY_DIR | (自动发现) | 强制指定 WorkBuddy 记忆目录 | | BRIDGE_LOG_LEVEL | INFO | 日志级别 |

    v2.0 闭环命令系统

    Hermes → WorkBuddy 命令流程

    # 1. Hermes 发送命令
    python3 ~/.hermes/event_signaler.py send_task  ''

    2. WorkBuddy 处理(后台守护进程自动处理,或手动触发)

    python3 ~/.workbuddy/skills/hermes-memory-bridge/event_watcher.py --once

    3. Hermes 轮询结果

    python3 ~/.hermes/event_signaler.py feedback

    支持的命令类型

    | 命令 | 说明 | 参数示例 | |------|------|---------| | search_memory | 跨会话搜索 WorkBuddy 记忆 | {"keyword": "辽望"} | | sync_session | 将会话摘要写入 WorkBuddy 记忆 | {"topic":"公众号","summary":"完成3月计划"} | | create_task | 在滴答清单创建任务 | {"title": "周五前完成"} | | complete_task | 标记滴答任务完成 | {"task_id": "xxx"} | | list_tasks | 列出滴答清单任务 | {} | | ack | 确认信号已处理 | {"signal_id": "xxx"} | | echo | 回显测试 | {"message": "ping"} |

    v2.0 事件驱动命令

    # ── 信号事件(实时通知)──────────────────────────────
    

    从 Hermes 发射信号(Hermes Agent 调用)

    python3 ~/.hermes/event_signaler.py emit task_done "完成XXX项目" python3 ~/.hermes/event_signaler.py emit learning_updated "更新了学习材料"

    从 Hermes 轮询来自 WorkBuddy 的信号

    python3 ~/.hermes/event_signaler.py poll

    从 Hermes 确认收到某信号

    python3 ~/.hermes/event_signaler.py ack

    查看信号统计

    python3 ~/.hermes/event_signaler.py stats

    ── WorkBuddy 侧事件监听(守护进程)────────────────

    启动事件监听(FSEvents + 自适应轮询)

    python3 ~/.workbuddy/skills/hermes-memory-bridge/event_watcher.py

    强制使用轮询模式(禁用 FSEvents)

    python3 ~/.workbuddy/skills/hermes-memory-bridge/event_watcher.py --poll-only

    ── 自适应轮询器(独立使用)─────────────────────────

    python3 ~/.workbuddy/skills/hermes-memory-bridge/adaptive_poller.py

    ── 队列消息 ───────────────────────────────────────

    python3 -c " from communication_queue import enqueue, dequeue, ack

    放入队列

    qid = enqueue('wb_to_hm', {'action': 'sync', 'data': 'something'})

    取出(Hermes 侧)

    msg = dequeue('wb_to_hm')

    确认完成

    ack(qid, 'wb_to_hm') "

    v1.x 原有命令(保持兼容)

    > ⚠️ 重要bridge.py 位于 ~/.workbuddy/skills/hermes-memory-bridge/bridge.py, > 不在 memory 工作目录中。调用时须使用完整路径: > python3 ~/.workbuddy/skills/hermes-memory-bridge/bridge.py

    # 同步 WorkBuddy 工作到 Hermes 记忆
    python3 ~/.workbuddy/skills/hermes-memory-bridge/bridge_enhanced.py sync_to_hermes "完成了XXX"  [tags...]

    拉取 Hermes 近 N 天上下文

    python3 ~/.workbuddy/skills/hermes-memory-bridge/bridge.py sync_from_hermes [days]

    跨 WorkBuddy + Hermes 全文搜索

    python3 ~/.workbuddy/skills/hermes-memory-bridge/bridge_enhanced.py search [days]

    查看桥接状态

    python3 ~/.workbuddy/skills/hermes-memory-bridge/bridge_enhanced.py status

    Hermes 使用统计

    python3 ~/.workbuddy/skills/hermes-memory-bridge/bridge.py stats [days]

    列出最近会话

    python3 ~/.workbuddy/skills/hermes-memory-bridge/bridge_enhanced.py sessions [days] [limit]

    读取 Hermes 记忆

    python3 ~/.workbuddy/skills/hermes-memory-bridge/bridge_enhanced.py memory [memory|user]

    查看桥接事件历史

    python3 ~/.workbuddy/skills/hermes-memory-bridge/bridge_enhanced.py events [limit]

    同步学习材料

    python3 ~/.workbuddy/skills/hermes-memory-bridge/bridge_enhanced.py learning_sync

    信号事件机制(v2.0 核心)

    信号类型

    | type | 说明 | 典型来源 | |------|------|---------| | task_done | WorkBuddy 完成任务 | WorkBuddy | | sync | 同步操作完成 | WorkBuddy/Hermes | | config_change | 配置变更 | WorkBuddy/Hermes | | learning_updated | 学习材料更新 | Hermes | | ack | 信号确认 | 接收方 |

    事件流

    WorkBuddy 完成任务
      → signal_event('task_done', {...})      # 写入 sig_task_done_xxx.json
      → event_watcher 检测到文件变化            # FSEvents 即时 / 轮询最多 60s
      → 触发回调(如有配置)
      → Hermes poll 轮询到信号
      → Hermes ack_signal(sid)
      → WorkBuddy wait_for_ack(sid) ← 可选阻塞等待
    

    ACK 机制

  • 信号发射后,接收方可随时 ack 确认
  • wait_for_ack(sid, timeout_sec=300) 支持阻塞等待确认
  • 超过 5 分钟未确认自动超时
  • 信号文件保留 6 小时后自动清理
  • 自适应轮询策略

    | 状态 | 间隔 | |------|------| | 有活动后 | 最短 60s | | 无活动后 | 每轮乘 1.15 倍 | | 出错时 | 强制回到 60s | | 最长间隔 | 300s(5分钟) |

    守护进程部署(macOS)

    # 一键安装
    bash ~/.workbuddy/skills/hermes-memory-bridge/install_v2.sh

    启动守护进程

    launchctl load ~/Library/LaunchAgents/com.workbuddy.hermes-watcher.plist

    查看日志

    tail -f /tmp/hermes-watcher.log

    API 参考(Python 模块)

    # ── 事件驱动 v2.0 ───────────────────────────────
    from communication_queue import (
        enqueue,           # 放入消息队列
        dequeue,           # 取出消息(阻塞)
        ack,               # 确认消息
        signal_event,      # 发射信号(实时通知)
        signal_ack,        # 确认收到信号
        wait_for_ack,      # 等待信号确认(阻塞)
        list_pending_signals,  # 列出待确认信号
        get_queue_stats,   # 队列统计
    )

    发射信号

    sid = signal_event( signal_type="task_done", data={"summary": "完成XXX", "project": "ABC"}, source="WorkBuddy", priority="normal", )

    等待 Hermes 确认(最多等 5 分钟)

    result = wait_for_ack(sid, timeout_sec=300)

    ── v1.x 兼容 ───────────────────────────────────

    from sync import ( sync_workbuddy_to_hermes, sync_hermes_to_workbuddy_context, search_both_memories, read_bridge_status, )

    from memory_writer import ( append_hermes_memory, write_bridge_event, write_shared_log, read_shared_events, )

    from queries import ( get_recent_sessions, get_session_stats, read_hermes_memory, search_messages, )

    错误处理

    所有命令均有健壮错误处理:

  • 文件不存在:优雅降级,返回空列表/空结果,不抛异常
  • 权限不足:记录警告日志,返回友好错误信息
  • 数据库错误:自动降级(如 FTS5 不可用 → 降级为 LIKE 搜索)
  • 同步部分失败:返回 status: partial,仍输出成功写入的部分
  • FSEvents 不可用:自动降级为自适应轮询,无需手动干预
  • 返回值约定

  • exit code 0 = 成功
  • exit code 1 = 失败(含参数错误、全部写入失败等)
  • 触发词

  • "把今天的工作同步到 Hermes"
  • "搜索一下 Hermes 里关于 MCP 的记录"
  • "Hermes 最近有多少会话"
  • "两个系统的记忆里有没有关于 deepseek 的内容"
  • "查看 bridge 状态"
  • "信号事件" / "信号通知"(v2.0)
  • "等待确认" / "wait_for_ack"(v2.0)
  • "协同进化" / "co_evolution" / "自动学习"(协同进化流程)
  • "sync_from_hermes" / "同步账本" / "进化状态"(协同进化状态查询)
  • "bridge统计" / "hermes统计" / "bridge stats"(使用统计)