# 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 机器上的操作 ```bash # 1. 创建 profile hermes profile create role-mio # 2. 拉取 SOUL.md curl -H "Authorization: Bearer eak_xxx" \ https://eternalai.example.com/api/hermes/roles//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//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 适配在后端完成,用户拉取到的文件可直接使用