This repository contains Mandate: Bounded Authority for Autonomous Agents, a Google AI Agents Challenge demo powered by the open-source Ratify Protocol.
Mandate is the agent project. Ratify is the cryptographic authorization layer. The dashboard is branded Ratify Verify because it visualizes the live verification/audit feed from the MCP tools.
For the full Google ADK agent path:
cd mandate
./bootstrap-demo.sh --yesIf GOOGLE_API_KEY is not set, the script prompts you to paste a Gemini API key. Get one from:
https://aistudio.google.com/app/apikey
Then open:
http://localhost:8010
For a deterministic verification run without a Gemini key:
cd mandate
./bootstrap-demo.sh --smoke --yesThen open:
http://localhost:8010
The bootstrap script prefers Docker Compose. If no Docker daemon is running, it creates a local Python virtualenv and runs the Go MCP services directly. On macOS, if Go or Python 3 are missing, it prompts to install them with Homebrew.
When GOOGLE_API_KEY is set, the default path runs the Gemini ADK agent. Without a key, use --smoke to exercise the exact same MCP servers and Ratify verification logic without model quota, latency, or prompt variance.
Use this path when Docker Desktop, Colima, or another Docker daemon is already running:
cd mandate
./bootstrap-demo.sh --smoke --yesStop services:
./bootstrap-demo.sh --stopThe hackathon story uses Gemini/ADK for the autonomous incident commander. Run that path with:
cd mandate
export GOOGLE_API_KEY=your-gemini-api-key
./bootstrap-demo.sh --gemini --yesYou can also set GEMINI_API_KEY; the bootstrap script maps it to GOOGLE_API_KEY for the demo.
This is the primary hackathon demo path. The smoke path exists as the deterministic test harness for evaluators and CI.
Requires Go and Python 3:
cd mandate
./bootstrap-demo.sh --local --yes[PASS] cloud provision within mandate: approved
[PASS] cloud over-provision denied: constraint_denied
[PASS] hardware vendor cross-org approval: approved
MANDATE SMOKE DEMO PASSED
The agent can act autonomously through MCP tools, but the receiving system independently verifies whether each action is authorized. One safe cloud provisioning action succeeds, one out-of-bounds action is denied before execution, and a separate vendor MCP server verifies the same style of mandate across an organizational boundary.
Mandate is also a companion demo for the open-source Ratify Protocol:
- The Python agent code imports the Ratify Python SDK (
ratify_protocol) to generate identities, issue delegated mandates, sign fresh challenges, and assemble proof bundles. - The CloudOps MCP server imports the Ratify Go SDK (
github.com/identities-ai/ratify-protocol) and callsratify.Verify(...)before provisioning. - The HardwareVendor MCP server imports the same Go SDK and verifies the mandate independently across an org boundary.
- The optional Pi verifier uses the C SDK path to show the same proof pattern in a physical/offline setting.
So the demo is not just a UI mock: every approve/deny row comes from SDK-backed verification in the MCP servers.