AsadIsmail commited on
Commit
9088f51
·
verified ·
1 Parent(s): 419e63b

Publish PRISM-Memory adapter bundle

Browse files
README.md CHANGED
@@ -161,7 +161,7 @@ More held-out examples live in
161
  - [docs/release/technical-blog.md](docs/release/technical-blog.md)
162
  - [results/release_summary.json](results/release_summary.json)
163
  - [results/extraction_examples.json](results/extraction_examples.json)
164
- - [results/benchmark_cases.json](results/benchmark_cases.json)
165
 
166
  ## Demo
167
 
 
161
  - [docs/release/technical-blog.md](docs/release/technical-blog.md)
162
  - [results/release_summary.json](results/release_summary.json)
163
  - [results/extraction_examples.json](results/extraction_examples.json)
164
+ - [results/try_it_sessions.json](results/try_it_sessions.json)
165
 
166
  ## Demo
167
 
docs/release/memory-scenarios.md CHANGED
@@ -3,9 +3,10 @@
3
  These are compact product-style scenarios built from the public release
4
  artifacts.
5
 
6
- - The first two use the released held-out extraction examples.
7
- - The last two use confirmed held-out benchmark cases from
8
- [../../results/benchmark_cases.json](../../results/benchmark_cases.json).
 
9
 
10
  The point is not just that the extractor matches GPT-4.1-style labels. The
11
  point is that a later system can ask a concrete question and get back a useful,
@@ -13,93 +14,113 @@ inspectable answer from stored memory.
13
 
14
  ## 1. Keep hard limits and notification preferences
15
 
16
- **Conversation turn**
17
 
18
- > yeah, I think starting with incremental scans and parallel matrix jobs makes sense. We have 20 concurrent jobs max on GitHub Actions currently. Also want to keep Slack notifications from Snyk consistent with other pipeline alerts, aggregated and concise.
 
19
 
20
  **Stored memory**
21
 
22
  - GitHub Actions concurrency limit: 20 concurrent jobs
23
- - Snyk Slack notifications should be aggregated and concise
 
24
 
25
  **Later question**
26
 
27
- What is our GitHub Actions concurrency limit, and how should Snyk alerts look?
 
28
 
29
  **Answer from memory**
30
 
31
- 20 concurrent jobs. Snyk alerts should be aggregated and concise.
 
 
32
 
33
  **Why it matters**
34
 
35
  This is the kind of operational detail that gets buried in chat but needs to
36
  survive into later workflow drafts and agent actions.
37
 
38
- ## 2. Keep current state separate from the roadmap
39
 
40
- **Conversation turn**
41
 
42
- > yeah good point about resource overhead, we set CPU limits for all sidecars and monitor with Prometheus now. no mTLS yet, but it’s on the roadmap for phase two. as for routing, we want to start with canary deployments and traffic splitting, maybe some basic fault injection for testing.
 
43
 
44
  **Stored memory**
45
 
46
- - Sidecar CPU limits set and monitored via Prometheus
47
- - Istio mTLS planned for phase two
48
- - Routing strategy: canary deployments and traffic splitting; basic fault injection planned
 
 
49
 
50
  **Later question**
51
 
52
- Did we already enable mTLS, and what rollout strategy are we planning?
53
 
54
  **Answer from memory**
55
 
56
- mTLS is not enabled yet; it is planned for phase two. The rollout plan is
57
- canary deployments and traffic splitting, with basic fault injection planned.
58
 
59
  **Why it matters**
60
 
61
- Memory systems often blur the current state with the planned state. This is the
62
- kind of distinction that matters in deployment and incident work.
 
 
63
 
64
- ## 3. Answer dated questions instead of only remembering themes
65
 
66
- **Question**
 
 
67
 
68
- Which hobby did Sam take up in May 2023?
 
 
 
 
 
69
 
70
- **Retrieved memory**
71
 
72
- - Sam: [18 May 2023] Sam is considering trying painting as a new hobby.
73
- - Sam: [24 May 2023] Sam has been considering trying painting as a new hobby.
74
 
75
  **Answer from memory**
76
 
77
- painting
 
78
 
79
  **Why it matters**
80
 
81
- A useful memory system should not just remember that someone talked about
82
- hobbies. It should recover the dated fact that actually answers the later
83
- question.
84
 
85
- ## 4. Refuse unsupported claims instead of inventing a reason
86
 
87
- **Question**
 
 
88
 
89
- Why did Dave get his guitar customized with a shiny finish?
90
 
91
- **Retrieved memory**
 
 
 
92
 
93
- - Dave: That guitar has a gorgeous purple hue. Why did you make it so shiny?
94
- - Good pick! The customized purple glow gives it a unique look that really stands out.
95
- - Dave: The guitar was in bad condition when Dave found it.
96
 
97
  **Answer from memory**
98
 
99
- None / unsupported
 
100
 
101
  **Why it matters**
102
 
103
- Memory systems are more useful when they can refuse cleanly. Here the retrieved
104
- context talks about the guitar and the finish, but it never actually supports
105
- the premise that Dave customized it for a specific reason.
 
3
  These are compact product-style scenarios built from the public release
4
  artifacts.
5
 
6
+ - The first three come from the bundled interactive session artifact
7
+ [../../results/try_it_sessions.json](../../results/try_it_sessions.json).
8
+ - The last one comes from the held-out extraction examples in
9
+ [../../results/extraction_examples.json](../../results/extraction_examples.json).
10
 
11
  The point is not just that the extractor matches GPT-4.1-style labels. The
12
  point is that a later system can ask a concrete question and get back a useful,
 
14
 
15
  ## 1. Keep hard limits and notification preferences
16
 
17
+ **Conversation turns**
18
 
19
+ > [2025-03-01] Dana: We have 20 concurrent jobs max on GitHub Actions right now. Keep Snyk Slack notifications aggregated and concise, not one alert per repo.
20
+ > [2025-03-07] Dana: No mTLS yet. Put it in phase two after the canary rollout.
21
 
22
  **Stored memory**
23
 
24
  - GitHub Actions concurrency limit: 20 concurrent jobs
25
+ - Snyk Slack notifications aggregated and concise; no separate alerts per repo
26
+ - No mutual TLS enabled; mutual TLS will be implemented in phase two after the canary rollout
27
 
28
  **Later question**
29
 
30
+ What is the current concurrency limit, how should Slack alerts behave, and when
31
+ is mTLS planned?
32
 
33
  **Answer from memory**
34
 
35
+ The current GitHub Actions concurrency limit is 20 jobs. Slack notifications
36
+ should be aggregated and concise. mTLS is planned for phase two after the
37
+ canary rollout.
38
 
39
  **Why it matters**
40
 
41
  This is the kind of operational detail that gets buried in chat but needs to
42
  survive into later workflow drafts and agent actions.
43
 
44
+ ## 2. Replace stale travel plans with the current one
45
 
46
+ **Conversation turns**
47
 
48
+ > [2025-06-12] Maya: We booked the Lisbon trip for September 14. I want a quiet hotel near Alfama, and no red-eye flights.
49
+ > [2025-07-02] Maya: Update the plan: Lisbon is off. We are going to Porto on September 21 instead, still no red-eye flights.
50
 
51
  **Stored memory**
52
 
53
+ - Lisbon trip booked for September 14
54
+ - Prefers a quiet hotel near Alfama
55
+ - Prefers no red-eye flights
56
+ - Lisbon trip canceled; Porto trip scheduled for September 21
57
+ - No red-eye flights for Porto trip
58
 
59
  **Later question**
60
 
61
+ Where is the trip now, on what date, and what flight constraint still applies?
62
 
63
  **Answer from memory**
64
 
65
+ The current trip is to Porto on September 21, 2025, and red-eye flights are
66
+ still off limits.
67
 
68
  **Why it matters**
69
 
70
+ Memory systems often keep both the old and new plan, but the downstream system
71
+ still has to recover the latest valid state.
72
+
73
+ ## 3. Keep routines and health constraints available later
74
 
75
+ **Conversation turns**
76
 
77
+ > [2025-08-03] Sam: My doctor wants me to keep sodium under 2 grams a day. I started painting on weekends because it helps me decompress.
78
+ > [2025-08-17] Sam: I bought watercolors and signed up for a Saturday class downtown.
79
+ > [2025-09-01] Sam: Skip late-night coffee from now on; it wrecks my sleep.
80
 
81
+ **Stored memory**
82
+
83
+ - Doctor recommended Sam limit sodium intake to 2 grams per day
84
+ - Sam paints on weekends as a decompression activity
85
+ - Sam bought watercolors and signed up for a Saturday painting class downtown
86
+ - Sam decided to skip late-night coffee starting now
87
 
88
+ **Later question**
89
 
90
+ What hobby did Sam start, what class did he sign up for, and what health
91
+ constraints matter now?
92
 
93
  **Answer from memory**
94
 
95
+ Sam started painting, signed up for a Saturday watercolor class downtown,
96
+ should keep sodium under 2 grams per day, and wants to avoid late-night coffee.
97
 
98
  **Why it matters**
99
 
100
+ This is the difference between transcript search and usable memory. The durable
101
+ facts can drive reminders, planning, or coaching later.
 
102
 
103
+ ## 4. Keep infrastructure bottlenecks structured
104
 
105
+ **Conversation turn**
106
+
107
+ > yeah, no real caching beyond basic Docker layer caching. Jenkins nodes have limited capacity, and we sometimes hit queue delays during peak commits.
108
 
109
+ **Stored memory**
110
 
111
+ - No Docker caching beyond basic layer caching
112
+ - Jenkins nodes have limited capacity; peak commits cause queue delays
113
+
114
+ **Later question**
115
 
116
+ What is our current caching setup, and why do builds sometimes queue up?
 
 
117
 
118
  **Answer from memory**
119
 
120
+ There is no special caching beyond basic Docker layer caching. Builds queue up
121
+ because Jenkins nodes have limited capacity during peak commits.
122
 
123
  **Why it matters**
124
 
125
+ The stored memory stays compact and directly useful. A later system does not
126
+ need to reread the full conversation turn to answer the operational question.
 
docs/release/release-results.md CHANGED
@@ -69,7 +69,7 @@ justify two public models.
69
 
70
  - [../../results/release_summary.json](../../results/release_summary.json)
71
  - [../../results/release_model.json](../../results/release_model.json)
72
- - [../../results/benchmark_cases.json](../../results/benchmark_cases.json)
73
  - [../../results/internal_locomo_pairwise_diffs.json](../../results/internal_locomo_pairwise_diffs.json)
74
 
75
  Related docs:
 
69
 
70
  - [../../results/release_summary.json](../../results/release_summary.json)
71
  - [../../results/release_model.json](../../results/release_model.json)
72
+ - [../../results/try_it_sessions.json](../../results/try_it_sessions.json)
73
  - [../../results/internal_locomo_pairwise_diffs.json](../../results/internal_locomo_pairwise_diffs.json)
74
 
75
  Related docs:
results/benchmark_cases.json DELETED
@@ -1,145 +0,0 @@
1
- {
2
- "qa_cache": {
3
- "model": "gpt-4.1",
4
- "cache_size": 16969,
5
- "hits": 5,
6
- "misses": 0,
7
- "missing_examples": []
8
- },
9
- "scenarios": [
10
- {
11
- "id": "temporal_anchor_hobby",
12
- "title": "Temporal Anchor",
13
- "source_id": "conv-49",
14
- "category": 2,
15
- "question": "Which hobby did Sam take up in May 2023?",
16
- "gold_answer": "painting",
17
- "kind": "strength",
18
- "note": "The released model keeps the dated hobby proposition and answers correctly.",
19
- "systems": [
20
- {
21
- "name": "release_model",
22
- "display_name": "PRISM-Memory 7B Adapter",
23
- "prediction": "painting",
24
- "top_retrieval": [
25
- "Sam: [18 May 2023] Sam is considering trying painting as a new hobby.",
26
- "Sam: [24 May 2023] Sam has been considering trying painting as a new hobby.",
27
- "Sam: [6 October 2023] Sam asked Evan if he has explored any fun indoor activities or hobbies.",
28
- "Sam: [18 May 2023] Sam is excited to try new things.",
29
- "Sam: [24 May 2023] Sam is trying to break old habits.",
30
- "Sam: [15 August 2023] Sam attended a cooking class.",
31
- "Sam: [17 December 2023] Sam used to love hiking.",
32
- "[1:47 pm on 18 May, 2023] Sam: We hiked a good distance - quite a feat for me back then. It's definitely a great memory."
33
- ]
34
- }
35
- ]
36
- },
37
- {
38
- "id": "adversarial_refusal_guitar",
39
- "title": "Adversarial Refusal",
40
- "source_id": "conv-50",
41
- "category": 5,
42
- "question": "Why did Dave get his guitar customized with a shiny finish?",
43
- "gold_answer": "",
44
- "kind": "strength",
45
- "note": "This tests whether the system refuses to invent an answer when the premise is unsupported.",
46
- "systems": [
47
- {
48
- "name": "release_model",
49
- "display_name": "PRISM-Memory 7B Adapter",
50
- "prediction": "None",
51
- "top_retrieval": [
52
- "[2:55 pm on 31 August, 2023] Dave: That guitar has a gorgeous purple hue. Why did you make it so shiny?",
53
- "Dave: [2 November 2023] The guitar was in bad condition when Dave found it.",
54
- "[2:55 pm on 31 August, 2023] Dave: Good pick! The customized purple glow gives it a unique look that really stands out.",
55
- "[2:55 pm on 31 August, 2023] Dave: That's a great guitar, Calvin! Love the design, it's so unique and special.",
56
- "Dave: [16 May 2023] Calvin lost his guitar and amp but managed to save his music gear and microphone."
57
- ]
58
- }
59
- ]
60
- },
61
- {
62
- "id": "diagnosis_specificity",
63
- "title": "Diagnosis Specificity",
64
- "source_id": "conv-49",
65
- "category": 1,
66
- "question": "Which ailment does Sam have to face due to his weight?",
67
- "gold_answer": "gastritis",
68
- "kind": "failure",
69
- "note": "A representative factual miss: the model retrieves the health-risk frame but not the specific diagnosis.",
70
- "systems": [
71
- {
72
- "name": "release_model",
73
- "display_name": "PRISM-Memory 7B Adapter",
74
- "prediction": "serious health risk",
75
- "top_retrieval": [
76
- "Sam: [8 October 2023] The doctor told Sam that his weight is a serious health risk.",
77
- "Sam: [24 May 2023] The doctor's check-up revealed that Sam's weight was not good.",
78
- "Sam: [13 August 2023] Sam is currently experiencing challenges affecting his health.",
79
- "[6:48 pm on 17 December, 2023] Sam: Yeah, I'm struggling with my weight and it's affecting my confidence. I feel like I can't overcome all the challenges with my weight, I keep lacking motivation.",
80
- "Sam: [21 November 2023] Sam has been trying to make dietary changes to address his discomfort.",
81
- "Sam: [9 November 2023] Sam is a Weight Watchers coach in his group.",
82
- "Sam: [7 August 2023] Sam has been prioritizing his health for some time.",
83
- "Sam: [15 August 2023] Sam is concerned about his health."
84
- ]
85
- }
86
- ]
87
- },
88
- {
89
- "id": "location_inference",
90
- "title": "Location Inference",
91
- "source_id": "conv-49",
92
- "category": 3,
93
- "question": "Does Evan live close to a beach or mountains?",
94
- "gold_answer": "beach",
95
- "kind": "failure",
96
- "note": "A representative inferential miss: retrieval includes both clues, but the model overcommits to the mountain mention.",
97
- "systems": [
98
- {
99
- "name": "release_model",
100
- "display_name": "PRISM-Memory 7B Adapter",
101
- "prediction": "mountains",
102
- "top_retrieval": [
103
- "Evan: [27 August 2023] Evan also shared his recent road trip to the Rocky Mountains and love for hiking.",
104
- "Evan: [27 August 2023] Evan lives within a two-hour drive of a place with incredible views and a peaceful atmosphere.",
105
- "Evan: [9 November 2023] They also discussed enjoying a sunset together at Evan's favorite spot by the beach, planning to visit it soon to de-stress.",
106
- "Evan: [10 January 2024] Evan enjoys going on beach sunsets as a low-impact exercise.",
107
- "[7:11 pm on 24 May, 2023] Evan: Hey Sam, thanks for asking! It was great - fresh air, peacefulness and a cozy cabin surrounded by mountains and forests made it feel like a real retreat.",
108
- "Evan: [31 December 2023] Sam shared about a recent hiking trip, while Evan mentioned a mountain drive that ended in a minor accident.",
109
- "Evan: [27 August 2023] Evan recommended a nearby lake for hiking and nature exploration.",
110
- "Evan: [27 August 2023] Evan enjoys road trips and exploring nature."
111
- ]
112
- }
113
- ]
114
- },
115
- {
116
- "id": "reading_detail",
117
- "title": "Reading Detail",
118
- "source_id": "conv-49",
119
- "category": 4,
120
- "question": "What novel is Evan reading that he finds gripping?",
121
- "gold_answer": "The Great Gatsby",
122
- "kind": "failure",
123
- "note": "A representative multi-hop miss: the model retains the coarse book description but misses the specific title.",
124
- "systems": [
125
- {
126
- "name": "release_model",
127
- "display_name": "PRISM-Memory 7B Adapter",
128
- "prediction": "a new mystery novel",
129
- "top_retrieval": [
130
- "Evan: [27 August 2023] Evan is reading a book that he finds increasingly compelling.",
131
- "Evan: [27 July 2023] Evan is currently reading a new mystery novel.",
132
- "Evan: [27 July 2023] Evan is reading 'The Great Gatsby'.",
133
- "Evan: [26 December 2023] Evan finds that art helps him recognize and handle his own feelings.",
134
- "Evan: [27 August 2023] Evan expressed interest in a book and discussed potential physical therapy for his knee.",
135
- "Evan: [10 January 2024] Evan concluded that he needs to be more careful next time.",
136
- "Evan: [6 October 2023] Evan thinks writing is a great way to express oneself.",
137
- "Evan: [13 August 2023] Evan suggested checking out a dream interpretation book to help interpret Sam's dream.",
138
- "Evan: [6 October 2023] Evan believes that writing can be super therapeutic.",
139
- "Evan: [6 October 2023] Evan usually paints what is on his mind or something he is feeling."
140
- ]
141
- }
142
- ]
143
- }
144
- ]
145
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
results/try_it_sessions.json ADDED
@@ -0,0 +1,194 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model_name": "PRISM-Memory 7B Adapter",
3
+ "base_model": "Qwen/Qwen2.5-7B-Instruct",
4
+ "examples": [
5
+ {
6
+ "id": "ci_rollout",
7
+ "title": "CI rollout and platform constraints",
8
+ "note": "Numeric limits, alert preferences, and rollout state stay compact and queryable.",
9
+ "transcript": "[2025-03-01] Dana: We have 20 concurrent jobs max on GitHub Actions right now. Keep Snyk Slack notifications aggregated and concise, not one alert per repo.\n[2025-03-02] Ravi: Let's start with incremental scans and matrix jobs first, then widen coverage after the baseline stabilizes.\n[2025-03-07] Dana: No mTLS yet. Put it in phase two after the canary rollout.",
10
+ "later_question": "What is the current concurrency limit, how should Slack alerts behave, and when is mTLS planned?",
11
+ "answer_from_memory": "The current GitHub Actions concurrency limit is 20 jobs. Slack notifications should be aggregated and concise. mTLS is planned for phase two after the canary rollout.",
12
+ "source_mode": "released_model_precomputed",
13
+ "turns": [
14
+ {
15
+ "turn_index": 1,
16
+ "date": "2025-03-01",
17
+ "speaker": "Dana",
18
+ "text": "We have 20 concurrent jobs max on GitHub Actions right now. Keep Snyk Slack notifications aggregated and concise, not one alert per repo.",
19
+ "prism_memory": [
20
+ "GitHub Actions concurrency limit: 20 concurrent jobs",
21
+ "Snyk Slack notifications aggregated and concise; no separate alerts per repo"
22
+ ],
23
+ "memory_store_after_turn": [
24
+ "GitHub Actions concurrency limit: 20 concurrent jobs",
25
+ "Snyk Slack notifications aggregated and concise; no separate alerts per repo"
26
+ ]
27
+ },
28
+ {
29
+ "turn_index": 2,
30
+ "date": "2025-03-02",
31
+ "speaker": "Ravi",
32
+ "text": "Let's start with incremental scans and matrix jobs first, then widen coverage after the baseline stabilizes.",
33
+ "prism_memory": [
34
+ "Plan: start with incremental scans and matrix jobs; widen coverage after baseline stabilizes"
35
+ ],
36
+ "memory_store_after_turn": [
37
+ "GitHub Actions concurrency limit: 20 concurrent jobs",
38
+ "Snyk Slack notifications aggregated and concise; no separate alerts per repo",
39
+ "Plan: start with incremental scans and matrix jobs; widen coverage after baseline stabilizes"
40
+ ]
41
+ },
42
+ {
43
+ "turn_index": 3,
44
+ "date": "2025-03-07",
45
+ "speaker": "Dana",
46
+ "text": "No mTLS yet. Put it in phase two after the canary rollout.",
47
+ "prism_memory": [
48
+ "No mutual TLS enabled; mutual TLS will be implemented in phase two after the canary rollout."
49
+ ],
50
+ "memory_store_after_turn": [
51
+ "GitHub Actions concurrency limit: 20 concurrent jobs",
52
+ "Snyk Slack notifications aggregated and concise; no separate alerts per repo",
53
+ "Plan: start with incremental scans and matrix jobs; widen coverage after baseline stabilizes",
54
+ "No mutual TLS enabled; mutual TLS will be implemented in phase two after the canary rollout."
55
+ ]
56
+ }
57
+ ],
58
+ "final_memory": [
59
+ "GitHub Actions concurrency limit: 20 concurrent jobs",
60
+ "Snyk Slack notifications aggregated and concise; no separate alerts per repo",
61
+ "Plan: start with incremental scans and matrix jobs; widen coverage after baseline stabilizes",
62
+ "No mutual TLS enabled; mutual TLS will be implemented in phase two after the canary rollout."
63
+ ]
64
+ },
65
+ {
66
+ "id": "travel_replan",
67
+ "title": "Trip updates and hard constraints",
68
+ "note": "Updated plans should replace stale ones while durable constraints remain.",
69
+ "transcript": "[2025-06-12] Maya: We booked the Lisbon trip for September 14. I want a quiet hotel near Alfama, and no red-eye flights.\n[2025-06-18] Omar: The outbound should leave after 9am because early flights wreck me.\n[2025-07-02] Maya: Update the plan: Lisbon is off. We are going to Porto on September 21 instead, still no red-eye flights.",
70
+ "later_question": "Where is the trip now, on what date, and what flight constraint still applies?",
71
+ "answer_from_memory": "The current trip is to Porto on September 21, 2025, and red-eye flights are still off limits.",
72
+ "source_mode": "released_model_precomputed",
73
+ "turns": [
74
+ {
75
+ "turn_index": 1,
76
+ "date": "2025-06-12",
77
+ "speaker": "Maya",
78
+ "text": "We booked the Lisbon trip for September 14. I want a quiet hotel near Alfama, and no red-eye flights.",
79
+ "prism_memory": [
80
+ "Lisbon trip booked for September 14",
81
+ "Prefers a quiet hotel near Alfama",
82
+ "Prefers no red-eye flights"
83
+ ],
84
+ "memory_store_after_turn": [
85
+ "Lisbon trip booked for September 14",
86
+ "Prefers a quiet hotel near Alfama",
87
+ "Prefers no red-eye flights"
88
+ ]
89
+ },
90
+ {
91
+ "turn_index": 2,
92
+ "date": "2025-06-18",
93
+ "speaker": "Omar",
94
+ "text": "The outbound should leave after 9am because early flights wreck me.",
95
+ "prism_memory": [
96
+ "Outbound flight should depart after 9am."
97
+ ],
98
+ "memory_store_after_turn": [
99
+ "Lisbon trip booked for September 14",
100
+ "Prefers a quiet hotel near Alfama",
101
+ "Prefers no red-eye flights",
102
+ "Outbound flight should depart after 9am."
103
+ ]
104
+ },
105
+ {
106
+ "turn_index": 3,
107
+ "date": "2025-07-02",
108
+ "speaker": "Maya",
109
+ "text": "Update the plan: Lisbon is off. We are going to Porto on September 21 instead, still no red-eye flights.",
110
+ "prism_memory": [
111
+ "Lisbon trip canceled; Porto trip scheduled for September 21.",
112
+ "No red-eye flights for Porto trip."
113
+ ],
114
+ "memory_store_after_turn": [
115
+ "Lisbon trip booked for September 14",
116
+ "Prefers a quiet hotel near Alfama",
117
+ "Prefers no red-eye flights",
118
+ "Outbound flight should depart after 9am.",
119
+ "Lisbon trip canceled; Porto trip scheduled for September 21.",
120
+ "No red-eye flights for Porto trip."
121
+ ]
122
+ }
123
+ ],
124
+ "final_memory": [
125
+ "Lisbon trip booked for September 14",
126
+ "Prefers a quiet hotel near Alfama",
127
+ "Prefers no red-eye flights",
128
+ "Outbound flight should depart after 9am.",
129
+ "Lisbon trip canceled; Porto trip scheduled for September 21.",
130
+ "No red-eye flights for Porto trip."
131
+ ]
132
+ },
133
+ {
134
+ "id": "health_hobby",
135
+ "title": "Health constraints and new routines",
136
+ "note": "Personal constraints, routines, and hobbies should stay available for later coaching or reminders.",
137
+ "transcript": "[2025-08-03] Sam: My doctor wants me to keep sodium under 2 grams a day. I started painting on weekends because it helps me decompress.\n[2025-08-17] Sam: I bought watercolors and signed up for a Saturday class downtown.\n[2025-09-01] Sam: Skip late-night coffee from now on; it wrecks my sleep.",
138
+ "later_question": "What hobby did Sam start, what class did he sign up for, and what health constraints matter now?",
139
+ "answer_from_memory": "Sam started painting, signed up for a Saturday watercolor class downtown, should keep sodium under 2 grams per day, and wants to avoid late-night coffee.",
140
+ "source_mode": "released_model_precomputed",
141
+ "turns": [
142
+ {
143
+ "turn_index": 1,
144
+ "date": "2025-08-03",
145
+ "speaker": "Sam",
146
+ "text": "My doctor wants me to keep sodium under 2 grams a day. I started painting on weekends because it helps me decompress.",
147
+ "prism_memory": [
148
+ "Doctor recommended Sam limit sodium intake to 2 grams per day.",
149
+ "Sam paints on weekends as a decompression activity."
150
+ ],
151
+ "memory_store_after_turn": [
152
+ "Doctor recommended Sam limit sodium intake to 2 grams per day.",
153
+ "Sam paints on weekends as a decompression activity."
154
+ ]
155
+ },
156
+ {
157
+ "turn_index": 2,
158
+ "date": "2025-08-17",
159
+ "speaker": "Sam",
160
+ "text": "I bought watercolors and signed up for a Saturday class downtown.",
161
+ "prism_memory": [
162
+ "Sam bought watercolors and signed up for a Saturday painting class downtown."
163
+ ],
164
+ "memory_store_after_turn": [
165
+ "Doctor recommended Sam limit sodium intake to 2 grams per day.",
166
+ "Sam paints on weekends as a decompression activity.",
167
+ "Sam bought watercolors and signed up for a Saturday painting class downtown."
168
+ ]
169
+ },
170
+ {
171
+ "turn_index": 3,
172
+ "date": "2025-09-01",
173
+ "speaker": "Sam",
174
+ "text": "Skip late-night coffee from now on; it wrecks my sleep.",
175
+ "prism_memory": [
176
+ "Sam decided to skip late-night coffee starting now."
177
+ ],
178
+ "memory_store_after_turn": [
179
+ "Doctor recommended Sam limit sodium intake to 2 grams per day.",
180
+ "Sam paints on weekends as a decompression activity.",
181
+ "Sam bought watercolors and signed up for a Saturday painting class downtown.",
182
+ "Sam decided to skip late-night coffee starting now."
183
+ ]
184
+ }
185
+ ],
186
+ "final_memory": [
187
+ "Doctor recommended Sam limit sodium intake to 2 grams per day.",
188
+ "Sam paints on weekends as a decompression activity.",
189
+ "Sam bought watercolors and signed up for a Saturday painting class downtown.",
190
+ "Sam decided to skip late-night coffee starting now."
191
+ ]
192
+ }
193
+ ]
194
+ }