Building AI agents that answer correctly and take action
Any LLM can write SQL. Very few know what "active customer" means at your company. Solid's semantic layer carries that meaning; my work is wiring it into the agent tools enterprises already run, and fixing models when the answers drift.
What I did
- Connected Solid to the agent frameworks enterprises already use, including CrewAI, Langflow, Microsoft Copilot Studio, Workato, Claude, OpenAI, and MCP-based agents, so agents reach data through governed definitions instead of raw tables.
- Built agents that get governed SQL from Solid, run it against the warehouse, and act on the results: posting to Slack, taking actions in business systems, and recommending next steps.
- Built a standard agent framework and applied it to use cases in health-insurance claims, pharmacy benefits, banking, and hospitality operations. The agents can take actions across many different systems, with a human in the loop, and work the same way connected to a customer's environment. I share the code with customers who are new to building agents, so their teams can replicate it.
- Built a semantic-model improvement agent from what I learned on a stalled pilot. It builds models, checks question coverage, proposes fixes, and flags instruction issues. I architected it to run first as an internal back-office tool and later inside Solid's product, to improve customer outcomes.
Any framework
CrewAI, Langflow, Copilot Studio, Workato, Claude, OpenAI, and MCP-based agents
Human in the loop
Agents that take action across business systems, with a person approving the consequential steps
Where Solid sits
Context and data sources
Solid semantic layer
AI agents and delivery
One question, end to end
- 1. Someone asks a question in Slack or on the web
- 2. Solid MCP generates SQL from the semantic model
- 3. The SQL runs in the warehouse with that user's permissions
- 4. The agent analyzes the results and acts
- 5. Insights, raw data, and the query go back to the user
More detailLess detail
- Also contributed to the Apache Ossie project by writing a converter for Solid's semantic models: a Python package that converts models between Solid and Ossie in both directions, offline.
Repeat until the benchmark moves
Tools & tech
- MCP
- CrewAI
- Langflow
- Copilot Studio
- Workato
- Claude
- OpenAI
- Python
- Snowflake
- Cursor
What I learned
The first question is always which layer failed: the semantic model, the platform, the calling agent, or the evaluation. Changing a model to fix what is really an agent problem just moves the failure somewhere else.

