hermes agent支持local、ssh、docker三种执行模式切换:1. local模式设backend.type为local并配置user;2. ssh模式设type为ssh并配置host、username、key_path;3. docker模式设type为docker并指定image、network_mode及volumes。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在使用Hermes Agent终端后端时需要在不同执行环境间切换,例如从本地运行切换至远程SSH或容器化Docker沙箱,必须修改其核心配置项以匹配目标运行上下文。以下是实现Local、SSH与Docker沙箱模式切换的具体操作步骤:
一、切换为Local本地模式
Local模式表示Hermes Agent直接调用宿主机的shell进程执行命令,不经过网络或容器隔离,适用于开发调试与可信环境下的快速执行。该模式依赖agent所在机器的本地用户权限与PATH环境变量。
1、打开Hermes Agent配置文件config.yaml,通常位于/etc/hermes/或项目根目录下的conf/子目录中。
2、定位到backend配置节,将type字段值修改为local。
3、确认local节下user字段指定为当前运行agent进程的有效系统用户名,例如hermes-user。
4、保存文件后,执行hermesctl restart重载配置并重启服务进程。
二、切换为SSH远程模式
SSH模式使Hermes Agent通过加密连接将命令转发至指定远程主机执行,所有操作均在远端shell中完成,适用于跨网络管理多台服务器。该模式要求目标主机已启用SSH服务且配置了免密登录。
1、在config.yaml中将backend.type设为ssh。
2、在ssh配置块内设置host(目标IP或域名)、port(默认22)、username(远程账户名)及key_path(私钥绝对路径,如/home/hermes/.ssh/id_rsa)。
3、确保私钥文件权限为600,且对应公钥已写入远程主机~/.ssh/authorized_keys。
4、执行hermesctl validate --backend ssh验证连接可达性,返回OK后重启服务。
三、切换为Docker沙箱模式
Docker沙箱模式将每条命令封装进临时容器中执行,提供进程级隔离与环境一致性保障,适用于高安全要求或需复现特定运行时环境的场景。该模式依赖本地Docker守护进程处于运行状态。
1、将backend.type更改为docker。
2、在docker节中指定image字段,例如ubuntu:22.04或自定义构建的镜像标签。
Hermes Agent (v0.8.0) 是由 Nous Research 开发的开源自进化 AI 智能体,被誉为“与你共同成长的 Agent”。其核心优势在于内置学习闭环,能从任务中自动提炼技能、持久记忆用户偏好,越用越懂你。该版本聚焦“智能”升级,支持后台任务自动通知、模型实时切换及 MCP OAuth 2.1。它兼容 200+ 主流大模型,支持微信、Telegram 等多平台接入,仅需 5
3、设置network_mode为host或bridge,若需访问宿主网络服务则选host;若需独立网络栈则选bridge。
4、添加volumes列表挂载必要路径,例如- /tmp:/tmp:rw,确保临时文件可被agent读取。
5、运行docker info确认Docker服务可用,再执行hermesctl restart激活配置。
四、验证当前生效模式
模式切换完成后,需通过运行时行为确认实际生效类型,避免配置未加载或语法错误导致回退至默认模式。验证依据包括进程树结构、网络连接特征及容器实例状态。
1、执行hermesctl status,输出中Active Backend字段应明确显示local、ssh或docker。
2、发起一次简单命令请求,如ls /,同时在服务端运行ps aux | grep -E "(bash|sh|docker run)"。
3、若为Local模式,应看到hermes-agent子进程直接调用/bin/sh;若为SSH模式,应观察到ssh -o ConnectTimeout=...进程;若为Docker模式,则出现docker run --rm ...命令行。
4、对于Docker模式,还可执行docker ps -a --filter "status=exited" -n 1 --format "{{.Status}} {{.Image}}",确认最近退出容器的镜像与配置一致。
五、强制重载并清除残留状态
当切换涉及底层执行引擎变更(如从SSH切至Docker)时,旧会话缓存、连接池或临时容器可能未自动清理,导致后续命令仍沿用前序模式资源。需主动终止关联资源并刷新内部状态。
1、执行hermesctl stop完全停止agent服务进程。
2、若此前使用SSH模式,运行pkill -f "ssh -o ConnectTimeout"终止所有残留SSH客户端连接。
3、若此前使用Docker模式,执行docker rm -f $(docker ps -aq --filter "status=exited")批量清理已退出容器。
4、删除/var/lib/hermes/runtime/目录下所有*.pid与session_*.json文件,清除会话元数据。
5、执行hermesctl start启动服务,并立即运行hermesctl ping确认服务健康且模式已更新。










