Tools

Toolsets

Named bundles of capabilities that control which tools are available.

Toolsets

What it is

Named bundles of capabilities that control which tools are available.

In plain terms

Think of a toolbox organizer with labeled drawers — one for wrenches, one for screwdrivers — rather than a pile of loose tools on the floor. Toolsets group Hermes’s individual capabilities into named drawers like “browser” or “terminal,” so a person configuring an agent thinks in terms of a handful of drawers instead of dozens of separate tools.

Why it matters

57 named bundles — browser, kanban, terminal, and so on — group individual registry entries so an operator reasons about capability in coherent chunks instead of toggling 69 tools one at a time. Only 25 of those bundles actually surface as configurable through the CLI or dashboard; the rest are compositional or platform-specific groupings assembled from smaller pieces. Business workflows like CRM intake assume specific toolsets are already enabled, which is why toolset configuration is usually the first thing worth checking when a workflow silently underperforms.

How it works

Each entry in the TOOLSETS dictionary lists its tools and any other toolsets it includes, letting bundles compose from smaller ones (toolsets.py). resolve_toolset() walks that graph recursively, tracking visited names to avoid infinite loops on circular includes, and returns the flattened list of tool names a bundle actually grants. A shared _HERMES_CORE_TOOLS list feeds every CLI and messaging-platform bundle so editing one line updates them all, while a special “coding” toolset is marked with a posture flag and auto-selected for code workspaces rather than being something a user toggles by hand.

A concrete example

A workflow author wants an agent that can search the web for solutions, edit files, and run shell commands while debugging a failing build.

  1. They reference the debugging toolset, which directly grants terminal and process.
  2. Its includes list pulls in the web (search + extract) and file (read/write/patch/search) toolsets automatically.
  3. resolve_toolset("debugging") returns one flat list combining all of it, so the agent’s schema ends up with web search, file access, and shell tools without the author having to name each one individually.

How it connects

This note belongs to the Tools family. Its closest neighboring concepts are: Tool Registry, Configurable Toolsets, Agent Runtime, Personal OS.

Source evidence

  • vendor/hermes-agent/toolsets.py#<file> — Structural Source Map fallback for toolsets.py. A core source file in the Tool Registry and Toolsets structure within Tools, Toolsets, and MCP.

Workflows

  • Business CRM Intake
  • No article currently mentions this concept by name/alias often enough to qualify (see mention-mining policy).