4 ms·
Interesting, might try it out at home. Documentation asserts: > I use preset SQL commands. I will never run destructive (even potentially destructive) commands
by femiagbabiaka 2y ago
Interesting, might try it out at home.
Documentation asserts:
> I use preset SQL commands. I will never run destructive (even potentially destructive) commands against your database.
This is enforced by taking the responsibility for generating SQL in order to evaluate state out of the hands of the LLM. The LLM simply interprets results of predetermined commands based on a set of prompts/playbooks: https://github.com/xataio/agent/blob/69329cede85d4bc920558c019df51f111cc5068d/apps/dbagent/src/lib/tools/playbooks.ts https://github.com/xataio/agent/blob/69329cede85d4bc920558c0...
- iLoveOncall 2y agoUntil it hallucinates and doesn't run the command that you expect or doesn't run the command at all? This doesn't take anything out of the hands of the LLM.
- tudorg 2y agoThere are things that can go wrong, but not so wrong to delete your data or cause outages. So there is a level of safety that I think is important at this moment. We do want to also allow executing generated SQL, but with an approval workflow.
- femiagbabiaka 2y agoA hallucination that doesn't use a predefined command, but instead hallucinates A. random SQL queries and B. destructive queries, seems unlikely. But as a best practice the user that the agent connects to the database with should be locked down, of course.
- esafak 2y agoI'd define the operations I allow in a composable language like Malloy and expose them to the LLM through MCP.