ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

给 Hermes Agent 装上“眼睛”:hermes-web-ui 本地 WebUI 秒变公网可管,还能语音播报

给 Hermes Agent 装上“眼睛”:hermes-web-ui 本地 WebUI 秒变公网可管,还能语音播报 1. 为什么后台跑的 Hermes Agent 需要一双“眼睛”Hermes Agent 这类长期驻留的 AI 助手最常见的用法不是守在终端里一问一答而是接进微信、飞书、企微让它 7×24 小时在后台待命。用起来确实省心但时间一长一个很现实的问题会冒出来你只能看到消息发出去、回复回来中间到底发生了什么几乎是个黑盒。某次回复特别慢是模型接口在排队还是工具调用卡住了是频道连接掉了还是服务本身已经异常如果只盯着聊天窗口里的那几行字你很难快速判断。这时候 hermes-web-ui 就派上用场了——它相当于给 Hermes Agent 装了一双“眼睛”把对话测试、模型配置、频道接入、TTS 语音、任务、插件和日志这些能力集中到一个浏览器页面里。这篇内容聚焦三件事用 npm 把 hermes-web-ui 跑起来、用 cpolar 把本地 8648 端口映射成公网可管地址、再通过 TaoToken 统一 Key/API 通道把语音播报链路接通。适合已经跑通 Hermes Agent、想让它从“看不见的后台服务”变成“可查看可调试的控制台”的人。下面所有配置都可以直接复制跟着做就能复现。2. 前置准备Node 环境、TaoToken 通道与目录约定动手之前先把三样东西确认好能省掉后面一大半的排障时间。第一是 Node.js 环境。hermes-web-ui 对版本有要求建议 Node.js 23 或更高。先跑一遍版本检查node -v npm -v如果版本偏低先升级 Node 再继续否则 npm 全局安装阶段就可能报引擎不兼容。第二是 TaoToken 的 API 通道。Hermes Agent 的模型调用、TTS 语音合成都可以统一走 TaoToken 的 Key/API 通道这样模型和语音不用各配一套凭证管理起来清爽很多。你需要准备一个可用的 API Key后面会写进 config.toml 和 settings.json。第三是目录约定。我习惯把配置集中放在~/.hermes-web-ui/下登录 Token 也在这个目录里。这样无论是改密码、换模型还是调语音路径都固定不会到处找文件。提示TaoToken 的 API 地址是https://taotoken.net/api模型对话、语音合成等请求都走这个入口。Key 的获取和管理在控制台的 API Keys 页面完成建议单独建一个 Key 专供 Hermes Agent 使用方便后续按需轮换。3. 可复制配置npm 启动 config.toml settings.json3.1 用 npm 安装并启动 hermes-web-ui手动方式最直接。全局安装后启动npm install -g hermes-web-ui hermes-web-ui start启动成功后终端会输出本地地址、局域网地址和登录 Token形如本地http://localhost:8648 局域网http://192.168.50.161:8648 登录 Tokend7f898d5...bcc7ba3d默认端口是 8648记住它后面 cpolar 隧道要映射的就是这个端口。想改密码的话写入新 Token 再重启即可echo 你的新密码 ~/.hermes-web-ui/.token hermes-web-ui restart3.2 config.toml 骨架把模型通道指向 TaoTokenHermes Agent 的模型调用配置放在 config.toml 里。下面是一份可直接改用的骨架重点是把 base_url 指向 TaoToken 的 API 入口api_key 填你自己的 Key# ~/.hermes/config.toml [model] provider openai-compatible base_url https://taotoken.net/api api_key sk-你的TaoToken密钥 model claude-sonnet-4-5 timeout 60 [tts] enabled true provider openai-compatible base_url https://taotoken.net/api api_key sk-你的TaoToken密钥 voice alloy format mp3这里把模型和 TTS 都指向同一个通道好处是只维护一份 Key。timeout 给到 60 秒是因为语音合成偶尔会比纯文本慢一点留足余量避免误判超时。3.3 settings.json 骨架WebUI 侧语音播报开关hermes-web-ui 自己的设置放在 settings.json 里主要控制语音播报是否自动触发、用哪种语音方案{ tts: { enabled: true, autoPlay: true, engine: openai-compatible, endpoint: https://taotoken.net/api, apiKey: sk-你的TaoToken密钥, voice: alloy, speed: 1.0 }, ui: { port: 8648, theme: dark } }autoPlay 设为 true 后WebUI 里每次收到文字回复都会自动走一遍语音合成并播放。engine 选 openai-compatible就能复用 TaoToken 的兼容端点不用额外接一套语音服务。注意config.toml 和 settings.json 里的 Key 是明文别把这两个文件提交到公开仓库。公网访问场景下凭证泄露的风险会被放大。4. cpolar 隧道配置与逐步验证4.1 安装并启动 cpolar以 macOS 为例用 Homebrew 安装最省事brew tap probezy/core brew install cpolar sudo cpolar service install sudo cpolar service start cpolar version能打印出版本号就说明装好了。接着浏览器打开http://127.0.0.1:9200用注册好的账号登录 cpolar 的 Web 管理界面。4.2 把 8648 端口映射成公网地址进入【隧道管理 隧道列表】编辑一条隧道或新建关键参数这样填参数值说明隧道名称hermesweb方便辨识协议httpWebUI 是 HTTP 服务本地地址8648hermes-web-ui 默认端口地区China Top就近接入更新后到【状态 在线隧道列表】会看到 hermesweb 生成了 http 和 https 两条公网地址。用 https 那条访问能打开 hermes-web-ui 登录页输入 Token 就能进控制台。4.3 固定二级子域名告别随机地址随机地址适合临时测试长期用还是固定域名稳。到 cpolar 预留页面https://dashboard.cpolar.com/reserved在“保留二级子域名”里填地区、名称比如 hermes01点保留。然后回到隧道编辑页把域名类型改成【二级子域名】Sub Domain 填 hermes01更新。再回在线隧道列表公网地址就变成固定的二级子域名形式了。用这个固定 https 地址访问登录页正常打开、Token 能进说明公网可管化改造完成。4.4 验证语音播报链路公网能进之后在 WebUI 里发一条测试消息比如“念一段今天的天气”。观察两点文字回复是否正常返回说明模型通道通以及回复是否自动播放出声音说明 TTS 链路通。如果文字有、声音没有先查 settings.json 的 autoPlay 和 apiKey再确认 config.toml 的 tts 段是否被正确加载。5. 本篇常见错排查npm 安装报引擎不兼容多半是 Node 版本低于 23。先node -v确认升级后再装。别硬装装上了启动也可能崩。8648 端口被占用启动时如果提示端口冲突先查占用进程别直接删文件。可以临时改 settings.json 里的 port再同步改 cpolar 隧道的本地地址。公网地址能打开但登录失败Token 不对或已过期。重新echo 新密码 ~/.hermes-web-ui/.token再 restart然后用新 Token 登录。语音不播报按顺序查三处——settings.json 的 autoPlay 是否为 true、apiKey 是否有效、config.toml 的 tts 段 base_url 是否指向https://taotoken.net/api。三处都对还不响看浏览器是否拦截了自动播放手动点一下播放按钮试试。cpolar 隧道显示离线服务没起来。sudo cpolar service start重启服务再回 Web 管理界面看在线列表。6. 把 Key 和接入方式统一起来走到这一步Hermes Agent 已经从“只能看聊天窗口”变成了“有公网控制台、能语音播报”的状态。模型调用和 TTS 都走 TaoToken 的统一通道意味着你只需要维护一份 Key换模型、调语音都不用重新配一套凭证。如果你还在配置阶段建议先去 API Keys 页面把 Key 建好再对照接入文档把 config.toml 和 settings.json 填完整想先验证模型通不通可以直接在模型对话里发一条测试消息确认返回正常再往下接 WebUI如果你打算长期跑编码类或 Agent 类任务Coding Plan 会更适合这种高频调用的场景。公网访问虽然方便但 WebUI 本质是 Hermes Agent 的管理入口Token 和固定地址别随手公开。把凭证管好这套“看得见、管得着、还能开口说话”的助手才算真正稳。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进