Progressive Governance

July 30, 2026 ยท View on GitHub

Start with one native ACS manifest, then add host controls only when the risk requires them.

Level 1

Create a manifest and evaluate it through AgentControl.

from agent_control_specification import AgentControl, HostSession

runtime = AgentControl.from_path("policies/manifest.yaml")
session = HostSession(
    runtime,
    agent_id="agent-1",
    session_id="session-1",
)

evaluation = session.pre_tool_call(
    tool_name="delete_file",
    args={"path": "report.txt"},
)
assert not evaluation.verdict.decision.permits

The manifest owns policy definitions, tool catalogs, intervention-point bindings, budgets, transforms, and approval.

Level 2

Add version-controlled Rego or Cedar bundles and use ACS extends to compose resolved manifests. Run agt lint-policy and agt test in CI.

agt lint-policy policies/manifest.yaml
agt test policies/manifest.yaml policies/fixtures.json

Level 3

Use an Agent OS framework adapter. Pass the same runtime through runtime= so model, tool, and output paths are mediated by the manifest.

Level 4

Add AgentMesh identity, trust, and transport controls for multi-agent systems. These controls remain separate from ACS policy evaluation.

Level 5

Add sandbox isolation, SRE controls, approval services, and centralized audit. Sandbox resources and egress belong in SandboxConfig, not in policy objects.

LevelAdd when you need
1Deterministic policy checks
2Reviewed bundles and replay
3Framework lifecycle mediation
4Multi-agent identity and trust
5Isolation, resilience, and operations

See Your First Policy and Agent Control Specification.