Orbit Service POC Demo & Vision
Watch the Full Demo
Note: The video is internal only until approved by PMM
This demo is not the final product
Proof-of-concept Demo: Knowledge Graph as a Service
This demo showcases the vision for the GitLab Knowledge Graph as a service. It demonstrates how connecting code with Software Development Life Cycle (SDLC) items into a unified data layer can unlock new capabilities for GitLab Duo and provide deep, cross-stage insights.
The demo runs on a hybrid architecture that combines a self-managed GitLab instance with a cloud-native Knowledge Graph service running on Google Kubernetes Engine (GKE).
Features & Use Cases
The Knowledge Graph enhances the GitLab Duo agent platform by providing complete SDLC context, allowing users and agents to ask questions and perform actions that were not previously possible.
Here are some of the features showcased in the demo:
- Unified Developer Onboarding: A new developer can ask a broad question like,
"Can you help me get up to speed?"The agent explores the Knowledge Graph to generate a comprehensive onboarding guide, discovering relevant groups, project members, active contributors, related issues, merge requests, and even pipeline statuses. - Intelligent Task Planning: The agent can identify a good first issue and create a concrete plan for a developer's first commit. By understanding both the codebase and related SDLC items, it can recognize missing API scaffolding, suggest a strategy that integrates with the existing project structure, and identify who to tag for code review.
- Vulnerability Triage: When a zero-day exploit is reported (e.g., Log4j), the agent can create a complete audit trail. It combines data across stages to identify:
- Who triggered the vulnerabilities.
- Associated MRs and issues that previously fixed them.
- Related pipeline jobs that detected them.
- Specific code files across multiple projects that are affected.
- Automated Workflows with Duo Agent: The demo features a "Vulnerability Triage Research Agent" that takes action based on the context it gathers. It can automatically:
- Create a new epic to organize the triage work.
- Generate a table with links to relevant pipelines.
- Create individual issues for each vulnerability in the appropriate projects.
- Tag users and suggest which vulnerabilities to prioritize.
- Cross-Stage Analytics: The Knowledge Graph enables rich analytics questions that are difficult to answer today. For example, an agent can identify bottlenecks across multiple teams by analyzing their associated epics, issues, and pipelines, and then create a unified dashboard to highlight areas in need of focus.
How to use the Knowledge Graph Demo instance
This section provides a more detailed look at the features demonstrated and explains how to connect your own AI agent to the Knowledge Graph service using the Model Context Protocol (MCP).
- Demo Instance URL: https://gitlab-knowledge-graph.michaelangelo.io/acme-corp
- Software Architecture Map: https://kg-api.gitlab-knowledge-graph.michaelangelo.io/
Connecting an AI Agent via MCP
You can connect your own local AI agent to the Knowledge Graph demo instance using the Model Context Protocol (MCP). MCP allows your agent to discover and use the tools provided by the Knowledge Graph service.
⚠️ Security Warning: For security purposes, always run the AI agent you are using in a sandboxed environment.
1. Install an MCP Client
You will need an MCP-compatible client. The mcp-remote CLI tool is a simple way to connect.
2. Configure Your MCP Client
Please follow the MCP guide at the top right of the Software Architecture Map: https://kg-api.gitlab-knowledge-graph.michaelangelo.io/
Create or update your MCP configuration file to add the Knowledge Graph server. The location of this file depends on your specific AI agent or tool. For GitLab Duo, the file is typically located at ~/.gitlab/duo/mcp.json.
Add the following configuration:
{
"mcpServers": {
"knowledge-graph": {
"type": "local",
"command": [
"npx",
"-y",
"mcp-remote@latest",
"https://kg-api.gitlab-knowledge-graph.michaelangelo.io/mcp",
"--header",
"X-Skip-Auth: true"
]
}
}
}3. Chat with the Agent
Once configured, you can start a chat session with your agent. It will now have access to the Knowledge Graph tools and can answer questions about the demo instance's data.
You can try prompts from the demo, such as:
"Can you help me get up to speed on the AI content moderation team?""Using the knowledge graph, can you identify a good first issue and help me create a simple plan for my first code commit?""We have a log4j zero-day exploit. Can you give me a full report on which projects are affected, who triggered the vulnerabilities, and any associated MRs, issues, and pipelines?"
Demo Setup & Architecture
The demo environment intentionally mixes a GitLab Omnibus VM with a cloud-native GKE cluster to evaluate a production-like topology.
For a detailed technical breakdown of the components, data flow, and operational workflows of this hybrid architecture, please see our deep-dive issue: Hybrid Architecture for Knowledge Graph as a Service.
- GitLab VM: Hosts GitLab Rails, Workhorse, Gitaly, and PostgreSQL. The database uses logical replication to stream changes.
- GKE Cluster: Runs the Knowledge Graph services, including Siphon (for CDC), NATS JetStream, the indexer, and the web API.
For the full cluster configuration and deployment details, see the gkg-cluster repository.
High-Level Data Flow
flowchart TD
subgraph GitLab_VM["GitLab VM (Omnibus)"]
PG[(PostgreSQL<br/>Logical Replication)]
Rails[GitLab Rails & Workhorse]
Gitaly[(Gitaly RPC)]
end
subgraph GKE["GKE gkg-system namespace"]
SMain[siphon-main]
SCI[siphon-ci]
NATS[(NATS JetStream)]
Indexer[gkg-indexer<br/>single writer]
Web1[gkg-webserver pod A]
Web2[gkg-webserver pod B]
subgraph Storage["Persistent Disk gkg-delta-disk"]
Delta[(Delta Lake & Kùzu files)]
end
end
PG -->|publications + slots| SMain
PG -->|CI publications| SCI
SMain -->|CDC batches| NATS
SCI -->|CI batches| NATS
NATS -->|Delta writer jobs| Indexer
Indexer -->|RW mount| Delta
Delta -->|RO mount| Web1
Delta -->|RO mount| Web2
Web1 -->|HTTPS + MCP| Users
Web2 -->|HTTPS + MCP| Users
Rails -->|API + Git metadata| Indexer
Gitaly -->|Repository RPC| Indexer
