mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-06 10:47:12 +08:00
Adds one-time warnings when context usage crosses critical thresholds: - 80%: suggests /compress or /new if responses degrade - 95%: warns of imminent errors/truncation, suggests /new Each threshold fires at most once per session to avoid spam. Warnings show actual token counts and percentage. Suppressed for subagents (delegate_depth > 0) where the user can't act on them. Always shown in CLI mode regardless of quiet_mode setting. Inspired by OpenCode PR #152 (context window warning). Bug fix found during live testing: - Anthropic prompt caching reports input tokens across three fields (input_tokens, cache_read_input_tokens, cache_creation_input_tokens). The existing code only counted input_tokens, causing the context compressor to see ~0 tokens when caching was active. Fixed by summing all three fields. This also fixes context % display in the status bar for Anthropic users. Changes: - agent/context_compressor.py: add check_context_warning() with _warned_80/_warned_95 state tracking - run_agent.py: call check_context_warning() after each API response, fix Anthropic cached token counting - tests/test_context_warning.py: 8 tests covering thresholds, one-shot behavior, escalation, edge cases Live tested with: - Nous Portal (chat_completions mode) ✔ - Anthropic direct (anthropic_messages mode) ✔ - Interactive CLI session ✔