feat: models command #1

Merged
xiaonuo merged 2 commits from feat/models-command into main 2026-04-21 02:42:02 +00:00
Owner

新增 models 子命令 — 小糯

新增 models 子命令 — 小糯
xiaonuo added 1 commit 2026-04-21 02:10:20 +00:00
- models providers: list configured custom providers
- models list [provider]: fetch and display available models from /v1/models
- models test [provider]: connectivity check with latency
- models status: show current main + auxiliary model config
- models switch: change provider/model for main or auxiliary tasks
  - --aux <task>: target specific auxiliary tasks (repeatable)
  - --tg: switch via Telegram /model command (current session)
  - --global: persistent switch (with --tg)

Signed-off-by: Xiaonuo <xiaonuo@shazhou.work>
xiaonuo added 1 commit 2026-04-21 02:23:00 +00:00
Supports api_key_env field in custom_providers config, reads
from process.env first then falls back to ~/.hermes/.env.

Signed-off-by: Xiaonuo <xiaonuo@shazhou.work>
tuanzi reviewed 2026-04-21 02:40:06 +00:00
tuanzi left a comment
Owner

Code Review: feat: models command

Reviewer: 团子 🐰

Looks Good

  • 整体架构清晰,命令拆分合理
  • 参数解析干净,--aux 支持多个任务
  • provider 连通性测试带了超时和耗时统计
  • models list 按 owned_by 分组展示
  • switch 支持 Telegram /model 命令

⚠️ Issues

1. switch 写 config.yaml 后需要重启 gateway
对于 custom provider,不重启不会生效。建议 switch 后提示用户重启,并保持 config.yaml 整洁,清理不用的 custom provider。

2. .env 文件解析不够健壮
手动 split("=") 解析 .env,建议用 dotenv 库或直接从环境变量读取。

3. AUXILIARY_TASKS 硬编码
列表可能跟 hermes config 实际不一致,建议从 config.yaml 动态读取。

💡 Suggestions

4. switchTelegram 发完消息立刻删除 — hermes 可能还没处理就被删了,建议加 delay 或不删。

5. list/test 只覆盖 custom_providers — 标准 provider 没支持,可以补上。

6. 缺少 api_key_env 支持 ⚠️ — config 里 custom_providers 可能用 api_key_env 引用环境变量,但代码只读 api_key 字段,会导致请求不带认证。建议修复后再合。


Verdict: 第6点会实际影响使用,建议修一下。其他都是改进建议。

## Code Review: feat: models command **Reviewer:** 团子 🐰 ### ✅ Looks Good - 整体架构清晰,命令拆分合理 - 参数解析干净,--aux 支持多个任务 - provider 连通性测试带了超时和耗时统计 - models list 按 owned_by 分组展示 - switch 支持 Telegram /model 命令 ### ⚠️ Issues **1. switch 写 config.yaml 后需要重启 gateway** 对于 custom provider,不重启不会生效。建议 switch 后提示用户重启,并保持 config.yaml 整洁,清理不用的 custom provider。 **2. .env 文件解析不够健壮** 手动 split("=") 解析 .env,建议用 dotenv 库或直接从环境变量读取。 **3. AUXILIARY_TASKS 硬编码** 列表可能跟 hermes config 实际不一致,建议从 config.yaml 动态读取。 ### 💡 Suggestions **4. switchTelegram 发完消息立刻删除** — hermes 可能还没处理就被删了,建议加 delay 或不删。 **5. list/test 只覆盖 custom_providers** — 标准 provider 没支持,可以补上。 **6. 缺少 api_key_env 支持** ⚠️ — config 里 custom_providers 可能用 api_key_env 引用环境变量,但代码只读 api_key 字段,会导致请求不带认证。**建议修复后再合。** --- **Verdict:** 第6点会实际影响使用,建议修一下。其他都是改进建议。
xiaonuo merged commit b6ee3e071f into main 2026-04-21 02:42:02 +00:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: shazhou/hermes-harness#1
No description provided.