Most internal developer portals (IDPs) promise a centralized place for documentation, service ownership, operational metadata, and best practices. But when a developer needs to ask, “Who owns this API?” or “Where do I find the config for service X?”, they still end up digging through Confluence, stale READMEs, or Slack threads.
It doesn’t have to be this way.
By integrating large language models (LLMs) into your internal developer portals, you can offer natural language interfaces on top of structured metadata — turning your IDP into an intelligent assistant that answers questions, guides workflows, and improves onboarding.
In this article, we’ll explore how to embed LLMs into developer portals like Backstage, OpsLevel, or your in-house system to unlock smarter discovery and faster productivity.
The Problem: Metadata Is Trapped in Silos
Most portals ingest data from:
- Source control (GitHub, GitLab)
- CI/CD systems
- Infra as Code (Terraform, Helm, Kubernetes)
- Incident tooling (PagerDuty, Opsgenie)
- Service catalogs (via YAML or annotations)
- Knowledge bases (Confluence, Google Docs)
This metadata is structured, but fragmented — and most devs can’t (or won’t) navigate the portal unless they know exactly what they’re looking for.
Example questions:
- “Who owns this service?”
- “Where’s the on-call schedule for
checkout-service
?” - “What changed in the last deployment to staging?”
- “Where is the Terraform config for this RDS instance?”
- “How do I safely roll back this deployment?”
Today: multiple clicks, guesswork, and tribal knowledge.
Tomorrow: “Ask your portal.”
LLMs Make Developer Portals Conversational
Imagine asking your portal:
“What’s the most recent deployment to the payments service in staging, and who approved it?”
And getting back:
• Deployed commit abc123 (PR #456) to staging at 14:32 UTC
• Changed: updated fraud rules and added new event hook
• Approved by: @maria and @scott
• Owned by: payments-team (on-call: @jordan)
LLMs shine at:
- Parsing and summarizing structured data
- Enriching incomplete or messy fields
- Following up with clarifying questions
- Inferring intent even when terminology is vague
Architecture: How to Plug LLMs into an IDP
Here’s a reference flow to build an AI-powered developer portal experience:
1. Ingest and Index Metadata
If you're using Backstage, you’re already ingesting service metadata via the Software Catalog. Extend that to include:
- Service annotations (
owner
,lifecycle
,definition.yaml
) - CI/CD logs and deployment history
- GitHub issues, PRs, and commits
- SLO/SLI dashboards
- On-call schedules from PagerDuty
2. Vector Index It
Use embedding models (e.g. OpenAI’s text-embedding-3-small
) to turn:
- READMEs
- Runbooks
- Deployment configs
- Wiki pages
- Chat logs
into searchable vectors with tools like:
3. Build a Query Layer
- Accept natural language queries via your portal UI (chat-style or prompt box)
- Embed the query and perform semantic search against your vector index
- Retrieve relevant chunks and pipe them into an LLM prompt
- Display the answer with inline links, owners, and actionable buttons
4. Prompt Engineering Tips
Here’s a basic example:
You are a developer productivity assistant.
Given the following service metadata, deployment logs, and team information,
answer the developer's question accurately and concisely.
Developer question: “Who owns the checkout service, and when was it last deployed?”
[retrieved docs go here]
Add follow-up memory with tools like LangChain or LlamaIndex to enable conversational refinement.
Example Use Cases
Ownership and On-Call
“Who owns
email-service
and where is the PagerDuty schedule?”
→ Queries Backstage + PagerDuty APIs → Returns team Slack, escalation policy, current on-call.
Deployment History
“When was
orders-api
last deployed to staging?”
→ Queries ArgoCD or GitHub Actions → Returns commit hash, PR info, diff summary.
Incident Triage
“What changed before the incident last night?”
→ Fetches deployment activity in last 12 hours → Highlights config or code diffs → Links to logs.
Runbook Lookup
“How do I restart the Kafka cluster safely?”
→ Semantic search across runbooks and internal wiki → Summarizes steps and links to scripts.
Build vs. Buy
Tools with emerging LLM support:
- Backstage: Open-source, highly customizable
- OpsLevel: Commercial SaaS, AI integrations emerging
- Port: Visual-first, programmable portal
- Swimm: AI + code documentation
DIY Stack:
- Metadata: GitHub, ArgoCD, Terraform, PagerDuty
- Vector DB: Weaviate or Qdrant
- LLMs: OpenAI, Claude, or Mistral
- Frontend: Chat box inside portal or Slack integration
- Backend: FastAPI or LangServe to handle orchestration
Cautions and Challenges
- Data freshness: Embeddings go stale fast — re-index regularly
- Security: Don’t expose secrets or tokens in logs
- Latency: LLMs may introduce seconds of delay — cache smartly
- Auditability: Log and version prompts for traceability
Always keep the human-in-the-loop for critical actions (e.g., rollbacks or infra deletions).
Conclusion
LLMs are turning internal developer portals from static catalogs into intelligent copilots. By connecting structured metadata, documentation, and operational data, you can build a system that understands your stack — and helps your developers move faster, with fewer questions and less cognitive load.
Want to level up your platform engineering strategy? Explore more LLM-powered tooling at Slaptijack