Skip to content
Agentic Control Plane

Govern the Anthropic Agent SDK

The Anthropic Agent SDK ships Skills as first-class primitives and supports nested sub-agents. ACP maps each Skill onto a registered agent profile so every Skill invocation, tool call, and sub-agent hop is scoped, budgeted, and auditable.

Disambiguation

The Anthropic Agent SDK is not Claude Code. Claude Code is a terminal application. The Agent SDK is a TypeScript / Python library for building agents that run in your own infrastructure. Both are governed by ACP — see Claude Code integration for the CLI version.

TL;DR — adapter pattern (works today)

import Anthropic from "@anthropic-ai/sdk";
import { governTool } from "@agenticcontrolplane/governance-anthropic"; // pre-release

const client = new Anthropic({
  apiKey: process.env.ANTHROPIC_API_KEY,
  defaultHeaders: {
    "x-acp-workspace": process.env.ACP_WORKSPACE,
    "x-acp-key": process.env.ACP_API_KEY,
  },
});

async function runSkill(name: string, input: unknown) {
  return governTool({
    agentProfileId: name,
    tool: `skill.${name}`,
    input,
    execute: () => client.messages.create({ ... }),
  });
}

Each Skill registers as an ACP agent profile. Sub-agent invocations create chain links automatically.

How it works

The adapter intercepts at the SDK boundary:

  1. Verifies your gsk_ key resolves to a workspace and a human identity
  2. Checks the Skill’s scopes and tools against the chain
  3. Records the Skill call in the audit log with full provenance
  4. Returns the model’s response or a denial

When a Skill invokes a sub-Skill, the adapter starts a child chain link — parentAgent, agent_name, narrowed scopes, propagated budget all flow naturally.

Mapping to ACP

Anthropic Agent SDK ACP
Skill AgentProfile with scopes, tools, budget
Sub-agent Child link in delegation chain
Tool definition Registered ACP tool (built-in or custom connector)
Messages API call Governed at adapter (today) or via native passthrough (coming)
Claude’s tool_use block Maps to governToolCall() — seven-layer pipeline runs

What you’ll see in the dashboard

Each Skill appears as a distinct agent on the Agents page. Sub-agent chains render in the Run Details panel — supervisor → researcher → analyst with scope and budget shown at each hop.

Roadmap

  • Today: adapter pattern. Wraps the SDK, ~20 lines of glue code.
  • Next: native /v1/messages passthrough — drop ACP’s base URL into the Anthropic SDK constructor with no wrapper code.
  • Soon: first-class Skills support — register your skills.yaml with ACP and every Skill auto-creates a profile, scopes, and budget.

Limitations

  • Adapter package pre-release. Functional but not on npm yet. Use the inline governTool pattern from the blog post until published.
  • Native Messages API passthrough is pending. Today the adapter pattern is required; soon you’ll be able to skip the wrapper entirely.
  • Skills authored in YAML need manual registration as ACP profiles today. Auto-registration coming with first-class Skills support.
  • Streaming Messages calls work but the adapter unwraps the stream to apply governance before returning. May add small latency on long generations.