How much semantic modeling do your AI agents need?
A meeting room booking example shows when SQL is enough, when a property graph helps, and what would justify RDF or OWL.
Vishwa Teja Vangari · Naperville, Illinois, USA · Greater Chicago Area
Senior Director of Engineering at Egen. I lead the application, data and AI engineering teams for a large retail client, and the team behind the platform our teams use to build and run AI agents. On my own time I study ontology-grounded agents, to learn how to write a business down so that an agent can follow it, show its evidence, and refuse when it can't.
What I work on
An agent platform needs a model of the business to reason over. Both need an engineering organization that can ship them safely. All three get tested in operations, where a wrong answer becomes a missing item in a customer's order.
The loop that calls the model and routes its tool calls. Tool permissions, human approval before a tool call that acts, and evaluation suites before each release. An orchestrator that hands work to domain agents over A2A, each with its own MCP server.
See the work 02, MeaningOntology, knowledge graph, semantic layer and context layer. The business written down once, in a form an agent has to follow, and mapped to governed data.
Read the learning notes 03, DeliveryA spec-first SDLC on an engineering harness. Shared coding agents draft and validate, checks block, and engineers make the product and release calls.
See how it runs 04, OperationsOrders, inventory, picking, substitutions and delivery for a large retailer. This is where I learned what a platform has to survive.
See the fulfillment modelThe stack I work across
The systems my teams and I have delivered in the last few years sit somewhere in this picture. An agent is only as useful as the knowledge layer under it, and that layer depends on governed data. I make decisions at every layer, and most of the hard problems I've seen show up where one layer hands off to the next.
Selected engineering work
For each system: the problem, the decision I made that shaped the design, and what it took the team to run it in production.
Personal learning
Outside of work I study the layer under enterprise agents: what an ontology, a semantic layer and a context layer each add, and where retrieval on its own falls short. I try the ideas on synthetic data and write about what I learn.
Scope. This is personal learning. I do it on my own time, with synthetic data, to learn and experiment. It is not work for any company or client, and the views are my own.
Point of view
I hold these until production proves one of them wrong. The learning notes and the harness page work them through with examples.
The data platforms I work with now ship a semantic layer or an ontology feature, and each one arrives empty. Someone who owns the meaning still has to write down each entity, rule and definition, and keep them current as the business changes. The model can draft that; it can't decide it. In the programs I've seen, the deciding is the step most often skipped.
A brand name and the ingredient inside it don't look alike as text. They are linked because someone declared the link, and a drug terminology keeps ingredient, strength, dose form and brand as separate things for that reason. If that declaration isn't in the system, a larger model won't reliably find it, and the miss will look like a confident answer.
A longer prompt isn't a context layer. The context layer computes what this agent, acting for this person, at this step, is allowed to see. It can be tested and audited like any other access decision.
An agent that can't ground an answer should say so and give the reason. I count a wrong refusal as a defect and a missing refusal as a worse one. When it does answer, the definition it used and the data behind it come with the answer, or nobody should act on it.
Models change every few months. Tool scope, permissions, evaluation suites and gates stay. I choose models by running them on my own questions, and I design for swapping them.
How I build
None of these are original. Each one came from a production incident, a migration, or a design review.
This applies to people and to agents. The spec names the behavior, the data it touches and how we will know it works. A change without one waits, however fast the draft would be.
A knowledge graph holds products, categories, relationships and rules. Orders stay where they are written, and the ontology maps between the two.
This shape lets one store platform serve more than one brand, and it lets the in-store app work offline.
Generated product content goes live only after a person reviews it. Customer notifications are batched and throttled across the order lifecycle.
Writing
New writing is published here first, then on LinkedIn and Medium. The hands-on Kafka series from 2019 is still on Medium. Subscribe by RSS or follow on LinkedIn.
Series
A series on ontology-grounded agents. Retrieval finds text that resembles a question. An enterprise needs the records that satisfy it, with evidence.
A meeting room booking example shows when SQL is enough, when a property graph helps, and what would justify RDF or OWL.
In a synthetic test, an AI agent returned 3 correct patients and quietly missed 9. Here is why that happened, and how to check whether a list of your own is complete.
A grocery substitution explains ontology, knowledge graphs, semantic and context layers, and how business and technology teams keep their definitions trustworthy.
The OAUTHBEARER SASL mechanism with custom callback handlers that validate tokens against Okta, wired to ACLs, tested end to end. Companion repo: kafka-oauth2.
Streams versus tables, keys and timestamps, filters, joins and aggregations, without writing a Kafka Streams topology. Docker based.
Speaking
Each talk is built from systems I've run or experiments I've measured. I can give them at 25 or 45 minutes, to engineers or to a leadership audience. Abstracts and a speaker bio are on the about page.
Open source
This is the companion code for the Kafka series, plus a few tools I needed and couldn't find. It all lives under github.com/vishwavangari.
Configuration and walkthrough for hardening a Kafka cluster with SCRAM authentication, ACL authorization and SSL. Companion to the security article.
Shell, config kafka-oauth2OAUTHBEARER callback handlers that validate tokens against Okta, for brokers, producers and consumers.
Java burrowA fork of LinkedIn's Burrow consumer-lag monitor that adds SCRAM-SHA-256 and SHA-512, published as a Docker image with a compose setup and dashboard.
Go graphite-kafka-connectA Kafka Connect sink connector that writes topic data to Graphite for time-series dashboards.
ScalaExperience
I joined Egen as a developer in 2016 and moved through staff and principal engineer roles into the leadership job I hold now. Before Egen I worked on clinical data in healthcare and on dealer systems for an automotive manufacturer. The longer version is on the about page.
Application, data and AI engineering teams for a large retail client, and the team behind the platform our teams use to build and run AI agents. Member of the leadership team.
Solution architecture and design reviews across projects: service boundaries, data stores, deployment topology and each service's availability target.
Streaming and data pipelines, and the tooling around them. The Kafka articles and the GitHub repositories come from this period.
Services and front ends for healthcare clients, and the clinical data pipelines behind them.
Web and iPad applications for research projects, alongside the master's degree.
Dealer communication and sales systems for Nissan Europe. My first lesson in how enterprise software is released and supported.