Hermes Agent 配置全解:从 3 条命令到多场景定制
Hermes Agent 配置全解:从 3 条命令到多场景定制
Hermes Agent 是一个会在对话中自我进化的 AI 代理:装好之后你能把它接进命令行、Docker 和 Telegram,并随时切换模型、开关工具。下面按"先跑起来,再按场景调"的顺序讲。
跑通最小可用版本
先装,再启动,最后选个模型,三步就能用上。装包脚本会自动处理 Python 3.11、Node、ripgrep、ffmpeg 等依赖,不用手动一个个装。
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bashWindows 原生用 PowerShell 跑iex (irm https://hermes-agent.nousresearch.com/install.ps1);WSL2 里直接用上面的命令。
装完重载 shell 再启动,用hermes model挑一个供应商和模型。跑完这条你会看到 TUI 交互界面,输入斜杠命令能自动补全。
source ~/.bashrc # 重载 shell,zsh 用 source ~/.zshrc hermes # 进入交互界面 hermes model # 选 LLM 供应商和模型默认模型写在~/.hermes/config.yaml的model.default字段,hermes model只是帮你改这一行。
按使用场景讲配置
场景一:本地命令行交互
只在终端用,最常见的拦路虎是 API Key 散落各处。把所有密钥集中放进环境变量文件,别硬编码到任何脚本里。仓库根目录的 .env.example 是模板,复制成.env再填自己的 key。
# .env(从 .env.example 复制而来) # OPENROUTER_API_KEY=sk-or-... # KIMI_API_KEY= # KIMI_BASE_URL=https://api.kimi.com/coding/v1 # 只填你要用的供应商,其余保持注释这样做的好处是换供应商只改一处。改完跑hermes model或hermes setup重新路由即可,不用重启系统服务。
场景二:对接 CI / 容器化运行
想把 Agent 跑在流水线或服务器上,别在宿主机裸跑,用容器隔离。Hermes 内置多种终端后端(本地、Docker、SSH、Daytona、Singularity、Modal),容器后端直接复用仓库自带的 Dockerfile。
# 在 CI 里构建并运行 docker build -t hermes-agent . docker run --env-file .env \ -v "$HOME/.hermes:/root/.hermes" \ hermes-agent hermes-v把~/.hermes挂进容器是关键,否则模型、记忆、技能每次重建都会丢。Daytona 和 Modal 后端还支持空闲休眠,按需用才计费。
场景三:接入自定义工具与技能
Agent 的能力由"工具集"和"技能"两块构成。工具是原子操作(读写文件、跑命令等),技能是 Agent 从经验里沉淀下来的流程。用hermes tools开关工具,用/skills在对话里查看可用技能。
hermes tools # 列出/配置启用的工具集 # 对话内输入 /skills 浏览技能 # 自定义技能放在 ~/.hermes/skills/ 下技能文件实现细节参考 agent/skill_utils.py。新增技能后不用重启,/skills里立刻能看到,因为它走的是运行时注册。
场景四:多环境隔离
同一套代码要在开发机、测试服务器、生产 VM 间切换,靠HERMES_HOME(默认~/.hermes)做隔离:每个环境一套独立的模型、记忆和技能目录。
# 切换环境根目录,互不污染 export HERMES_HOME=/opt/hermes-prod # 生产 export HERMES_HOME=/tmp/hermes-dev # 开发 hermes setup # 各自独立初始化后端也可独立指定,比如开发机用本地、生产用 SSH 远程执行,避免危险命令落在主力机器上。
调优与常见坑
坑 1:改完.env不生效。症状是换了 key 还是报鉴权错。原因是 Agent 启动时缓存了旧环境变量。修法:source ~/.bashrc重载,或直接重开终端再进hermes。
坑 2:上下文越聊越长、响应变慢。原因是历史消息堆满。修法是在对话里用/compress主动压缩,用/usage看当前 token 占用,必要时/new开新会话。
坑 3:提示缓存没命中、成本偏高。原因看 agent/prompt_caching.py,缓存 TTL 默认 5 分钟,部分路由会把 1 小时档位钳回 5 分钟。症状是重复提问仍按全价计费。修法是确认所用供应商支持长 TTL,再检查model.default是否指向支持缓存的路由。
去哪里继续挖
想深入看三处就够:
- 配置与命令速查:README.zh-CN.md 的"快速入门"和"CLI 与消息平台对照"两节。
- 环境变量全集:.env.example,注释里写清了每个供应商的 key 申请地址。
- 安全边界(命令审批、容器隔离):SECURITY.md。
下一步建议:先按场景一再跑通本地命令行,确认能稳定对话,再上容器和远程后端——跳着配容易在排查时分不清是哪一层的问题。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考