问题
Hermes Agent 通过 Telegram 收不到文件,所有终端操作报错:expected valid JSON。
原因
文件从 Telegram 传到沙箱需要挂载缓存目录。这需要在 config.yaml 里正确配置,同时 .env 里不能有干扰项。
配置
1. 编辑 config.yaml,在 terminal 段下添加 docker_volumes:
极空间 NAS 示例:
必须手动编辑文件,不要用 hermes config set 命令。
2. 检查 .env,删除 TERMINAL_DOCKER_VOLUMES 行(如果有)。
3. 重启 Hermes 容器,删除旧沙箱容器(镜像 nikolaik/python-nodejs),让它自动重建。
验证
发文件给 Hermes,让它执行:
能看到文件列表即成功。
进阶:Hermes 生成的文件也能发给你
上面解决了收文件的问题。如果想让 Hermes 生成的文件(Excel、PDF 等)也能通过 Telegram 发给你,需要知道一个关键点:
网关和沙箱看到的路径不同
网关和沙箱是两个独立容器,虽然挂载了同一个宿主机 cache 目录,但各自看到的路径不一样:
- 沙箱内路径:/mnt/hermes-cache/documents/ (写文件用这个)
- 网关内路径:/opt/data/cache/documents/ (发文件用这个)
所以 Hermes 写文件时用沙箱路径,调用 send_message 发送时用网关路径。两者指向同一个宿主机目录,内容相同。
config.yaml 里只需要一行 docker_volumes,无需额外配置:
总结
- 收文件:用户发到 Telegram → 自动存到 /mnt/hermes-cache/documents/
- 发文件:沙箱写 /mnt/hermes-cache/documents/xxx → send_message 用 /opt/data/cache/documents/xxx
- config.yaml 一行 docker_volumes 搞定双向,不需要多行挂载
Loading...




