Profile 系统与发行版
我们可以使用 Hermes 创建多个独立 Agent——一个专门写代码,一个负责运维,一个做研究。
本章介绍 Profile 系统如何在一台机器上运行多个完全隔离的 Agent 实例,以及如何将整个 Agent 打包为发行版共享给他人。
Profile 系统:一台机器,多个独立 Agent
什么是 Profile
Profile 是一个独立的 Hermes 主目录。每个 Profile 拥有自己完全隔离的配置和数据:
~/.hermes/profiles/<name>/ ├── config.yaml # 模型、工具、终端后端等所有设置 ├── .env # API Key、Bot Token(各档案各自独立) ├── SOUL.md # Agent 人格与身份设定 ├── memories/ # 独立的持久记忆(MEMORY.md、USER.md) ├── skills/ # 独立的技能目录 ├── cron/ # 独立的定时任务 └── state.db # 独立的会话历史数据库
关键设计:创建 Profile 后,它自动成为一个独立命令。创建名为 coder 的 Profile,你立即拥有 coder chat、coder setup、coder gateway start 等所有子命令——就像装了一个完全独立的 Hermes 实例。
快速上手
三步创建一个独立的编码助手:
实例
hermes profile create coder
# 步骤二:配置这个 Profile 的 API Key 和模型
coder setup
# 步骤三:开始聊天
coder chat
三种创建模式
实例
hermes profile create mybot
# 模式二:克隆配置(config.yaml + .env + SOUL.md + 技能,
# 记忆和会话不复制)
hermes profile create work --clone
# 模式三:完整克隆(包括记忆、技能、定时任务、插件,
# 不含会话历史)
hermes profile create backup --clone-all
# 从指定 Profile 克隆
hermes profile create work-backup --clone-from coder --clone-all
| 模式 | 复制内容 | 不复制内容 | 适用场景 |
|---|---|---|---|
| 全新(默认) | 仅内置技能 | — | 从零开始配置新 Agent |
| --clone | 配置、环境变量、人格、技能 | 记忆、会话历史 | 同一 Agent 的不同变体 |
| --clone-all | 配置、记忆、技能、定时任务、插件 | 会话历史 | 完整备份 |
切换和使用 Profile
实例
coder chat
coder gateway start
coder skills list
coder config set model.default anthropic/claude-sonnet-4-6
# 方式二:-p 标志显式指定
hermes -p coder chat
hermes --profile=coder doctor
hermes chat -p coder -q "你好"
# 方式三:设置当前默认(类似 kubectl config use-context)
hermes profile use coder # 之后直接运行 hermes 就会用 coder
hermes profile use default # 切回默认
判断当前在哪个 Profile:
- 命令提示符显示
coder ❯(而非普通的❯) - 启动横幅显示
Profile: coder - 运行
hermes profile查看当前 Profile 名称、路径、模型、网关状态
Profile 与工作目录、沙箱的区别
这是最容易混淆的三个概念:
| 概念 | 控制的内容 | 配置方式 |
|---|---|---|
| Profile | Hermes 自身的状态(配置、记忆、技能、会话) | hermes profile create |
| 工作目录 | 终端命令从哪里开始执行 | terminal.cwd |
| 沙箱 | 文件系统访问范围限制 | 终端后端(docker/modal 等) |
Profile 不是沙箱——默认 local 后端下,Agent 仍然拥有和你相同的文件系统权限。如果需要限制访问范围,切换终端后端(见第 05 章)。
让某个 Profile 固定从特定目录开始工作:
实例
# 让 coder Profile 固定从项目目录开始
terminal:
backend: local
cwd: /absolute/path/to/project
多 Profile 网关:每个 Agent 连接不同平台
每个 Profile 运行自己独立的网关进程,使用各自的 Bot Token:
实例
coder gateway start # 绑定 coder 的 Telegram Bot
assistant gateway start # 绑定不同的 Bot
# 安装为持久化系统服务
coder gateway install # 创建 hermes-gateway-coder systemd 服务
assistant gateway install # 创建 hermes-gateway-assistant 服务
安全防护:如果两个 Profile 意外使用了同一个 Bot Token,第二个网关会立即报错并指出冲突的 Profile 名称,不会发生静默冲突。
Profile 管理命令
实例
hermes profile list
# 查看某个 Profile 的详细信息
hermes profile show coder
# 重命名(自动更新别名和服务)
hermes profile rename coder dev-bot
# 导出为 coder.tar.gz
hermes profile export coder
# 从存档导入
hermes profile import coder.tar.gz
# 删除(需输入名称确认)
hermes profile delete coder
# 跳过确认直接删除
hermes profile delete coder --yes
不能删除默认 Profile(~/.hermes)。要完全卸载,使用 hermes uninstall。
Profile 发行版:把整个 Agent 共享给他人
Profile Distribution(发行版)将一个完整的 Hermes Agent——人格设定、技能、定时任务、MCP 连接、配置——打包成一个 Git 仓库。
任何人都可以一条命令安装整个 Agent,并在保留自己的记忆、会话和 API Key 的同时接收你的更新。
发行版 vs Profile 备份
| 维度 | 发行版(Distribution) | 备份(export/import) |
|---|---|---|
| 目标受众 | 他人(团队、社区) | 自己(机器间迁移) |
| 安装方式 | hermes profile install github.com/... | hermes profile import xxx.tar.gz |
| 版本管理 | Git 仓库 + 标签 | 无 |
| 更新 | hermes profile update | 手动重新导出导入 |
| API Key | 接收方自行配置 | 包含在导出中 |
发行版适合场景
- 向团队分发专用 Agent(合规监控、代码审查、研究助手)
- 向多台机器部署同一个 Agent,不想手动复制文件
- 持续迭代 Agent,让接收方通过一条命令拿到最新版本
- 把 Agent 作为产品分发给社区
创建和发布发行版
第一步:在已有的 Profile 中添加 distribution.yaml:
实例
name: research-bot
version: 1.0.0
description: "自主研究助手,集成 arXiv 和网页工具"
hermes_requires: ">=0.12.0"
author: "你的名字"
license: "MIT"
# 声明接收方需要配置的环境变量
env_requires:
- name: OPENAI_API_KEY
description: "OpenAI API Key(用于模型访问)"
required: true
- name: SERPAPI_KEY
description: "SerpAPI Key(用于网页搜索)"
required: false
default: ""
第二步:推送到 Git 仓库:
实例
cd ~/.hermes/profiles/research-bot
git init
git add .
git commit -m "v1.0.0"
git remote add origin git@github.com:you/research-bot.git
git tag v1.0.0
git push -u origin main --tags
.env 和 auth.json 被自动排除——API Key 不会进入仓库。记忆和会话历史也不会被包含。
安装和更新发行版
实例
hermes profile install github.com/you/research-bot --alias
# 安装后配置 API Key
nano ~/.hermes/profiles/research-bot/.env
# 更新到最新版本(保留自己的记忆和会话)
hermes profile update research-bot
常用命令速查
实例
hermes profile create <name> # 全新创建
hermes profile create <name> --clone # 克隆配置
hermes profile create <name> --clone-all # 完整克隆
hermes profile create <name> --clone-from <src> # 从指定档案克隆
hermes profile list # 列出所有
hermes profile show <name> # 查看详情
hermes profile use <name> # 设为默认
hermes profile rename <old> <new> # 重命名
hermes profile export <name> # 导出备份
hermes profile import <file> # 导入备份
hermes profile delete <name> # 删除
# Profile 命令别名(创建后自动可用)
<name> chat / setup / gateway start / skills list / doctor
# ─── 发行版 ──────────────────────────────────────────────────
hermes profile install github.com/user/repo --alias # 安装
hermes profile update <name> # 更新
