Supported Agents
Ktesio runs agents as adapter-backed processes: the built-in hermes native adapter targets the Hermes gateway, and any other agent integrates through a manifest adapter.toml (the manifest reference). This page records which agent versions the shipped adapters were validated against — an adapter's honesty is only as good as its last validation, because agent upstreams move fast.
| Agent | Adapter | Validation status | Validated against | Evidence |
|---|---|---|---|---|
| Hermes (NousResearch) | native builtin (--kind hermes) | Run-verified — launched, supervised, and driven end-to-end (lifecycle, metering, budget, memory) under the recorded isolation sandbox | v0.20.5 @ 41447a6d7063b2772b0c2f26a5b22d9bd444fb43 (2026-08-25) | the story 6-1 primary-source verification note plus the story 6-2/6-3 conformance passes |
| opencode (anomalyco) | manifest adapter shape (no builtin) | Paper-validated — primary-source characterization + conformance mapping; never launched by this repo | v1.18.27 @ 4b7e19e315cca414121ba1d61523fef74bb3ae8b (2026-09-02 release) | the story 6-5 characterization + conformance-mapping notes that fed the contract-v1 freeze |
Hermes (--kind hermes)
The hermes builtin is compiled into the engine and declares a FIXED launch — hermes gateway run --external-supervisor — so Ktesio supervises a foreground gateway process instead of the agent's own service manager. What the adapter declares:
- Config mapping: only the reserved
memory.dirkey → envHERMES_HOME(attaching afilesystemMemory Backing gives the gateway its per-instance home; with no backing attached the gateway receives NOHERMES_HOMEand falls back to its own default home — see the command reference). The unifiedmodelkey is a documented no-op for hermes. - Capabilities: pause
best-effortand interactionguaranteedon every OS; meteringself-reported. - PATH requirement: the launch's
execis the bare wordhermes, resolved through the operator'sPATHat start. Ktesio does not bundle, install, or pin the Hermes binary — you install it (per Hermes' own docs), keep it on thePATHof the environmentktruns in, andkt agent startresolves it like any other program. A start whosehermescannot resolve fails with the engine's launch-failure diagnostic naming the executable.
Validation pin: the adapter's behavior was verified against Hermes at v0.20.5, commit 41447a6d7063b2772b0c2f26a5b22d9bd444fb43 (verified 2026-08-25). CI never launches the real gateway: the conformance passes run under the recorded hermes_shim PATH-sim sandbox (an isolated stand-in that re-execs a test helper), so the suite is deterministic and network-free — the real-binary validation is the pinned manual pass recorded above it.
opencode (paper-validated)
opencode has no builtin adapter: it integrates as a manifest adapter whose [lifecycle.start] points at its serve command, declaring interaction: http (the additive documentary channel) with XDG_DATA_HOME + XDG_CONFIG_HOME as its isolation levers. Its contract behavior was validated on paper only — a primary-source characterization of the v1.18.27 sources plus a conformance mapping that shaped the Adapter Contract v1 freeze. Nothing in this repository has launched opencode; treat its adapter shape as a starting point and re-validate before relying on it.
The re-validation duty
Both upstreams move fast (opencode ships multiple releases per week; Hermes merges near-daily). Every version pin on this page is a stale-the-moment-it-is-written snapshot by design: the pins make the validation auditable, not permanent. Whoever touches an adapter — or ships a release that leans on one — re-validates against the pinned release before trusting agent-specific behavior, and moves the pin forward with fresh evidence. The contract's honor-system duties (the {env:VAR} render guarantee, self-update pinning, config-layer disclosure — see the Adapter Contract) are exactly the parts re-validation must cover, because no automated section can.
Troubleshooting: hermes won't launch
Launch failures (hermes: command not found, immediate failed, or behavior drift after a Hermes upgrade) are diagnosed in the canonical troubleshooting section — kept in one place so the two pages cannot drift. This page owns the validation pins and the re-validation duty; that page owns the failure surfaces.
Adapter Contract
The versioned contract between the Ktesio engine and every agent adapter — trait surface, capability declarations, version negotiation, and the versioning and deprecation policy.
Embedding the Engine
Drive the Ktesio engine as a Rust library — the facade surface, the event bus, and the hermetic quickstart example.