You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/simulation-v2-architecture.md
+34-1Lines changed: 34 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,13 +12,46 @@ This document specifies every change across the entire Extropy pipeline, from `e
12
12
4.**Names carry culture.** Every agent has a name. Names are demographically appropriate (SSA baby names + Census surname data, bundled CSVs, US-only for now). Partners, kids, and peers are named. Non-US populations use country-specific name data added later behind the same `generate_name(gender, ethnicity, birth_decade, country="US")` interface.
13
13
5.**Time is felt.** Agents know what day/week it is, how long ago they heard the news, whether things are getting better or worse.
14
14
6.**Conversations are real.** Agents talk to each other. Both sides are real agents (or NPC dependents). The conversation changes both participants.
15
-
7.**Outcomes emerge, not imposed.** For exploratory scenarios, outcomes are open-ended. Categories are discovered post-hoc through clustering, not pre-defined dropdowns.
15
+
7.**Outcomes emerge, not imposed.** For exploratory scenarios, outcomes are open-ended. Categories are discovered post-hoc by downstream DS tooling (agentic harness), not pre-defined dropdowns or built-in clustering.
16
16
8.**Scenarios evolve.** Events develop over time. New information arrives at specified timesteps. The world isn't frozen at t=0.
17
17
9.**Deterministic where possible.** Names, family, temporal framing, mood rendering, channel experience — all deterministic. LLM calls only for reasoning and conversations.
18
18
10.**Fidelity is tunable.**`--fidelity low/medium/high` controls prompt richness and conversation depth without changing the underlying data model.
19
19
20
20
---
21
21
22
+
## Locked Decisions
23
+
24
+
Decisions confirmed before implementation. These override any conflicting detail elsewhere in this document.
25
+
26
+
### Pre-Phase Decisions (all phases)
27
+
28
+
| # | Decision | Resolution |
29
+
|---|----------|------------|
30
+
| 1 | Pipeline ordering | Network stays scenario-agnostic. Optional "scenario-conditioned network" mode is future work, not v2 core. |
31
+
| 2 |`talk_to` target identity |`agent_id` in schema, render names only in prompt. |
32
+
| 3 | Merged-pass default | 2-pass is default. Merged pass behind `--merged-pass` flag. A/B test later. |
33
+
| 4 | Token budget for memory | Uncapped for now. Deterministic token cap with oldest-to-newest compression deferred. |
34
+
| 5 | Timeline merge semantics | Timeline entry overrides base event for that timestep. |
35
+
| 6 | DB schema for new artifacts | Define conversations/posts/action_history tables before Phase D. |
36
+
| 7 | Name data | Local SSA baby names + Census surnames, bundled CSVs (~500KB), US-only. Non-US via country-specific CSVs later behind same interface: `generate_name(gender, ethnicity, birth_decade, country="US")`. |
37
+
| 8 | Conformity/threshold mechanics | Soft prompt signal only (inject local adoption ratio + conformity phrasing). No hard numeric gate. |
38
+
| 9 | Backtesting ground-truth | Define one validation dataset schema before Phase G. |
39
+
40
+
### Phase-Specific Decisions
41
+
42
+
| # | Decision | Resolution | Phase |
43
+
|---|----------|------------|-------|
44
+
| 10 | Conversation turns | 2 turns / 4 messages (medium), 3 turns / 6 messages (high). LLM told the limit so it wraps up. | D |
45
+
| 11 | Conversation state | Both agents keep their own independent final state. No conflict. | D |
46
+
| 12 | Household joint distributions | Pre-processed cross-tab CSVs from Census PUMS, not raw PUMS. | B |
47
+
| 13 | Neighbor edge inference | TBD at spec/extend phase — needs generalized attribute. Not blocking B core. | B |
48
+
| 14 | Fidelity flag location |`SimulationRunConfig` (runtime choice, not scenario-intrinsic). | F |
49
+
| 15 | Post-hoc clustering | Not building. Agentic harness does DS on exported data. | F |
50
+
| 16 | Repetition detection metric | Jaccard similarity on word-level trigrams, >70% threshold. | E |
51
+
| 17 | Channel experience |`experience_template` field on `ExposureChannel`. Scenario compiler generates it. Fallback: humanize channel name. | A |
0 commit comments