β οΈ Repo moved under ai-platform-engineering β οΈ
| Claude | Gemini | OpenAI | Llama |
|---|---|---|---|
- π€ Backstage Agent is an LLM-powered agent built using the LangGraph ReAct Agent workflow and MCP tools.
- π Protocol Support: Compatible with A2A protocol for integration with external user clients.
- π‘οΈ Secure by Design: Enforces Backstage API token-based authentication and supports external authentication for strong access control.
- π Integrated Communication: Uses langchain-mcp-adapters to connect with the Backstage MCP server within the LangGraph ReAct Agent workflow.
- π First-Party MCP Server: The MCP server is generated by our first-party openapi-mcp-codegen utility, ensuring version/API compatibility and software supply chain integrity.
Running it via Docker:
Ensure your .env file is set up as described in the cnoe-agent-utils usage guide based on your LLM Provider.
Example .env configuration:
############################
# Agent Configuration
############################
LLM_PROVIDER=azure-openai
AGENT_NAME=backstage
############################
# Azure OpenAI Configuration
############################
AZURE_OPENAI_API_KEY=<your-azure-key>
AZURE_OPENAI_API_VERSION=2025-04-01-preview
AZURE_OPENAI_DEPLOYMENT=gpt-4.1
AZURE_OPENAI_ENDPOINT=<your-azure-endpoint>
############################
# Backstage Configuration
############################
BACKSTAGE_API_KEY=<your-backstage-key>
BACKSTAGE_API_URL=https://api.backstage.io- Pull the A2A image:
docker pull ghcr.io/cnoe-io/agent-backstage:a2a-latest- Run the agent in a Docker container using your
.envfile:
docker pull ghcr.io/cnoe-io/agent-backstage:a2a-latest && \
docker run --rm -p 0.0.0.0:8000:8000 -it \
-v $(pwd)/.env:/app/.env \
ghcr.io/cnoe-io/agent-backstage:a2a-latestUse the agent-chat-cli to interact with the agent:
uvx https://github.com/cnoe-io/agent-chat-cli.git a2aflowchart TD
subgraph Client Layer
A[User Client A2A]
end
subgraph Agent Transport Layer
B[Google A2A]
end
subgraph Agent Graph Layer
C[LangGraph ReAct Agent]
end
subgraph Tools/MCP Layer
D[Langchain MCP Adapter]
E[Backstage MCP Server]
F[Backstage API Server]
end
A --> B --> C
C --> D
D -.-> C
D --> E --> F --> E
- π€ LangGraph + LangChain MCP Adapter for agent orchestration
- π§ Azure OpenAI GPT-4 as the LLM backend
- π Connects to Backstage via a dedicated Backstage MCP agent
- π A2A protocol support for flexible integration and multi-agent orchestration
- π Comprehensive Backstage API Support:
- Catalog Management
- Service Management
- User Management
- Plugin Management
- Documentation Management
You can run the agent locally without Docker:
First clone the repo
git clone https://github.com/cnoe-io/agent-backstage.git
cd agent-backstagemake run-a2aIn a new terminal, start the A2A client:
make run-a2a-client-
Create a Backstage Account: If you don't have one, sign up at Backstage.
-
Generate an API Key:
- Log in to your Backstage account
- Go to Configuration β API Access
- Create a new API key with appropriate permissions
- Save the API key securely
-
Get Your Backstage Domain:
- Your API URL will be
https://api.backstage.io - Update the
BACKSTAGE_API_URLin your.envfile
- Your API URL will be
- Catalog Management
User: list all services
Agent: Here are the current services:
1. ID: BS123ABC - Web Application
Status: active
Owner: John Smith
2. ID: BS456DEF - Database Cluster
Status: active
Owner: DevOps Team
Let me know if you need more details about any service or would like to take action!
- Service Management
User: show me all plugins
Agent: Here are all the plugins configured in Backstage:
1. Web Application (ID: PS1)
- Status: active
- Integration: API
- Team: Platform
2. Database Cluster (ID: PS2)
- Status: active
- Integration: Nagios
- Team: Infrastructure
3. Payment Gateway (ID: PS3)
- Status: maintenance
- Integration: Custom
- Team: Payments
Would you like more details about any specific plugin?
-
Docker Issues
- Ensure Docker daemon is running
- Check if you have sufficient permissions
- Verify the required images are available
-
Port Conflicts
- If port 8000 is in use, modify port mapping in docker run command
- Check for other services using required ports
-
Environment Variables
- Verify all required variables in
.env - Check API keys and tokens are valid
- No trailing spaces in values
- Verify all required variables in
-
Client Connection Issues
- Server must be running before client
- Port numbers should match
- API keys must match between server and client
- Docker: Use
docker logs <container-id> - Local: Check terminal output
- Debug mode: Set
DEBUG=truein.env
For more detailed information about the project, please refer to:
- API Documentation - Detailed API reference
- Architecture Overview - System design and components
- Development Guide - Setup and development workflow
- Deployment Guide - Production deployment instructions
- Contributing Guide - How to contribute to the project
- Security Policy - Security practices and vulnerability reporting
- License - Project license details
- Changelog - Version history and changes
- Code of Conduct - Community guidelines
- Never commit your
.envfile to version control - Keep your API keys and tokens secure
- Use environment variables or secret managers in production
- Regularly rotate your API keys and tokens
See MAINTAINERS.md for the list of maintainers.
We welcome contributions! Please see our Contributing Guide for details on how to get started.
Apache 2.0