<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/the-data-context-layer-for-agents-yoni-michael-brandon-callender-typedef-dsy3m7roi" -->

---
title: The Data Context Layer for Agents — Yoni Michael &...
description: Two Rust types are both called PostingList, but changing them breaks different code. A text search finds both; a context graph preserves their identities and...
canonical: https://daily.dev/posts/the-data-context-layer-for-agents-yoni-michael-brandon-callender-typedef-dsy3m7roi
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: The Data Context Layer for Agents — Yoni Michael & Brandon Callender, Typedef | daily.dev
og:description: Two Rust types are both called PostingList, but changing them breaks different code. A text search finds both; a context graph preserves their identities and...
og:url: https://daily.dev/posts/the-data-context-layer-for-agents-yoni-michael-brandon-callender-typedef-dsy3m7roi
og:image: https://api.daily.dev/og/posts/DSY3M7ROi.png
og:image:alt: The Data Context Layer for Agents — Yoni Michael & Brandon Callender, Typedef
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# The Data Context Layer for Agents — Yoni Michael & Brandon Callender, Typedef

**[AI Engineer](https://daily.dev/sources/aidotengineer)** · 106 min read · 0 upvotes · 0 comments

## Summary

Two Rust types are both called PostingList, but changing them breaks different code. A text search finds both; a context graph preserves their identities and exposes their separate dependencies. Yoni Michael and Brandon Callender use that distinction to connect data engineering and coding agents. For a data system, valid SQL can still produce the wrong answer when a join multiplies rows or a refactor changes a metric's meaning. Michael describes a context layer that computes grain, lineage and relationships from transformation code, checks join assumptions against real data, and makes the resulting evidence queryable before an agent acts.

Callender builds a smaller version over selected crates in Qdrant. Tree sitter extracts syntax, Rustdoc resolves symbols, and Neo4j stores the relationships. An agent can then ask which symbols depend on a particular type instead of repeatedly searching files and inferring connections. The workshop's central complication comes next: given better graph tools, the agent may still choose grep. Tool naming, familiar output formats and prompting become part of the interface, and evaluations must measure whether the tools are actually used. Cached comparisons separate getting an answer right once from getting it right across repeated runs, while trace inspection catches flaws hidden by a favorable score. The closing discussion explores incremental indexing, Python's harder resolution problem, small auditable semantic operations with Fenic, and the work required to extend a classroom example into a maintained context layer.

Speaker info:
- https://www.linkedin.com/in/yonimichael
- https://x.com/yoni_michael
- https://www.linkedin.com/in/bcallender/
- https://github.com/bcallender/agent-context-workshop

Timestamps:
0:00 - The missing context for data agents
3:44 - Impact analysis, joins, and safe changes
5:05 - Distributed context and table grain
6:29 - Valid SQL can still explain the wrong cause
9:02 - Four facts an agent needs
10:13 - Join semantics and fan out
12:42 - Deterministic extraction and data profiling
14:16 - Persist a queryable context graph
17:33 - Analyze downstream changes before acting
19:07 - Safe joins and metric definitions
20:55 - Evaluate data engineering tasks
22:32 - Five context engineering patterns
26:31 - Brandon's coding agent workshop
29:06 - Two types with the same name
31:35 - Extract, persist, and query code context
34:08 - Syntax, symbol resolution, and meaning
36:22 - Notebook one: build the code graph
39:28 - Resolve canonical symbol identities
41:15 - Load nodes and edges into Neo4j
42:09 - Build a blast radius tool
44:08 - Wire an agent to the graph
46:01 - Write additional graph tools
47:10 - Semantic summaries with Fenic
48:56 - Maintenance and language limitations
53:53 - Data engineering evaluations and scope
57:33 - The agent still chooses grep
1:00:20 - Design tools around the agent's habits
1:02:07 - Notebook two: compare agents fairly
1:04:24 - Deterministic scoring and evidence
1:06:32 - One correct run versus repeated consistency
1:08:40 - Measure graph tool adoption
1:14:08 - Call graphs, catalogs, and data benchmarks
1:21:08 - Read traces and challenge the scoreboard
1:25:40 - Extend beyond Rust and ask small questions
1:31:36 - Boundaries, indexing, and stable eval snapshots
1:39:20 - Ontologies and the broader data context vision

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.youtube.com/watch?v=KhRjivBSwiw>

---

Tags: [#ai](https://daily.dev/tags/ai), [#ai-engineering](https://daily.dev/tags/ai-engineering)

[View this post on daily.dev](https://daily.dev/posts/the-data-context-layer-for-agents-yoni-michael-brandon-callender-typedef-dsy3m7roi)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"The Data Context Layer for Agents — Yoni Michael & Brandon Callender, Typedef","url":"https://daily.dev/posts/the-data-context-layer-for-agents-yoni-michael-brandon-callender-typedef-dsy3m7roi","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/the-data-context-layer-for-agents-yoni-michael-brandon-callender-typedef-dsy3m7roi"},"datePublished":"2026-10-11T12:47:48.239Z","dateModified":"2026-10-11T14:34:57.543Z","description":"Two Rust types are both called PostingList, but changing them breaks different code. A text search finds both; a context graph preserves their identities and...","image":"https://i.ytimg.com/vi/KhRjivBSwiw/sddefault.jpg","thumbnailUrl":"https://i.ytimg.com/vi/KhRjivBSwiw/sddefault.jpg","isAccessibleForFree":true,"articleSection":"AI Engineer","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"AI Engineer","logo":"https://media.daily.dev/image/upload/s--u5PucxNT--/f_auto/v1724338940/logos/aidotengineer","url":"https://daily.dev/sources/aidotengineer"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/the-data-context-layer-for-agents-yoni-michael-brandon-callender-typedef-dsy3m7roi","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"ai,ai-engineering","timeRequired":"PT106M","video":{"@type":"VideoObject","name":"The Data Context Layer for Agents — Yoni Michael & Brandon Callender, Typedef","description":"Two Rust types are both called PostingList, but changing them breaks different code. A text search finds both; a context graph preserves their identities and...","thumbnailUrl":"https://i.ytimg.com/vi/KhRjivBSwiw/sddefault.jpg","uploadDate":"2026-10-11T12:47:48.239Z","duration":"PT106M","url":"https://api.daily.dev/r/DSY3M7ROi","embedUrl":"https://www.youtube.com/embed/KhRjivBSwiw"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"AI Engineer","item":"https://daily.dev/sources/aidotengineer"},{"@type":"ListItem","position":3,"name":"The Data Context Layer for Agents — Yoni Michael & Brandon Callender, Typedef"}]}
```

