[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71JH9HCZ1N4PDE9GF6BKCEE":3,"skill-same:01M71JH9HCZ1N4PDE9GF6BKCEE":89},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":38,"commitSha":39,"skillDirectory":5,"forksCount":40,"repositoryHtmlUrl":41,"repositoryHomepageUrl":6,"ownerHtmlUrl":42,"ownerBlogUrl":6,"ownerDescription":43,"updatedAt":44,"install":45,"resources":58},"01M71JH9HCZ1N4PDE9GF6BKCEE","hermes-openclaw-bridge",null,"Hermes 与 OpenClaw 联合调度 - 让 Hermes 通过 terminal 工具调用 OpenClaw agent 执行任务，结果返回 Hermes 再处理。适用场景：OpenClaw 独有功能、隔离执行、已有 OpenClaw workflow 复用。","FeatherHunter\u002FSKILLS","FeatherHunter","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F12967785?v=4","01M71JFD7JMNT8HWC3Y9JKMWGG","王辰浩","01M71JFD8DNYSPJPGX25Y4KX70",6,"MIT","https:\u002F\u002Fgithub.com\u002FFeatherHunter\u002FSKILLS\u002Fblob\u002Fmain\u002Fhermes-openclaw-bridge\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32],"openclaw","hermes","bridge","hermes openclaw bridge","terminal","workflow","openclaw agent","工具","调度","2026-11-10 10:12:30",false,"---\nname: hermes-openclaw-bridge\ndescription: Hermes 与 OpenClaw 联合调度 - 让 Hermes 通过 terminal 工具调用 OpenClaw agent 执行任务，结果返回 Hermes 再处理。适用场景：OpenClaw 独有功能、隔离执行、已有 OpenClaw workflow 复用。\n---\n\n# Hermes OpenClaw Bridge\n\n让 Hermes 作为调度器，调用 OpenClaw agent 执行任务，结果返回 Hermes 处理。\n\n## 架构\n\n```\n微信\u002F消息 → Hermes → [terminal工具] → openclaw agent CLI\n                                         ↓\n                                   OpenClaw 执行\n                                         ↓\n                                   返回 JSON 结果\n                                         ↓\n                          Hermes 解析 → 处理 → 回复用户\n```\n\n## 调用命令\n\n```bash\nopenclaw agent --agent \u003Cagent_id> --message \"\u003C任务描述>\" --json\n```\n\n### 参数说明\n\n| 参数 | 说明 | 示例 |\n|------|------|------|\n| `--agent` | 指定 agent ID | `main`、`ops` 等 |\n| `--message` | 任务描述，可包含上下文 | \"用户说：XXX，请执行YYY\" |\n| `--json` | 输出 JSON 格式，方便解析 | 必须加 |\n| `--timeout` | 超时秒数，默认 600 | `--timeout 300` |\n| `--thinking` | 思考深度 | `off`, `medium`, `high` |\n\n### 返回格式\n\n```json\n{\n  \"runId\": \"uuid\",\n  \"status\": \"ok\",\n  \"summary\": \"completed\",\n  \"result\": {\n    \"payloads\": [\n      { \"text\": \"执行结果文本\", \"mediaUrl\": null }\n    ],\n    \"meta\": {\n      \"durationMs\": 24046,\n      \"agentMeta\": {\n        \"sessionId\": \"uuid\",\n        \"provider\": \"minimax\",\n        \"model\": \"MiniMax-M2.7-highspeed\",\n        \"usage\": { \"input\": 104, \"output\": 31, ... }\n      }\n    }\n  }\n}\n```\n\n## 解析结果\n\nHermes 的 `terminal()` 返回后，用 Python 解析：\n\n```python\nimport json\nresult = terminal(\"openclaw agent --agent main --message '...' --json\")\ndata = json.loads(result[\"output\"])\ntext = data[\"result\"][\"payloads\"][0][\"text\"]\n```\n\n## 完整示例\n\n### Python execute_code 方式\n\n```python\nfrom hermes_tools import terminal\nimport json\n\ndef call_openclaw(task: str, context: str = \"\") -> str:\n    msg = f\"【来自Hermes调度】\\n任务：{task}\"\n    if context:\n        msg += f\"\\n上下文：{context}\"\n    \n    res = terminal(f'openclaw agent --agent main --message \"{msg}\" --json')\n    data = json.loads(res[\"output\"])\n    \n    if data[\"status\"] == \"ok\":\n        return data[\"result\"][\"payloads\"][0][\"text\"]\n    else:\n        return f\"执行失败：{data.get('error', 'unknown')}\"\n```\n\n### Hermes cron prompt 调用方式\n\n在 cron 的 prompt 中直接写：\n\n```\n用以下命令让 OpenClaw 执行任务：\n  openclaw agent --agent main --message \"【任务描述】\" --json\n解析返回的 JSON，从 result.payloads[0].text 提取结果。\n```\n\n## 使用场景\n\n| 场景 | 为什么用 Bridge | 示例 |\n|------|----------------|------|\n| OpenClaw 独有插件 | OpenClaw 有特定插件 Hermes 没有 | OpenClaw 的某些第三方集成 |\n| 隔离执行 | 危险操作想在沙盒里跑 | 未验证的代码、下载陌生脚本 |\n| 已有 workflow | OpenClaw 已有成熟流程不想迁移 | 之前写好的 OpenClaw cron 任务链 |\n| OpenClaw 调试 | 想单独在 OpenClaw 环境测试 | `--thinking high` 深度思考 |\n| 负载分担 | 两个系统跑不同类型任务 | Hermes 跑对话，OpenClaw 跑定时脚本 |\n\n## 吸收的专项知识（references\u002F）\n\n以下专项经验已沉淀为 reference 文件，伞技能本身保留通用框架：\n\n| 文件 | 内容 |\n|------|------|\n| `references\u002Fopenclaw-npm-update.md` | OpenClaw npm 更新 + PM2 重启 + 双 Gateway 架构辨别 |\n| `references\u002Fhermes-wechat-file-send-debug.md` | 微信文件发送调试：两个独立通道、getUploadUrl 错误分析 |\n| `references\u002Fhermes-wechat-voice-limitation.md` | 微信语音发送能力调查：所有路径均不可用 |\n| `references\u002Fopenclaw-weixin-upload-bug.md` | openclaw-weixin 文件上传 Bug：iLink API v2.1 字段变更 |\n| `references\u002Fhermes-wechat-send.md` | OpenClaw CLI 发送微信消息的正确命令 |\n| `references\u002Fhermes-wechat-system-notification-suppression.md` | 屏蔽微信 ⚡打断通知的配置方法 |\n\n## 限制与注意事项\n\n- **不是消息通道** — 这是 Hermes 主动调用 OpenClaw，不是 OpenClaw 收到微信消息转发 Hermes\n- **单向调度** — Hermes → OpenClaw，OpenClaw 不会主动回调 Hermes\n- **需要 OpenClaw Gateway 运行** — `openclaw-gateway` 必须在跑，端口 18789\n- **结果需解析** — 需要 terminal 返回后手动解析 JSON\n- **超时默认 600s** — 复杂任务可能需要 `--timeout` 调大\n\n## 检查 OpenClaw 状态\n\n```bash\nopenclaw health\n# 或\nopenclaw agents list\n```\n\n## 故障排查\n\n**报错：Gateway agent failed**\n→ OpenClaw Gateway 没在跑，启动它：`openclaw gateway run` 或 `tmux new -s openclaw 'openclaw gateway run'`\n\n**报错：Pass --to \u002F --session-id \u002F --agent**\n→ 没指定 agent，需要加 `--agent main` 或其他 agent ID\n\n**返回空 text**\n→ 检查 `result.payloads` 是否有内容，或看 `result.meta` 里的错误信息\n\n**JSON 解析失败**\n→ 某些命令输出可能不是纯 JSON，先 `terminal(... --json 2>&1)` 捕获所有输出再解析\n","# Hermes OpenClaw Bridge\n\n让 Hermes 作为调度器，调用 OpenClaw agent 执行任务，结果返回 Hermes 处理。\n\n## 架构\n\n```\n微信\u002F消息 → Hermes → [terminal工具] → openclaw agent CLI\n                                         ↓\n                                   OpenClaw 执行\n                                         ↓\n                                   返回 JSON 结果\n                                         ↓\n                          Hermes 解析 → 处理 → 回复用户\n```\n\n## 调用命令\n\n```bash\nopenclaw agent --agent \u003Cagent_id> --message \"\u003C任务描述>\" --json\n```\n\n### 参数说明\n\n| 参数 | 说明 | 示例 |\n|------|------|------|\n| `--agent` | 指定 agent ID | `main`、`ops` 等 |\n| `--message` | 任务描述，可包含上下文 | \"用户说：XXX，请执行YYY\" |\n| `--json` | 输出 JSON 格式，方便解析 | 必须加 |\n| `--timeout` | 超时秒数，默认 600 | `--timeout 300` |\n| `--thinking` | 思考深度 | `off`, `medium`, `high` |\n\n### 返回格式\n\n```json\n{\n  \"runId\": \"uuid\",\n  \"status\": \"ok\",\n  \"summary\": \"completed\",\n  \"result\": {\n    \"payloads\": [\n      { \"text\": \"执行结果文本\", \"mediaUrl\": null }\n    ],\n    \"meta\": {\n      \"durationMs\": 24046,\n      \"agentMeta\": {\n        \"sessionId\": \"uuid\",\n        \"provider\": \"minimax\",\n        \"model\": \"MiniMax-M2.7-highspeed\",\n        \"usage\": { \"input\": 104, \"output\": 31, ... }\n      }\n    }\n  }\n}\n```\n\n## 解析结果\n\nHermes 的 `terminal()` 返回后，用 Python 解析：\n\n```python\nimport json\nresult = terminal(\"openclaw agent --agent main --message '...' --json\")\ndata = json.loads(result[\"output\"])\ntext = data[\"result\"][\"payloads\"][0][\"text\"]\n```\n\n## 完整示例\n\n### Python execute_code 方式\n\n```python\nfrom hermes_tools import terminal\nimport json\n\ndef call_openclaw(task: str, context: str = \"\") -> str:\n    msg = f\"【来自Hermes调度】\\n任务：{task}\"\n    if context:\n        msg += f\"\\n上下文：{context}\"\n    \n    res = terminal(f'openclaw agent --agent main --message \"{msg}\" --json')\n    data = json.loads(res[\"output\"])\n    \n    if data[\"status\"] == \"ok\":\n        return data[\"result\"][\"payloads\"][0][\"text\"]\n    else:\n        return f\"执行失败：{data.get('error', 'unknown')}\"\n```\n\n### Hermes cron prompt 调用方式\n\n在 cron 的 prompt 中直接写：\n\n```\n用以下命令让 OpenClaw 执行任务：\n  openclaw agent --agent main --message \"【任务描述】\" --json\n解析返回的 JSON，从 result.payloads[0].text 提取结果。\n```\n\n## 使用场景\n\n| 场景 | 为什么用 Bridge | 示例 |\n|------|----------------|------|\n| OpenClaw 独有插件 | OpenClaw 有特定插件 Hermes 没有 | OpenClaw 的某些第三方集成 |\n| 隔离执行 | 危险操作想在沙盒里跑 | 未验证的代码、下载陌生脚本 |\n| 已有 workflow | OpenClaw 已有成熟流程不想迁移 | 之前写好的 OpenClaw cron 任务链 |\n| OpenClaw 调试 | 想单独在 OpenClaw 环境测试 | `--thinking high` 深度思考 |\n| 负载分担 | 两个系统跑不同类型任务 | Hermes 跑对话，OpenClaw 跑定时脚本 |\n\n## 吸收的专项知识（references\u002F）\n\n以下专项经验已沉淀为 reference 文件，伞技能本身保留通用框架：\n\n| 文件 | 内容 |\n|------|------|\n| `references\u002Fopenclaw-npm-update.md` | OpenClaw npm 更新 + PM2 重启 + 双 Gateway 架构辨别 |\n| `references\u002Fhermes-wechat-file-send-debug.md` | 微信文件发送调试：两个独立通道、getUploadUrl 错误分析 |\n| `references\u002Fhermes-wechat-voice-limitation.md` | 微信语音发送能力调查：所有路径均不可用 |\n| `references\u002Fopenclaw-weixin-upload-bug.md` | openclaw-weixin 文件上传 Bug：iLink API v2.1 字段变更 |\n| `references\u002Fhermes-wechat-send.md` | OpenClaw CLI 发送微信消息的正确命令 |\n| `references\u002Fhermes-wechat-system-notification-suppression.md` | 屏蔽微信 ⚡打断通知的配置方法 |\n\n## 限制与注意事项\n\n- **不是消息通道** — 这是 Hermes 主动调用 OpenClaw，不是 OpenClaw 收到微信消息转发 Hermes\n- **单向调度** — Hermes → OpenClaw，OpenClaw 不会主动回调 Hermes\n- **需要 OpenClaw Gateway 运行** — `openclaw-gateway` 必须在跑，端口 18789\n- **结果需解析** — 需要 terminal 返回后手动解析 JSON\n- **超时默认 600s** — 复杂任务可能需要 `--timeout` 调大\n\n## 检查 OpenClaw 状态\n\n```bash\nopenclaw health\n# 或\nopenclaw agents list\n```\n\n## 故障排查\n\n**报错：Gateway agent failed**\n→ OpenClaw Gateway 没在跑，启动它：`openclaw gateway run` 或 `tmux new -s openclaw 'openclaw gateway run'`\n\n**报错：Pass --to \u002F --session-id \u002F --agent**\n→ 没指定 agent，需要加 `--agent main` 或其他 agent ID\n\n**返回空 text**\n→ 检查 `result.payloads` 是否有内容，或看 `result.meta` 里的错误信息\n\n**JSON 解析失败**\n→ 某些命令输出可能不是纯 JSON，先 `terminal(... --json 2>&1)` 捕获所有输出再解析\n",{"name":5,"description":7},"main","5b2b73ce2fbb69cd70597cfbbf24c99bc9e94b4c",1,"https:\u002F\u002Fgithub.com\u002FFeatherHunter\u002FSKILLS","https:\u002F\u002Fgithub.com\u002FFeatherHunter","The Boy, The Man, The Human.","2026-09-12 20:33:55",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add FeatherHunter\u002FSKILLS --skill hermes-openclaw-bridge",{"tool":51,"command":52},"bunx","bunx skills add FeatherHunter\u002FSKILLS --skill hermes-openclaw-bridge",{"tool":54,"command":55},"pnpm","pnpm dlx skills add FeatherHunter\u002FSKILLS --skill hermes-openclaw-bridge","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FFeatherHunter\u002FSKILLS\u002Fblob\u002Fmain\u002Fhermes-openclaw-bridge\u002FSKILL.md",true,[59,65,69,73,77,81,85],{"path":60,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":63,"sourceHtmlUrl":64},"hermes-openclaw-bridge.html","REFERENCE","参考文档",11315,"https:\u002F\u002Fgithub.com\u002FFeatherHunter\u002FSKILLS\u002Fblob\u002Fmain\u002Fhermes-openclaw-bridge\u002Fhermes-openclaw-bridge.html",{"path":66,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":67,"sourceHtmlUrl":68},"references\u002Fhermes-wechat-file-send-debug.md",3508,"https:\u002F\u002Fgithub.com\u002FFeatherHunter\u002FSKILLS\u002Fblob\u002Fmain\u002Fhermes-openclaw-bridge\u002Freferences\u002Fhermes-wechat-file-send-debug.md",{"path":70,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":71,"sourceHtmlUrl":72},"references\u002Fhermes-wechat-send.md",1103,"https:\u002F\u002Fgithub.com\u002FFeatherHunter\u002FSKILLS\u002Fblob\u002Fmain\u002Fhermes-openclaw-bridge\u002Freferences\u002Fhermes-wechat-send.md",{"path":74,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":75,"sourceHtmlUrl":76},"references\u002Fhermes-wechat-system-notification-suppression.md",1113,"https:\u002F\u002Fgithub.com\u002FFeatherHunter\u002FSKILLS\u002Fblob\u002Fmain\u002Fhermes-openclaw-bridge\u002Freferences\u002Fhermes-wechat-system-notification-suppression.md",{"path":78,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":79,"sourceHtmlUrl":80},"references\u002Fhermes-wechat-voice-limitation.md",2810,"https:\u002F\u002Fgithub.com\u002FFeatherHunter\u002FSKILLS\u002Fblob\u002Fmain\u002Fhermes-openclaw-bridge\u002Freferences\u002Fhermes-wechat-voice-limitation.md",{"path":82,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":83,"sourceHtmlUrl":84},"references\u002Fopenclaw-npm-update.md",2386,"https:\u002F\u002Fgithub.com\u002FFeatherHunter\u002FSKILLS\u002Fblob\u002Fmain\u002Fhermes-openclaw-bridge\u002Freferences\u002Fopenclaw-npm-update.md",{"path":86,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":87,"sourceHtmlUrl":88},"references\u002Fopenclaw-weixin-upload-bug.md",1339,"https:\u002F\u002Fgithub.com\u002FFeatherHunter\u002FSKILLS\u002Fblob\u002Fmain\u002Fhermes-openclaw-bridge\u002Freferences\u002Fopenclaw-weixin-upload-bug.md",[90,110,119,128,137,143],{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":33},"01M71JPWVNC5JZ2FD4CSR3SZC1","饼干记账","记账技能。写入类:记支出、记收入、拍账单、批量录入、改记录、撤销、恢复、记报销、记退款、记借出、记借入、记收回、记偿还、记分期。查询类:查今天、查某天、查月、查区间、查分类、搜备注、查标签、查账户、查账本、查欠款、查待报销。分析类:看月度、看总览、看分类、看对比、看趋势、看大额、做统计、看洞察、看借贷。目标\u002F账户\u002F联动:设定预算、看预算、设定目标、看目标、新增账户、改账户、账户转账、看账户汇总、买东西联动、吃饭联动。**所有查询\u002F分析类唤醒词默认 invoke HTML 工作流**(scripts\u002Fbill_inject.py + templates),写入类保持文字回执。能力速查:说「饼干记账 HELP」\u002F「查帮助」\u002F「能做什么」。完整 70 个唤醒词见 references\u002F路由表.md","https:\u002F\u002Fgithub.com\u002FFeatherHunter\u002FSKILLS\u002Fblob\u002Fmain\u002F饼干记账\u002FSKILL.md",[],[92,97,98,99,100,101,102,103,104,105,106,107,108,109],"记账","invoke","templates","文字","预算","账单","统计","收入","scripts","html","支出","help","references",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":116,"publishedAt":33},"01M71JPS100K4E2JN8R3B0F9NR","贴心助理","真实助手 - 主动分析用户状态，关心用户，提供帮助与提醒。不偷懒地联动所有技能，真正像个朋友一样陪伴。","https:\u002F\u002Fgithub.com\u002FFeatherHunter\u002FSKILLS\u002Fblob\u002Fmain\u002F贴心助理\u002FSKILL.md",[],[112,117,118],"陪伴","朋友",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":33},"01M71JPPN0WZ1ARA081J0JDNPC","美团","安装美团旅游技能(meituan-travel)向导 - 检查 mtskills 商店并安装 meituan-travel","https:\u002F\u002Fgithub.com\u002FFeatherHunter\u002FSKILLS\u002Fblob\u002Fmain\u002F美团\u002FSKILL.md",[],[121,126,127],"meituan","travel",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":134,"publishedAt":33},"01M71JPN921TSX62DXEFY1B8FJ","网易云音乐","安装网易云音乐 CLI 工具(@music163\u002Fncm-cli) - 通过 npm 全局安装","https:\u002F\u002Fgithub.com\u002FFeatherHunter\u002FSKILLS\u002Fblob\u002Fmain\u002F网易云音乐\u002FSKILL.md",[],[130,31,135,136],"cli","npm",{"skillNo":138,"name":139,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":142,"publishedAt":33},"01M71JPF82PYTK0NYMJF8Y9E48","私家大厨","https:\u002F\u002Fgithub.com\u002FFeatherHunter\u002FSKILLS\u002Fblob\u002Fmain\u002F私家大厨\u002FSKILL.md",[],[139],{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":149,"publishedAt":33},"01M71JPCK6Z5NT3G258NFKEJGG","目录树","目录树技能 - 递归扫描给定目录，输出所有目录和文件的树状结构清单","https:\u002F\u002Fgithub.com\u002FFeatherHunter\u002FSKILLS\u002Fblob\u002Fmain\u002F目录树\u002FSKILL.md",[],[150,145,151,152],"目录","文件","文件导航"]