Skip to main content
Glama
calvinchengx

data-agent-service

by calvinchengx

Data Agent Service

CI Docs release License: Apache 2.0

python coverage go coverage witnesses

Задайте вопрос своему хранилищу данных на английском. Получите ответ, который сможете защитить.

Вопросы на естественном языке к хранилищам, базам данных и API, которые у вас уже есть, — Fabric и Azure SQL, PostgreSQL, Databricks и любому REST-сервису, включая поисковый, — основанные на глоссарии, метриках и схеме, хранящихся в OpenMetadata. Каждый запрос авторизуется дважды: правила ролей в сервисе, затем сам источник под учётной записью вызывающего. Любой MCP-клиент, без изменений, работает с реальным Azure.

📖 Сайт документации — полный справочник, также доступный в виде Markdown в docs/.

Зачем это существует

«Какая команда поддержки быстрее всего решает тикеты?» имеет правильный ответ, только если все согласны с тем, что означает решает. Направьте универсального SQL-агента на хранилище, и он выведет это из названий колонок, уверенно и без предупреждения, когда ошибается.

На собственных тестовых данных этого репозитория такой вывод называет не ту команду. По фактическому времени ответа Frontline — самая быстрая, а Billing — самая медленная. Фактическое определение бизнеса — Resolution Time, которое исключает часы ожидания клиента, — меняет результат на противоположный: Billing — самая быстрая. Неверный победитель — это не ошибка округления, и ничто в ответе не подскажет вам, что это произошло.

Этот сервис построен так, чтобы ошибки такого рода были структурно затруднены, а не просто маловероятны.

Что вы получаете

Как

Доказательство

Смысл исходит из вашего каталога, а не из модели

Термины глоссария, формулы метрик и описания колонок читаются из OpenMetadata во время запроса. Бизнес-семантика никогда не зашивается в промпт

make eval — абляция оценивает те же вопросы с изъятым каталогом

Каждый ответ выполняется от имени спрашивающего

Токен пользователя обменивается по схеме on-behalf-of вплоть до движка, поэтому разрешения на строки и колонки — решение движка, а не агента

make test — два профиля, один вопрос, разные строки

Не может писать, отклоняться или обходить отказ

Один SELECT только для чтения, разобранный, а не сопоставленный по шаблону; белый список схем; ограничение числа строк применяется за вас; отказ сообщается, а не обходится

make conformance — контракт из 28 утверждений, которым должен удовлетворять исполнитель

Отвечает с приложенными рассуждениями

Цифра, применённое определение, таблицы, из которых она взята, и любые оговорки, поднятые каталогом

make ask Q="..."

Любой MCP-клиент, без собственного кода

Claude, Cursor, VS Code и SDK подключаются по стандартному MCP с обнаружением OAuth

docs/09-mcp-clients.md

Работает на вашем ноутбуке, разворачивается на реальном Azure без изменений

Весь стек работает на семействе эмуляторов; переход на Fabric, APIM и Entra — это конфигурация, а не путь в коде

docs/10-production.md

Ничто здесь не заявляется без того, что это проверяет

Каждая возможность сопровождается командой, которая её доказывает; где что-то спроектировано, но не построено, документация об этом говорит

88 сквозных свидетелей, в CI при каждом пуше

Статус: Фазы 0–16 завершены — см. docs/00-plan.md.

Related MCP server: Interactive Database Analyst via MCP

Быстрый старт

make doctor   # toolchain, docker, ~14 GB memory
make up       # entra, keyvault, arm, fabric (+ SQL Server), OpenMetadata 1.13.2, apim
make status   # "stack OK" is the verdict

Затем make seed, make test, make eval, make load, make ask Q="…" — или make stack для полного подъёма с нуля, что и запускает CI.

Что здесь находится

Путь

Назначение

docker-compose.yml

Только зафиксированные опубликованные образы — зависимости используются как есть

.env.example

Все настройки DAS_*; скопируйте в .env (локально) или .env.prod (реальный Azure)

docs/00-plan.md

Архитектура, решения, фазы, оценка, нагрузка, авторизация, расширение

docs/

Краткое руководство, архитектура, авторизация, оценка, нагрузка, MCP-клиенты, добавление источника, продакшн, CI

services/

Исполнитель запросов к хранилищу (Python и Go) и контракт, которому оба подчиняются

agent/, evals/, e2e/

Агент, набор для оценки точности и свидетели

seed/

Наборы данных, подготовка хранилищ, семантика OpenMetadata, настройка учётных записей

infra/terraform/

Terraform для реального Azure; docs/10-production.md — это инструкция по эксплуатации

.github/workflows/ci.yml

Четыре задания; docs/11-ci.md объясняет, что доказывает каждое

website/

Сайт документации — Astro + Starlight, генерируется из docs/, который остаётся источником истины

scripts/

doctor.sh, status.sh, check-discipline.sh, preflight.py

Дисциплина

  1. Эмуляторы и OpenMetadata никогда не модифицируются; подозрения на ошибки отправляются в docs/upstream-issues.md.

  2. Никаких путей кода только для эмуляторов. Только стандартные протоколы (OIDC/OAuth2, включая OBO, протокол App Service с управляемым удостоверением, TDS FedAuth, ARM, Graph, OM REST/MCP). ENV=prod заменяет .env и ничего больше.

Семейство эмуляторов

Построено на entra-emulator, azure-keyvault-emulator, arm-emulator, fabric-emulator, azure-apim-emulator; собрано согласно azure-emulators. Уровень: leaf.

Лицензия

Apache-2.0.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language querying of SQL databases with robust safety guarantees including read-only enforcement, AST validation, and row caps.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables natural-language querying of PostgreSQL databases with schema grounding and self-correcting error recovery. Provides a live audit trace and verifies results through exploratory decomposition and empty-result sanity checks.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides a guarded semantic layer for text-to-SQL, offering tools for schema discovery, semantic profiling, and query verification to enable safe and reliable SQL generation on enterprise databases.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables natural-language querying of SQLite databases through a governed semantic layer, with citations and typed abstention for PII or uncertified data.
    -