Controller system for Supervaize
Project description
SUPERVAIZER
[[Operate AI Agents with confidence]]
A Python toolkit for building, managing, and connecting AI agents with full Agent-to-Agent (A2A) and Agent Communication Protocol (ACP) support.
Description
SUPERVAIZER is a toolkit built for the age of AI interoperability. At its core, it implements Google's Agent-to-Agent (A2A) protocol and IBM's Agent Communication Protocol (ACP), enabling seamless discovery and interaction between agents across different systems and platforms.
With comprehensive support for the A2A/ACP protocols, specification, SUPERVAIZER allows you to:
- Enhance the capabilities of your agents, making them automatically discoverable by other A2A/ACP compatible systems
- Expose standardized agent capabilities through agent cards
- Monitor agent health and status through dedicated endpoints
- Connect your agents to the growing ecosystem of A2A-compatible tools
Beyond A2A interoperability, SUPERVAIZER provides a robust API for agent registration, job control, event handling, telemetry, and more, making it a crucial component for building and managing AI agent systems.
Quick Start
Kickstart a Python agent with the Supervaizer Controller so it's discoverable and operable by Supervaize.
What we'll do
- Install Supervaizer in that project
- Scaffold the controller and map it to your agent
- Configure secrets & env, then start the server 🚀
1. Install Supervaizer
First, navigate to your existing Python AI agent project. This could be built with any framework - LangChain, CrewAI, AutoGen, or your own custom implementation. Supervaizer works as a wrapper around your existing agent, regardless of the underlying framework you're using.
pip install supervaizer
3. Scaffold the controller
Generate a starter controller in your project:
supervaizer scaffold
# Success: Created an example file at supervaizer_control_example.py
This creates supervaizer_control_example.py. You'll customize it to:
- Define agent parameters (secrets, env, required inputs)
- Define agent methods (start/stop/status, etc.)
- Map those methods to your agent's functions
(Optional) 4. Configure your Supervaize account & environment
Create your developer account on the Supervaize platform.
Create your API Key and collect your environment variables:
export SUPERVAIZE_API_KEY=...
export SUPERVAIZE_WORKSPACE_ID=team_1
export SUPERVAIZE_API_URL=https://app.supervaize.com
5. Start the server 🚀
# with the virtual environment active
supervaizer start
Or run directly:
python supervaizer_control.py
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 - ACP discovery:
/agents
What's next?
- Add more custom methods (
chat,custom) to extend control - Turn on A2A / ACP discovery for interoperability
- Hook your controller into Supervaize to monitor, audit, and operate the agent
For detailed instructions on customizing your controller, see the Controller Setup Guide.
Features
- Agent Management: Register, update, and control agents
- Job Control: Create, track, and manage jobs
- Event Handling: Process and respond to system events
- Protocol support
- **A2A Protocol **: Integration with Google's Agent-to-Agent protocol for interoperability
- **ACP Protocol **: Integration with IBM/BeeAI's Agent Communication Protocol for standardized agent discovery and interaction
- Server Communication: Interact with SUPERVAIZE servers (see supervaize.com for more info)
- Web Admin Interface: Easy to use web-based admin dashboard for managing jobs, cases, and system monitoring
Protocol Support
SUPERVAIZER provides comprehensive support for multiple agent communication protocols. See Protocol Documentation for complete details.
Using the CLI
SUPERVAIZER includes a command-line interface to simplify setup and operation. See CLI Documentation for complete details.
Also, check the list of Environment variables.
API Documentation & User Interfaces
SUPERVAIZER provides multiple ways to interact with and explore the API. See REST API Documentation for complete details.
Admin Interface (/admin)
A comprehensive web-based admin interface for managing your SUPERVAIZER instance See Admin documentation
Quick Start
from supervaizer import Server, Agent
# Create server with admin interface
server = Server(
agents=[your_agents],
api_key="your-secure-api-key", # Required for admin interface
admin_interface=True, # Enable admin interface (default: True)
)
server.launch()
print(f"Admin Interface: http://localhost:8000/admin/")
Calculating costs
Developers are free to define the cost of the transaction the way they want when updating the cases. Here is a way to easily get an estimate of the cost of an LLM transaction (note that litellm also supports custom pricing. )
from litellm import completion_cost
prompt = "Explain how transformers work."
output = "Transformers use attention mechanisms..."
model = "gpt-4"
cost = completion_cost(model=model, prompt=prompt, completion=output)
print(cost)
A list of costs is maintained here:
https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json
Documentation
For a full tutorial and example usage, go to doc.supervaize.com
Contributing
We welcome contributions from the community! Whether you're fixing bugs, adding features, improving documentation, or sharing feedback, your contributions help make SUPERVAIZER better for everyone.
Please see our Contributing Guidelines for details on how to get started, coding standards, and the contribution process.
License
This project is licensed under the Mozilla Public License 2.0 License.
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 supervaizer-0.9.6.tar.gz.
File metadata
- Download URL: supervaizer-0.9.6.tar.gz
- Upload date:
- Size: 89.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7cee528e1f92522dd2e3626e6739f32a44c54e66a7ee2939cacc793cc28bb8a
|
|
| MD5 |
c68e05368fcb88a6b07827dd51bc8246
|
|
| BLAKE2b-256 |
4a6e6039de90038b08ac9f819ec4a161ecd73543185e96c1e8d7862ff1079a9b
|
Provenance
The following attestation bundles were made for supervaizer-0.9.6.tar.gz:
Publisher:
publish-pypi.yml on supervaize/supervaizer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
supervaizer-0.9.6.tar.gz -
Subject digest:
f7cee528e1f92522dd2e3626e6739f32a44c54e66a7ee2939cacc793cc28bb8a - Sigstore transparency entry: 377674174
- Sigstore integration time:
-
Permalink:
supervaize/supervaizer@6c40fa9d813fbe02268da4eb6662d02f0d910fdd -
Branch / Tag:
refs/heads/main - Owner: https://github.com/supervaize
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@6c40fa9d813fbe02268da4eb6662d02f0d910fdd -
Trigger Event:
push
-
Statement type:
File details
Details for the file supervaizer-0.9.6-py3-none-any.whl.
File metadata
- Download URL: supervaizer-0.9.6-py3-none-any.whl
- Upload date:
- Size: 118.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e69cc83637c96ef68ca71c5a89e05e6db3633f69f420afd68c0efd381d1fa30
|
|
| MD5 |
e62409454a7eca502edec75cfef0d4a6
|
|
| BLAKE2b-256 |
614c61ca445258a99a18fb0bd9fd966adf45109053a873ff5a56f351c51e5d1c
|
Provenance
The following attestation bundles were made for supervaizer-0.9.6-py3-none-any.whl:
Publisher:
publish-pypi.yml on supervaize/supervaizer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
supervaizer-0.9.6-py3-none-any.whl -
Subject digest:
1e69cc83637c96ef68ca71c5a89e05e6db3633f69f420afd68c0efd381d1fa30 - Sigstore transparency entry: 377674213
- Sigstore integration time:
-
Permalink:
supervaize/supervaizer@6c40fa9d813fbe02268da4eb6662d02f0d910fdd -
Branch / Tag:
refs/heads/main - Owner: https://github.com/supervaize
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@6c40fa9d813fbe02268da4eb6662d02f0d910fdd -
Trigger Event:
push
-
Statement type: