Supervaizer Controller — Quickstart
Kickstart a Python agent with the Supervaizer Controller so it's discoverable and operable by Supervaize.
What we'll do
Clone the Hello World example (a minimal Supervaizer agent)
Setup the environment and install dependencies
Configure secrets & env, then start the server 🚀
Clone the Hello World Example
The Supervaizer Controller currently supports Python-based agents.
We'll use the Supervaize Hello World example — a minimal agent that demonstrates all core Supervaizer concepts: GitHub Repository
git clone https://github.com/runwaize/supervaize_hello_world.git
cd supervaize_hello_world
Setup the Environment
We recommend using uv for faster dependency management
- uv (Recommended)
- pip
- macOS / Linux
- Windows (PowerShell)
Install uv — see https://docs.astral.sh/uv/
curl -LsSf https://astral.sh/uv/install.sh | sh
Create a virtual environment and install dependencies
uv venv
source .venv/bin/activate
uv pip install -e .
Install uv — see https://docs.astral.sh/uv/
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Create a virtual environment and install dependencies
uv venv
.\.venv\Scripts\Activate.ps1
uv pip install -e .
Understanding the Controller
The Hello World example includes a pre-configured supervaizer_control.py that demonstrates:
- Agent parameters — secrets and environment variables
- Agent methods — start, stop, and status handlers
- Server configuration — A2A protocol support and admin interface
loading...
Creating Your Own Controller
To scaffold a new controller for your own agent:
supervaizer scaffold
# Success: Created an example file at supervaizer_control_example.py
For detailed instructions on customizing your controller, see the Controller Setup Guide.
Configure your Supervaize account & environment
Supervaize account and credentials
Create your developer account on the Supervaize platform.
Create your API Key and collect your environment variables.
Use direnv for easy management of environment variables in .envrc file.
Or setup python-dotenv in your python project.
- .envrc (direnv)
- .env (dotenv)
export SUPERVAIZE_API_KEY=...
export SUPERVAIZE_WORKSPACE_ID=your-workspace-slug
export SUPERVAIZE_API_URL=https://app.supervaize.com
SUPERVAIZE_API_KEY=...
SUPERVAIZE_WORKSPACE_ID=your-workspace-slug
SUPERVAIZE_API_URL=https://app.supervaize.com
SUPERVAIZE_WORKSPACE_ID must be the exact Studio workspace slug. The Studio user who owns the API key must belong to this workspace and retain Developer access.
Workspace authorization for Studio-managed v2 agents
When your controller registers with Studio and A2A is enabled, set the workspace authorization variables in addition to the API credentials above. In Studio, open Developer → Environment variables and copy the generated values for your workspace:
export SUPERVAIZER_WORKSPACE_AUTH_REQUIRED=true
export SUPERVAIZER_WORKSPACE_AUTH_ISSUER=https://studio.supervaize.com
export SUPERVAIZER_WORKSPACE_AUTH_JWKS_URL=https://app.supervaize.com/w/your-workspace-slug/api/v1/workspace-agent-grants/jwks/
The issuer is the Studio web origin used to sign authorization tokens. The JWKS URL uses the Django API origin and /w/<workspace-slug>/api/v1/... route; it is public and provides the verification key. Copy the generated values from Studio when available. This is separate from SUPERVAIZE_API_KEY (agent → Studio) and SUPERVAIZER_API_KEY (Studio → controller). If using a different Studio deployment, use that deployment's generated values instead of these production examples.
For local development only
:::warning Local development
If the agent is not deployed to a publicly accessible server, you need to install a Tunneling solution so that supervaize can operate your agent.
Here are the instructions to setup a tunnel for your local development
:::
Store your public hostname in SUPERVAIZER_HOST environment variable.
export SUPERVAIZER_HOST=silly-peaches-chapter.loca.lt
Start the server 🚀
- CLI
- Local mode (no Studio)
- direct
# with the virtual environment active
supervaizer start
# Run your agents locally without Studio credentials
supervaizer start --local
Local mode runs your agents alongside a built-in Hello World agent — no Studio account needed. Set SUPERVAIZER_DISABLE_HELLO_WORLD=true to hide the Hello World agent. API key defaults to local-dev.
:::info Debug Use the direct python call for advanced debugging :::
uv run python supervaizer_control.py
INFO | supervaizer.storage:__init__ - [StorageManager] 🗃️ Local DB initialized
INFO | supervaizer.server:__init__ - [Server launch] 🚀 Deploy Supervaizer routes
INFO | supervaizer.server:__init__ - [Server launch] 📢 Deploy A2A routes
INFO | supervaizer.server:__init__ - [Server launch] 💼 Deploy Admin interface @ http://0.0.0.0:8000/admin
INFO | supervaizer.server:__init__ - [Server launch] API Key authentication enabled
WARNING | supervaizer.server:__init__ - [Server launch] Using auto-generated API key: xxxxxxxxxxxxxxxxxxxxxxxxxxxx
INFO | [Server launch] Starting Supervaize Controller API
SUCCESS | ✅ POST Event SERVER_REGISTER sent
INFO | [Server launch] Updated agent Hello World Agent
INFO: Started server process
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
:::tip Verify endpoints Once the server is running, you'll have:
- API docs:
http://127.0.0.1:8000/docs(Swagger) and/redoc - A2A discovery:
/.well-known/agents.json - Admin interface:
http://127.0.0.1:8000/admin:::
What's next?
- Deploy to the cloud using the Cloud Deployment Guide for production-ready hosting
- Add more custom methods (
chat,custom) to extend control - Enable A2A discovery for agent interoperability
- Hook your controller into Supervaize to monitor, audit, and operate the agent
Need Help?
If you run into issues, check the Troubleshooting Guide for common problems and solutions.
Reference
- Parameter Model: docs link
- Protocol Support: See the Protocols documentation for A2A protocol details
- API docs: visit
/docsand/redocwhen the server is running
Supervaizer is the controller & interoperability layer; it doesn't replace your agent framework. It makes your agent discoverable, operable, and governable.