yolo-data

简体中文 English

YOLO Data Agent | Governed Enterprise Analytics Platform

Ask business questions in natural language, then continue exploring the results in the same conversation—with business definitions, permissions, and execution rules managed by the platform.

YOLO Data is a self-service analytics platform for business teams. Users can ask follow-up questions, compare and break down results, while the platform can request clarification when key intent is ambiguous.

It brings language models, metric definitions, business datasets, data permissions, conversation memory, workspace artifacts, feedback, and audit records into a governed analytics workflow.

How It Differs from a General-Purpose Agent

General-purpose agents are designed for open-ended tasks and may choose among tools dynamically. YOLO Data focuses on governed business-data analysis: the model interprets and explains, while the platform controls the available semantics, data scope, query validation, and execution.

Dimension General-purpose agent (typical) YOLO Data Agent
Scope Open-ended tasks and flexible tool use Business questions within configured topics, metrics, and datasets
Data semantics May infer meaning from schemas at runtime Administrators configure field semantics, metric definitions, defaults, and topic scope
Query execution May generate SQL or invoke general data tools Contract-first: the model proposes structured intent; the platform validates and compiles read-only queries, without exposing raw SQL to the model
Access control Often delegated to prompts, tool setup, or upstream services Topic/metric/dataset grants and row/column policies are enforced server-side
Continuity and evidence Often centered on conversation context and transient tool output Conversations, result snapshots, workspace artifacts, feedback, and audit records support follow-up and review

YOLO Data is not intended to replace general agents for every task. It provides a dedicated execution framework for analytics where definitions should be consistent, access must be governed, and results need to be reviewable. Skills and MCP extend integrations without bypassing query validation or data permissions.

Screenshots

Start a query

Conversational analytics

DataAgent configuration

Core Capabilities

Core Workflow

Business question → topic and semantic resolution → structured query contract
                   → field/time/permission validation → metric or read-only dataset execution
                   → stable result and explanation → memory, workspace, feedback, and audit

The governing principle is “model proposes, platform decides”: the model helps interpret and plan, while platform rules control the query contract, authorized scope, and execution.

Business Rules and Prompts

Prompts may control presentation and conclusions. Business terminology, enum mappings, formulas, and default definitions should live in:

Architecture

The memory context uses six layers: L0 system prompts, L1 shared organizational memory, L2 long-term user memory, L3 conversation window, L4 working memory, and L5 meta-memory and retrieval. Governance covers authentication, rate limits, token budgets, prompt sanitization, deterministic gates, auditing, and code isolation.

flowchart LR
  USER["Business user"] --> UI["YOLO Data Web UI"]
  ADMIN["Administrator"] --> UI

  UI --> API["Node.js HTTP API and NDJSON stream"]
  API --> AGENT["DataAgent orchestrator"]
  API --> CONFIG["Topics, models, datasets, and permissions"]

  MEMORY["Layered memory context\nL0 System · L1 Organization · L2 User\nL3 Conversation · L4 Working · L5 Retrieval"]
  AGENT --> MEMORY
  AGENT --> CONTRACT["Contract compilation and deterministic gates"]
  AGENT --> SKILL["Skills"]
  AGENT --> HARNESS["OpenAI-compatible model harness"]
  CONTRACT --> SOURCES["Metric system / business datasets"]
  AGENT --> OUTPUT["Workspace, charts, and analysis results"]
  AGENT --> REFLECT["Answer reflection"]
  API --> GOVERNANCE["Authentication, limits, budgets, audit, and security"]
  API --> MCP["Native MCP server"]
  AGENT --> SANDBOX["Code analysis sandbox"]
  AGENT --> EVAL["Evaluation and regression"]

  HARNESS --> LLM["DeepSeek or compatible LLM"]
  SOURCES --> PLATFORM["Data source schemas"]
  API --> DB["Platform database"]
  AGENT --> DB
  CONFIG --> DB

Requirements

Quick Start

Option 1: Guided launcher (Linux / Windows)

git clone https://github.com/xiaour/yolo-data.git yolo-data
cd yolo-data
./start.sh

On Windows PowerShell, run ./start.ps1. The launcher guides first-time setup; run it again to start the app.

Option 2: Docker Compose

docker compose up -d --build

Open http://localhost:8088/ after startup. Configure model and data-source settings in yolo-conf.yaml as needed; change the default password after your first login. See Configuration below for details.

Keep machine-local passwords and API keys in .env (copy .env.example); do not commit it. Precedence is process environment > .env > yolo-conf.yaml.

For PostgreSQL data sources, see the PostgreSQL integration guide.

Username Display name Role Default password
admin Platform Administrator ADMIN yolo123456
east_manager Regional Manager ANALYST yolo123456
channel_analyst Channel Analyst ANALYST yolo123456

Administrators manage the platform. Analysts can access and query only the DataAgents granted to them.

Configuration

The root yolo-conf.yaml is the configuration file; its bilingual comments describe available settings. Non-empty environment variables override YAML, and built-in defaults are used otherwise. .env files are not loaded; provide secrets through environment variables. Set YOLO_CONF_FILE to use another configuration file.

OpenAI-compatible models

A DataAgent may use one or more models and select a default model. DeepSeek is recommended but not required.

Business datasets

MySQL, TiDB, Doris, and PostgreSQL are supported. The platform compiles queries from field semantics, and the model cannot submit raw SQL.

Smart recognition infers field roles (TIME, METRIC, DIMENSION, IDENTIFIER), aggregation methods, and default time windows. Administrators review inferred values before saving them.

Fields can be enabled or disabled individually and are enabled by default. Disabled fields cannot be used as dimensions, metrics, time fields, or filters. Schema synchronization preserves their enabled state.

API Example

Streaming query

curl -N -X POST http://localhost:8088/api/chat/query/stream \
  -H 'Content-Type: application/json' \
  -b cookie.txt \
  -d '{
    "themeId": 1,
    "question": "How did sales by channel change month over month in August?"
  }'

Security and Governance

Production Notes

Documentation

Contributing

See docs/architecture.md for detailed design documentation.

License

Apache License 2.0. See LICENSE.