Videos H7puB0RwJMM
Citation Needed: Provenance for LLM-Built Knowledge Graphs — Daniel Chalef, Zep AI
Scene timeline
48 shot(s).
keyframes kept every frame deduplicated
What was stored
- cues
- 205
- whisperx 205
- chunks
- 35
- from 205 cues
- keyframes
- 13
- kept of 48 captured
- frames with text
- 13
- 220 lines read
- chapters
- 11
- from the source metadata
- keyframe bytes
- 5.4 MB
- word timings on 205 cues
Provenance
| stage | state | model | started | took |
|---|---|---|---|---|
fetch |
done | — | 2026-08-10 00:06 | 1m 51s |
stt |
done | — | 2026-08-10 00:08 | 18s |
chunk |
done | — | 2026-08-10 00:08 | 0s |
text_embed |
done | — | 2026-08-10 19:43 | 0s |
keyframe |
done | — | 2026-08-10 00:08 | 1m 59s |
ocr |
done | — | 2026-08-10 00:10 | 5s |
frame_embed |
done | — | 2026-08-10 19:43 | 3s |
Frames, and what the machine read
-
- AlEngineer0.96
- World's Fair0.97
-
- AlEngineer0.95
- World's Fair0.99
-
- LAB & PLATINUM SPONSORS0.98
- Amazon AGI Lab0.98
- ANTHROP\C1.00
- Google DeepMind1.00
- MINIMAX0.94
- OpenAI0.92
- Akamai1.00
- arize1.00
- aws1.00
- Braintrust bright data0.99
- B1.00
- Browserbase1.00
- docker1.00
- :neo4j0.93
- ORACLE1.00
- PayPal1.00
- qodo1.00
- reducto1.00
- Sonar1.00
- Makers of0.99
- togetherai1.00
- Unblocked1.00
- WorkOS1.00
- SonarQube1.00
-
- AlEngineer0.99
- World's Fair1.00
-
- AlEngineer0.97
- zep1.00
- World'sFair1.00
- AI ENGINEER WORLD'S FAIR 2026 - GRAPHS TRACK0.97
- PRESENTED BY1.00
- Citation needed0.99
- Microsoft1.00
- Provenance for LLM-built knowledge graphs0.99
- Daniel Chalef0.97
- FOUNDER, ZEP AI·GRAPHITI0.98
- Engineering the future of Al0.98
- World'sFair1.00
-
- AlEngineer0.99
- OPEN SOURCE1.00
- World's Fair0.99
- Graphiti1.00
- getzep/graphiti1.00
- ★ 28.2k0.97
- Temporal knowledge graphs, built from your data by0.98
- LLM extraction.0.99
- RUNS ON1.00
- The engine behind Zep's agent memory.0.99
- Neo4j1.00
- FalkorDB1.00
- The lineage structure in this talk ships in Graphiti today.0.99
- SHIPS IN GRAPHITI TODAY1.00
- Amazon Neptune1.00
- Zep's graph DB0.97
- König0.99
- PATTERN - BUILD ON IT0.97
- The scoping patterns are what Zep has built on Graphiti.1.00
- zep0.99
- Citation Needed · AIE World's Fair 20260.98
- TRACK 5• JULY 2,20260.95
- World's Fair0.98
- Graphs1.00
-
- AlEngineer0.99
- THE PROBLEM1.00
- World's Fair0.98
- Why a source link on the fact isn't enough0.99
- The obvious fix: store a source_id on the fact.0.99
- ETL - WHERE IT WORKS0.96
- LLM EXTRACTION - WHERE IT BREAKS0.96
- Several sources produce one fact. Its wording appears in0.99
- many → one0.96
- none.1.00
- doc-17 · orders.csv0.97
- merge1.00
- "J. Smith" and "John Smith" merge into one identity.0.99
- ↓1.00
- invalidate1.00
- Newer data supersedes the old fact.0.99
- fact - value copied verbatim0.97
- source_id: doc-17/0.94
- One source, one value, copied. Lineage is one-to-one and0.98
- sourcid: ?0.95
- Lineage must be set-valued, survive mutation, answer0.99
- deterministic.1.00
- queries.1.00
- zep1.00
- Citation Needed · AlE World's Fair 20260.98
- TRACK 5· JULY 2, 20260.96
- World's Fair0.95
- Graphs1.00
-
- AlEngineer0.99
- THE STRUCTURE0.99
- World's Fair0.99
- Provenance is a graph problem0.98
- DERIVED - ENTITIES AND FACTS0.98
- provenance link0.97
- episode1.00
- derived1.00
- Patient1.00
- HAS_ALLERGY1.00
- Penicillin1.00
- fact: "Patient has a penicillin allergy"1.00
- GROUND TRUTH - EPISODES, STORED VERBATIM0.99
- ep-4f21 ehr_export.json1.00
- ep-7c88 lab_results.pdf0.98
- ep-9a03 intake_chat0.98
- { "allergy": "penicillin",0.99
- "positive skin test,0.99
- "I think I'm allergic0.98
- "recorded_by": "Dr. Osei" }0.97
- penicillin G._"0.94
- to penicillin?"0.98
- derived layer above, ground truth below0.99
- zep1.00
- Citation Needed · AIE World's Fair 20260.97
- TRACK 5· JULY 2, 20260.95
- World's Fair0.92
- Graphs1.00
-
- AlEngineer1.00
- PATTERNS1.00
- World's Fair0.99
- Metadata projection: tag once, inherit everywhere1.00
- Tag the episode once, at ingestion. Everything derived from it inherits the tag.0.99
- DERIVED - INHERITS THROUGH EPISODE LINKS0.99
- PRESENTED BY0.99
- Patient1.00
- HAS_ALLERGY1.00
- Penicillin1.00
- Microsoft1.00
- source=EHR0.99
- inherited1.00
- fact: "Patient has a penicillin allergy"1.00
- source=EHR- inherited0.97
- source=EHR· inherited0.98
- GROUND TRUTH - TAGGED ONCE, AT INGESTION0.98
- source=EHR·verified=true0.99
- ep-4f21 ehr_export.json1.00
- ep-7c88 lab_results.pdf1.00
- ep-9a03 intake_chat0.98
- { "allergy": "penicillin",0.98
- ".positive skin test,0.98
- "I think I'm allergic1.00
- "recorded_by": "Dr. Osei"}0.97
- penicillin G."0.95
- to penicillin?"1.00
- zep0.99
- Citation Needed · AIE World's Fair 20260.97
- TRACK 5· JULY 2, 20260.95
- World's Fair0.95
- Graphs1.00
-
- AlEngineer0.98
- PATTERNS1.00
- World'sFair1.00
- Mixed-trust parentage: any parent, or all parents?0.99
- A fact has three parents. Two are verified=t rue. One is not. Is the fact verified?0.98
- fact - three parent episodes0.97
- ep-4f21 · verified=true0.97
- ep-7c88 · verified=true0.97
- ep-9a03 · verified=false0.97
- ANY1.00
- "Patient has a penicillin allergy" — hearsay still blocks the prescription. The fatal failure is the false0.99
- negative.1.00
- ALL1.00
- "Consent on file for the procedure" — proceed only when every source is verified. The fatal failure1.00
- is the false positive.0.99
- The right predicate depends on which failure hurts.1.00
- zep0.99
- Citation Needed · AIE World's Fair 20260.98
- TRACK 5• JULY 2, 20260.96
- World'sFair1.00
- Graphs1.00
-
- AlEngineer0.98
- CLOSING1.00
- World'sFair1.00
- Key insights0.97
- 011.00
- LLM graph construction is lossy and generative0.99
- PRESENTED BY1.00
- — lineage must be engineered in, not logged after.1.00
- Microsoft1.00
- 021.00
- Store sources verbatim; link every1.00
- derived node and edge back to them.1.00
- 031.00
- The same edges give you compliance,0.99
- verification, debugging, filtering, and deletion.1.00
- github.com/getzep/graphiti1.00
- zep1.00
- Citation Needed - AIE World's Fair 20260.98
- TRACK 5· JULY 2, 20260.95
- World'sFair1.00
- Graphs1.00
Transcript
205 cues· 2,379 words· 13,331 chars
- 0:12 So LLMs are really great at pulling together data from many sources, but they do so non-deterministically.
- 0:23 They interpret and synthesize data, generating a summary, an extracted fact, a structured record, and this output artifact may not appear verbatim in the source inputs.
- 0:36 Synthesis often destroys the paper trail of how these outputs were originated.
- 0:42 And I'm going to be talking today about provenance, which is tracing how an artifact was built and why.
- 0:51 Legal compliance often demands provenance, but it's also useful for debugging, deciding which sources you trust, and which artifacts to delete.
- 1:03 And solving this at scale presents a real engineering challenge.
- 1:10 Let me get my next slide going here.
- 1:14 So my team and I built Graffiti, the open source temporal graph framework.
- 1:19 And ZEP, our enterprise agent memory infrastructure, is built on Graffiti.
- 1:26 Our customers derive context or agent memory from many user touchpoints.
- 1:32 Those could be chat, but not only chat.
- 1:35 Often it's voice transcripts, email, business data.
- 1:39 And our customers have struggled with provenance.
- 1:42 Where did this fact come from?
- 1:45 What is the veracity of this fact?
- 1:47 And over the next few slides, I'll share how we engineered solutions to this problem.
- 1:55 So here's a stylized failure mode.
- 1:59 An agent retrieves context about a patient.
- 2:03 So this is a healthcare scenario.
- 2:06 And what comes back is a clean, confident fact, patient has a penicillin allergy.
- 2:13 And the context was synthesized from three sources, a lengthy EHR record, electronic health record, a PDF lab report, and something a patient typed into an AI intake chat.
- 2:30 If the agent presents the fact to a doctor in a treatment scenario without clearly indicating the source was from the patient themselves, it may mislead the doctor.
- 2:44 When an agent retrieves context, can we point to the exact source and its veracity?
- 2:51 For complex agent applications, the answer is often no.
- 2:58 So I can imagine you're probably thinking, but can't we just store like a source ID on the fact?
- 3:07 This can work well in structured data warehouses or data lakes.
- 3:11 A pipeline outputs one value, copied or mutated deterministically, and the sources are known and easily marked.
- 3:20 But with context pipelines run by LLMs, this breaks in several ways.
- 3:26 You prompt an LLM with several sources.
- 3:29 Many facts are each synthesized from one or more of the sources.
- 3:35 Somebody like Jay Smith and John Smith are merged into a single entity, one identity, and John's facts are derived from many different places.
- 3:46 So new data might invalidate old facts,
- 3:50 The store keeps changing underneath your pointer.
- 3:53 And a depend-only log, which often might come to mind here, gets very hard to manage at scale as there's so many changes occurring.
- 4:05 So lineage needs to be an evolving set and survive mutation.
- 4:13 So sets of links between facts and their sources can be modeled on a graph as relationships.
- 4:20 So provenance in a context store containing facts is a knowledge graph.
- 4:28 In this example, we have three source data.
- 4:31 In graffiti, they're turned episodes.
- 4:34 We have two entities extracted from the episodes, patient and penicillin, and an edge between them.
- 4:44 This graph triple, the two entities and the edge, can be hydrated as a fact
- 4:50 patient has a penicillin allergy.
- 4:54 Tracing a fact to its source is just a graph walk.
- 5:01 So it's pretty simple and easy to map source to fact on the first right.
- 5:09 But keeping it correct while the graph changes can be really hard.
- 5:16 When new data
- 5:18 So for example, when two entities merge, the merged entity needs to keep all source links from both, otherwise we silently drop a source and we lose lineage.
- 5:32 And when new data contradicts existing data, mutating it, we need to capture this lineage too.
- 5:41 In the rightmost card, a fact is rendered invalid by new data.
- 5:45 And in Graffiti, an invalid at date is added to the mutated edge.
loading
Chapters
- 0:00 Why LLM synthesis destroys the paper trail
- 1:10 Graphiti, Zep, and the provenance problem
- 1:47 The failure mode: a penicillin allergy from three sources
- 2:53 Why a source ID does not survive an LLM pipeline
- 4:20 Provenance as a graph: tracing a fact is a walk
- 5:09 Keeping lineage correct through merges and invalidation
- 6:06 Metadata projection: tag a source once
- 7:25 Mixed trust parents: allergy flags versus consent
- 8:57 Deletion: GDPR erasure through the same edges
- 10:26 Benefits: compliance, veracity, and debuggability
- 11:31 Q&A: cost, dedup, and why not just markdown