📋 背景
之前给 Johnny(跑在 K20 服务器上的 Hermes Agent)配置的是阿里云百炼 API,但最近体验不太稳定,经常出现 401 认证错误。于是决定迁移到 MiniMax-CN,体验一下新模型。
🔄 迁移过程
1. 迁移前状态
| 项目 | Before (百炼) | After (MiniMax) |
|---|---|---|
| Provider | openrouter | minimax-cn |
| Endpoint | coding.dashscope.aliyuncs.com/v1 | api.minimaxi.com/anthropic |
| Model | qwen3.5-plus | MiniMax-M2.7 |
| Key 前缀 | sk-sp-... | sk-cp-... |
2. 遇到的问题
问题 1: API Key 重复拼接
现象:Johnny 无法连接,提示 401 认证失败
原因:MINIMAX_CN_API_KEY 在配置文件中重复拼接了两遍
解决:修正为单份正确的 key
原因:MINIMAX_CN_API_KEY 在配置文件中重复拼接了两遍
解决:修正为单份正确的 key
问题 2: Provider 配置未生效
现象:修改 config.yaml 后,日志显示仍在使用 openrouter + dashscope
原因:Gateway 配置结构和 Johnny 个人配置结构不同,且环境变量优先级高于 config.yaml
解决:修正 Gateway 配置文件格式,使用正确的嵌套结构
原因:Gateway 配置结构和 Johnny 个人配置结构不同,且环境变量优先级高于 config.yaml
解决:修正 Gateway 配置文件格式,使用正确的嵌套结构
问题 3: 401 Authentication Error
现象:日志报错
原因:openrouter provider 无法识别 minimax-cn 的 key 格式
解决:确保 provider 正确指定为 minimax-cn
login fail: Please carry the API secret key in the 'Authorization' field原因:openrouter provider 无法识别 minimax-cn 的 key 格式
解决:确保 provider 正确指定为 minimax-cn
问题 4: Model 不支持
现象:
原因:虽然指定了 minimax-cn provider,但实际请求还是发到了 dashscope endpoint
解决:修正 config.yaml 中的 model.provider 字段
model 'MiniMax-M2.7' is not supported原因:虽然指定了 minimax-cn provider,但实际请求还是发到了 dashscope endpoint
解决:修正 config.yaml 中的 model.provider 字段
3. 关键配置文件修改
Gateway 配置 (/home/henry/hermes-agent/data/config.yaml)
# 修改前(错误)
model: qwen3.5-plus
providers:
openai:
base_url: https://coding.dashscope.aliyuncs.com/v1
api_key_env: OPENAI_API_KEY
# 修改后(正确)
model:
default: MiniMax-M2.7
provider: minimax-cn
base_url: https://api.minimaxi.com/anthropic
providers:
minimax-cn:
base_url: https://api.minimaxi.com/anthropic
api_key_env: MINIMAX_CN_API_KEY
环境变量 (/etc/default/hermes)
# 添加 MiniMax Key
MINIMAX_CN_API_KEY=sk-cp-XXXXXXXXXX...
4. 重启服务
sudo systemctl restart hermes
sudo journalctl -u hermes -f # 查看日志确认启动正常
✅ 验证迁移成功
迁移完成! Johnny 现在使用 MiniMax-M2.7 模型,通过 Telegram/WeChat 消息测试正常响应。
🔐 安全注意事项
隐私提醒:本文已对所有敏感信息(API Keys、Tokens)进行脱敏处理。实际操作时请:
- 不要将完整的 API Key 提交到 Git
- 使用环境变量或 .env 文件存储敏感信息
- 确保配置文件权限设置为 600
📝 总结
这次迁移比预期曲折,主要原因是:
- Gateway 配置和 Agent 个人配置的结构不同
- 环境变量优先级容易造成混淆
- provider 和 model 的对应关系需要仔细核对
不过最终 Johnny 成功切换到 MiniMax-M2.7,体验比以前流畅很多!