Qubot: Transforming Data Access at GitHub
Explores how Qubot revolutionizes data access with a federated context layer and query engine integration.
What Changed Operationally
The operational landscape of data access has fundamentally shifted with the introduction of Qubot, an internal data analytics agent that allows any GitHub employee to query the company's data warehouse in plain language. This capability transforms the workflow for engineers, product managers, and analysts who previously relied on specialized data teams to translate business questions into SQL. By enabling a "gravitational force" that centralizes distributed knowledge into a single tool, Qubot has drastically reduced the volume of questions directed at data and analytics Slack channels. The result is a significant increase in autonomy for Hubbers, who can now explore data and receive answers within seconds without navigating complex reporting dashboards or waiting for manual report generation. This shift moves the organization from a passive consumption model of data to an active, exploratory one, where insights are generated on demand rather than retrieved from pre-defined views.
Federated Context Architecture
How The Capability Fits Together
The technical foundation of Qubot relies on a sophisticated, federated context layer that is loaded at runtime via a GitHub MCP Server. This architecture is designed to handle the diverse nature of GitHub's data ecosystem by categorizing knowledge into three distinct tiers: bronze, silver, and gold. The bronze tier consists of telemetry context contributed by product teams, providing essential schema information and metadata for raw event data. As data matures, the silver tier is maintained by the data and analytics team, containing examples of queries, usage guidance, and mandatory filters to ensure data quality. Finally, the gold tier holds business rules and metric definitions contributed by the teams that own specific datasets. This tiered approach ensures that the agent has the right level of detail for the specific type of data being queried, optimizing both accuracy and retrieval speed.
Query Engine Integration and Evaluation
To execute these queries, Qubot connects to both Kusto and Trino, the two primary query engines powering GitHub's analytics workloads, through a unified MCP server interface. The choice of engine is determined dynamically based on the nature of the question: Kusto is utilized for its speed and suitability for exploratory questions over recent event data, while Trino is preferred for complex joins and deeper historical analysis. The system is supported by a benchmarking framework that evaluates performance across structured test cases, ensuring reliability before changes are deployed. A critical component of this architecture is the context agent, which streamlines the contribution of knowledge to the context layer. Every modification to the context layer or agent configuration undergoes evaluation before shipping, creating a closed feedback loop that maintains the integrity of the agent's responses.
Operational Impact
Architecting for Governance and Access Control
Effective deployment of AI agents requires a shift from treating them as standalone utilities to integrating them into a governed infrastructure. This approach is critical for maintaining security and compliance, particularly as organizations adopt tools like the GitHub Copilot usage metrics API. The Copilot usage metrics API now includes a new ai_credits_used field, which provides enterprise administrators and organization owners with granular visibility into per-user consumption. This data is available in user-level reports for both single-day and 28-day periods. However, administrators must recognize that this field provides an overall per-user total and is not currently broken down by feature, model, or surface. Consequently, while this metric serves as a valuable signal for analyzing consumption patterns and identifying high-usage users, it should not be used for billing purposes. Access to these metrics is restricted to enterprise administrators and organization owners with API access, necessitating strict role-based access controls to ensure sensitive usage data remains confidential.
Beyond usage tracking, the broader ecosystem of developer tools is evolving to support centralized governance. For instance, the release of k6 2.0 introduces a suite of new commands, including k6 x agent, k6 x mcp, k6 x docs, and k6 x explore. These additions facilitate a more integrated development environment where testing workflows can be managed directly from the command line. Similarly, Docker has announced the retirement of Docker Content Trust (DCT) and the Notary v1 service, signaling a move toward more modernized software supply chain security. While the migration guidance for these services is still being finalized, the trend across the industry is clear: governance is moving from static configuration to dynamic, API-driven management. Administrators must prepare their infrastructure to support these shifts by ensuring their tooling can ingest and act upon the new metrics and governance signals provided by these platforms.
Rollout And Governance Decisions
Prerequisites, Context, and Pilot Strategy
The success of an internal data analytics agent, such as the one built by GitHub, relies heavily on the quality of its context layer. This layer is not a monolithic block but a federated system designed to tailor knowledge to specific data tiers. For bronze data—typically raw telemetry—context is contributed by product teams, including schema information and metadata. As data matures to silver and gold levels, the responsibility shifts to the data and analytics teams, who maintain examples of queries, usage guidance, and mandatory filters, as well as business rules and metric definitions. This tiered approach ensures that the agent understands the nuances of different data types, but it also creates a complex prerequisite: the organization must have established clear ownership and maintenance workflows for these context contributions. Without a streamlined process for updating this knowledge, the agent’s accuracy will degrade over time.
Implementing this system requires a realistic pilot strategy that validates both the technical integration and the user adoption. GitHub’s experience demonstrates the value of a hub-and-spoke model, where the agent acts as a gravitational force to centralize distributed knowledge. However, this centralization is only possible if the underlying query engines are compatible. The agent must be able to connect to the specific data platforms used by the organization, such as Kusto for recent event data or Trino for complex historical joins. During a pilot, teams should focus on a specific domain or data warehouse to test these connections and the accuracy of the federated context. The pilot should also measure the reduction in questions directed at data support channels, as this indicates that users are gaining the autonomy to explore data independently. By starting with a controlled scope and rigorously evaluating the context layer’s performance, organizations can avoid the common pitfall of treating the agent as a dashboard replacement and instead leverage it for true exploratory data analysis.
Failure Modes And Limits
Failure Modes and Operational Limits
The operational effectiveness of an internal analytics agent is heavily contingent upon the quality and maintenance of its context layer. As noted in the development of GitHub's internal Qubot, the system is not designed to replace traditional reporting tools or dashboards. Instead, it functions as a tool for exploratory analysis, allowing users to query data warehouses in plain language. However, this capability is strictly limited by the federated nature of the context layer. If the knowledge base—whether it be telemetry context for bronze data, usage guidance for silver data, or business rules for gold data—is not curated and maintained by the respective data and analytics teams, the agent’s ability to provide accurate, relevant answers diminishes significantly. The system relies on runtime fetching via a Model Context Protocol (MCP) server, meaning that any latency or failure in retrieving this context directly impacts the user experience.
Security And Privacy Considerations
Furthermore, the integration of these agents into existing workflows introduces potential friction points regarding data governance and security. While the agent connects to powerful query engines like Kusto and Trino to handle complex joins and historical analysis, it does not inherently understand the nuances of data access permissions or security policies. An agent might successfully retrieve data, but without strict guardrails, it could inadvertently expose sensitive information or generate queries that violate organizational compliance standards. The "horror stories" surrounding coding agents often stem from a lack of visibility into their execution environment. Without centralized AI governance to control execution and access, there is a risk of agents performing actions outside the intended scope, such as modifying production databases or interacting with unauthorized services.
Verification and Environment Checklist
Open Questions
To mitigate the risks associated with deploying an AI-powered analytics agent in a production environment, the following checklist is recommended:
- Context Layer Validation: Ensure that the context layer is rigorously evaluated before deployment. Every change to the context layer or agent configuration must be assessed for accuracy and safety prior to shipping.
- Query Engine Compatibility: Verify that the agent’s connection to your specific query engines (e.g., Kusto, Trino) is stable and that the MCP server handles runtime fetching efficiently.
- Security and Governance: Implement centralized AI governance to control agent execution and access. Ensure that the agent cannot bypass security policies or access sensitive data without explicit authorization.
- Benchmarking Framework: Establish a benchmarking framework with three components: defined test cases, automated run orchestration, and stats aggregation to measure performance and accuracy.
- Usage Monitoring: Use metrics APIs to track consumption patterns and identify potential abuse or errors. Note that specific breakdowns of AI credits used by feature or model are not currently available in standard metrics APIs.
Environment Checklist
Disclaimer
This article was not lab-tested. The information presented regarding specific agent architectures, context layer management, and the retirement of legacy services like Docker Content Trust is based on published documentation and case studies. Readers must verify these details against their specific infrastructure, security policies, and software versions before implementing similar solutions in a production environment.
// source record
Sources
- https://github.blog/ai-and-ml/github-copilot/how-we-built-an-internal-data-analytics-agent/ github.blog · checked 20 June 2026
- https://github.blog/changelog/2026-06-19-ai-credits-consumed-per-user-now-in-the-copilot-usage-metrics-api github.blog · checked 20 June 2026
- https://www.docker.com/blog/coding-agent-horror-stories-the-13-hour-aws-outage/ www.docker.com · checked 20 June 2026
- https://grafana.com/blog/k6-2-0-release/ grafana.com · checked 20 June 2026