Skip to content

Commit 8298052

Browse files
committed
fix(timeline): require grounded agent episodes
1 parent 5b88d57 commit 8298052

2 files changed

Lines changed: 15 additions & 1 deletion

File tree

‎backends/advanced/src/advanced_omi_backend/services/timeline/prompt.py‎

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,17 @@
7171
"evidence_ids": {
7272
"type": "array",
7373
"items": {"type": "string"},
74+
"minItems": 1,
7475
},
7576
},
7677
"required": ["claim", "role", "confidence", "evidence_ids"],
7778
},
7879
},
79-
"evidence_ids": {"type": "array", "items": {"type": "string"}},
80+
"evidence_ids": {
81+
"type": "array",
82+
"items": {"type": "string"},
83+
"minItems": 1,
84+
},
8085
"related_conversation_ids": {
8186
"type": "array",
8287
"items": {"type": "string"},
@@ -140,6 +145,8 @@ def build_prompt(output_path: str) -> str:
140145
- Accessibility/OCR can include background or offscreen text.
141146
- Assistant-generated text is not evidence that its claims happened.
142147
- Every important boundary/assertion must cite supplied evidence IDs.
148+
- Every episode must include at least one supplied evidence ID; otherwise leave the
149+
interval unassigned instead of creating an ungrounded episode.
143150
- Never invent an evidence ID. Include every window ID exactly once in covered_window_ids.
144151
- Salience is display value, not confidence.
145152
- Express optional episode metadata as short string key/value entries in `attributes`.

‎backends/advanced/tests/test_timeline_prompt.py‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,10 @@ def _assert_strict_objects(schema: object) -> None:
1414

1515
def test_timeline_output_schema_has_no_open_objects():
1616
_assert_strict_objects(OUTPUT_SCHEMA)
17+
18+
19+
def test_timeline_output_schema_requires_grounded_episodes_and_assertions():
20+
episode = OUTPUT_SCHEMA["properties"]["episodes"]["items"]
21+
assert episode["properties"]["evidence_ids"]["minItems"] == 1
22+
assertion = episode["properties"]["assertions"]["items"]
23+
assert assertion["properties"]["evidence_ids"]["minItems"] == 1

0 commit comments

Comments
 (0)