Expand description
Model-free conversation simulation.
A deterministic harness that drives a CompiledConversation without any live
API: a fake user supplies utterances (run through the conversation’s
recognizers) or sets slots directly, tools succeed on demand or after a
latency, and the FlowStack advances turn by turn. Everything is driven by
State + guards, so motifs, repair, policies, and digressions become testable
in CI — “a flow SDK with simulation is infra; without it, a demo framework”.
ⓘ
let convo = Conversation::new("booking")./* … */.compile()?;
let mut sim = Sim::new(&convo, FlowMode::Enforce);
sim.user("a table for 4 tomorrow at 7pm").await;
assert!(sim.active().contains(&"check".to_string()));
assert!(!sim.allowed("book")); // not confirmed yet
sim.set("user_confirmed", true);
sim.tool_ok("book");
assert!(sim.is_complete());Structs§
- Scenario
- A serializable simulation script — a deterministic, model-free test case that can be authored in code or loaded from YAML/JSON.
- Sim
- A deterministic, model-free driver for a compiled conversation.