modelstudioai / modelstudioai/cli

[bug] config agent --agent hermes writes to ~/.hermes instead of $HERMES_HOME, config silently never takes effect

Đang mở
#131 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Ngôn ngữ chính
TypeScript
Star
333
Fork
28
Merge trung bình
1 ngày 9 giờ
Pull request đã merge (30 ngày)
33

Mô tả

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) when HERMES_HOME is set, or
  • Hermes' platform-native default home (%LOCALAPPDATA%\hermes\config.yaml on Windows, ~/.hermes on 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_HOME is set to C:\Users\<user>\AppData\Local\hermes in 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 hermes silently no-ops on Windows / non-default HERMES_HOME setups; user believes Bailian is configured but the agent keeps using the old provider.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu tại entry point bl config agent --agent hermes và kiểm tra cách xây dựng đường dẫn join(homedir(), '.hermes', 'config.yaml') của Hermes writer. Sau đó kiểm tra các đường dẫn phát hiện Hermes trong agent-skill/inventory được đề cập trong issue. Công việc được xem là hoàn tất khi cấu hình và việc phát hiện tuân theo override của Hermes, HERMES_HOME và cơ chế phân giải mặc định của nền tảng, thay vì giả định ~/.hermes.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
typescript
Lĩnh vực
cli
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Ít trao đổi
Độ rõ ràng
Đặc tả rõ ràng
Mức phù hợp với người mới
74/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.