You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I built a context engine plugin slot for Hermes Agent and the first plugin that uses it: hermes-lcm — Lossless Context Management as a standalone installable plugin.
ContextCompressor becomes the default implementation. Plugins register a replacement via ctx.register_context_engine(engine). No behavior change for existing users.
2. hermes-lcm plugin
LCM implemented as a plugin against that slot:
Immutable SQLite message store (every message preserved verbatim)
Summary DAG with depth-aware nodes (D0 minutes → D1 hours → D2 days)
Summary
I built a context engine plugin slot for Hermes Agent and the first plugin that uses it: hermes-lcm — Lossless Context Management as a standalone installable plugin.
The Problem
Hermes has no way for plugins to replace the context compressor. The
ContextCompressoris hardwired inrun_agent.py. This means:agent/lcm/contextEngineplugin slot and lossless-claw as a standalone pluginThe Solution
Two things:
1. Context engine slot (PR #5700)
A
ContextEngineABC inagent/context_engine.pythat makes the compressor swappable:ContextCompressorbecomes the default implementation. Plugins register a replacement viactx.register_context_engine(engine). No behavior change for existing users.2. hermes-lcm plugin
LCM implemented as a plugin against that slot:
lcm_grep,lcm_describe,lcm_expandcp -r hermes-lcm ~/.hermes/plugins/hermes-lcmBased on the LCM paper by Ehrlich & Blackman (Voltropy, Feb 2026).
Why This Approach
agent/lcm/cp/rma directoryStatus
Happy to iterate on the ABC design if the team has feedback on the interface.