首页

>

·

>

评测报告

Hermes Agent 部署实录:DeepSeek + Discord 打造7×24 AI管家,10个坑全踩过

gkmix-avatar

GK实验室

更新于 2026年5月17日

一句话总结:在 VPS 上部署 Hermes Agent,搭配 DeepSeek API 做推理、Discord 做消息推送。现在用手机就能查服务器状态、收日报、监控网站——全程 10 个坑,每个都替你踩过了。

⚖️ 利益相关声明:本文含 VPS 推荐链接,通过链接购买 GK 会获得少量佣金,不影响你的价格。所有方案均基于自费实测。

一个周末晚上,我完成了 Hermes Agent 部署——在 VPS 上安装开源 AI 管家,搭配 DeepSeek API 做推理、Discord 做消息通路。从 SSH 连进去到手机收到第一条消息,花了三个多小时。中间翻了十个坑——API 400、Discord Token 401、cron 命令格式反复报错、时区不一致导致日报失踪。这篇文章把整个过程原样记下来。如果你也在做 Hermes Agent 部署,能帮你省两个小时。

Hermes Agent 部署完成后,最终效果:手机 Discord 发一条”服务器状态”,十秒收到回复。每天早上收到自动日报。网站挂了第一时间告警。

Hermes Agent 部署后的实际效果——Discord手机上查询服务器状态

一、Hermes Agent 是什么

简单说:Hermes Agent 是一个开源的 AI 框架,能在服务器上执行终端命令、读写文件、管理定时任务。给它接上大模型 API,它就变成一个能自己干活的运维管家。你不在的时候它跑定时任务,你在的时候发条消息它就干活。

三个组件组成这套系统:

组件角色说明
Hermes AgentAI 管家本体7×24 运行在 VPS 上,执行命令、管理定时任务、接收消息
DeepSeek API推理大脑处理自然语言指令,生成回复。走 OpenAI 兼容协议,按量计费
Discord消息通路你手机发消息 → Discord → Hermes 收到 → 执行 → 返回结果

为什么不用 Telegram?国内被墙。为什么不用微信?微信个人号接 Bot 违反平台规则,公众号内容审核又极其严格。Discord 国内直连、手机推送及时、Hermes 原生支持,是当下最省心的选择。

VPS 有闲置内存就行。我在用的是 Vultr 2h2g(BandwagonHost 同理),Ubuntu 24.04,宝塔面板已装,两个 WordPress 站点运行中。Hermes 本体只占 ~200MB 内存,不抢网站资源。

二、Hermes Agent 部署:从零到跑通

2.1 创建低权限用户

Agent 能执行 shell 命令,所以不能用 root 跑。万一出问题只影响自己目录:

useradd -m -s /bin/bash hermes
passwd hermes
usermod -aG sudo hermes
Hermes Agent 部署第一步——VPS终端创建低权限用户hermes

2.2 安装

安装脚本会自动处理 Python、Node.js 等依赖。但编译工具(build-essential、python3-dev)需要 sudo 权限装:

# 先切 root 装编译依赖
apt install -y build-essential python3-dev libffi-dev

# 再切回 hermes 安装
su - hermes
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
source ~/.bashrc
hermes --version

坑 #1:宝塔终端断连。 安装脚本下载 213 个 Python 包时(`uv` 解析依赖),宝塔网页终端超时断开——两次都断在同一个地方。换 Mac 原生终端 SSH 后解决。教训:所有部署类操作,别用网页终端,用真实 SSH。如果网络不稳定,可以先用 `screen` 开一个会话再跑安装,断了也能重连回来。

Hermes Agent 部署中宝塔终端断连与Mac终端正常对比

2.3 配置 DeepSeek API:解决 HTTP 400 报错

安装完进入配置向导,Quick Setup → 模型提供商选 DeepSeek → 模型选 deepseek-chat → 粘贴 API Key。

配置完输入”你好”,HTTP 400

⚠️ API call failed: BadRequestError [HTTP 400]
   Provider: deepseek  Model: deepseek-chat
   Endpoint: https://api.deepseek.com/v1
Hermes Agent 部署中DeepSeek API返回HTTP 400错误

坑 #2:内置 DeepSeek 适配器不兼容。

排查:`curl` 直接调 DeepSeek API → 正常返回。API Key 没问题,是 Hermes v0.14.0 内置适配器和实际 API 不匹配。

方案:绕开内置适配器,走自定义端点。这是整个 Hermes Agent 部署过程中第一个真正卡住我的坑。

hermes model
# 在模型列表最下面选 More providers → 自定义端点(Custom endpoint)
# Base URL: https://api.deepseek.com/v1
# API Key: sk-你的key
# Compatibility mode: Chat Completions(选第 2 项)
# 验证端点 → 2 models visible → 确认

再输”你好”,正常回复。这个坑查了快四十分钟。

三、对接 Discord:解决 Token 401 与 Bot 不响应

这是整个部署里最折腾的环节。

3.1 创建 Bot

discord.com/developers → New Application → Bot → Reset Token。

Discord开发者后台创建Bot,Token重置

坑 #3:Token 401。

discord.errors.LoginFailure: Improper token has been passed.
HTTPException: 401 Unauthorized
journalctl日志Discord 401 Unauthorized

回去 Reset Token 重新生成。注意:Token 格式是 MTU...G...xxxxx 三段,点隔开。不是这个格式的拿错了。另外 Token 只在创建时显示一次,不确定就 Reset。

坑 #4:Bot 没进服务器。 创建了 Bot 但它在哪?去 OAuth2 → URL Generator:

类别勾选
Scopesbot、applications.commands
Bot PermissionsSend Messages、Read Message History、Use Slash Commands、Embed Links

复制生成的 URL,浏览器打开,选服务器,授权。成员列表出现 My-Agent 后,`/set-home` 才能用。

Discord OAuth2 URL生成器,bot权限已勾选

坑 #5:Message Content Intent 没开。 Bot 在线但不读消息。Developer Portal → Bot → Privileged Gateway Intents → 打开 Message Content Intent。不开这个,Bot 只认斜杠命令,不认普通文字。

3.2 配置 Gateway

hermes setup gateway
# 选 Discord → 粘贴 Token
# Allowed user IDs → 粘贴你的 Discord 用户 ID
#    (只允许你操作!Bot 能执行服务器命令,别跳过这步)
# Home channel → 跳过,稍后 Discord 里 /set-home

坑 #6:装系统服务时找不到命令。

root@vps:~# sudo hermes gateway install --system --run-as-user hermes
sudo: hermes: command not found

`hermes` 装在 `/home/hermes/.local/bin/`,root 的 PATH 里没有。完整路径解决:

/home/hermes/.local/bin/hermes gateway install --system --run-as-user hermes
/home/hermes/.local/bin/hermes gateway start --system
systemctl status hermes-gateway

看到 `active (running)`。回 Discord,发 `/set-home`,Bot 回复”Home channel set”。通路打通。

Discord /set-home命令成功回复

四、定时任务:配置 Cron 实现自动化监控

Hermes 能执行这些监控命令,是因为它自带了系统命令执行能力——这也是为什么前面第一步就强调必须创建低权限的 hermes 账户。不要用 root 跑 AI Agent:一旦模型产生幻觉或被恶意提示词注入,低权限用户顶多弄脏自己的 home 目录,root 跑就直接裸奔了。

坑 #7:cron 参数格式。 这个坑花了好几条错误尝试才搞明白:

# ❌ 报错
hermes cron add "描述"
# → Failed: create requires either prompt or at least one skill

hermes cron create --prompt "描述"
# → unrecognized arguments: --prompt

hermes cron create -z "描述"
# → unrecognized arguments: -z

`hermes cron create –help` 显示:schedule 和 prompt 是位置参数,不加任何 flag。

# ✅ 正确格式
hermes cron create "schedule" "prompt描述" --name "任务名" --deliver discord

坑 #8:`30m` 是单次,不是重复。 `”30m”` 表示”30 分钟后跑一次,然后停”。要持续重复必须用 cron 表达式。

坑 #9:没加 `–deliver discord`。 默认投递到本地终端,手机收不到。

最终四条:

# 网站监控(每30分钟)
hermes cron create "*/30 * * * *" "检查网站。curl检查yourdomain.com和yourdomain2.com的HTTP状态码。异常Discord告警,恢复也通知。" --name "site-monitor" --deliver discord

# 每日早报(每天9点)
hermes cron create "0 9 * * *" "服务器日报发Discord:CPU/内存/磁盘、nginx/mysql状态、Wordfence攻击拦截、流量数据。标题'📊 每日报告'。" --name "daily-report" --deliver discord

# 月度维护(每月1号10点)
hermes cron create "0 10 1 * *" "月度维护发Discord。核实Pretty Links有效性、列出超过90天的文章建议更新、插件可用更新。标题'🔧 月度维护'。" --name "monthly-check" --deliver discord

# 自动清理(每周日凌晨3点)
hermes cron create "0 3 * * 0" "执行hermes sessions prune --older-than 30清理旧会话。" --name "session-cleanup" --deliver discord

验证:`hermes cron list`,确认每个任务都是 `Repeat: ∞` 且 `Deliver: discord`。

Hermes Agent 部署完成——cron list四个定时任务全部active无限Repeat

五、实际怎么用

出门查服务器

手机打开 Discord,发”服务器状态”。Bot 返回 CPU、内存、磁盘、网站在线情况,十秒。

每天早上收日报

9 点自动推送:过去 24 小时攻击扫描次数、Pretty Links 点击数及来源、系统资源。不登录宝塔,不看 GSC。

Discord中Hermes Bot自动推送每日服务器报告

发现被扫描

部署第二天 Bot 就发现一个 IP 在批量探测 wp-config.php 备份文件。以前这种扫描我根本不知道。

分析流量

发”分析今天的访问日志”,Bot 给完整报告:访问来源、404 错误、Pretty Links 点击明细、异常 IP。以前得登三个后台。

Bot 比你想象的更聪明

部署完后第一次收到 site-monitor 的检查报告,Bot 不仅报了 HTTP 状态码,还主动提醒我:

⚠️ 注意:两个站点都有 Cloudflare 防护,拦截不带浏览器 User-Agent 的请求。
建议在定期检查脚本中添加 -A 参数,否则裸 curl 会误报 403。

Agent 自己发现了监控命令的缺陷并提出改进方案——这是 LLM 驱动的 Agent 比普通 cron 脚本强的地方。它不只是执行命令,还会分析结果、提出建议。于是我把 curl 命令改成了 `curl -A Mozilla/5.0`,之后的检查再也没有误报。

想知道什么就问什么

“列出最近五篇发布的文章”、”nginx 错误日志有什么异常”、”Redis 缓存命中率”——想到什么问什么。

六、成本

项目费用
VPS(已有)¥0 增量
DeepSeek API~¥2-5/月
Discord Bot免费
Hermes AgentMIT 开源,免费
合计/月~¥2-5

如果你还没有 VPS,或者国内的轻量云因为网络问题拉不到 Discord API,搞一台海外机器是最省心的。Hermes Agent 需要 7×24 稳定连接外网,重启不掉线。我目前跑这套服务用的是 Vultr(按小时计费,折腾坏了随时删机重建,新号有试用金),追求国内直连低延迟的可以选 BandwagonHost。1h1g 基础配置足以跑满整个 Agent 工作流,月费 $6 起。

七、Hermes Agent 部署踩坑速查表

#现象原因解决
1安装中途 SSH 断宝塔网页终端超时用 Mac 原生终端
2API 返回 400内置 DeepSeek 适配器不兼容走自定义端点,指定 Base URL
3Discord Token 401Token 不完整或格式错Reset Token,确认三段格式
4Bot 不在服务器没通过 OAuth2 URL 授权加入生成 OAuth2 URL,选 bot 权限
5Bot 在线不读消息Message Content Intent 没开Developer Portal → 打开
6sudo 找不到 hermesbin 不在 root PATH用 /home/hermes/.local/bin/hermes
7cron create 报错参数没用对位置参数,不加 flag
8任务只跑一次“30m” 是单次用 “*/30 * * * *”
9手机收不到没加 –deliver discord重建加 –deliver discord
10日报没按时推送VPS 时区和本地不一致(如 BST vs CST)不改系统时区,改 cron 表达式适配

八、💡 独家彩蛋:用跨会话记忆格式化 Bot 回复

部署完你会发现 Bot 的输出不太美观——表格挤在一起、代码没高亮、表情时有时无。这是因为 Hermes 默认没针对 Discord 的 Markdown 子集做优化(Discord 不支持 Markdown 表格,只支持粗体、代码块、emoji)。

不用改配置文件。直接在 Discord 里给你 Bot 发一段格式规则,Hermes 会记住:

以后在 Discord 回复我时遵守以下规则:
- 回复简洁,默认不超过 500 字
- 数据表格用 ASCII 格式,别用 Markdown 表格
- 代码块用三个反引号包裹并标注语言
- 关键信息用粗体
- 状态前面加 emoji:✅ ❌ ⚠️ 🟢 🔴
在Discord私信中向Hermes Bot发送回复格式规则

发完这段话,Hermes 的跨会话记忆系统会记住它。之后所有回复都会按这个格式来。不需要编辑配置文件、不需要重启服务——一条消息搞定。

如果你和我一样用了四条定时任务,记得也给定时任务的 prompt 里加上”用 Discord 友好格式输出”的提示。

九、总结

三个小时,十个坑,四条定时任务。这次 Hermes Agent 部署的收获远超预期。

有一个 7×24 在线的 AI 管家和每次打开电脑才用的 AI 助手,是完全不同的体验。Claude Code 依然是主力——写文章、编辑文件、安全审查,在 VS Code 里无缝。但 Hermes Agent 补上了 Claude Code 做不到的:你不在的时候干活,你拿起手机的时候响应。

如果你有闲置内存的 VPS,花一晚上部署。坑我替你踩了。

🔗 相关推荐

Claude 注册与使用指南 · AI 提示词技巧指南

🖥️ VPS 推荐

Vultr · 按小时计费,新用户送 $250 · BandwagonHost · CN2 GIA 国内直连

发表评论