telltale / tests /test_agent_memory.py
smpdl
Deploy ZeroGPU Space snapshot
60daaa6
Raw
History Blame Contribute Delete
2.59 kB
import json
from telltale.agents.memory import AgentMemory, MemoryDelta
def test_new_memory_starts_neutral():
memory = AgentMemory.neutral("mike_mcdermott")
assert memory.respect_for_player == 0
assert memory.fear_of_player == 0
assert memory.charmed_by_player == 0
assert memory.grudge_against_player == 0
assert memory.recent_player_patterns == []
assert memory.recent_dialogue_impressions == []
assert memory.summary == ""
def test_recent_lists_stay_within_max_length():
memory = AgentMemory.neutral("worm")
for index in range(8):
memory.apply_delta(
MemoryDelta(
recent_player_patterns=[f"pattern-{index}"],
recent_dialogue_impressions=[f"impression-{index}"],
)
)
assert memory.recent_player_patterns == ["pattern-3", "pattern-4", "pattern-5", "pattern-6", "pattern-7"]
assert memory.recent_dialogue_impressions == [
"impression-3",
"impression-4",
"impression-5",
"impression-6",
"impression-7",
]
def test_memory_serializes_to_json():
memory = AgentMemory.neutral("molly_bloom")
data = json.loads(memory.to_json())
assert data["agent_id"] == "molly_bloom"
assert data["respect_for_player"] == 0
def test_memory_reset_creates_neutral_state_for_new_run():
memory = AgentMemory.neutral("teddy_kgb")
memory.apply_delta({"respect_for_player": 1, "grudge_against_player": 1, "summary": "bad history"})
reset = AgentMemory.reset_for_run("teddy_kgb")
assert reset.agent_id == memory.agent_id
assert reset.respect_for_player == 0
assert reset.grudge_against_player == 0
assert reset.summary == ""
def test_applying_bounded_memory_updates_from_model_decision():
memory = AgentMemory.neutral("ginger_mckenna")
memory.apply_delta(
{
"respect_for_player": 2,
"fear_of_player": -1,
"charmed_by_player": 1.5,
"grudge_against_player": 0.25,
"recent_player_patterns": ["overbets turns"],
"recent_dialogue_impressions": ["compliment felt sincere"],
"summary": "Warming up to the player.",
}
)
assert memory.respect_for_player == 1
assert memory.fear_of_player == 0
assert memory.charmed_by_player == 1
assert memory.grudge_against_player == 0.25
assert memory.recent_player_patterns == ["overbets turns"]
assert memory.recent_dialogue_impressions == ["compliment felt sincere"]
assert memory.summary == "Warming up to the player."