mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-09-04 02:01:48 +03:00
refactor(agent): let runner own context compaction (#5568)
* refactor(agent): consolidate accepted history under pressure * fix(agent): align provider and session compaction * refactor(agent): simplify runner context compaction * refactor(agent): remove background token consolidation * fix(agent): keep injected transcript messages distinct * refactor(agent): unify native compaction summaries * fix(agent): preserve native compaction boundary * fix(agent): unify context compaction paths * fix(agent): preserve exact compaction request boundaries
This commit is contained in:
@@ -712,6 +712,45 @@ class TestParseResponseOutput:
|
||||
assert result.provider_state is not None
|
||||
assert responses_state_items(result.provider_state) == [*input_items, *output]
|
||||
|
||||
def test_marks_only_a_new_response_compaction(self):
|
||||
compacted = parse_response_output(
|
||||
{
|
||||
"output": [
|
||||
{"type": "compaction", "encrypted_content": "opaque"},
|
||||
{"type": "message", "role": "assistant", "content": "done"},
|
||||
],
|
||||
"status": "completed",
|
||||
"usage": {},
|
||||
},
|
||||
state_provider="openai:test",
|
||||
state_model="gpt-5.6",
|
||||
state_input_items=[{"role": "user", "content": "old"}],
|
||||
)
|
||||
replayed = parse_response_output(
|
||||
{
|
||||
"output": [
|
||||
{"type": "message", "role": "assistant", "content": "continued"},
|
||||
],
|
||||
"status": "completed",
|
||||
"usage": {},
|
||||
},
|
||||
state_provider="openai:test",
|
||||
state_model="gpt-5.6",
|
||||
state_input_items=[
|
||||
{"type": "compaction", "encrypted_content": "opaque"},
|
||||
],
|
||||
)
|
||||
|
||||
assert compacted.provider_compaction_applied is True
|
||||
assert compacted.provider_compaction_state is not None
|
||||
assert compacted.provider_compaction_scope == "current_request"
|
||||
assert responses_state_items(compacted.provider_compaction_state) == [
|
||||
{"type": "compaction", "encrypted_content": "opaque"},
|
||||
]
|
||||
assert replayed.provider_compaction_applied is False
|
||||
assert replayed.provider_compaction_state is None
|
||||
assert replayed.provider_compaction_scope is None
|
||||
|
||||
|
||||
class TestResponsesConversationState:
|
||||
def test_server_compaction_prunes_superseded_prefix(self):
|
||||
|
||||
Reference in New Issue
Block a user