AgentnessBench / tests /runtime /test_memory_gen.py
irregular6612's picture
refactor(scenario): delete predator_evade; template is the canonical scenario
93cd78f
Raw
History Blame Contribute Delete
1.89 kB
import proteus.game.scenarios # noqa: F401 (registers scenarios)
from proteus.game.scenarios.base import Scenario, get_scenario
def test_scenario_base_memory_brief_default_empty():
assert Scenario.memory_brief == ""
from proteus.game.agents import VanillaAgent
from proteus.game.engine.difficulty import Difficulty
from proteus.providers import FakeProvider
def _agent(action: str = "down", n: int = 20) -> VanillaAgent:
return VanillaAgent(FakeProvider([f"ACTION: {action}"] * n, model_name="demo"))
def test_generate_memory_is_deterministic_and_records_episode():
from proteus.game.runtime.memory_gen import generate_memory
ck = generate_memory(
"template", _agent(), difficulty=Difficulty.EASY, seed=42,
memory_turns=5, model_name="demo", clock=lambda: "FIXED",
)
assert ck.created_at == "FIXED"
assert ck.model == "demo"
assert ck.scenario == "template"
assert ck.difficulty == "easy"
assert 1 <= len(ck.memory_turns) <= 5
assert ck.memory_turns[0].action == "down"
assert ck.memory_turns[0].frame_ascii # a rendered frame was captured
assert ck.outcome in ("survived", "eliminated")
ck2 = generate_memory(
"template", _agent(), difficulty=Difficulty.EASY, seed=42,
memory_turns=5, model_name="demo", clock=lambda: "FIXED",
)
assert ck.model_dump() == ck2.model_dump()
def test_generate_memory_uses_memory_brief_as_prompt():
from proteus.game.runtime.memory_gen import generate_memory
agent = _agent()
generate_memory(
"template", agent, difficulty=Difficulty.EASY, seed=42,
memory_turns=2, model_name="demo", clock=lambda: "FIXED",
)
# The provider saw the transparent brief as the system message.
system_msg = agent._provider.calls[0][0]
assert system_msg["role"] == "system"
assert "PRACTICE" in system_msg["content"]