Agent Control Plane API - Multi-tenant AI agent orchestration and management platform
Project description
Kubiya Control Plane API
A multi-tenant AI agent orchestration and management platform built with FastAPI, Temporal, and PostgreSQL.
Features
- Multi-tenant Architecture: Manage multiple projects, teams, and agents
- Workflow Orchestration: Temporal-based workflow execution
- Flexible Agent Runtime: Support for multiple agent types and skills
- Policy Enforcement: OPA-based policy engine for agent governance
- Scalable Workers: Distributed worker architecture for agent execution
- Context Management: Environment and team-specific context handling
- LLM Integration: Support for multiple LLM providers via LiteLLM
- Comprehensive APIs: RESTful APIs for all platform features
Installation
Using pip
pip install kubiya-control-plane-api
With optional dependencies
# For API server
pip install kubiya-control-plane-api[api]
# For worker runtime
pip install kubiya-control-plane-api[worker]
# For development
pip install kubiya-control-plane-api[dev]
# All dependencies
pip install kubiya-control-plane-api[all]
From source
git clone https://github.com/kubiyabot/agent-control-plane.git
cd agent-control-plane
pip install -e .
Quick Start
1. Set up environment variables
Create a .env file or set the following environment variables:
# Database Configuration
DATABASE_URL=postgresql://user:password@localhost:5432/control_plane
# Supabase (for serverless deployments)
SUPABASE_URL=your-supabase-url
SUPABASE_KEY=your-supabase-key
# Temporal Configuration
TEMPORAL_HOST=localhost:7233
TEMPORAL_NAMESPACE=default
# API Configuration
API_TITLE="Agent Control Plane"
API_VERSION="1.0.0"
ENVIRONMENT=development
LOG_LEVEL=info
# Security
SECRET_KEY=your-secret-key-here
# Optional: Kubiya Integration
KUBIYA_API_KEY=your-kubiya-api-key
KUBIYA_API_URL=https://api.kubiya.ai
2. Run database migrations
alembic upgrade head
3. Start the API server
uvicorn control_plane_api.app.main:app --host 0.0.0.0 --port 7777 --reload
The API will be available at http://localhost:7777
4. Access the API documentation
Open your browser and navigate to:
- Swagger UI:
http://localhost:7777/api/docs - ReDoc:
http://localhost:7777/api/redoc
5. Start a worker
To process agent execution workflows:
kubiya-control-plane-worker
API Endpoints
Core Resources
- Projects:
/api/v1/projects- Multi-project management - Environments:
/api/v1/environments- Environment configuration - Agents:
/api/v1/agents- Agent management - Teams:
/api/v1/teams- Team management - Workflows:
/api/v1/workflows- Workflow definitions - Executions:
/api/v1/executions- Execution tracking - Workers:
/api/v1/workers- Worker registration and management
Skills and Policies
- Skills:
/api/v1/skills- Tool sets and definitions - Policies:
/api/v1/policies- Policy management and enforcement
Integration
- Secrets:
/api/v1/secrets- Secrets management (proxies to Kubiya) - Integrations:
/api/v1/integrations- Third-party integrations - Models:
/api/v1/models- LLM model configuration
Utilities
- Health:
/api/health- Health check endpoint - Task Planning:
/api/v1/task-planning- AI-powered task planning
Configuration
The application uses Pydantic Settings for configuration management. All settings can be configured via environment variables or a .env file.
Key Configuration Options
DATABASE_URL: PostgreSQL connection stringSUPABASE_URL,SUPABASE_KEY: Supabase configuration for serverlessTEMPORAL_HOST: Temporal server addressKUBIYA_API_KEY: Kubiya platform API keySECRET_KEY: Secret key for JWT token signingLOG_LEVEL: Logging level (debug, info, warning, error)ENVIRONMENT: Deployment environment (development, staging, production)
Development
Install development dependencies
pip install -e ".[dev]"
Run tests
# All tests
pytest
# Unit tests only
pytest -m unit
# Integration tests
pytest -m integration
# With coverage
pytest --cov=control_plane_api --cov-report=html
Code formatting
# Format code with black
black .
# Lint with ruff
ruff check .
Database migrations
# Create a new migration
alembic revision --autogenerate -m "Description of changes"
# Apply migrations
alembic upgrade head
# Rollback migration
alembic downgrade -1
Architecture
Workflow Orchestration
The platform uses Temporal for reliable workflow execution:
- Durable execution with automatic retries
- Activity-based task decomposition
- Support for long-running workflows
- Built-in observability and monitoring
Multi-tenancy
- Projects: Top-level isolation boundary
- Environments: Isolated execution contexts within projects
- Teams: Collaborative agent groups
- Agents: Individual agent instances
Worker Architecture
Workers pull tasks from environment-specific queues and execute agent workflows using Temporal.
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
License
GNU Affero General Public License v3.0 (AGPL-3.0) - see LICENSE file for details
Support
For issues and questions:
- GitHub Issues: https://github.com/kubiyabot/agent-control-plane/issues
- Email: support@kubiya.ai
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kubiya_control_plane_api-0.9.13.tar.gz.
File metadata
- Download URL: kubiya_control_plane_api-0.9.13.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3c232d7be608aa0412ee7401fe7a5e9c40fcde33bd54c353af9a53ce07af36c
|
|
| MD5 |
31344e374a356f83130b5e5faf3a0049
|
|
| BLAKE2b-256 |
55cdc42e7afb88e4a3e109872bea7ee288d2f0b6ad3790848f60d622766967b3
|
File details
Details for the file kubiya_control_plane_api-0.9.13-py3-none-any.whl.
File metadata
- Download URL: kubiya_control_plane_api-0.9.13-py3-none-any.whl
- Upload date:
- Size: 1.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8864e736ac3f3fda677e4835aab7a85b8ecba39b5a9685e41244b2de62bad5c
|
|
| MD5 |
7ae7eea22af63003f2acd3e4e2a3ddf3
|
|
| BLAKE2b-256 |
8e94dbdeda15cd5ecb3ea349eb48c1dc122cea2a9f29f990abe2b7083ee07956
|