@@ -51,19 +51,20 @@ def render_memory_slot(lessons: list[str]) -> str:
5151 )
5252
5353
54- # Shown to B only while learning on the train split. The known tag vocabulary is
55- # passed in so the LLM reuses tags (keeping the janitor's grouping coherent).
54+ # Shown to B whenever it is learning (every live run; train-split-only in eval).
55+ # The known tag vocabulary is passed in so the LLM reuses tags (keeping the
56+ # janitor's grouping coherent).
5657def render_learning_note (known_tags : list [str ]) -> str :
5758 vocab = ", " .join (known_tags ) if known_tags else "(none yet — you may create tags)"
5859 return (
59- "\n \n You are learning. When competitors reveal a pattern this page is missing, "
60- "call write_memory with an abstract, UNCONDITIONAL rule for this kind of page "
61- "that names the exact recommendation to make next time — phrased so it applies "
62- "even when a future page has no competitor data. Use the shape: 'On <page kind>, "
63- "always recommend <recommendation_type> (target <target>): <one-line why>.' "
64- f"Choose 1-4 tags for the pattern. Existing tags: { vocab } . Reuse an existing "
65- " tag when it fits; only add a new tag for a genuinely new kind of pattern. "
66- "Never tie a lesson to this specific URL or keyword."
60+ "\n \n You learn on every run. Before you finish, call write_memory exactly once to "
61+ "record the single most useful transferable lesson from this page — an abstract, "
62+ "UNCONDITIONAL rule for this KIND of page that names the exact recommendation to "
63+ "make next time, phrased so it applies even when a future page has no competitor "
64+ "data. Use the shape: 'On <page kind>, always recommend <recommendation_type> "
65+ f"(target <target>): <one-line why>.' Choose 1-4 tags for the pattern. Existing "
66+ f"tags: { vocab } . Reuse an existing tag when it fits; only add a new tag for a "
67+ "genuinely new kind of pattern. Never tie a lesson to this specific URL or keyword."
6768 )
6869
6970
0 commit comments