Skip to main content

Tools and Toolsets

Tools are structured functions the model can call. Toolsets group related tools so each agent exposes only the capability surface required by its task.

Select toolsets per agent

async with AIAgent(
...,
enabled_toolsets=["file", "terminal", "web", "skills"],
disabled_toolsets=["browser"],
) as agent:
result = await agent.run_conversation("Investigate and patch the issue.")

An explicit allowlist is recommended for services and data generation. The historical full-toolset name hermes-cli is retained for compatibility, but it does not mean this distribution ships a CLI.

Retained built-in groups

ToolsetMain tools
fileread_file, write_file, patch, search_files
terminalterminal, process using the local async subprocess backend
web / searchweb_search, optionally web_extract
browsernavigate, snapshot, click, type, scroll, keyboard, CDP, console, dialogs, and browser vision
skillsskills_list, skill_view, skill_manage
memorybounded persistent memory operations
session_searchsearch, browse, and read an attached session store
vision / image_genimage analysis and provider-backed image generation
tododurable planning state across context compression
clarifyrequest host/user clarification
delegationrun isolated child-agent subtasks

Provider plugins can add web, browser, image, video, memory, or other optional tools. MCP servers receive their own dynamic toolsets.

Scheduling semantics

Native async handlers are awaited directly. Independent parallel-safe tool calls may execute concurrently, but results are appended to model history in the order the model emitted the calls. Sequential tools, interactive approval boundaries, budget checks, guardrails, and steering barriers retain their ordered semantics.

There is no fallback that invokes a synchronous handler in a worker thread. A sync-only tool is rejected during async initialization or dispatch.

Progressive discovery

Large optional plugin and MCP catalogs can be exposed through tool search so every schema is not sent with every request. Fundamental tools in the core surface are never deferred. This keeps the prompt-cache prefix and core schema stable while still allowing edge capabilities to be discovered.

Host interaction

Some tools require application decisions. For example, MCP elicitation and the clarify tool use clarify_callback; terminal and other sensitive operations may require host authorization policy. A headless service should fail clearly when it has no valid interaction boundary rather than trying to read terminal input.

Tool access is security authority. Review Security before enabling terminal, file-write, browser, third-party skill, or MCP capabilities.