From f13abe080630f1e09e641462998dbfc1008a6a68 Mon Sep 17 00:00:00 2001 From: chengyongru Date: Wed, 19 Aug 2026 17:10:55 +0800 Subject: [PATCH] refactor(memory): require archive count in prompt --- nanobot/templates/agent/consolidator_archive.md | 4 ---- tests/agent/test_consolidator.py | 3 ++- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/nanobot/templates/agent/consolidator_archive.md b/nanobot/templates/agent/consolidator_archive.md index 0f9a1d7c1..488be5c9b 100644 --- a/nanobot/templates/agent/consolidator_archive.md +++ b/nanobot/templates/agent/consolidator_archive.md @@ -1,10 +1,6 @@ -{% if archive_count is defined %} Create a memory overview for only the final {{ archive_count }} conversation messages immediately before this instruction. Earlier messages are context for resolving references; do not summarize them again. Do not call tools. Return only the overview, following these memory rules: -{% else %} -Extract key facts from this conversation. For each fact, annotate its memory attributes. -{% endif %} Only SNIP facts deserve a non-[skip] mark: - Signal: would the user need to repeat this if forgotten? diff --git a/tests/agent/test_consolidator.py b/tests/agent/test_consolidator.py index 192af9240..5c08a1c5d 100644 --- a/tests/agent/test_consolidator.py +++ b/tests/agent/test_consolidator.py @@ -233,9 +233,10 @@ class TestConsolidatorSummarize: class TestConsolidatorPromptContract: def test_archive_prompt_outputs_attribute_tags_without_missing_context_claims(self): - prompt = render_template("agent/consolidator_archive.md", strip=True) + prompt = render_template("agent/consolidator_archive.md", strip=True, archive_count=4) assert "SNIP" in prompt + assert "final 4 conversation messages" in prompt for mark in ("[permanent]", "[durable]", "[ephemeral]", "[correction]", "[skip]"): assert mark in prompt assert "check context below" not in prompt.lower()