Hermes Agent 配置
了解如何配置 Hermes Agent,包括配置文件、LLM 提供商设置、工具配置和所有可用的配置选项。
配置文件位置
Hermes Agent 使用以下配置文件:
| 文件 | 说明 |
|---|---|
~/.hermes/config.yaml |
主配置文件 |
~/.hermes/.env |
环境变量(API 密钥等) |
~/.hermes/state.db |
SQLite 会话数据库 |
~/.hermes/skills/ |
安装的技能目录 |
~/.hermes/sessions/ |
会话存储目录 |
~/.hermes/memories/ |
持久化记忆存储 |
基本配置
设置 API 密钥
通过 CLI 设置 API 密钥:
hermes config set OPENROUTER_API_KEY sk-or-v1-your-key-here
或直接编辑 ~/.hermes/.env 文件:
# LLM 提供商 OPENROUTER_API_KEY=sk-or-v1-your-key-here # 可选工具 FIRECRAWL_API_KEY=fc-your-key FAL_KEY=your-fal-key
选择模型
hermes model # 交互式选择
或在配置文件中指定:
# ~/.hermes/config.yaml provider: name: openrouter model: anthropic/claude-sonnet-4-20250514
终端配置
终端后端
终端工具可以在不同的环境中执行命令:
| 后端 | 说明 | 适用场景 |
|---|---|---|
local |
在本地机器运行(默认) | 开发、可信任务 |
docker |
隔离容器 | 安全、可重现性 |
ssh |
远程服务器 | 沙盒、保持 agent 远离自己的代码 |
singularity |
HPC 容器 | 集群计算、无 root |
modal |
云端执行 | 无服务器、弹性扩展 |
daytona |
云沙盒工作区 | 持久远程开发环境 |
配置示例
# ~/.hermes/config.yaml terminal: backend: local # 或: docker, ssh, singularity, modal, daytona cwd: "." # 工作目录 timeout: 180 # 命令超时时间(秒)
Docker 后端
terminal: backend: docker docker_image: python:3.11-slim
SSH 后端
terminal: backend: ssh
# 在 ~/.hermes/.env 中设置凭据 TERMINAL_SSH_HOST=my-server.example.com TERMINAL_SSH_USER=myuser TERMINAL_SSH_KEY=~/.ssh/id_rsa
容器资源
terminal: backend: docker container_cpu: 1 # CPU 核心数(默认:1) container_memory: 5120 # 内存 MB(默认:5GB) container_disk: 51200 # 磁盘 MB(默认:50GB) container_persistent: true # 跨会话持久化文件系统
容器安全
所有容器后端都使用安全加固运行:
- 只读根文件系统(Docker)
- 删除所有 Linux 能力
- 无权限提升
- PID 限制(256 个进程)
- 完整命名空间隔离
工具配置
配置工具集
# 使用特定工具集 hermes chat --toolsets "web,terminal" # 配置每个平台的工具(交互式) hermes tools
常用工具集包括:web、terminal、file、browser、vision、image_gen、skills、tts、todo、memory、session_search、cronjob、code_execution、delegation、homeassistant 和 rl。
可用工具分类
| 类别 | 示例 | 说明 |
|---|---|---|
| 网页 | web_search, web_extract |
搜索网页和提取页面内容 |
| 终端和文件 | terminal, process, read_file, patch |
执行命令和操作文件 |
| 浏览器 | browser_navigate, browser_snapshot |
交互式浏览器自动化 |
| 媒体 | vision_analyze, image_generate, text_to_speech |
多模态分析和生成 |
| 智能体编排 | todo, clarify, execute_code, delegate_task |
规划、澄清、代码执行和子智能体委托 |
| 记忆和召回 | memory, session_search |
持久化记忆和会话搜索 |
| 自动化和投递 | cronjob, send_message |
定时任务和出站消息投递 |
显示设置
# ~/.hermes/config.yaml display: busy_input_mode: "interrupt" # 或 "queue" tool_preview_length: 0 # 0 = 无限制 bell_on_complete: false
- busy_input_mode:agent 工作时按 Enter 的行为
- tool_preview_length:工具预览行的最大字符数
- bell_on_complete:任务完成时是否响铃
快速命令
定义自定义命令,无需调用 LLM 即可立即执行 shell 命令:
# ~/.hermes/config.yaml
quick_commands:
status:
type: exec
command: systemctl status hermes-agent
gpu:
type: exec
command: nvidia-smi --query-gpu=utilization.gpu,memory.used --format=csv,noheader
cdh:
type: cd
path: ~/projects/hermes-agent
然后在任何聊天中输入 /status 或 /gpu。
人格设置
# ~/.hermes/config.yaml personalities: helpful: "You are a helpful, friendly AI assistant." kawaii: "You are a kawaii assistant! Use cute expressions..." pirate: "Arrr! Ye be talkin' to Captain Hermes..." # 添加您自己的!
使用 /personality pirate 等命令激活。
上下文压缩
# ~/.hermes/config.yaml compression: enabled: true threshold: 0.50 # 在上下文限制的 50% 时压缩 summary_model: "google/gemini-3-flash-preview"
CLI 命令
| 命令 | 说明 |
|---|---|
hermes config set <key> <value> |
设置配置值 |
hermes config get <key> |
获取配置值 |
hermes config list |
列出所有配置 |
hermes config check |
检查配置完整性 |
hermes config migrate |
迁移配置到新版本 |
提示:运行
hermes doctor可以诊断配置问题并提供修复建议。
