The open-source agentic analytics platform for conversational querying, visualization, and deep analysis of enterprise data warehouses, with memory, rules governance, and full observability.
Core Positioning#
Bag of Words is an agentic analytics platform for enterprise data scenarios, enabling complete workflows from querying to visualization and deep analysis reports via natural language conversation. The platform does not store business data itself but accesses 20+ data sources in real-time through connectors.
Intelligent Analysis#
- Agentic Loop: Intelligent loop based on tool calling, reasoning, and reflection to automatically convert natural language into SQL and analysis
- Memory System: Stores context and preferences at the table/column level, AI learns over time, semantic layer updates approved via review-gate
- Multi-Source Support: Snowflake, BigQuery, PostgreSQL, Redshift, Databricks SQL, ClickHouse, MongoDB, MySQL, DuckDB, Azure Data Explorer, plus SaaS sources like NetSuite, Salesforce, Tableau, PowerBI, PostHog
- Multi-LLM Providers: OpenAI, Anthropic, Gemini, Ollama, Azure OpenAI, vLLM, LM Studio, etc.
Governance & Security#
- Rules Management: Version control and approval workflows for instructions, terminology, and guardrails, with Git sync for dbt, Markdown, and other knowledge assets
- Access Control: RBAC, SSO (Google Workspace / OIDC), LDAP/AD integration, Fernet encryption
Observability#
Full agent traces, plans, guardrails, LLM judges, evals, and feedback tracking, with optional OpenTelemetry export (gRPC / HTTP).
Collaboration & Sharing#
- Dashboards: Instant creation and sharing of dashboards, conversations, saved queries, and analysis results
- Catalog: Store, share, and explore reusable queries and datasets
- MCP Support: Usable via Cursor, Claude Desktop, and other AI clients with request and data operation tracking
Deployment#
- Docker single container:
docker run -p 3000:3000 bagofwords/bagofwords - Docker Compose (recommended for production): Includes Caddy SSL termination and PostgreSQL
- Kubernetes: Deployment configs in
k8s/directory - Core config via
bow-config.yaml, supporting auth modes, OIDC, LDAP, telemetry toggles, etc.
Architecture#
- Backend: Python FastAPI with Alembic database migrations
- Frontend: Vue + Nuxt generates static SPA served directly by FastAPI, no Node.js at runtime
- Database: Default SQLite, recommended PostgreSQL 16
- Build: Multi-stage Docker build (Ubuntu 24.04 + Python runtime)
- Tools: Rust-based
qvd2parquet(QlikView conversion),bow-eval.pyevaluation script - AI IDE Integration: Built-in rule files in
.cursor/rulesand.claudedirectories
Open-source portion uses AGPL-3.0; enterprise features under /ee use a separate license. Latest version v0.0.369 with 139 total releases.