现在位置: 首页 > Hermes Agent > 正文

Hermes Agent 工具生态与 MCP 集成

Hermes 的所有能力都通过工具(Tools)暴露给 Agent。

工具组织成工具集(Toolsets),工具集再组合成平台配置。这三层结构决定了 Agent 在不同场景下能做什么:

工具(Tool)
  └── 工具集(Toolset)         # 相关工具的逻辑分组
        └── 平台配置            # 哪个平台加载哪些工具集
              └── 自定义工具集   # 你自己定义的组合

工具集管理命令

# 打开 curses TUI,按平台开/关工具集
hermes tools

# 命令行列出所有工具和状态
hermes tools list

# 按名称启用或禁用工具集
hermes tools enable NAME
hermes tools disable NAME

桌面版,在左侧的技能与工具菜单:

关闭一个工具集,其中的工具从系统提示词中完全消失,不只是禁用——这直接节省 Token,并防止 Agent 误用不该用的工具。


内置工具集一览

Hermes 提供 70+ 内置工具,分为 28 个工具集。

以下按功能分类介绍最常用的工具集。

文件与系统

工具集核心工具主要用途
fileread_file、write_file、list_dir文件读写、目录操作
terminalrun_command、run_scriptShell 命令执行
codeexecute_code沙箱内代码执行(Python/JS/Bash)
computerscreenshot、click、type桌面 GUI 自动化

网络与内容

工具集核心工具主要用途
webweb_search、web_extract网页搜索与内容提取
browsernavigate、click、fill_form完整浏览器自动化
visionanalyze_image、describe_image图片分析与描述
audiotranscribe、tts语音转文字、文字转语音

Agent 能力

工具集核心工具主要用途
memorymemory、session_search记忆管理与跨会话检索
skillsskills_list、skill_view、skill_manage技能管理
delegationspawn_agent、spawn_parallel子 Agent 委托与并行
kanbantask_create、task_update多 Agent 看板(需显式启用)

媒体创作

以下工具集需 Nous Portal 或对应 API Key:

工具集功能说明
image_gen文字生成图片支持 FLUX、GPT-Image 等 9 种模型
tts文字转语音10 种 TTS 提供商,含本地 Piper

自定义工具集

你可以在配置文件中将现有工具集组合成项目专属的工具集:

实例

# 文件路径:~/.hermes/config.yaml
# 自定义工具集:组合已有工具集为项目专属配置
custom_toolsets
:
  data-science
:
   - file
    - terminal
    - code
    - web

然后在启动时指定:

实例

# 启动时使用自定义工具集
hermes --toolsets data-science

六种终端执行后端

终端工具集支持六种执行后端,决定了 Agent 的 Shell 命令在哪里运行,对应不同的隔离级别和「爆炸半径」。

后端命令执行位置隔离程度典型场景
local(默认)本机,当前用户权限个人开发、日常使用
dockerDocker 容器内完全隔离生产部署、安全沙箱
ssh远程服务器网络边界隔离远程开发、高性能机器
modalModal 云沙箱(VM)完全(云端)临时计算、评测任务
daytonaDaytona 托管工作区完全(云容器)托管云开发环境
singularitySingularity 容器命名空间隔离HPC 集群、共享机器

切换后端

实例

# 切换到 Docker 后端(推荐生产环境)
hermes config set terminal.backend docker

# 切换到 SSH 后端
hermes config set terminal.backend ssh
hermes config set terminal.ssh_host user@your-server.com

Docker 后端完整配置示例:

实例

# 文件路径:~/.hermes/config.yaml
# Docker 后端配置
terminal
:
  backend
: docker
  docker_image
: "nikolaik/python-nodejs:python3.11-nodejs20"
  container_persistent
: true    # true = 绑定挂载,false = tmpfs 临时

安全原则:local 后端让 Agent 拥有和你相同的文件系统权限——适合个人机器,不适合生产服务。docker 后端是最简单有效的隔离方式。

危险命令审批

默认情况下,Hermes 会在执行可能有破坏性的命令前请求确认:

实例

# 文件路径:~/.hermes/config.yaml
# 审批模式配置
approvals
:
  mode
: manual        # manual(默认)| smart | off
  timeout
: 60         # 等待审批的秒数
  cron_mode
: deny     # 定时任务遇到危险命令时的行为:deny | approve

在会话中临时绕过审批(谨慎使用):

实例

# 开启 YOLO 模式,本次会话所有命令自动审批
/yolo

# 再次输入关闭
/yolo

MCP:连接外部工具生态

MCP(Model Context Protocol)让 Hermes 无需修改核心代码就能接入外部工具服务器——GitHub、数据库、文件系统、浏览器堆栈、内部 API 等。

标准安装已包含 MCP 支持,无需额外步骤。

两种 MCP 服务器类型

本地 stdio 服务器:以子进程形式在本地运行,通过标准输入/输出通信:

实例

# 文件路径:~/.hermes/config.yaml
# MCP stdio 服务器配置
mcp_servers
:
  github
:
    command
: "npx"
    args
: ["-y", "@modelcontextprotocol/server-github"]
    env
:
      GITHUB_PERSONAL_ACCESS_TOKEN
: "ghp_..."

  filesystem
:
    command
: "npx"
    args
: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"]

  git
:
    command
: "uvx"
    args
: ["mcp-server-git", "--repository", "/home/user/project"]

适用场景:工具已本地安装,需要低延迟访问本地资源。

远程 HTTP 服务器:直接连接到远程 MCP 端点:

实例

# 文件路径:~/.hermes/config.yaml
# MCP HTTP 服务器配置
mcp_servers
:
 # 静态 Bearer Token 认证
  internal_api
:
    url
: "https://mcp.internal.example.com/mcp"
    headers
:
      Authorization
: "Bearer ${MY_TOKEN}"

  # OAuth 2.1 认证(Linear、Sentry、Figma、Stripe 等)
  linear
:
    url
: "https://mcp.linear.app/mcp"
    auth
: oauth

  # 需要预注册 OAuth 客户端的提供商
  googledrive
:
    url
: "https://drivemcp.googleapis.com/mcp/v1"
    auth
: oauth
    oauth
:
      client_id
: "<your-oauth-client-id>"
      client_secret
: "<your-oauth-client-secret>"

适用场景:工具在远端托管,或组织内部有 MCP 接口。

Nous 精选 MCP 目录

Hermes 内置了一个经 Nous 审核的 MCP 目录,一键安装:

实例

# 打开交互式选择器(默认)
hermes mcp

# 纯文本列表
hermes mcp catalog

# 按名称安装目录中的条目
hermes mcp install n8n

选择器会显示每个条目的当前状态:

n8n          available              管理和检查 n8n 工作流
linear       enabled                Linear 问题/项目管理(远程 OAuth)
github       installed (disabled)   GitHub 仓库 + PR 工具

安装时会自动完成三个步骤:

  1. 提示配置 API Key 或引导 OAuth 登录
  2. 探测服务器暴露的工具列表
  3. 显示工具选择清单,让你决定开启哪些工具

工具过滤:只暴露你需要的

每个 MCP 服务器都支持精细的工具过滤,减少 Agent 可用的攻击面:

实例

# 文件路径:~/.hermes/config.yaml
# MCP 工具过滤配置
mcp_servers
:
  github
:
    command
: "npx"
    args
: ["-y", "@modelcontextprotocol/server-github"]
    env
:
      GITHUB_PERSONAL_ACCESS_TOKEN
: "ghp_..."
    tools
:
      include
: [list_issues, create_issue, update_issue, search_code]
      # 没有列出的工具不会注册
    resources
: false
    prompts
: false

  stripe
:
    url
: "https://mcp.stripe.com"
    headers
:
      Authorization
: "Bearer ${STRIPE_KEY}"
    tools
:
      exclude
: [delete_customer, refund_payment]  # 排除高风险操作
字段行为
tools.include只注册列表中的工具,其余全部排除
tools.exclude排除列表中的工具,其余全部注册
两者都设置include 优先
resources: false不暴露 MCP 资源访问工具
prompts: false不暴露 MCP 提示词工具

过滤规则使用 MCP 原始工具名称(含连字符/点),不是 Hermes 注册后的下划线版本。

每个 MCP 服务器生成独立工具集

配置了 github MCP 服务器后,Hermes 会在运行时自动创建 mcp-github 工具集。

你可以像操作内置工具集一样管理它:

实例

# 文件路径:~/.hermes/config.yaml
# 在平台配置中引用 MCP 工具集
platform_toolsets
:
  cli
:
   - hermes-cli
    - mcp-github
    - mcp-linear

重新加载 MCP 配置

修改了 config.yaml 后,无需重启整个 Agent:

实例

# 会话内重新加载 MCP 服务器(有 30 秒超时)
/reload-mcp

# 或者从命令行
hermes mcp reload

如果是 OAuth 需要完成认证,30 秒超时不够用。建议先添加服务器配置,再在新终端中运行 hermes mcp login <server> 完成授权(等待时间最长 5 分钟)。


编辑器集成(ACP)

ACP(Agent Communication Protocol)让 Hermes 在编辑器内原生运行——聊天、工具活动、文件差异和终端命令都直接渲染在编辑器里。

支持的编辑器:VS Code、Zed、JetBrains 全系列。

标准安装已包含 ACP 支持:

实例

# 启动 Agent 模式,供编辑器连接
hermes acp

若安装时未包含完整依赖:

实例

# 补装 ACP 依赖
cd ~/.hermes/hermes-agent
uv pip install -e ".[acp]"
编辑器集成方式功能
VS Code扩展插件内联代码补全、代码审查、重构建议
Zed原生 Agent 模式stdio/JSON-RPC 通信、上下文感知
JetBrains插件代码生成、测试生成、文档注释

编辑器集成使用 stdio/JSON-RPC 协议与 Hermes Agent 通信,不依赖网络连接,适合离线使用。


语音模式

语音模式支持跨 CLI 和消息平台的完整语音交互:

  • 麦克风录音输入(faster-whisper 本地语音识别,免费)
  • TTS 语音回复(10 种提供商可选)
  • Discord 语音频道实时对话

安装与启用

实例

# 安装语音依赖
cd ~/.hermes/hermes-agent
uv pip install -e ".[voice]"

实例

# 在 CLI 中开启语音模式
/voice on
# 按 Ctrl+B 开始录音,松开发送

# 在消息平台中
/voice on     # 开启 TTS 回复
/voice tts    # 只开启文字转语音(不开启语音输入)
/voice off    # 关闭

TTS 提供商

提供商特点是否免费
Edge TTS微软神经网络语音,多语言免费
Piper完全本地,低延迟免费
OpenAI TTS高质量,多音色按量计费
ElevenLabs顶级音质,克隆音色按量计费
MiniMax中文优化按量计费
Mistral Voxtral多语言按量计费

Tool Gateway(Nous Portal 订阅)

通过 Nous Portal 订阅,一键获取四类工具的云端实现,无需分别申请 API Key:

工具说明
网页搜索搜索 + 内容提取(web 工具集)
图片生成9 种模型:FLUX、GPT-Image、Ideogram 等
TTS文字转语音
云端浏览器完整浏览器自动化(无需本地 Playwright)

实例

# OAuth 登录,自动配置以上所有工具
hermes setup --portal

工具安全:MCP 环境变量隔离

MCP stdio 子进程接收一个经过过滤的环境,防止意外的凭据泄露。

默认只向 MCP 进程传递以下变量:

PATH, HOME, USER, LANG, LC_ALL, TERM, SHELL, TMPDIR(以及所有 XDG_* 变量)

其他所有环境变量(API Key、Token、密码)都被屏蔽。

只有在 MCP 服务器配置的 env: 块中显式声明的变量才会传递:

实例

# 文件路径:~/.hermes/config.yaml
# 只有显式声明的变量才会传入 MCP 子进程
mcp_servers
:
  github
:
    command
: "npx"
    args
: ["-y", "@modelcontextprotocol/server-github"]
    env
:
      GITHUB_PERSONAL_ACCESS_TOKEN
: "ghp_..."   # 只有这一个传入

此外,MCP 工具的错误信息在返回给 LLM 前会自动脱敏,敏感信息替换为 [REDACTED]


常用命令速查

实例

# ─── 工具管理 ────────────────────────────────────────────────
hermes tools                          # 交互式工具集管理(TUI)
hermes tools list                     # 列出所有工具和状态
hermes tools enable NAME              # 启用工具集
hermes tools disable NAME             # 禁用工具集

# ─── MCP 管理 ────────────────────────────────────────────────
hermes mcp                            # 交互式 MCP 目录选择器
hermes mcp catalog                    # 纯文本目录列表
hermes mcp install <name>             # 安装目录条目
hermes mcp add NAME --command CMD     # 手动添加 MCP 服务器
hermes mcp remove NAME                # 移除 MCP 服务器
hermes mcp list                       # 列出已配置的服务器
hermes mcp test NAME                  # 测试连接
hermes mcp login <server>             # 完成 OAuth 授权
hermes mcp configure <server>         # 重新配置工具选择
hermes mcp reload                     # 重新加载 MCP 配置

# ─── 终端后端 ────────────────────────────────────────────────
hermes config set terminal.backend docker
hermes config set terminal.backend ssh
hermes config set terminal.ssh_host user@host

# ─── ACP 编辑器集成 ──────────────────────────────────────────
hermes acp

# ─── Portal 订阅 ─────────────────────────────────────────────
hermes setup --portal