【全网最细】部署 Hermes Agent,并接入 ChatGPT Plus / Codex 模型完整教程

视频教程:

最近我准备把一台 NanoPi R5S 小主机利用起来,让它长期运行一个 AI Agent。目标是:

让 R5S 作为一台低功耗常驻设备,部署 Hermes Agent,并通过 OpenAI Codex CLI 接入我的 ChatGPT Plus 账号里的 Codex 模型能力

这样后续我就可以让它在局域网里长期帮我执行一些自动化任务,比如代码处理、文件整理、脚本执行、Agent 工作流等。

这篇文章会从最基础的系统安装开始写起,包括:

Rufus 烧录 Debian 12 / Armbian
R5S 首次启动
SSH 登录
安装基础环境
安装 Codex CLI
登录 ChatGPT Plus
安装 Hermes Agent
配置 Hermes 使用 Codex
设置 systemd 常驻运行

一、先说结论:R5S 不能直接烧普通 Debian ISO

很多人一开始会去 Debian 官网下载 Debian 12 ISO,然后用 Rufus 烧录。

但这里有一个关键点:

NanoPi R5S 是 ARM64 架构设备,不是普通 x86 电脑。

所以它不能直接使用普通 PC 版 Debian ISO,而应该使用适配 R5S 的 ARM 镜像。

比较推荐使用:

Armbian for NanoPi R5S
Debian 12 Bookworm
Minimal / IOT 镜像

也就是说,我们实际安装的是基于 Debian 12 Bookworm 的 Armbian 系统。

这样兼容性会更好,也更适合作为小主机长期运行。


二、准备材料

你需要准备:

1. NanoPi R5S
2. 一张 8G 以上 TF 卡,建议 16G 或 32G
3. TF 卡读卡器
4. Windows 电脑
5. Rufus 烧录工具
6. 网线
7. USB-C 电源
8. 一个可以正常访问 ChatGPT / OpenAI 的网络环境

建议你一开始先用 TF 卡启动系统。

不要一上来就写入 eMMC。

因为 TF 卡方案更安全,出问题直接重刷就行。等系统、Hermes、Codex 都跑通之后,再考虑是否写入 eMMC。


三、下载 R5S 可用的 Debian 12 镜像

推荐下载 Armbian 的 NanoPi R5S 镜像。

你要找的版本大概是:

NanoPi R5S
Debian 12 Bookworm
Minimal / IOT
.img.xz

下载后文件名可能类似:

Armbian_xxx_Nanopi-r5s_bookworm_current_xxx_minimal.img.xz

注意,不要下载普通的:

debian-12.x.x-amd64-netinst.iso

这种是给普通 PC / 服务器用的,不适合 R5S。


四、用 Rufus 烧录系统到 TF 卡

1. 插入 TF 卡

把 TF 卡插入读卡器,再插到 Windows 电脑上。

2. 打开 Rufus

Rufus 里这样选择:

设备:选择你的 TF 卡
引导类型:选择下载好的 Armbian 镜像
分区类型:保持默认
文件系统:保持默认

如果 Rufus 无法直接识别 .xz 文件,可以先用 7-Zip 解压,得到:

xxx.img

然后在 Rufus 里选择这个 .img 文件。

3. 使用 DD 模式写入

如果 Rufus 弹出提示,让你选择写入模式,建议选择:

DD 镜像模式

然后点击开始写入。

写入完成后,Windows 可能会提示磁盘无法识别,或者让你格式化。

不要格式化。

这是因为 Linux 分区在 Windows 里无法正常识别,属于正常现象。


五、R5S 首次启动

烧录完成后:

1. 取出 TF 卡
2. 插入 R5S
3. 接上网线
4. 接上 USB-C 电源
5. 等待 1-3 分钟

建议第一次启动时,把 R5S 接到主路由的 LAN 口。

这样它会自动通过 DHCP 获取一个局域网 IP。


六、找到 R5S 的 IP 地址

进入你的主路由后台,找到 DHCP 设备列表。

设备名可能显示为:

nanopi
armbian
debian
rockchip

假设你看到它的 IP 是:

192.168.31.88

后面就可以通过 SSH 登录。


七、SSH 登录 R5S

在 Windows 上打开 PowerShell,输入:

ssh [email protected]

如果 root 不能登录,就根据 Armbian 首次启动提示创建的用户名登录:

ssh 用户名@192.168.31.88

登录后,先检查系统信息:

uname -a
cat /etc/os-release
df -h
ip a

如果看到类似:

Debian GNU/Linux 12
Bookworm
Armbian

说明系统正常。


八、更新系统并安装基础工具

进入系统后,先更新:

sudo apt update
sudo apt upgrade -y

然后安装常用工具:

sudo apt install -y \
curl wget git vim nano htop tmux unzip xz-utils \
ca-certificates gnupg lsb-release build-essential \
python3 python3-pip python3-venv \
jq net-tools dnsutils

设置时区:

sudo timedatectl set-timezone Asia/Shanghai

查看时间:

date
timedatectl

九、给 R5S 设置固定 IP

建议最简单的方式是:

在主路由后台给 R5S 做 DHCP 静态绑定。

比如固定为:

192.168.31.88

这样以后重启 R5S,也不会找不到 IP。

不建议一开始就在 Debian 系统里手动改网络配置,因为不同 Armbian 镜像可能使用不同的网络管理方式,比如 NetworkManager 或 systemd-networkd。

你可以用下面命令查看:

systemctl status NetworkManager
systemctl status systemd-networkd

如果 NetworkManager 是 active,可以查看连接:

nmcli device
nmcli connection show

十、安装 Node.js

Codex CLI 是通过 npm 安装的,所以需要先安装 Node.js。

建议安装 Node.js 22:

curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs

检查版本:

node -v
npm -v

如果能看到类似:

v22.x.x

说明安装成功。


十一、安装 OpenAI Codex CLI

安装 Codex CLI:

sudo npm i -g @openai/codex

检查是否安装成功:

codex --version
which codex

如果能正常显示版本号,就说明 Codex CLI 已经安装好了。


十二、登录 ChatGPT Plus 账号

执行:

codex

第一次运行时,它会让你选择登录方式。

如果你希望使用 ChatGPT Plus 订阅里的 Codex 能力,就选择:

Sign in with ChatGPT

不要选 API Key。

这里要注意:

ChatGPT Plus 订阅和 OpenAI API Key 是两套体系。

如果你用 API Key,本质上走的是 API 计费。

如果你要用 Plus 账号里的 Codex 能力,就应该走 ChatGPT 登录。

登录完成后,可以创建一个测试目录:

mkdir -p ~/codex-test
cd ~/codex-test
git init
codex

然后输入:

帮我创建一个 hello.py,运行后输出 hello from r5s

如果 Codex 能创建文件、修改文件、执行任务,就说明 Codex CLI 已经正常工作。

退出 Codex:

/quit

十三、安装 Hermes Agent

执行官方安装脚本:

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

安装完成后刷新环境变量:

source ~/.bashrc

检查 Hermes 是否安装成功:

hermes --version
which hermes

如果提示找不到命令,可以检查:

ls ~/.local/bin

必要时把路径加入环境变量:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

十四、配置 Hermes 使用 Codex

建议不要一上来就配置 gateway、Telegram Bot、自动任务。

先让最基础的 Hermes 对话跑通。

执行:

hermes model

如果看到 provider 选择,选择类似:

openai-codex

模型可以先填:

gpt-5.4

这里不要自己随便改成:

gpt-5-4
gpt-5.4-thinking
gpt-5-codex

模型名一定要以 Hermes 当前支持和 Codex CLI 实际可用为准。

配置完成后测试:

hermes chat

输入:

你好,简单介绍一下你现在运行在哪里

如果 Hermes 能回复,说明:

Hermes Agent

OpenAI Codex CLI

ChatGPT Plus / Codex

这条链路已经打通。


十五、如果 Hermes 没有识别 Codex 登录

先确认 Codex 自己能不能用:

codex

如果 Codex 自己都不能用,那问题在 Codex 登录或网络。

如果 Codex 能用,但 Hermes 不能用,检查 Codex 登录文件:

ls -la ~/.codex
ls -la ~/.codex/auth.json

然后重新配置 Hermes:

hermes model

或者尝试:

hermes auth add openai-codex

最稳的顺序是:

第一步:先让 codex CLI 登录成功
第二步:确认 codex CLI 可以正常执行任务
第三步:再配置 hermes model
第四步:测试 hermes chat
第五步:最后再配置 gateway / 自动化

十六、创建 Hermes 工作目录

不要让 Agent 在系统根目录乱跑。

建议单独创建一个工作区:

mkdir -p ~/agents/hermes-workspace
cd ~/agents/hermes-workspace
git init

以后让 Hermes 或 Codex 执行任务,尽量都限制在这个目录。

比如:

cd ~/agents/hermes-workspace
hermes chat

或者:

cd ~/agents/hermes-workspace
codex

这样即使 Agent 修改文件,也只会在这个工作区里操作,风险更可控。


十七、配置 Hermes Gateway

如果你只是 SSH 登录后手动使用:

hermes chat

就已经够了。

如果你想让 Hermes 长期运行,并接入 Telegram Bot、Discord、Slack 或其他接口,可以继续配置 gateway。

执行:

hermes gateway setup

根据提示完成配置。

测试启动:

hermes gateway

如果能正常运行,再考虑做 systemd 常驻。


十八、用 systemd 让 Hermes 常驻运行

创建 systemd 服务文件:

sudo nano /etc/systemd/system/hermes-gateway.service

写入下面内容。

注意,把 YOUR_USER 改成你的真实用户名:

[Unit]
Description=Hermes Agent Gateway
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=YOUR_USER
WorkingDirectory=/home/YOUR_USER/agents/hermes-workspace
Environment=PATH=/home/YOUR_USER/.local/bin:/usr/local/bin:/usr/bin:/bin
ExecStart=/home/YOUR_USER/.local/bin/hermes gateway
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

如果不知道 Hermes 的实际路径,先查:

which hermes

然后把 ExecStart 改成实际路径。

保存后执行:

sudo systemctl daemon-reload
sudo systemctl enable hermes-gateway
sudo systemctl start hermes-gateway

查看运行状态:

sudo systemctl status hermes-gateway

查看日志:

journalctl -u hermes-gateway -f

十九、网络代理配置

R5S 要正常使用 Codex / Hermes,必须能稳定访问 ChatGPT / OpenAI。

先测试网络:

ping google.com
curl -I https://chatgpt.com
curl -I https://api.openai.com

如果 R5S 默认网关不能访问 OpenAI,而你的旁路由可以访问,可以临时改默认网关。

假设:

主路由:192.168.31.1
旁路由:192.168.31.160
R5S:192.168.31.88

临时修改默认网关:

sudo ip route replace default via 192.168.31.160

查看路由:

ip route

也可以配置代理环境变量:

export HTTP_PROXY=http://192.168.31.160:7890
export HTTPS_PROXY=http://192.168.31.160:7890

测试:

curl -I https://chatgpt.com

如果要让 systemd 里的 Hermes Gateway 也走代理,可以编辑服务文件:

sudo nano /etc/systemd/system/hermes-gateway.service

[Service] 里加:

Environment=HTTP_PROXY=http://192.168.31.160:7890
Environment=HTTPS_PROXY=http://192.168.31.160:7890
Environment=NO_PROXY=localhost,127.0.0.1,192.168.0.0/16

然后重载:

sudo systemctl daemon-reload
sudo systemctl restart hermes-gateway

二十、R5S 性能优化建议

R5S 跑 Hermes / Codex 是够用的。

因为真正的大模型推理在 OpenAI 远端,本地主要负责:

运行 CLI
处理文件
执行 shell 命令
维护 gateway
保存配置
调用外部服务

但它毕竟是小主机,不建议同时跑太多服务。

可以安装 htop 查看资源:

sudo apt install -y htop
htop

如果内存紧张,可以加 2G swap:

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

查看内存:

free -h

二十一、安全建议

Agent 类工具有一定风险,因为它可能执行命令、读写文件、调用网络服务。

所以一定要注意安全。

1. 不要把 Hermes Gateway 暴露到公网

不要直接做端口转发。

尤其不要暴露:

SSH 22
Hermes Gateway
OpenClaw Gateway
Agent Web UI

如果要远程访问,建议用:

Tailscale
ZeroTier
WireGuard
Cloudflare Tunnel + 访问认证

2. 尽量不要用 root 用户跑 Agent

建议新建普通用户运行 Hermes。

Agent 的工作目录也限制在:

~/agents/hermes-workspace

不要让它直接操作系统根目录。

3. 不要轻易开启高危模式

如果 Codex 或其他 Agent 提供类似:

--dangerously-bypass-approvals-and-sandbox

或者:

--yolo

这类参数,普通情况下不要使用。

这种模式会绕过确认和沙箱,适合隔离测试环境,不适合长期运行的小主机。


二十二、推荐最终架构

最终可以整理成这样:

NanoPi R5S
└── Armbian / Debian 12 Bookworm
├── SSH 远程管理
├── Node.js 22
├── OpenAI Codex CLI
│ └── 使用 ChatGPT Plus 登录
├── Hermes Agent
│ └── provider: openai-codex
├── ~/agents/hermes-workspace
│ └── Agent 工作目录
└── systemd
└── hermes-gateway.service 常驻运行

这个结构比较干净。

R5S 负责长期在线,Hermes 负责 Agent 调度,Codex 负责具体代码和命令执行能力,ChatGPT Plus 账号负责模型能力。


二十三、常见问题排查

1. R5S 烧完卡不启动

优先检查:

是不是下载了 R5S 专用镜像
是不是误用了普通 Debian ISO
TF 卡是否写入成功
电源是否稳定
网线是否接好
是否从 eMMC 优先启动了旧系统

如果 eMMC 里已经有系统,有时可能会优先从 eMMC 启动。

可以尝试按住 MASK 键再上电,让它从 TF 卡启动。


2. SSH 连不上

先去路由器后台查看 DHCP 设备列表。

如果找不到,可以:

换一个网口
换一根网线
重新上电
等待 2-3 分钟
用局域网扫描工具扫描

3. Codex 登录失败

先测试网络:

curl -I https://chatgpt.com
curl -I https://api.openai.com

如果访问失败,优先解决代理、网关、DNS 问题。


4. Hermes 找不到 openai-codex

尝试更新 Hermes:

hermes update

如果没有这个命令,就重新执行安装脚本:

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
source ~/.bashrc

然后重新配置:

hermes model

5. Codex 能用,但 Hermes 不能用

按这个顺序排查:

codex

确认 Codex 自己能用。

然后:

hermes model
hermes chat

如果还是不行,可能是 Hermes 对 Codex OAuth、模型名、provider 配置的兼容问题。

这时候不要先折腾 gateway,先保证最小链路:

codex CLI 可用
hermes model 配置完成
hermes chat 可回复

二十四、装好系统后的最简命令合集

系统刷好、SSH 登录后,可以按这个顺序执行:

sudo apt update && sudo apt upgrade -y

sudo apt install -y \
curl wget git vim htop tmux unzip xz-utils \
ca-certificates gnupg lsb-release build-essential \
python3 python3-pip python3-venv jq net-tools dnsutils

curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs

sudo npm i -g @openai/codex

codex

登录 ChatGPT Plus 成功后:

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
source ~/.bashrc

hermes model
hermes chat

创建 Agent 工作目录:

mkdir -p ~/agents/hermes-workspace
cd ~/agents/hermes-workspace
git init

如果要常驻:

hermes gateway setup
hermes gateway

确认运行没问题后,再配置 systemd。


总结

整体流程其实可以拆成三步:

第一步,先把 R5S 刷成一个稳定的 Debian 12 / Armbian 小主机。

第二步,安装 Codex CLI,并用 ChatGPT Plus 账号登录,确认 Codex 自己可以正常运行。

第三步,安装 Hermes Agent,让 Hermes 调用 openai-codex,然后再考虑 gateway 和常驻运行。

我个人建议不要一开始就追求一步到位。

最稳的顺序是:

TF 卡启动系统

SSH 登录

Codex CLI 跑通

Hermes chat 跑通

Gateway 跑通

systemd 常驻

考虑写入 eMMC

这样每一步都可以单独验证,出问题也容易定位。

对于 R5S 这种低功耗 ARM 小主机来说,它非常适合作为家庭网络里的 Agent 节点。
只要网络环境稳定、权限控制好,它就可以长期在线,帮你跑一些自动化、代码处理、文件整理和 AI 工作流任务。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注