SDK & Integration
Wrap your agent, wherever it runs. Aegis does not care what framework it is built on or whose cloud it sits in.
Three steps
Register the agent in this console, issue it an enrollment key, then wrap your tool functions. Everything else — which credentials it may use, which connectors it may call, which guardrails apply — is configured here and picked up by the SDK at runtime.
1. Install
pip install aegis-sdk
2. Point it at your agent's identity
Issue an enrollment key on the agent's page, then put it in the environment wherever the agent runs — your laptop, a VPS, an EC2 instance, a container. No VPN and no inbound ports are required; the SDK makes outbound calls only.
export AEGIS_API_BASE= export AEGIS_AGENT_KEY=agk_a1b2c3d4_... # shown once, at creation
3. Wrap the agent
from aegis_sdk import Aegis
# Fetches this agent's config from the control plane: its autonomy tier,
# bound connectors, bound credentials and guardrails.
aegis = Aegis.from_env()
@aegis.tool("hospital-ctms", scope="read")
def query_trials(condition: str) -> list[dict]:
"""Every call through this decorator is checked and audited.
If "hospital-ctms" is not bound to this agent, or the agent is not
granted the "read" scope on it, the call is BLOCKED and logged — not
silently dropped and not allowed through with a warning.
"""
return ctms_client.search(condition=condition)
result = query_trials("type 2 diabetes")An undecorated function bypasses the guard
This is inherent to the decorator pattern: nothing can force a function to carry it. The compensating controls are registration in this console and human review at wrap time. Run aegis-sdk check . in CI to find tool functions that reach a connector without going through the guard.