终端后端【重要,操作实用】
终端工具支持 7 种后端适应不同的安全隔离和运行环境需求选择建议默认先用 local适合本机开发和可信任务不信任任务内容、担心误改本机文件时用 docker目标环境在远程服务器上时用 sshHPC / 集群环境优先考虑 singularity需要云端隔离或弹性资源时考虑 modal、daytona、vercel_sandbox后端 说明 适用场景local 在本机直接执行默认 本地开发、可信任务docker 隔离容器中执行 安全隔离、可复现环境ssh 远程服务器执行 沙箱化防止 Agent 修改自身代码singularity HPC 容器Apptainer 集群计算、无 root 环境modal 云端无服务器执行 弹性伸缩daytona 云端沙箱工作区 持久化远程开发环境vercel_sandbox Vercel 云端微虚拟机 部署与长期运行进程桌面版切换后端修改完询问 Hermes Agent 当前工作目录是什么是指定目录才修改正确。如果修改失败用命令行更稳妥切换终端后端为docker设置——高级——执行后端下拉选择 dockerimage-20260705223409060修改工作区设置——工作区——工作目录默认是.修改成/workspaceimage-20260705223433357cmd拉取镜像docker pull nikolaik/python-nodejs:python3.11-nodejs20前提需要已经安装并打开了Docker Desktop重启Hermes Agent桌面版后面Hermes Agent执行的命令和输出的文件都是在docker镜像中了命令行切换后端切换终端后端为dockerhermes config set terminal.backend docker切换终端后端为本地电脑hermes config set terminal.backend local【Docker安装时配置过可以忽略】配置国内的镜像在docker desktop中配置“registry-mirrors”: [“https://docker.xuanyuan.me”,“https://docker.1ms.run”]使用docker desktop拉取正确的镜像docker pull nikolaik/python-nodejs:python3.11-nodejs20各后端的具体配置示例~/.hermes/config.yamlterminal:backend: dockermodal_mode: autocwd: /workspacetimeout: 180daemon_term_grace_seconds: 2env_passthrough: []home_mode: autoshell_init_files: []auto_source_bashrc: truedocker_image: nikolaik/python-nodejs:python3.11-nodejs20docker_forward_env: []docker_env: {}singularity_image: docker://nikolaik/python-nodejs:python3.11-nodejs20modal_image: nikolaik/python-nodejs:python3.11-nodejs20daytona_image: nikolaik/python-nodejs:python3.11-nodejs20container_cpu: 1container_memory: 5120container_disk: 51200container_persistent: truedocker_volumes: []docker_mount_cwd_to_workspace: falsedocker_extra_args: []docker_run_as_host_user: falsepersistent_shell: truelifetime_seconds: 300# 如需挂载宿主机目录# volumes:# - /home/user/project:/workspaceSSH 后端 — 在远程服务器上执行命令backend: sshssh:host: “192.168.1.100”port: 22user: “hermes”# 认证方式二选一key_path: “~/.ssh/id_ed25519” # SSH 密钥# password: “***” # 或密码推荐放 .envModal 后端 — 云端无服务器执行backend: modalmodal:token_id: “ak-xxxx” # Modal API token ID放 .envtoken_secret: “as-xxxx” # Modal API token secret放 .env当命令需要 sudo 权限时终端会提示输入密码会话内缓存。也可以在 ~/.hermes/.env 中设置 SUDO_PASSWORD 环境变量。4.4 并行工具执行Hermes 支持通过 ThreadPoolExecutor 并行执行多个独立的工具调用最多 8 个并行 worker。当 Agent 在同一轮中发出多个互不依赖的工具调用时它们会自动并行执行显著减少总耗时。4.5 Smart Approvals 智能审批受 Codex CLI 启发Hermes 会学习哪些命令是安全的。当你反复批准同一类命令如 git status、lsHermes 会逐步减少审批提示。审批模式可以通过 /yolo 切换。4.6 Post-Write Linting 写入后检查v0.13Agent 通过 patch 或 write_file 写入文件后会自动进行格式检查支持 Python、JSON、YAML、TOML。这减少了 Agent 写入格式错误内容的概率。MCP 协议官方文档https://hermes-agent.nousresearch.com/docs/user-guide/features/mcpMCPModel Context Protocol可以把外部工具服务器接入 Hermes。5.1 添加 MCP 服务器配置示例project-fs是本地MCP案例company_api是外部MCP案例~/.hermes/config.yamlmcp_servers:project-fs:command: “npx”args: [“-y”, “modelcontextprotocol/server-filesystem”, “/home/user/my-project”]company_api:url: “https://mcp.internal.example.com/mcp”headers:Authorization: “Bearer ***”上面两个 server 分别代表两种传输方式模式 配置方式 工作方式 适用场景stdio command args Hermes 在本机启动 MCP server 进程通过 stdin / stdout 与其通信 本地文件系统、CLI 工具、开发环境里的集成HTTP url Hermes 连接一个已经运行的 MCP server 公司内部服务、远程 API、共享的工具服务器常用配置项配置项 说明command 本地 stdio MCP Server 的启动命令args 传给启动命令的参数env 传给 stdio server 的环境变量url 远程 HTTP MCP Server 地址headers 远程 HTTP 请求头auth: oauth 仅用于 HTTP server启用 OAuth 2.1 授权流程enabled 是否启用该 servertimeout 工具调用超时时间connect_timeout 初次连接超时时间auth: oauth 通常需要一次浏览器交互式授权。授权完成后Hermes 会缓存授权结果后续调用复用已授权 token。推荐使用魔搭广场 https://www.modelscope.cn/mcp可以在每个 server 下配置 tools.include 或 tools.exclude来控制注册工具白名单或黑名单~/.hermes/config.yamlmcp_servers:github:command: “npx”args: [“-y”, “modelcontextprotocol/server-github”]env:GITHUB_PERSONAL_ACCESS_TOKEN: “***”tools:include: [list_issues, create_issue, update_issue, search_code]resources: falseprompts: falsestripe:url: “https://mcp.stripe.com”headers:Authorization: “Bearer ***”tools:exclude: [delete_customer, refund_payment]5.2 管理与重载桌面版可以直接管理并重载hermes mcp list # 列出已配置的服务器hermes mcp test project-fs # 测试连接hermes mcp configure project-fs # 管理服务器中的工具启用状态hermes mcp remove project-fs # 移除服务器/reload-mcp # 修改配置后在会话内重载 MCP 工具Hermes 启动时会自动发现 MCP 工具。修改 mcp_servers 配置后用 /reload-mcp 重新加载如果 MCP Server 支持动态工具变更通知Hermes 可以自动刷新工具列表。5.3 MCP Server Mode 反向暴露【重要操作实用】MCP Server Mode 是 Hermes 的一个独特功能它反过来把 Hermes 的会话暴露给 MCP 兼容的客户端。这意味着你可以在 Claude Desktop、VS Code、Cursor 等支持 MCP 的工具中把 Hermes 当作一个工具服务器来使用。配置方式在 MCP 客户端配置中将 Hermes 注册为 MCP server客户端就可以调用 Hermes 的能力。例如在 Claude Desktop 中编辑 claude_desktop_config.json{“mcpServers”: {“hermes-agent”: {“command”: “hermes”,“args”: [“mcp”, “serve”]}}}配置后重启 Claude Desktop即可在对话中调用 Hermes 的所有已启用工具。VS Code 和 Cursor 的配置方式类似将同样的 server 定义加入对应客户端的 mcpServers 配置块即可。5.4 Nous-Approved MCP Catalogv0.15v0.15 引入了 Nous 精选的 MCP 服务器目录提供交互式选择器。不用再去 GitHub 搜索 MCP server直接在 Hermes 里浏览和安装hermes mcp catalog # 浏览精选 MCP 目录6. SKILL 技能系统官方文档https://hermes-agent.nousresearch.com/docs/user-guide/features/skillsSkills 是 Hermes Agent 最核心的差异化能力——自进化。Agent 解决复杂问题后会把可复用流程保存为 Skill下次遇到类似任务时自动加载。Skill 是透明的人类可读 Markdown 文件你可以随时查看、编辑或删除。Skills 系统包含 166 个已追踪的技能87 个内置 79 个可选覆盖 26 个类别。已安装的技能会以斜杠命令的形式提供。1.1 基本操作hermes skills list # 列出已安装的技能hermes skills browse # 浏览可用的技能hermes skills search honcho # 搜索技能hermes skills install honcho # 通过 ID 安装技能hermes skills install https://example.com/my-skill/SKILL.md # 通过 URL 安装技能hermes skills uninstall honcho # 卸载技能/skills # 会话内管理技能1.2 技能目录结构所有技能默认存放在 ~/.hermes/skills/以下是HermesSKILL目录的解释~/.hermes/skills/├── mlops/ # 类别目录│ ├── axolotl/ # 技能目录│ │ ├── SKILL.md # 主说明文件必需│ │ ├── references/ # 额外参考资料│ │ ├── templates/ # 输出模板│ │ ├── scripts/ # 技能可调用的辅助脚本│ │ └── assets/ # 图片、数据等附加资源│ └── vllm/│ └── SKILL.md├── devops/│ └── deploy-k8s/│ ├── SKILL.md│ └── references/├── .hub/ # Skills Hub 状态│ ├── lock.json│ ├── quarantine/│ └── audit.log└── .bundled_manifest # 记录内置技能同步状态SKILL.md 是每个技能的入口文件。references/、templates/、scripts/、assets/ 都是可选目录。可以把 Skill 粗略分成三种层级类型 例子 含义普通具体 Skill mlops/axolotl 面向某个具体工具或流程总括型 Skillumbrella mlops/training 覆盖一组相关流程类别级总括型 Skill software-development/debugging 抽象到任务类别一个完整的 SKILL.md 示例~/.hermes/skills/writing/tech-blog/SKILL.mdTechnical Blog Post WritingWrite technical blog posts targeting AI/ML developers. Follow this workflow:Pre-writingRead all provided research summariesIdentify 3-5 key takeaways that readers will find actionableCheck for conflicting claims — flag them before writingStructureHook(100-150 words): Start with a real problem or surprising findingBackground(200-300 words): Context that makes the topic accessibleDeep Dive(1000-1500 words): Core content with code examplesImplications(200-300 words): Why this matters for practitionersKey Takeaways(bullet points): 3-5 actionable conclusionsCode ExamplesMust be complete and runnableUse Python 3.11 syntaxInclude error handling in production-facing codePreferuvoverpipfor package management commandsLanguageMain content in Chinese, technical terms in EnglishTarget 2000-2500 wordsAvoid passive voice in ChineseFrontmatter Template---title:English Titledate:YYYY-MM-DDtags:[3-5 relevant tags]author:AIHuman---可以看到SKILL.md 就是一份结构化的工作指南Agent 加载后会自动按照其中的流程执行。