docs(hermes): 记录实测结果——安全扫描误判修复确认 + MCP session-id 已知 bug
- README:http raw 链接安装、用户/profile 级安装范围说明;两条新警告 (description 触发安全扫描的原因、Hermes MCP session-id 已知 bug 阻塞 huanxi/huanxi-admin/zentao 的 HTTP MCP 连接,链接 hermes-agent#20349) - CLAUDE.md:开发指南补充同样两点 - decisions.md:新增两条决策记录,标注此前"待实测"的两点均已确认通过 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015D4xWG3gRWkUKJDgyvtyJw
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
106c394a46
commit
9e1dcf6634
@@ -68,20 +68,27 @@ Hermes(Nous Research 开源的本地 Agent)没有像 Claude/Codex 那样的"
|
||||
**安装(想装哪个装哪个,互不影响):**
|
||||
|
||||
```bash
|
||||
# 方式一:先看会装什么,再装(本地路径,需要先 clone)
|
||||
git clone https://gitea.rk-health.com/yixiong/yixiong-claude-marketplace.git
|
||||
cd yixiong-claude-marketplace
|
||||
hermes plugins pack show ./packs/zentao.yaml
|
||||
hermes plugins pack install ./packs/zentao.yaml
|
||||
|
||||
hermes plugins pack show ./packs/zentao.yaml # 先看会装什么
|
||||
hermes plugins pack install ./packs/zentao.yaml # 确认后装(想装别的插件换文件名)
|
||||
# 方式二:不用 clone,直接传 raw 链接(已验证可用)
|
||||
hermes plugins pack install https://gitea.rk-health.com/yixiong/yixiong-claude-marketplace/raw/branch/main/packs/zentao.yaml
|
||||
```
|
||||
|
||||
想一次装全部五个:`hermes plugins pack install ./packs/all.yaml`。
|
||||
|
||||
装的插件是**用户/profile 级**的,不是项目级——Hermes 的 `plugins install`/`pack install` 都没有 `--scope`/`--project` 之类的参数,固定装进 `$HERMES_HOME/plugins/`(默认 profile 就是 `~/.hermes/plugins/`),装完之后在这台机器的哪个目录开 Hermes 会话都能用,跟"只在这个仓库目录里生效"的直觉不一样。
|
||||
|
||||
> ⚠️ **`ref` 是手动维护的定长 commit SHA,不会像 Claude Code 那样自动追新**——Hermes 的 pack manifest 要求精确 40 位 commit SHA,不接受分支名,我们每次发布都会同步 bump `packs/*.yaml` 里的 `ref`;如果你 clone 下来的代码比 pack 文件新,装的仍是 pack 里锁定的那个旧版本,想要最新内容就 `git pull` 到对应 commit 或等我们下一次发布。
|
||||
>
|
||||
> ⚠️ **凭证类插件(`huanxi`/`huanxi-admin`/`zentao`)不含 MCP 声明**——Agent Plugins v1 的 `mcp.json` 规范明文禁止内嵌密钥,所以这三个插件只打包了技能,MCP Server 需要你在 `~/.hermes/config.yaml` 里手动加几行(下面各插件小节有具体片段),比 Claude 的"装插件时弹窗填 Token"体验差一点,这是协议本身的限制,不是我们没做完。
|
||||
>
|
||||
> ⚠️ **两处我没能用真实 Hermes 验证、需要你实测反馈的点**:① `hermes plugins pack install` 是否支持直接传 raw 链接(不用先 clone);② `subdir` 指向的目录是纯 `plugin.json`(没有原生 `plugin.yaml`)时能否被正确识别——文档都没写明,等你的 Hermes 装一次就知道了。
|
||||
> ⚠️ **`plugin.json` 的 `description` 不要写配置路径字面量**——Hermes 对 community source(非官方审核)插件的安装前安全扫描是"零容忍"策略,任意 1 个 finding 就直接 BLOCKED、`--force` 也无法覆盖;早期版本我们在 description 里写了 `~/.hermes/config.yaml` 这种点前缀路径字符串,被误判成 persistence(持久化)类危险模式挡了下来。现在 description 只放一句话简介,配置指令都放在这份 README 里,不会再触发。
|
||||
>
|
||||
> ⚠️ **已知问题(非我们插件的锅,等 Hermes 上游修复)**:`huanxi`/`huanxi-admin`/`zentao` 走 HTTP 类型 MCP Server,实测在 Hermes 上会卡在 `initialize` 握手之后——网桥正确返回了 `mcp-session-id`(Streamable HTTP 协议的有状态会话标识),但 Hermes 客户端没有正确捕获/回传这个 session id,导致后续请求被判定为无效、报 400,最终连接被 park。这跟 [NousResearch/hermes-agent#20349](https://github.com/NousResearch/hermes-agent/issues/20349) 描述的现象一致,用 curl 直连网桥验证过网桥本身没问题(认证、握手响应都正常)。装完插件后如果 MCP 连不上,先去这条 issue 底下看有没有新版本修复,`protocol: legacy` 试过没用(握手本身不是问题所在);`obsidian`/`memcore-hermes` 不受影响(不含 MCP)。
|
||||
|
||||
## 插件一览
|
||||
|
||||
|
||||
Reference in New Issue
Block a user