4.0 KiB
4.0 KiB
Hermes Agent 跨机器部署 — 需求文档
日期: 2026-06-20 状态: 已确认,待实现
概述
EternalAI 生成的角色配置(Soul.md + config.yaml)需要能直接复制到远程 Hermes Agent 中使用。EternalAI 服务器与 Hermes Agent 可能不在同一台机器上,用户通过 CLI 拉取命令(curl)跨机器获取配置文件。
用户场景
用户在 EternalAI Web UI 创建角色后,需要在另一台安装了 Hermes Agent 的机器上部署该角色。用户不希望 EternalAI 直接写入 Hermes 目录,而是生成可直接使用的文件,通过 curl 命令拉取后手动放置到 Hermes profile 目录。
工作流程
服务器 A (EternalAI) 服务器 B (Hermes Agent)
┌─────────────────────┐ ┌─────────────────────┐
│ 1. 设置页生成 API Key│ │ │
│ (eak_xxxxx) │ │ 5. hermes profile │
│ │ │ create role-mio │
│ 2. 创建角色 → 发布 │ │ │
│ 生成 Soul.md + │ │ 6. curl 拉取文件 │
│ config.yaml │ │ SOUL.md │
│ │ │ config.yaml │
│ 3. 角色管理页显示 │ 4. 用户复制 │ │
│ curl 命令模板 │──── curl ────▶│ 7. 配置 .env │
│ (含 API Key) │ 命令执行 │ (API 密钥) │
│ │ │ │
│ │ │ 8. role-mio chat │
└─────────────────────┘ └─────────────────────┘
用户在 Hermes 机器上的操作
# 1. 创建 profile
hermes profile create role-mio
# 2. 拉取 SOUL.md
curl -H "Authorization: Bearer eak_xxx" \
https://eternalai.example.com/api/hermes/roles/<id>/SOUL.md \
-o ~/.hermes/profiles/role-mio/SOUL.md
# 3. 拉取 config.yaml
curl -H "Authorization: Bearer eak_xxx" \
https://eternalai.example.com/api/hermes/roles/<id>/config.yaml \
-o ~/.hermes/profiles/role-mio/config.yaml
# 4. 配置 API 密钥
echo "OPENROUTER_API_KEY=sk-or-xxx" > ~/.hermes/profiles/role-mio/.env
# 5. 启动
role-mio chat
功能需求
1. API Key 管理
- 用户在设置页生成长期 API Key(格式:
eak_+ 32 位随机 hex) - API Key 列表显示:名称、创建时间、最后使用时间、Key(脱敏显示)
- 支持删除 API Key
- API Key 存储在数据库中,使用 bcrypt 哈希存储(只明文显示一次)
2. Hermes 配置 API
两个端点,均需 API Key 认证:
GET /api/hermes/roles/:id/SOUL.md— 返回角色的 SOUL.md 内容(text/plain)GET /api/hermes/roles/:id/config.yaml— 返回适配后的 Hermes config.yaml(text/plain)
认证方式:Authorization: Bearer eak_xxxxx
权限:API Key 所属用户只能拉取自己创建的角色。
3. config.yaml 格式适配
EternalAI 数据库中的角色数据 → Hermes config.yaml 格式:
| EternalAI 字段 | Hermes config.yaml 字段 |
|---|---|
role.model |
model: |
role.temperature |
temperature: |
role.maxTokens |
max_tokens: |
role.enableMemory |
memory.enabled: |
role.enableTools |
tools.enabled: |
4. Web UI 部署指南
角色管理页每个角色卡片增加"Hermes 部署"区域:
- 显示完整的 curl 命令模板(自动填入服务器地址、角色 ID、API Key)
- 操作步骤说明
- 复制按钮
非功能需求
- API Key 使用 bcrypt 哈希存储,明文只在生成时显示一次
- Hermes API 端点返回
text/plain格式,适合 curl 直接输出到文件 - config.yaml 适配在后端完成,用户拉取到的文件可直接使用