factcircuit
FactCircuit: an auditable claim-and-evidence verification loop with immutable provenance, staged checks, bounded retrieval, and reproducible evaluation.
DecisionBox connects to your data warehouse, runs autonomous AI agents that write and execute SQL, and surfaces validated insights and actionable recommendations. Self-host, run it as an enterprise de
DataGo · TypeScriptGitHub @decisionbox-ioOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
DecisionBox connects to your data warehouse, runs autonomous AI agents that write and execute SQL, and surfaces validated insights and actionable recommendations — without you asking a single question.
Taken from the repository README
Loading the full README.
Read the full README ↗Autonomous AI data discovery on your data warehouse. DecisionBox connects to your warehouse, runs an agent that decides what to investigate, writes and executes SQL, and ships validated insights and ranked recommendations — without you asking a single question.
Built for any team that makes decisions on data. Every finding is re-queried against your warehouse before it reaches you. Every SQL query, reasoning step, and decision logged and visible.
Your Data Warehouse DecisionBox Agent Dashboard
(BigQuery, Redshift, → (AI explores your data) → (Insights & Recommendations)
Snowflake, PostgreSQL,
Databricks, MSSQL)
writes SQL, validates
findings, generates
actionable advice
Claude (direct API), OpenAI, Ollama (local), Vertex AI (Claude + Gemini on GCP), AWS Bedrock, Azure AI Foundry, LiteLLM (self-hosted OpenAI-compatible proxy). Per-project configuration; editable prompts; per-model max output token limits. Custom TLS (private-CA upload or skip-verify) for on-prem HTTPS endpoints.
OpenAI, Vertex AI, Bedrock, Azure OpenAI, Voyage AI, Ollama. Used for insight/recommendation embeddings, semantic search, and /ask.
Per-project credentials, encrypted. MongoDB (AES-256-GCM default), GCP Secret Manager, AWS Secrets Manager, Azure Key Vault.
Webhook notifications on discovery completion: Slack, generic HTTP, or email — configurable per-project with templated payloads.
https://decisionbox-io.github.io/decisionbox-platformterraform/setup.sh) for GCP, AWS, or Azure with auth, resume, and destroy supportinit() + RegisterWithMeta()warehouse.RegisterMiddleware()) — wrap providers with logging, metrics, or access controlsapiserver.RegisterGlobalMiddleware()) — wrap all API requests (audit logging, custom auth)apiserver.Run() / agentserver.Run() with blank importsDecisionBox works with any queryable data. Point it at your data source and it discovers insights specific to your domain.
E-commerce — "Cart abandonment spikes 40% when shipping cost exceeds 8% of cart value. Free shipping threshold at $75 would recover an estimated 1,200 orders/month."
SaaS — "Teams that don't use the dashboard feature within 14 days of signup have 3x higher churn. An onboarding email on Day 3 highlighting dashboards could improve activation."
Fraud Detection — "Accounts created in the last 48 hours with 5+ high-value transactions account for 82% of chargebacks. Flagging this pattern would prevent $34K/month in losses."
Social Network — "Posts published between 6–8 PM with images get 3.2x more shares, but only 12% of creators post during this window. A scheduling nudge could boost platform-wide engagement."
SQL Performance — "The top 10 slowest queries consume 62% of warehouse compute. 7 of them scan full tables where a partition filter would reduce cost by ~$4,800/month."
Gaming — "Players who fail level 12 more than 3 times have 68% higher Day-7 churn. Consider adding a hint system or difficulty adjustment at this stage."
These are examples — create a domain pack for any industry and DecisionBox adapts its analysis accordingly.
Prerequisites: Docker and Docker Compose
# Clone the repository
git clone https://github.com/decisionbox-io/decisionbox-platform.git
cd decisionbox-platform
# Start MongoDB + Qdrant + API + Dashboard
docker compose up -d
# Open the dashboard
open http://localhost:3000
The dashboard will guide you through creating your first project. You'll need:
For detailed setup instructions, see the Installation Guide.
| Method | Use case | Guide |
|---|---|---|
| Docker Compose | Local dev, single server | Docker |
| Kubernetes (Helm) | Production on any K8s cluster | Kubernetes |
| Terraform (GCP) | Automated GKE provisioning | Terraform GCP |
| Terraform (AWS) | Automated EKS provisioning | Terraform AWS |
| Terraform (Azure) | Automated AKS provisioning | Terraform Azure |
| Setup Wizard | One-command GKE/EKS/AKS + Helm deploy | Setup Wizard |
Resources: Helm charts | Terraform modules | Helm values reference
Run locally without Docker (recommended for development):
# Start MongoDB + Qdrant only
docker compose up -d mongodb qdrant
# Terminal 1: Run the API
make dev-api
# Terminal 2: Run the Dashboard
make dev-dashboard
# Open http://localhost:3000
Build binaries:
make build # Build agent + API binaries
make build-dashboard # Build dashboard
Run tests:
make test # All tests (Go + UI)
make test-go # Go unit tests only
make test-integration # Integration tests (needs Docker)
make test-llm # LLM provider tests (needs API keys)
DecisionBox is built on a plugin architecture. You can add:
Domain packs define how the AI analyzes data for a specific industry. A domain pack includes:
Domain packs are stored in MongoDB and managed from the dashboard. Built-in packs (e-commerce, social, gaming) are seeded on first startup. Create your own from the dashboard or import a portable JSON file — no code changes needed.
Add support for any LLM by implementing the llm.Provider interface (one method: Chat).
See Adding LLM Providers.
Add support for any SQL warehouse by implementing the warehouse.Provider interface.
See Adding Warehouse Providers.
Wrap warehouse providers or HTTP handlers with custom logic using the middleware registration system:
warehouse.RegisterMiddleware() wraps the warehouse provider (e.g., query logging, access controls, cost tracking)apiserver.RegisterGlobalMiddleware() wraps all API requests (e.g., audit logging, custom auth)agentserver.Run() and register middleware via init() blank importsKey environment variables:
| Variable | Default | Description |
|---|---|---|
MONGODB_URI | (required) | MongoDB connection string |
MONGODB_DB | decisionbox | Database name |
QDRANT_URL | http://qdrant:6334 | Qdrant endpoint for vector search |
SECRET_PROVIDER | mongodb | Secret storage: mongodb, gcp, aws, azure |
RUNNER_MODE | subprocess | Agent runner: subprocess, kubernetes |
LLM_TIMEOUT | 300s | Timeout per LLM API call |
TELEMETRY_ENABLED | true | Anonymous usage telemetry (details) |
Full reference: Configuration.
DecisionBox collects anonymous usage telemetry to help improve the product. No PII, query content, or credentials are ever collected. Disable with TELEMETRY_ENABLED=false or DO_NOT_TRACK=1. See TELEMETRY.md for full details.
decisionbox.io/docs — Full documentation including:
| Component | Technology |
|---|---|
| Agent | Go 1.26 |
| API | Go 1.26, net/http (stdlib) |
| Dashboard | Next.js 16, React 19, TypeScript, Mantine 8 |
| Database | MongoDB |
| Vector store | Qdrant (HNSW) |
| Warehouses | BigQuery, Redshift, Snowflake, PostgreSQL, Databricks, Microsoft SQL Server |
| LLM providers | Claude, OpenAI, Ollama, Vertex AI, Bedrock, Azure AI Foundry, LiteLLM |
| Embedding providers | OpenAI, Vertex AI, Bedrock, Azure OpenAI, Voyage AI, Ollama |
| Secret providers | MongoDB (AES-256-GCM), GCP Secret Manager, AWS Secrets Manager, Azure Key Vault |
| CI/CD | GitHub Actions, GHCR |
| Deployment | Docker Compose, Kubernetes (Helm), Terraform (GCP, AWS, Azure) |
We welcome contributions. See Contributing Guide for development setup, testing, and PR process.
See the full roadmap on the project board.