Thanks for the question. Avoiding context bloat and overall engineering the context is (still) most of work. What’s been working:
- Role scoped calls: data modeling, code gen, are separate calls where each gets its own tailored context
- Context is divided into sections (tables, dbt, instructions, code) and each is getting a hard limit budget (required some experimentation, liked Cursor’s priompt project)
- agentic retrieval: agents can call tools to fetch or search data/metadata when needed
- summaries for different objects: messages, widgets; reports, data samples/profiles.
I wrote some more about how the agent and context work in the docs
The hardest problems building this weren’t in the LLM logic, but in everything around it —-observability, access control, and managing context across dbt, Tableau, and code. Finding the balance between a strict semantic layer and LLM agency was tricky. Too rigid and it loses llm magic, too loose and reliability breaks
What worked for me and my users was leaning on instructions + AGENTS.md + metadata as a lighter abstraction layer — structured enough for trust, but flexible enough to keep the model useful.
If you’ve been exploring similar ideas or trying to productionize AI analysts, I’d love to hear how you’re approaching it
As a ruby developer who had to move to python for its data science support, it’s very nice to see that people help Ruby to evolve into this direction. Ruby is a beautiful language that should be expanded beyond web development and these kind of libraries will make it happen.
But, as encouraging as it is, if your’e thinking about developing a real, production-ready, data science project in ruby - don’t. At least not yet. The libraries around machine learning, neural networks etc are old, unmaintained and usually don’t even work.
This is a problem we (accessible.ai) have been working on in the past few months.
We're still tuning and improving but with a multi-modal approach of signal processing, speech recognition and text analysis we were able to come up with a pretty good MVP to solve this issue.
You can take a look at our small demo here: http://accessible.ai/nav
Swift uses Automatic Reference Counting (ARC) to track and manage your app’s memory usage. In most cases, this means that memory management “just works” in Swift, and you do not need to think about memory management yourself. ARC automatically frees up the memory used by class instances when those instances are no longer needed.”
Reminds the days of FrontPage and how I got started. I guess it's good for beginners. But I don't see a reason to replace my good old fashion editor vim.
- Role scoped calls: data modeling, code gen, are separate calls where each gets its own tailored context
- Context is divided into sections (tables, dbt, instructions, code) and each is getting a hard limit budget (required some experimentation, liked Cursor’s priompt project)
- agentic retrieval: agents can call tools to fetch or search data/metadata when needed
- summaries for different objects: messages, widgets; reports, data samples/profiles.
I wrote some more about how the agent and context work in the docs