Hermes Agent 安装
Nous Research 出的 AI Agent CLI;本机用作 Prism 主体(Discord + WeChat + CLI)。 这页记录安装方式、踩过的坑和模型配置。
安装方式
一行脚本:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash安装路径:~/.hermes/hermes-agent/。hermes update 可原地升级;hermes setup 进交互向导。
部署机器
| 机器 | 版本 | 说明 |
|---|---|---|
| Restry 主机 | v0.8.0+ | Prism 身份,Discord + WeChat + CLI 三端 |
| Ottor(04-13) | v0.8.0 | Discord Bot Ottor#1161,systemd 用户服务 |
| Fires(04-14) | v0.9.0 | /Users/leway/Projects/hermes-agent,Python 3.11 venv |
Discord Gateway 配置(Ottor)
- 需开启 Privileged Gateway Intents(Presence、Server Members、Message Content)
- 环境变量
DISCORD_BOT_TOKEN(不是DISCORD_TOKEN) - 必须设
DISCORD_ALLOWED_USERS白名单 - Slash command 上限 100,超出技能不注册不影响使用
Discord Auto-Thread(04-19)
Hermes 收到 @bot 自动开 thread(discord.py:2826),便于隔离归档。
不建子区的 4 种情况: DISCORD_AUTO_THREAD=false / 频道在 DISCORD_NO_THREAD_CHANNELS / 语音关联频道 / 触发消息是 reply 类型。
归档时长 auto_archive_duration=1440(24h 无活动),找回入口:频道 🧵 → “归档的帖子”。
WeChat 接入(04-12)
通过 iLink Bot API(域名 ilinkai.weixin.qq.com)接入个人微信号:
hermes update升级到支持 weixin 平台的版本hermes platform add weixin启动配置- 扫描终端打印的二维码登录个人微信
- 长轮询收发消息,支持文字/图片/文件/语音,长消息自动拆气泡
文档:https://hermes-agent.nousresearch.com/docs/user-guide/messaging/weixin
⚠️ 教训:早期回答时怀疑此 API 不存在并误导用户。事实是 Hermes 代码库里就有
weixin.py适配器,扫码后能正常收到群消息确认。遇到陌生平台先查 repo 再下结论。
模型配置
当前激活模型
model: claude-opus-4.6
provider: copilot
base_url: https://api.githubcopilot.com
api_mode: chat_completions
summary_model: gpt-4o-mini认证用 .env 里的 COPILOT_GITHUB_TOKEN(gho_* OAuth token),Hermes 内置的 copilot provider 自动做 token exchange + 加请求头。
Copilot 企业端点 + Opus 4.6 1M
- 个人 Copilot 不支持
claude-opus-4.6等高级模型 - 企业端点:
https://api.enterprise.githubcopilot.com - 内部通过
copilot_internal/v2/token交换企业 token;Hermes 未内置该流程,需手动指定 base_url - Opus 4.6 有两个变体:
claude-opus-4.6(200K) 与claude-opus-4.6-1m(1M, internal-only) - 详见 copilot-anthropic-proxy 的 model remap 与 model-provider-config 的 Hermes 上下文 bug
summary_model 误配 → 400(04-13 修复)
summary_model: github-copilot/gemini-3-flash-preview 是不存在的模型,导致每次上下文压缩报:
Error 400: model_not_supported
修复:改为 gpt-4o-mini。日志里”老的 12 点报错”全部来自此条配置,与 vision 超时无关。
SOUL.md 清理(04-13)
迁移自 OpenClaw 后 SOUL.md(系统 prompt)残留 B2P Hackathon PM 角色 + Prism 五代理设定。问题:
- 持久身份”Prism 🔮 / B2P Hackathon AI 中枢”
- “5 个常驻代理”(prism-arch/data/ui/docs/backend)—— Hackathon 已结束,实际不跑
- “2周冲刺”过期项
清理动作:
~/.hermes/SOUL.md从 3315 字节精简到 538 字节- 仅保留:身份(Prism,通用 AI 助手)、沟通风格、铁律
- 去掉 Hackathon 频道(prism-general/dev/standup)和”常驻 Agent”概念
- 同步精简内存里重复的时区条目和 OpenClaw 迁移条目
SOUL.md 是磁盘文件不是 memory,agent 改不动 memory 段时仍可直接 patch SOUL.md。改完下个 session 自动加载。
Hermes 三种代理方式
| 方式 | 用途 | 持久性 |
|---|---|---|
delegate_task | 临时派子代理 | 单次任务 |
delegate_task(acp_command="claude") | 调 Claude Code 编码 | 单次(可 --resume) |
delegate_task(acp_command="codex") | 调 OpenAI Codex | 单次 |
最多 3 个并行任务。所谓”常驻代理”在 Hermes 里就是 SOUL.md 的人设描述,不是真进程。详见 multi-agent-architecture。
Claude Code 调用注意(04-13 教训)
- stdin 卡死 —
claude -p "..."在--resume模式下可能卡住读 stdin,必须< /dev/null --max-turns上限 — 默认 20 容易error_max_turns,Hermes 调用建议 ≥80- session_id 提取 — 任务跑完才能从 JSON 输出里拿到 session_id,长任务期间无法预先记住
- 同目录并发 — 两个 Opus 同时改同一目录文件会冲突
- 死循环风险 — 用 Claude Code → Copilot Proxy 改 Copilot Proxy 自己的代码,磁盘改了但内存里还跑旧版(systemd 进程未 restart 反而救了一命)
notify_on_complete不可靠 — 长跑(≥1h)任务通知可能丢,要主动 poll- 长 prompt +
< /dev/null卡 stdin — 04-16 观察到:用claude -p "...长 prompt..." < /dev/null启动的后台进程可能在 0 输出情况下被 SIGTERM(exit 143)而一行未改;改用 heredoc pipe(cat <<'EOF' | claude -p ... EOF)可稳定启动 - 默认模型与 effort(04-16 起):
~/.claude/默认配置claude-opus-4-6+reasoning_effort: high;opus-4.7 上游只接受medium,此处不要改到 4.7 高 effort
相关页面
- openclaw-config
- copilot-anthropic-proxy — Hermes 走的 Claude 代理
- model-provider-config — Hermes 上下文长度 bug
- acp-claude-code-integration — Claude Code 子代理
- clawline-client-web