modelstudioai / modelstudioai/cli
[bug] config agent --agent hermes writes to ~/.hermes instead of $HERMES_HOME, config silently never takes effect
還沒有人認領這個 Issue。
- 主要語言
- TypeScript
- 星號
- 333
- 分支
- 28
- 平均合併
- 1 天 9 小時
- 30 天內合併 PR
- 33
描述
Environment
- CLI: bl 1.13.0
- Skill: 1.13.0
- Node: v22.23.1
- OS: Windows (MINGW64_NT-10.0-26200, git-bash/MSYS2)
- Region: cn-beijing (Token Plan)
- Target agent: hermes
Reproduce
# HERMES_HOME is set (or Hermes uses its Windows platform default)
export HERMES_HOME='C:\Users\<user>\AppData\Local\hermes'
bl config agent --agent hermes --region cn-beijing --key <REDACTED> --model qwen3.8-max-preview
Output:
Warning: Hermes Agent does not support native Windows. Please use WSL2.
Hermes Agent configured successfully.
Written: C:\Users\<user>\.hermes\config.yaml
Run `hermes chat -q "hello"` to verify.
Expected
bl config agent --agent hermes should write the model config to the location Hermes actually reads:
$HERMES_HOME/config.yaml(e.g.C:\Users\<user>\AppData\Local\hermes\config.yaml) whenHERMES_HOMEis set, or- Hermes' platform-native default home (
%LOCALAPPDATA%\hermes\config.yamlon Windows,~/.hermeson Linux/macOS).
Hermes resolves its home via get_hermes_home(): override → HERMES_HOME env var → platform-native default (see hermes-agent hermes_cli/config.py).
Actual
The CLI hardcodes ~/.hermes/config.yaml (join(homedir(), '.hermes', 'config.yaml') in the hermes writer) and ignores HERMES_HOME entirely.
On Windows (where Hermes' default home is %LOCALAPPDATA%\hermes) — or on any machine where HERMES_HOME is customized — the config is written to a file Hermes never reads:
- Written to:
C:\Users\<user>\.hermes\config.yaml(exists, but Hermes ignores it) - Hermes actually reads:
C:\Users\<user>\AppData\Local\hermes\config.yaml(still has the old model/provider)
Result: the command reports success, but the model/provider change silently does not take effect. In our case Hermes kept using the previous provider (deepseek) and the Bailian models never appeared in the model picker. Only after manually applying the same values with hermes config set model.provider custom / model.default / model.base_url / model.api_key did it take effect.
Additional detail: the same hardcoded ~/.hermes assumption appears in the agent-skill/inventory detection paths for hermes (paths: [join(home, '.hermes', 'config.yaml')]), so bl config agent can also falsely report a hermes agent as "not configured" when HERMES_HOME is non-default.
Full output
Warning: Hermes Agent does not support native Windows. Please use WSL2.
Hermes Agent configured successfully.
Written: C:\Users\<user>\.hermes\config.yaml
Run `hermes chat -q "hello"` to verify.
Exit code: 0
Already tried
- Confirmed CLI and installed skill versions aligned at 1.13.0.
- Confirmed
$HERMES_HOMEis set toC:\Users\<user>\AppData\Local\hermesin the environment. - Verified Hermes
load_config()reads$HERMES_HOME/config.yaml(not~/.hermes/config.yaml). - Fixed locally with
hermes config set model.provider custom+model.default+model.base_url+model.api_key— takes effect immediately.
Notes
- Frequency: always (deterministic path bug)
- Invoked via: agent (Hermes) on Windows git-bash
- Impact:
bl config agent --agent hermessilently no-ops on Windows / non-default HERMES_HOME setups; user believes Bailian is configured but the agent keeps using the old provider.
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
研究方向
從進入點 bl config agent --agent hermes 開始,檢查 Hermes writer 的路徑建構 join(homedir(), '.hermes', 'config.yaml')。接著檢查 issue 中提到的 agent-skill/inventory Hermes 偵測路徑。當設定與偵測遵循 Hermes 的 override、HERMES_HOME 和平台預設解析,而不是假設 ~/.hermes 時,即表示完成。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- typescript
- 領域
- cli
- Issue 類型
- 缺陷
- 難度
- 3/5
- 預估耗時
- 1-2 天
- 活躍度
- 冷清
- 描述清晰度
- 描述清楚
- 新手友好度
- 74/100