Skip to main content

Async Hermes Agent

The Hermes Agent harness, converted to an async-only Python library. It keeps the upstream agent loop, tools, providers, MCP, skills, memory, sessions, trajectories, runner, and batch runner behind coroutine entry points.

Install​

Python 3.11 through 3.13 is supported. Install the currently verified release from PyPI:

uv pip install "async-hermes-agent==0.20.1.2"

PyPI publication uses OIDC Trusted Publishing. The same verified wheel, source distribution, and checksums are attached to the corresponding GitHub Release.

Then follow the Installation Guide to verify the package and choose only the provider dependencies your application needs.

Fastest path to a working agent

Choose any supported provider and a current tool-capable model, then follow the Quickstart. No provider is privileged by the library or by this documentation.

What is Async Hermes Agent?​

Async Hermes Agent is an async-only distribution of the upstream NousResearch/Hermes Agent, based on release v2026.8.13. Existing library integrations keep familiar module paths and public names; I/O-bearing calls are awaited. The host application owns its HTTP service or UI and the agent remains the reusable harness beneath it.

πŸš€ InstallationInstall a tagged release or create a development checkout
πŸ“– Quickstart TutorialRun your first awaited conversation
🐍 Python LibraryLifecycle, return values, concurrency, cancellation, and service ownership
βš™οΈ ConfigurationProviders, models, toolsets, skills, MCP, memory, and sessions
πŸ”§ Tools & ToolsetsRetained tools and model-facing toolset control
πŸ“š Skills SystemDiscover, read, and manage reusable skill documents
πŸ”Œ MCP IntegrationConnect stdio, Streamable HTTP, and SSE servers
🧠 Memory SystemPersistent memory and user-profile context
πŸ’Ύ SessionsAsync SQLite persistence and resume
πŸ§ͺ Batch ProcessingGenerate resumable interleaved-thinking trajectories
πŸ—οΈ ArchitectureUnderstand the native-async narrow waist
❓ FAQ & TroubleshootingCommon integration and migration questions
Native-file implementation boundary

Provider, network, MCP, and subprocess paths use coroutine transports. The regular-file layer uses aiofiles, which delegates disk operations to an executor, and aiosqlite executes SQLite calls on a connection worker thread. The supported Python 3.11–3.13 releasesβ€”and Python 3.14β€”have no portable asyncio regular-file or embedded-SQLite API. The library therefore promises directly awaitable, event-loop-nonblocking entry points rather than zero-thread, OS-native regular-file or SQLite I/O.

Key Features​

  • Async library surface β€” Model, tool, MCP, session, trajectory, runner, and batch-runner entry points are awaited under their upstream names
  • Familiar upstream surface β€” Core file locations, import paths, public names, arguments, and return shapes stay recognizable; I/O calls add await
  • Extensible tool use β€” Retained terminal, file, web, browser, vision, skills, memory, session-search, clarification, delegation, and plugin tools
  • MCP support β€” Dynamic stdio, Streamable HTTP, and SSE server discovery with ordered tool observations and explicit async lifecycle cleanup
  • Persistent context β€” SQLite sessions, memory, user-profile context, FTS history search, checkpoints, and resume
  • Training-data harness β€” Preserve reasoning, tool calls, observations, and final answers; generate JSONL trajectories with bounded batch concurrency
  • Service-ready library β€” Embed the agent in FastAPI or another async host without bundling a second service framework or HTTP contract
  • Upstream-traceable β€” Derived from Hermes Agent v2026.8.13 with original source paths retained to make later migrations reviewable

For LLMs and coding agents​

  • llms.txt provides a compact documentation index.
  • llms-full.txt concatenates the maintained documentation.

Both files are generated from this site during the documentation build.