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

Stellen Sie Ihrem Data Warehouse eine Frage auf Englisch. Erhalten Sie eine Antwort, die Sie verteidigen können.

Natürlichsprachliche Fragen an die Warehouses, Datenbanken und APIs, die Sie bereits haben — Fabric und Azure SQL, PostgreSQL, Databricks und jeden REST-Dienst, einschließlich eines Retrieval-Dienstes — fundiert durch das Glossar, die Metriken und das Schema in OpenMetadata. Jede Abfrage wird zweifach autorisiert: durch Rollenregeln im Dienst, dann durch die Quelle selbst unter der eigenen Identität des Aufrufers. Jeder MCP-Client, unverändert gegenüber echtem Azure.

📖 Dokumentationsseite — die vollständige Referenz, auch als Markdown in docs/ durchsuchbar.

Warum es das gibt

„Welches Support-Team löst Tickets am schnellsten?" hat nur dann eine richtige Antwort, wenn sich alle einig sind, was auflösen bedeutet. Richten Sie einen generischen SQL-Agenten auf das Warehouse aus und er wird das aus Spaltennamen ableiten — flüssig und ohne Warnung, wenn er falsch liegt.

Mit den eigenen Seed-Daten dieses Repositorys benennt diese Ableitung das falsche Team. Die vergangene Wanduhrzeit besagt, dass Frontline am schnellsten ist und Billing am schlechtesten abschneidet. Die tatsächliche Definition des Unternehmens — Resolution Time, die Wartezeiten auf den Kunden ausschließt — kehrt es um: Billing ist am schnellsten. Ein falscher Gewinner ist kein Rundungsfehler, und nichts an der Antwort würde Ihnen verraten, dass das passiert ist.

Dieser Dienst wurde so gebaut, dass diese Art von Fehler strukturell schwierig und nicht nur unwahrscheinlich ist.

Was Sie bekommen

Wie

Nachweis

Bedeutung kommt aus Ihrem Katalog, nicht aus dem Modell

Glossarbegriffe, Metrikformeln und Spaltenbeschreibungen werden zur Abfragezeit aus OpenMetadata gelesen. Die Geschäftssemantik wird nie in einen Prompt eingebettet

make eval — eine Ablation bewertet dieselben Fragen, wobei der Katalog zurückgehalten wird

Jede Antwort läuft als die anfragende Person

Das Token des Benutzers wird im Auftrag des Benutzers bis zur Engine ausgetauscht, sodass Zeilen- und Spaltenberechtigungen die Entscheidung der Engine sind, nicht die des Agenten

make test — zwei Personas, dieselbe Frage, unterschiedliche Zeilen

Es kann nicht schreiben, umherschweifen oder eine Verweigerung umgehen

Ein schreibgeschütztes SELECT, geparst statt per Musterabgleich; Schema-Zulassungsliste; Zeilendeckelung wird für Sie angewendet; eine Verweigerung wird gemeldet, nicht umgangen

make conformance — ein Vertrag mit 28 Assertions, den der Ausführende erfüllen muss

Es antwortet mit angehängter Begründung

Die Zahl, die angewandte Definition, die Tabellen, aus denen sie stammt, und alle Einschränkungen, die der Katalog aufgeworfen hat

make ask Q="..."

Jeder MCP-Client, kein benutzerdefinierter Code

Claude, Cursor, VS Code und die SDKs verbinden sich über Standard-MCP mit OAuth-Erkennung

docs/09-mcp-clients.md

Läuft auf Ihrem Laptop, lässt sich unverändert in echtem Azure bereitstellen

Der gesamte Stack läuft auf der Emulator-Familie; der Wechsel zu Fabric, APIM und Entra ist Konfiguration, kein Codepfad

docs/10-production.md

Nichts hier wird behauptet, ohne dass es etwas gibt, das es überprüft

Jede Fähigkeit bringt einen Befehl mit, der sie beweist; wo etwas entworfen, aber nicht gebaut ist, sagen die Dokumente das

88 End-to-End-Witnesses, in CI bei jedem Push

Status: Phasen 0-16 umgesetzt — siehe docs/00-plan.md.

Related MCP server: Interactive Database Analyst via MCP

Schnellstart

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

Dann make seed, make test, make eval, make load, make ask Q="…" — oder make stack, um den gesamten Aufbau von Grund auf durchzuführen, was CI ausführt.

Was hier ist

Pfad

Zweck

docker-compose.yml

Nur gepinnte, veröffentlichte Images — Abhängigkeiten werden unverändert verwendet

.env.example

Jede DAS_*-Einstellung; nach .env (lokal) oder .env.prod (echtes Azure) kopieren

docs/00-plan.md

Architektur, Entscheidungen, Phasen, Auswertung, Last, Autorisierung, Erweiterung

docs/

Schnellstart, Architektur, Autorisierung, Auswertung, Last, MCP-Clients, Hinzufügen einer Quelle, Produktion, CI

services/

Der Warehouse-Abfrage-Ausführer (Python und Go) und der Vertrag, dem beide entsprechen

agent/, evals/, e2e/

Der Agent, die Genauigkeitssuite und die Witnesses

seed/

Datensätze, Warehouse-Bereitstellung, OpenMetadata-Semantik, Identitätseinrichtung

infra/terraform/

Terraform für echtes Azure; docs/10-production.md ist das Runbook

.github/workflows/ci.yml

Vier Jobs; docs/11-ci.md sagt, was jeder beweist

website/

Die Dokumentationsseite — Astro + Starlight, generiert aus docs/, das die Quelle der Wahrheit bleibt

scripts/

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

Disziplin

  1. Emulatoren und OpenMetadata werden niemals verändert; vermutete Fehler gehen an docs/upstream-issues.md.

  2. Keine Nur-Emulator-Codepfade. Nur Standardprotokolle (OIDC/OAuth2 inkl. OBO, Managed-Identity-App-Service-Protokoll, TDS FedAuth, ARM, Graph, OM REST/MCP). ENV=prod tauscht .env und sonst nichts aus.

Emulator-Familie

Gebaut auf entra-emulator, azure-keyvault-emulator, arm-emulator, fabric-emulator, azure-apim-emulator; zusammengesetzt gemäß azure-emulators. Stufe: Blatt.

Lizenz

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.
    -