Buried in the Hermes v0.22 release notes is a feature that matters more than it looks: prior reasoning is now replayed by default, on every provider that can read it, across resume, branches, and compaction. When you continue a conversation, Hermes feeds the model's earlier reasoning back to it, so the resumed session picks up the thread of thought instead of just the transcript. The groundwork landed in v0.21.7, which replayed signed thinking blocks across gateway hops; v0.22 turns replay on everywhere.
If you run Hermes with a bring-your-own-key setup, there's an obvious question: does replay survive a third-party OpenAI-compatible gateway, or does the resumed session hit a 400, drop the reasoning, or silently degrade? Nobody had tested this in public, two days after the feature shipped, so we did. Disclosure: Wallaby Token sells API access to Kimi K3, and the gateway in this test is ours.
The setup
- Hermes v0.22.1 (fresh official-installer install, October 15, 2026)
- Model: Kimi K3, via an OpenAI-compatible gateway,
--reasoning high - Test: a multi-turn session with specific facts planted in turn one, then
--resumethe next day, plus an inspection of what Hermes actually stored in its localstate.db
What we found
Short version: replay survives.
Resume works, completely. The resumed session answered with zero errors and full continuity: it recalled a specific promise from the first turn and the details around it, and the message count in the database grew normally (6 to 8) as the conversation continued. The scenario we were worried about (Hermes replaying reasoning into a gateway that rejects or mangles it) did not happen.
The reasoning is stored and replayed as text. Inside state.db, each assistant turn carries its reasoning_content: 798 characters on the first turn, then 100, then 74 as the turns got simpler. That text is what comes back on resume, and it's enough to keep the thread alive.
The signature layer is empty, and that's a protocol fact, not a failure. Hermes' schema has a second field, reasoning_details, meant for cryptographically signed thinking blocks (the kind Anthropic's API returns, which v0.21.7 learned to replay). On our chain that field is empty, because Kimi K3 over the OpenAI-compatible protocol emits unsigned, text-level reasoning. There is no signature to replay. So on providers like ours you get the text tier of the feature, not the signed tier. Functionally, resume and continuity work either way; what you don't get is cryptographic verification that the replayed reasoning is the reasoning the model originally produced. That's the shape of the OpenAI-compatible spec, not a defect in any link of this chain. But if your use case depends on signed thinking, check whether your model and gateway actually pass reasoning_details through before you build on it.
One new bug we hit so you don't have to
Not replay-related, but it cost us twenty minutes: if your NO_PROXY environment variable contains a bracketed IPv6 entry ([::1], which macOS and several proxy tools write by default), Hermes' HTTP client crashes on startup with InvalidURL: Invalid port: ':1]'. The parser reads the bracketed form as a host with a broken port. Fix: remove the bracketed entry from NO_PROXY (plain ::1 or localhost is fine). We're preparing this as an issue for the Hermes project; if you hit it first, that's the answer.
The takeaway
Reasoning replay is the kind of feature that quietly decides whether an agent feels continuous or amnesiac across sessions. On a third-party OpenAI-compatible gateway serving Kimi K3, it works: text-tier, unsigned, and fully functional. The thing to verify on your own stack is not whether replay works but which tier you're getting: check state.db for reasoning_details if signed replay matters to you, and check your NO_PROXY if Hermes won't start at all.
Hermes' memory architecture changed in the same release: six memory providers moved out of the kernel into plugins, and we audited what that actually changes: Hermes v0.22 moved memory out of the kernel. Setting Hermes up from scratch? The four-line YAML guide was re-verified on v0.22.1 today.