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.
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.
Quick Linksβ
| π Installation | Install a tagged release or create a development checkout |
| π Quickstart Tutorial | Run your first awaited conversation |
| π Python Library | Lifecycle, return values, concurrency, cancellation, and service ownership |
| βοΈ Configuration | Providers, models, toolsets, skills, MCP, memory, and sessions |
| π§ Tools & Toolsets | Retained tools and model-facing toolset control |
| π Skills System | Discover, read, and manage reusable skill documents |
| π MCP Integration | Connect stdio, Streamable HTTP, and SSE servers |
| π§ Memory System | Persistent memory and user-profile context |
| πΎ Sessions | Async SQLite persistence and resume |
| π§ͺ Batch Processing | Generate resumable interleaved-thinking trajectories |
| ποΈ Architecture | Understand the native-async narrow waist |
| β FAQ & Troubleshooting | Common integration and migration questions |
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.13with original source paths retained to make later migrations reviewable
For LLMs and coding agentsβ
llms.txtprovides a compact documentation index.llms-full.txtconcatenates the maintained documentation.
Both files are generated from this site during the documentation build.