Skip to content

feat(adapters): Hermes 适配器(第二批 Harness 第三发) - #5

Merged
BubblePtr merged 1 commit into
mainfrom
kieran/hermes-adapter
Jul 29, 2026
Merged

feat(adapters): Hermes 适配器(第二批 Harness 第三发)#5
BubblePtr merged 1 commit into
mainfrom
kieran/hermes-adapter

Conversation

@BubblePtr

Copy link
Copy Markdown
Collaborator

第二批 Harness(.scratch issue 03/07)之 Hermes(NousResearch/hermes-agent)。无本机安装,验证走 scratchpad venv 隔离冒烟(已通过)。

设计(读源码定案)

  • custom_providers: 命名列表而非泛型 provider: custom{name: ApiFlux, base_url, key_env: APIFLUX_API_KEY, models: [...]},provider 引用 apiflux 即可匹配——完全避开泛型路径的 OPENAI_API_KEY 撞名
  • key 只进 ~/.hermes/.env(行级 upsert 照抄 hermes 自己的 _write_env_vars,0600),config.yaml 无密钥
  • models 写全量字符串列表:hermes 探测 /v1/models 成功后会自己刷新(curated dict 形式才不动)
  • YAML 保注释回写yaml Document API)——hermes 官方 save_config 是 yaml.safe_dump 重生成不保注释,我们比官方好;不可解析时不动文件、打印手动 snippet
  • --model 时置 model.provider: apiflux + model.default;路径尊重 HERMES_HOME
  • 新依赖:yaml(eemeli/yaml,纯 JS)

验证

  • bun test 103 pass(hermes 适配器 14 例 + init 接线 1 例)
  • venv 隔离冒烟(hermes-agent 0.19.0 PyPI + HERMES_HOME 指向 scratchpad):默认模型 hermes -z--provider apiflux --model claude-haiku-4-5 两发 SMOKE-OK;冒烟目录已删
  • 冒烟发现(hermes 自身行为):裸 --model <id> 会撞别家 catalog 同名模型,显式指定需配 --provider apiflux;默认模型路径不受影响

发版

合并后 bump 0.6.0 + tag(薄壳 dependencies 同步)。

…、YAML 保注释回写)

- config.yaml 写 custom_providers ApiFlux 条目(base_url /v1 + key_env=APIFLUX_API_KEY + 全量模型字符串列表,hermes 会自行从 /v1/models 刷新)
- key 只进 ~/.hermes/.env(行级 upsert 照抄 hermes _write_env_vars,0600),完全避开 OPENAI_API_KEY 撞名
- yaml Document API 回写保用户注释(优于 hermes 官方 save_config 的行为);不可解析时不动文件、打印手动 snippet
- --model 时置 model.provider=apiflux + model.default;路径尊重 HERMES_HOME
- venv 隔离冒烟通过(hermes-agent 0.19.0);.scratch issue 07 闭环
@BubblePtr
BubblePtr merged commit d1ef931 into main Jul 29, 2026
1 check passed
BubblePtr added a commit that referenced this pull request Jul 29, 2026
- Hermes 适配器(PR #5)随本版发布
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant