Anthropic’s Claude Managed Agents platform handles execution infrastructure for Claude-powered agents. The managed-agents package handles governance — what those agents are allowed to do once they’re running. The two work together seamlessly.
Installation
pip install managed-agents
Basic integration
Create a harness with platform="claude" and govern every tool call before it is executed by Claude’s runtime:
python
from managed_agents import NomoticHarness, GovernanceDenied
harness = NomoticHarness(
api_key="nm_live_...",
agent_id="nmc-...",
platform="claude",
)
async def execute_tool(tool_name: str, tool_input: dict) -> dict:
try:
await harness.govern(tool_name, tool_input)
return await claude_runtime.execute(tool_name, tool_input)
except GovernanceDenied as e:
return {
"type": "error",
"error": {"type": "governance_denied", "message": str(e)}
}
Handling escalations
By default, escalated actions are routed to your Nomotic approval queue and execution continues if fail_open=True. For Claude agents where you want to pause execution pending human review:
python
harness = NomoticHarness(
api_key="nm_live_...",
agent_id="nmc-...",
platform="claude",
block_on_escalate=True,
)
With block_on_escalate=True, an escalated tool call raises GovernanceDenied. Your agent can surface this to the user and wait before retrying once the escalation is resolved.
What Nomotic adds
Running on Claude Managed Agents gives you execution infrastructure. Adding managed-agents gives you a cryptographic certificate for your agent, an immutable audit trail of every tool call, a trust score reflecting behavioral history, drift detection if behavior changes over time, and compliance documentation for regulated industries.
Data handling
Nomotic only receives what you pass to harness.govern() — the tool name and input parameters. The full content of Claude’s responses and reasoning stays within Anthropic’s infrastructure.