DBX Studio AI Tools Reference
Tool Definitions Location
apps/api/src/orpc/routers/ai/tools.ts
Tool Executor Location
apps/api/src/orpc/routers/ai/toolExecutor.ts
Available Tools (AI_TOOLS array)
| Tool Name | Purpose | Required Params |
|-----------|---------|-----------------|
| read_schema | Get all tables and structure from schema store | schema_name |
| get_table_data | Preview rows from a table (generates SELECT) | table_name |
| execute_query | Run a SELECT/WITH query | sql |
| generate_chart | Create chart config (bar/line/pie/scatter/area/histogram) | chart_type, title, data_query |
| describe_table | Get table metadata from schemaTables DB table | table_name |
| get_table_stats | Get statistics summary for a table | table_name |
AI Providers
| Service ID | Provider | File |
|------------|----------|------|
| 1 | AWS Bedrock | ai-stream.ts (streaming) + providersWithTools.ts |
| 2 | OpenAI | providersWithTools.ts → callOpenAIWithTools |
| 3 | Anthropic | providersWithTools.ts → callAnthropicWithTools |
| 4 | Qwen | index.ts |
| 5 | Ollama | index.ts |
| 6 | Gemini | index.ts |
| 7 | Groq | index.ts |
| 8 | DBX Agent | External → MAIN_SERVER_URL |
Tool Format Conversions
// Anthropic format
getAnthropicTools() → { name, description, input_schema }
// OpenAI format
getOpenAITools() → { type: 'function', function: { name, description, parameters } }
// Bedrock format (in ai-stream.ts)
{ toolSpec: { name, description, inputSchema: { json: input_schema } } }
Adding a New Tool
- Add to
AI_TOOLSarray intools.ts - Add execution logic in
toolExecutor.ts→executeToolswitch - Implement the handler function
executeMyNewTool(input, context) - Both
getAnthropicTools()andgetOpenAITools()will pick it up automatically - For Bedrock, the conversion in
ai-stream.tsis also automatic
System Prompt Location
Main streaming system prompt: apps/api/src/routes/ai-stream.ts around line 132–172
oRPC chat system prompt: apps/api/src/orpc/routers/ai/providersWithTools.ts — SYSTEM_PROMPT_WITH_TOOLS constant