mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-06-09 08:21:50 +00:00
fix(agent): recover anti-thrashing after prompt growth
This commit is contained in:
parent
e1393670ed
commit
55a4c5385f
2 changed files with 51 additions and 15 deletions
|
|
@ -65,20 +65,39 @@ class TestAntiThrashingRecovery:
|
|||
compressor.last_prompt_tokens = 90000
|
||||
assert compressor.should_compress() is False
|
||||
|
||||
def test_anti_thrash_recovers_after_meaningful_prompt_growth(self, compressor):
|
||||
"""Large prompt growth should re-enable compression even before cooldown."""
|
||||
compressor._ineffective_compression_count = 2
|
||||
compressor._last_compression_time = time.monotonic() - 60
|
||||
compressor._last_compression_prompt_tokens = 90_000
|
||||
compressor.last_prompt_tokens = 105_000
|
||||
assert compressor.should_compress() is True
|
||||
assert compressor._ineffective_compression_count == 0
|
||||
|
||||
def test_anti_thrash_small_growth_does_not_reset(self, compressor):
|
||||
"""Minor growth should not immediately re-enable compression."""
|
||||
compressor._ineffective_compression_count = 2
|
||||
compressor._last_compression_time = time.monotonic() - 60
|
||||
compressor._last_compression_prompt_tokens = 90_000
|
||||
compressor.last_prompt_tokens = 94_000
|
||||
assert compressor.should_compress() is False
|
||||
|
||||
def test_anti_thrash_no_recovery_without_timestamp(self, compressor):
|
||||
"""If no compression has ever run (_last_compression_time == 0),
|
||||
the time-based recovery should not trigger."""
|
||||
"""Without time or growth metadata, recovery should not trigger."""
|
||||
compressor._ineffective_compression_count = 2
|
||||
compressor._last_compression_time = 0.0
|
||||
compressor._last_compression_prompt_tokens = 0
|
||||
compressor.last_prompt_tokens = 90000
|
||||
assert compressor.should_compress() is False
|
||||
|
||||
def test_session_reset_clears_compression_time(self, compressor):
|
||||
"""on_session_reset() should reset _last_compression_time."""
|
||||
"""on_session_reset() should reset anti-thrash recovery metadata."""
|
||||
compressor._last_compression_time = 12345.0
|
||||
compressor._last_compression_prompt_tokens = 90000
|
||||
compressor._ineffective_compression_count = 2
|
||||
compressor.on_session_reset()
|
||||
assert compressor._last_compression_time == 0.0
|
||||
assert compressor._last_compression_prompt_tokens == 0
|
||||
assert compressor._ineffective_compression_count == 0
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue