40+工具与MCP:连接一切

Hermes Agent 从入门到精通 · 章节 §06
06 40+工具与MCP:连接一切
40+ Tools & MCP: Connect Everything
Agent再聪明,没有工具也干不了实事。Hermes内置40+工具,从跑代码到发消息全覆盖。MCP再把触角伸到
6000+外部应用。
五大类工具速览
Hermes的工具按功能分成五大类。不用全记住,知道有这些能力就行,用到时再查。
类别 核心工具 干什么用
执行类 terminal、code_execution、file 跑命令、执行代码(沙箱隔离)、读写文件
信息类 web、browser、session_search 搜索网页、浏览器自动化、检索历史对话
媒体类 vision、image_gen、tts 理解图片、生成图片、文字转语音
记忆类 memory、skills、todo、cronjob 操作记忆层、管理Skill、任务规划、定时调度
协调类 delegation、moa、clarify 委派子Agent、多模型推理、向用户请求澄清
几个值得单独拎出来说的:
session_search 是Hermes比较独特的能力。它用FTS5全文索引搜索历史对话,配合LLM摘要,让Agent能快速回忆「上
周我们讨论过的那个方案」。大多数Agent没这个能力,每次对话都从零开始。
moa(Multi-model Orchestrated Answering)让Hermes同时调用多个LLM,综合多个模型的回答给出最终结果。需
要高可靠性的场景比较有用,比如事实核查或技术判断。
cronjob 用自然语言定义定时任务。你说「每天早上9点帮我看GitHub通知」,它就创建一个定时触发。不用写cron表达
式,不用配调度器。


Toolset:不是全开,是按需启用
40+个工具全开不合理。帮你写代码的Agent不需要Home Assistant权限,管日程的Agent也用不到code_execution。
Hermes用Toolset机制解决这个问题。工具按功能分组,在config.yaml里按需启用或禁用:
# config.yaml 示例
toolsets:
- web # ⽹⻚搜索
- terminal # 终端命令
- file # ⽂件操作
- skills # Skill管理
- delegation # ⼦Agent委派
# - homeassistant # 不需要就注释掉
# - rl # 强化学习相关,⼤多数⼈⽤不到
这不只是功能开关。启用的工具越少,Agent注意力越集中,响应越快,token消耗也越少。如果你只需要一个帮你整理
文件的助手,开file和memory两个Toolset就够了。
Toolset也是安全边界。§03提到的约束层,在工具层面就是通过Toolset实现的。你可以精确控制Agent能碰什么、不能
碰什么。
MCP:6000+应用的统一接口
40+内置工具覆盖了通用场景。但每个人的工具栈不一样,你可能用Jira管项目、用Notion写文档、用Slack沟通。怎么让
Hermes接入这些?
MCP(Model Context Protocol)。
MCP是一个开放协议,定义了AI Agent和外部工具之间的通信标准。Hermes支持通过stdio或HTTP两种方式连接任意
MCP Server。目前MCP生态覆盖了6000+应用,GitHub、Slack、Jira、Google Drive、数据库都有。
接入很简单,在config.yaml里加一段配置:
# 接⼊GitHub MCP Server
mcp_servers:
- name: github
transport: stdio
command: npx @modelcontextprotocol/server-github
env:
GITHUB_TOKEN: ${GITHUB_TOKEN}
配好之后,Hermes就能用GitHub的能力了:创建Issue、审查PR、查看仓库状态。不用写代码,不用开发自定义工具,
MCP Server就是即插即用的能力扩展。
Hermes还支持per-server工具过滤。一个MCP Server可能暴露了20个工具,但你可能只想让Agent用其中3个。工具过滤
让你精确控制暴露给Agent的能力范围。


子Agent委派:让三匹马同时跑
delegation是Hermes最强大的协调工具。它能生成子Agent实例,把任务分发出去并行执行。
独立上下文。每个子Agent有自己的对话上下文,互不干扰。主Agent分配任务时传入必要的背景信息,子Agent在独立空
间里工作。
受限工具集。你可以指定每个子Agent能用哪些工具。负责调研的只需要web和browser,写代码的只需要terminal和
file。既是效率优化,也是安全措施。
最多3个并发。这个限制是刻意的。3个并发子Agent已经覆盖大多数并行场景(同时调研、写代码、跑测试),再多就难
以有效协调了。
主Agent 子Agent A 子Agent B 子Agent C
→ → →
分解任务 调研 写代码 测试
用过Claude Code多实例并行的人会觉得这很熟悉。区别在于Claude Code的多实例是你手动开的,实例之间没有协调关
系。Hermes的子Agent委派是Agent自主决定何时分发、怎么汇总结果。
实际体感:子Agent最适合的场景是「做几件不相关的事然后汇总」。比如你让Hermes写一篇技术博客,它可能同时派一
个子Agent调研最新资料、一个子Agent分析竞品文章、一个子Agent整理代码示例,最后主Agent把三方结果整合成初
稿。
工具权限与沙箱:约束层的落地
前面几章讲了学习循环、记忆、Skill,都是让Agent变强的机制。但Agent越强,约束越重要。
Hermes在工具层面做了三重约束:
Toolset控制。只有config.yaml里启用的工具才能被Agent调用,最粗粒度的开关。
code_execution沙箱。代码在隔离环境中运行,和你的系统环境分开。即使Agent执行了有问题的代码,也不会影响你的
文件系统。
子Agent受限工具集。委派子Agent时可以指定它能用的工具子集。负责搜索的子Agent不需要也不应该有terminal权限。
如果你读过Harness Engineering橙皮书,会发现这就是约束层(hooks/linter)在Hermes中的具体实现。理念一样:
给Agent足够的能力完成任务,但不给多余的权限。
核心建议
对于安全敏感的场景(比如在生产服务器上运行),建议只启用必要的Toolset,并通过MCP的per-server过滤进一步限制
暴露给Agent的工具。宁可Agent来问你「我需要XX权限」,也不要默认全开。
三重约束加在一起,构成了一个务实的安全模型。不追求理论上的完美隔离,而是在实用性和安全性之间找平衡。你给
Agent越多信任,它能做的事越多。但即使完全不改默认配置,Hermes也不会在你不知情的情况下做危险操作。