feat(hermes): 新增 Hermes Agent 插件市场支持,含独立 memcore-hermes
- huanxi/huanxi-admin/obsidian/zentao 新增裸 plugin.json(Agent Plugins v1.0.0 标准),复用同一份 skills/ - 凭证类插件不打包 mcp.json(规范禁止内嵌密钥),改为 README 里的 ~/.hermes/config.yaml 手动配置指引 - memcore-hermes:记忆目录复用优先级 .claude/memory → .codex/memory → 新建 .agents/memory,显式规避与 Hermes 原生全局 MEMORY.md/USER.md 重复记录 - 后续将追加 packs/*.yaml(hermes plugins pack install 用),需要本次 commit 的 SHA 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
42f8e9f483
commit
56ae43f6d3
@@ -24,6 +24,8 @@ plugins/
|
||||
|
||||
本仓库同时是 Codex/ChatGPT 桌面应用的插件市场,独立索引在 `.agents/plugins/marketplace.json`。huanxi/huanxi-admin/obsidian 在各自插件目录下再放一份 `.codex-plugin/plugin.json`(与 `.claude-plugin/plugin.json` 并列),共用同一份 `skills/`;`memcore` 因架构差异(见下方「Codex plugin.json」与「memcore 技能调用关系」两节)走独立目录 `plugins/memcore-codex/`。
|
||||
|
||||
本仓库还支持 Hermes Agent(Nous Research 开源本地 Agent),走开放标准 [Agent Plugins v1.0.0](https://agent-plugins.org/):huanxi/huanxi-admin/obsidian/zentao 在插件根目录再放一份**裸** `plugin.json`(不嵌套在点前缀目录里,规范要求),共用同一份 `skills/`;`memcore` 因架构差异同样走独立目录 `plugins/memcore-hermes/`。Hermes 没有中心化市场命令,靠 [`packs/`](./packs) 目录下的 pack manifest(`hermes plugins pack install`)逐个选装,见下方「Hermes plugin.json」一节。
|
||||
|
||||
## 核心文件格式
|
||||
|
||||
### marketplace.json(市场索引)
|
||||
@@ -77,6 +79,17 @@ description: 一句话说明该技能的用途(Claude 用此判断何时触发
|
||||
- 不支持 `hooks` 字段
|
||||
- 技能 frontmatter 的 `disable-model-invocation` 只能是 `false` 或不写;技能"内部 include 不给用户直接调用"要用该技能 `agents/openai.yaml` 里的 `policy.allow_implicit_invocation: false` + description 措辞实现
|
||||
|
||||
### Hermes plugin.json(Hermes 侧插件元数据)
|
||||
|
||||
跟 Claude/Codex 侧都不通用,走 [agent-plugins.org 官方 spec](https://agent-plugins.org/specification) 定义的硬性约束:
|
||||
|
||||
- 文件必须叫 `plugin.json`,直接放在插件根目录(不能嵌套进任何点前缀目录)
|
||||
- 必需字段只有 `$schema` + `name`;`name` 限定 `[a-z0-9.-]`、1–64 字符,不能以 `-`/`.` 开头结尾,不能出现连续的 `--`/`..`
|
||||
- `skills/` 目录下每个直接子目录只要含 `SKILL.md` 就会被识别为一个技能,不需要额外声明
|
||||
- **规范禁止在 `mcp.json` 里内嵌密钥**(headers/env 都不行,也没有等价于 `bearer_token_env_var`/`userConfig` 的字段):带 Token 的插件(huanxi/huanxi-admin/zentao)因此不打包 `mcp.json`,MCP 配置改走 README 里的 `~/.hermes/config.yaml` 手动指引(该文件原生支持 `${VAR}` 环境变量插值)
|
||||
- 单仓库多插件靠 `hermes plugins pack install ./packs/<name>.yaml` 的 `subdir` 字段定位子目录,`ref` 必须是精确 40 位 commit SHA(不接受分支名),改动插件后要记得同步 bump `packs/*.yaml` 里的 `ref`
|
||||
- 有两点文档未写清楚、没能验证:`pack install` 是否支持直接传 http(s) 链接(而非本地路径);`subdir` 指向的目录若只有 `plugin.json`(没有 Hermes 原生 `plugin.yaml`)能否被正确识别——见 [[decisions.md#Hermes 插件骨架:Agent Plugins v1 + packs 选装(2026-08-25)]]
|
||||
|
||||
## 新增插件流程
|
||||
|
||||
1. 在 `plugins/` 下创建目录 `plugins/<plugin-name>/`
|
||||
@@ -94,7 +107,7 @@ description: 一句话说明该技能的用途(Claude 用此判断何时触发
|
||||
| `obsidian` | `/obsidian` `/obsidian-bases` `/obsidian-canvas` `/obsidian-daily` `/obsidian-history` `/obsidian-meta` `/obsidian-plugins` `/obsidian-search` `/obsidian-tasks` `/obsidian-workflow-pkm` | Obsidian 知识库完整工作流(10 个技能;对标 kepano/obsidian-skills 31.8k★ 与 AgriciDaniel/claude-obsidian) |
|
||||
| `zentao` | `/zentao-shared` `/zentao-project` `/zentao-story` `/zentao-bug` `/zentao-task` `/zentao-test` `/zentao-plan` `/zentao-misc` | 禅道项目管理系统(8 个技能),含 MCP Server 自动配置(禅道「个人中心 → 获取凭证」14 天 Token);MCP Server 是基于开源 [merzzzl/openapi-mcp-server](https://github.com/merzzzl/openapi-mcp-server) 二次开发的 zentao-mcp 网桥,部署在 `pm.ops.yixiong-tech.com/mcp`,请求体字段统一包在 `payload` 里 |
|
||||
|
||||
五个插件均有 Codex/ChatGPT 桌面应用版本(见上方「Codex plugin.json」一节)。huanxi/huanxi-admin/obsidian/zentao 的 Codex 版共用本表里的同一份 `skills/`;`memcore` 的 Codex 版是独立目录 `plugins/memcore-codex/`(内容与下方 Claude 版 memcore 不同,改动时两边分别维护,不要假设同步)。已调研并确认不做 Google Antigravity(agy)兼容——其官方文档目前没有 marketplace 概念。
|
||||
五个插件均有 Codex/ChatGPT 桌面应用版本(见上方「Codex plugin.json」一节)和 Hermes Agent 版本(见上方「Hermes plugin.json」一节)。huanxi/huanxi-admin/obsidian/zentao 的 Codex 版、Hermes 版都共用本表里的同一份 `skills/`;`memcore` 的 Codex 版是独立目录 `plugins/memcore-codex/`,Hermes 版是独立目录 `plugins/memcore-hermes/`(内容与下方 Claude 版 memcore 均不同,三边分别维护,不要假设同步)。已调研并确认不做 Google Antigravity(agy)兼容——其官方文档目前没有 marketplace 概念。
|
||||
|
||||
### memcore 技能调用关系
|
||||
|
||||
@@ -129,8 +142,8 @@ description: 一句话说明该技能的用途(Claude 用此判断何时触发
|
||||
```
|
||||
.claude/memory/
|
||||
├── MEMORY.md # 索引(入口)
|
||||
├── decisions.md # 关键架构决策(含 memcore-shared/lint_report 保活/Base commit 兜底/obsidian 社区对标审查/memory-lint 速度分档过期检测/Codex 插件骨架与 memcore-codex 独立目录/bearer_token_env_var/不做 Antigravity 兼容/zentao-mcp 网桥双认证格式兼容等 17 项)
|
||||
├── project_overview.md # 项目定位与结构(huanxi/huanxi-admin/memcore/obsidian/zentao 已发布插件,均含 Codex 支持情况)
|
||||
├── decisions.md # 关键架构决策(含 memcore-shared/lint_report 保活/Base commit 兜底/obsidian 社区对标审查/memory-lint 速度分档过期检测/Codex 插件骨架与 memcore-codex 独立目录/bearer_token_env_var/不做 Antigravity 兼容/zentao-mcp 网桥双认证格式兼容/Hermes 插件骨架与 packs 选装等 18 项)
|
||||
├── project_overview.md # 项目定位与结构(huanxi/huanxi-admin/memcore/obsidian/zentao 已发布插件,均含 Codex + Hermes 支持情况)
|
||||
├── feedback_plugin_dev.md # 插件开发协作规范(含 MCP docstring 单一真相、签名变更全量扫描)
|
||||
└── lint_report.md # 记忆健康检查报告(按需)
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user