Hermes Agent · SCNet/HPC
从零部署 Hermes 以来遇到的问题与解决指南
这是一份精简版复盘:只记录部署 Hermes 工作站时真正影响可用性的坑、原因和处理方式。
环境限制
- 服务器是 SCNet/HPC 风格环境:老 Linux、无头、非 root、无 D-Bus user session。
- 不能默认依赖
systemctl --user、桌面浏览器或 root 权限。 - 关键目录:
/public/home/freemax与/public/home/freemax/.hermes。
网络与代理
外网访问依赖 Clash Meta / CrashCore,代理端口是 127.0.0.1:7893。Telegram、OpenAI Codex OAuth、Cloudflare API 都要确认实际进程继承了代理变量,而不是只看交互 shell 能否 curl 通。
Telegram Gateway
Telegram 私聊突然不回复 时,优先检查 allowlist 是否进入了 gateway 进程环境,而不是只检查配置文件。
TELEGRAM_ALLOWED_USERS=594665457
TELEGRAM_GROUP_ALLOWED_CHATS=-1003777010501
TELEGRAM_ALLOW_ALL_USERS=false
群聊建议继续保持 Privacy Mode,通过 @mention 或回复 bot 触发,避免读取群里每句话。polling conflict 日志如果不影响收发,可以先当作低优先级小问题。
OAuth 与密钥
OpenAI Codex 设备码流程卡住或 403,通常是请求没有走代理。先验证目标端点经 127.0.0.1:7893 可达,再启动 Hermes 或 Codex。
密钥不要直接写进对话或命令行;使用 ~/.hermes/.env 或 ~/.hermes/secrets/,避免 secret redaction 把值替换成 ***。
部署页面
当前站点部署到 Cloudflare Pages,项目是 hermes-view,域名是 view.dce.pub。部署脚本从本地 secret 文件读取 Cloudflare 凭据,不在页面、日志或对话中暴露。
/public/home/freemax/.hermes/scripts/deploy_cloudflare_pages.py
保留结论
- 先保证代理、授权变量和单实例 gateway。
- 配置写入后,要确认正在运行的进程真的读到了。
- 遇到长路径、长命令和长 URL,页面 CSS 必须允许移动端换行。
- Feishu/Lark 接入目前暂停,除非重新明确要求,不纳入默认维护任务。
敏感信息已省略。本文只保留可复用的部署经验。