将 Hermes Agent 打包为 CNB 云原生开发环境,开箱即用。
Hermes Agent 是由 Nous Research 开发的智能 AI Agent,集成在 CNB 云原生开发环境中,支持代码编写、调试和自主执行。
核心能力:
在仓库页面点击「云原生开发」按钮,环境会自动构建并启动。
使用 docker.cnb.cool/xbotter/hermesagent:latest 镜像,预装 Hermes Agent,支持 VS Code 远程开发。
仓库页面还提供「Web 终端」按钮,启动基于 Hermes Agent 的终端环境(ttyd),适用于无 IDE 的轻量交互场景。
开发环境启动时,init.sh 会自动将 CNB 平台的 AI 端点注入到配置中,无需手动配置 API Key 和 endpoint。
默认使用 glm-5.1 模型,上下文长度 200K tokens。如需切换模型,编辑 hermes-config.yaml。
预配置了两个 CNB MCP 服务器,启动时自动注入 CNB Token:
| 服务器 | 说明 |
|---|---|
cnb | CNB 平台操作(仓库、流水线等),通过 @cnbcool/mcp-server 提供 |
cnb-knowledge | CNB 知识库查询,默认关联 cnb/feedback 仓库 |
通过设置 HERMES_HOME 环境变量指向 CNB 漫游目录(~/.cnb/hermes-data/),所有 Hermes 数据直接存入漫游路径,无需软链接。CNB 的 file-keeper 机制会自动在环境销毁时备份、下次启动时恢复 ~/.cnb/ 目录内容。
持久化的数据:
| 数据 | 路径 | 说明 |
|---|---|---|
| 配置文件 | ~/.cnb/hermes-data/config.yaml | 模型、MCP 服务器等配置 |
| 环境变量 | ~/.cnb/hermes-data/.env | API Key 等密钥 |
| 长期记忆 | ~/.cnb/hermes-data/memories/ | MEMORY.md + USER.md |
| 会话历史 | ~/.cnb/hermes-data/sessions/ | 所有对话记录 |
| 自学技能 | ~/.cnb/hermes-data/skills/ | Agent 自动创建的技能 |
| 人格设定 | ~/.cnb/hermes-data/SOUL.md | Agent 的身份和风格 |
| 会话数据库 | ~/.cnb/hermes-data/state.db | SQLite 会话索引 |
漫游容量上限 100MB。
启动时 init.sh 会根据 CNB_REPO_SLUG 自动在 /workspace/.hermes.md 生成仓库上下文,帮助 Agent 理解当前工作环境,避免跨仓库混淆。
~/.cnb/hermes-data/ ← HERMES_HOME (CNB 漫游目录) ├── config.yaml # 主配置(模型、MCP 服务器、终端、记忆、压缩等) ├── .env # API Key 和密钥 ├── SOUL.md # Agent 人格(系统提示词第一位) ├── state.db # SQLite 会话索引 ├── memories/ # 长期记忆 (MEMORY.md + USER.md) ├── sessions/ # 会话历史 ├── skills/ # 自学技能 ├── cron/ # 定时任务 └── logs/ # 运行日志
环境启动时执行以下步骤:
.hermes.md 仓库上下文,注入 MCP Token两种模式使用同一个 Hermes Agent 镜像,都支持 Hermes 的全部能力:
| 模式 | 触发方式 | 用途 |
|---|---|---|
| VS Code 开发 | 云原生开发按钮 | 开发调试,完整 IDE 支持 |
| Web 终端 | Web 终端按钮 | 轻量终端交互(ttyd) |
常见问题:
| 问题 | 解决方案 |
|---|---|
| API Key 无效 | 检查 CNB_TOKEN 是否正确注入:echo $OPENAI_API_KEY |
| 模型不可用 | 编辑 hermes-config.yaml 切换模型 |
| 记忆丢失 | 检查 ~/.cnb/hermes-data/ 是否存在且不为空 |
| MCP 服务器不可用 | 检查 hermes mcp list,确认 CNB Token 已注入 |
| HERMES_HOME 未生效 | 检查 echo $HERMES_HOME,应为 /root/.cnb/hermes-data |
. ├── .cnb.yml # CNB 流水线 + 开发环境配置 ├── .cnb/web_trigger.yml # Web 终端触发按钮配置 ├── Dockerfile # Hermes Agent 镜像构建 ├── hermes-config.yaml # Hermes 预置配置(模型、MCP 服务器等) ├── hermes-env # Hermes 预置环境变量占位 └── docker/ ├── entrypoint.sh # 容器入口,注入 CNB 环境变量 └── init.sh # 初始化脚本(目录结构、仓库上下文、MCP Token)