mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-31 19:16:29 +00:00
Review raised whether default-on can be reconciled with the prompt-cache contract in AGENTS.md, which permits mutating past context only for context compression and treats per-conversation caching as sacred. It cannot, and the codebase already says so in its own words. A micro-compaction pass rewrites already-sent history, so it invalidates the cached prefix every turn rather than at an episodic boundary. That is the exact cost the proactive prune gates against: `proactive_prune_min_reclaim_tokens` exists, per its own config comment, to keep rewrites to "one big episodic break instead of a tiny break every tool iteration." Micro-compaction has no equivalent gate -- one exchange per turn means one break per turn, by design. Default to off. An operator who wants the amortized stall can opt in with `compression.micro_compact: true` and accept the tradeoff knowingly; nobody inherits a per-turn cache break from installing an update. Also register the key in config_defaults so it is discoverable and picked up by the update path's new-options check -- it was previously read by agent_init but declared nowhere -- and document the cache cost in docs/micro-compaction.md instead of only the benefit. The measurements behind the feature (occupancy plateau, zero batch compactions) never priced cache invalidation, and the doc now says which numbers a reader would need to measure to justify enabling it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| design | ||
| kanban | ||
| middleware | ||
| observability | ||
| plans | ||
| security | ||
| billing-lifecycle.md | ||
| chronos-managed-cron-contract.md | ||
| hermes-kanban-v1-spec.pdf | ||
| micro-compaction.md | ||
| profile-routing.md | ||
| rca-ssl-cacert-post-git-pull.md | ||
| relay-connector-contract.md | ||
| session-lifecycle.md | ||
| streaming-tts.md | ||