Framework adapters · 13 packages on PyPI · Alpha · Apache-2.0

Govern the hook your framework actually invokes.

Each adapter package connects acgs-lite>=3.0.1,<4 rule evaluation to a single agent framework or MCP server. All 13 packages are published on PyPI as Alpha releases under Apache-2.0 and fail closed when governance evaluation raises an error.

Two integration mechanics

Not every framework hook owns the tool call.

Before choosing an adapter, check whether the target framework exposes a middleware wrapper around execution or only a pre-call veto callback.

Shared foundation: all 13 adapters evaluate rendered tool-call arguments through ToolCallGovernor on acgs-lite>=3.0.1,<4.

Inspect ACGS-Lite 3.0.1

01 · Call-owning middleware (5 packages)

Wraps execution around the tool call

fastmcp-acgs · langchain-acgs · agno-acgs · agent-framework-acgs · ag2-acgs

These five adapters sit directly around the tool dispatch function (such as FastMCP's call_next or LangChain's wrap_tool_call). Because the middleware controls when and whether the underlying callable is invoked, it can enforce pre-call checks, interrupt for human approval, and inspect post-call outcomes on the governed path.

02 · Pre-tool veto & intervention hooks (8 packages)

Vetoes before host dispatch

claude-agent-acgs · openai-agents-acgs · pydantic-ai-acgs · adk-acgs · crewai-acgs · strands-acgs · acgs-haystack · beeai-acgs

These eight adapters plug into host callbacks (such as Claude Agent SDK's PreToolUse permission decision, OpenAI Agents input guardrails, or Google ADK's before_tool_callback). They can allow, deny, or request review before the tool runs, but the host framework owns the actual tool dispatch after an allow decision.

Complete package ledger

Choose the adapter for your agent stack.

Every entry below lists the exact published PyPI version, the inspected hook symbol from the repository source, the supported framework constraint, and the integration caveats to verify before deployment.

Execution boundary model

Showing 13 of 13 Alpha packages · All require acgs-lite>=3.0.1,<4 · Apache-2.0

  1. 01Call-owning middlewarePyPI 0.1.0 · Alpha

    FastMCP (MCP Server)

    fastmcp-acgs · framework by Prefect

    Intercepts MCP server tool calls through on_call_tool middleware before and around call_next dispatch, serving any connected MCP client.

    pip install "fastmcp-acgs==0.1.0"
    Integration surface
    ACGSMiddleware.on_call_tool
    Framework & Python range
    fastmcp-slim[server]>=4.1.0,<5 · Python >=3.10

    Boundary note: Evaluates acgs-lite policy rules (not gove-zone receipts). FastMCP 2.x and 3.x are unsupported; requires fastmcp-slim[server]>=4.1.0,<5.

  2. 02Call-owning middlewarePyPI 0.1.1 · Alpha

    LangChain & LangGraph

    langchain-acgs · framework by LangChain

    Wraps sync and async LangChain tool execution and integrates with LangGraph interrupt flows when human review is required.

    pip install "langchain-acgs==0.1.1"
    Integration surface
    ACGSMiddleware.wrap_tool_call / awrap_tool_call
    Framework & Python range
    langchain>=1.2.15,<2 · langgraph>=1.1.5,<2 · Python >=3.10,<4.0

    Boundary note: Covers tool calls routed through the configured AgentMiddleware; direct tool invocations outside the agent runner are not intercepted.

  3. 03Call-owning hookPyPI 0.1.0 · Alpha

    Agno

    agno-acgs · framework by Agno

    Attaches ACGS-Lite tool hooks and pre-execution guardrails to Agno agents and multi-agent teams.

    pip install "agno-acgs==0.1.0"
    Integration surface
    ACGSGuard.tool_hook · ACGSGuardrail.check / async_check
    Framework & Python range
    agno>=3.1.0,<4 · Python >=3.10

    Boundary note: Evaluates rendered tool-call arguments against configured acgs-lite rules and fails closed on governance errors.

  4. 04Call-owning middlewarePyPI 0.1.0 · Alpha

    Microsoft Agent Framework

    agent-framework-acgs · framework by Microsoft

    Provides function and chat middleware plus tool-approval hooks for Microsoft Agent Framework pipelines, with an optional [mcp] extra.

    pip install "agent-framework-acgs==0.1.0"
    Integration surface
    ACGSFunctionMiddleware.process · ACGSToolCheck.process
    Framework & Python range
    agent-framework-core>=1.20.0,<2 · Python >=3.10

    Boundary note: Independent community package; not affiliated with or endorsed by Microsoft.

  5. 05Call-owning middlewarePyPI 0.1.0 · Alpha

    AG2 (AutoGen)

    ag2-acgs · framework by AG2

    Adds tool execution middleware and human-approval gating to AG2 multi-agent conversations.

    pip install "ag2-acgs==0.1.0"
    Integration surface
    ACGSMiddleware.on_tool_execution
    Framework & Python range
    ag2>=1.2.0,<2 · Python >=3.10

    Boundary note: Independent community package; confirm tool registration routes through the middleware on your target AG2 version.

  6. 06Pre-tool veto hookPyPI 0.1.0 · Alpha

    Claude Agent SDK

    claude-agent-acgs · framework by Anthropic

    Registers a PreToolUse hook on the Claude Agent SDK to return allow, deny, or ask permission decisions before a tool runs.

    pip install "claude-agent-acgs==0.1.0"
    Integration surface
    ACGSHook.matcher / apply (PreToolUse)
    Framework & Python range
    claude-agent-sdk>=0.2.119,<0.3 · Python >=3.10

    Boundary note: Veto-only hook before execution; does not wrap post-call outcomes. Independent community package, not endorsed by Anthropic.

  7. 07Pre-tool guardrailPyPI 0.1.0 · Alpha

    OpenAI Agents SDK

    openai-agents-acgs · framework by OpenAI

    Applies tool input guardrails and needs_approval checks to local function tools in the OpenAI Agents SDK.

    pip install "openai-agents-acgs==0.1.0"
    Integration surface
    ACGSToolGuard.govern_tool / govern_agent
    Framework & Python range
    openai-agents>=0.22.1,<1 · Python >=3.10

    Boundary note: Provider-hosted tools (such as hosted web search or file search) execute outside local Python hooks and are not governed by this adapter.

  8. 08Pre-tool capabilityPyPI 0.1.0 · Alpha

    Pydantic AI

    pydantic-ai-acgs · framework by Pydantic

    Hooks into Pydantic AI tool validation and pre-execution lifecycle callbacks to enforce ACGS-Lite policy rules.

    pip install "pydantic-ai-acgs==0.1.0"
    Integration surface
    ACGSCapability.after_tool_validate / before_tool_execute
    Framework & Python range
    pydantic-ai-slim>=2.16.0,<3 · Python >=3.10

    Boundary note: Pre-execution gate after schema validation; does not wrap external side-effect settlement.

  9. 09Pre-tool plugin callbackPyPI 0.1.1 · Alpha

    Google ADK

    adk-acgs · framework by Google

    Registers an ADK plugin callback that evaluates proposed tool calls before the Google Agent Development Kit runner invokes the tool.

    pip install "adk-acgs==0.1.1"
    Integration surface
    ACGSPlugin.before_tool_callback
    Framework & Python range
    google-adk>=2.0.0,<3 · Python >=3.10

    Boundary note: Veto-only callback before tool execution; relies on the ADK runner invoking plugin callbacks for every governed tool.

  10. 10Pre/post tool hookPyPI 0.1.0 · Alpha

    CrewAI

    crewai-acgs · framework by CrewAI

    Connects ACGS-Lite rule evaluation to CrewAI's native before_tool_call and after_tool_call hook registry.

    pip install "crewai-acgs==0.1.0"
    Integration surface
    ACGSToolCallHook.before_tool_call / after_tool_call / register
    Framework & Python range
    crewai>=1.15.3,<2 · Python >=3.10,<3.14

    Boundary note: Requires Python >=3.10,<3.14 matching CrewAI's supported interpreter range.

  11. 11Pre-tool interventionPyPI 0.1.1 · Alpha

    Strands Agents

    strands-acgs · framework by AWS

    Implements a Strands Agents intervention handler that checks tool arguments against an ACGS-Lite constitution before execution.

    pip install "strands-acgs==0.1.1"
    Integration surface
    ACGSIntervention.before_tool_call
    Framework & Python range
    strands-agents>=1.43.0 · Python >=3.10

    Boundary note: Veto-only pre-call intervention; does not issue execution grants or outcome receipts.

  12. 12Confirmation strategyPyPI 0.1.1 · Alpha

    Haystack

    acgs-haystack · framework by deepset

    Integrates with Haystack Agent's before_tool ConfirmationHook via a fail-closed ACGSConfirmationStrategy.

    pip install "acgs-haystack==0.1.1"
    Integration surface
    ACGSConfirmationStrategy.run / run_async (before_tool)
    Framework & Python range
    haystack-ai>=3.0.0 · Python >=3.11

    Boundary note: Requires Python >=3.11 and haystack-ai>=3.0.0.

  13. 13Run middleware & permissionPyPI 0.1.0 · Alpha

    BeeAI Framework

    beeai-acgs · framework by IBM

    Binds ACGS-Lite policy evaluation into BeeAI run middleware and permission-requirement decision hooks.

    pip install "beeai-acgs==0.1.0"
    Integration surface
    ACGSMiddleware.bind · permission_requirement · decide
    Framework & Python range
    beeai-framework>=0.1.85,<0.2 · Python >=3.11,<3.14

    Boundary note: Pre-0.2 framework target; tested against beeai-framework 0.1.85 with a scripted model on Python >=3.11,<3.14.

Model Context Protocol

Why the MCP server boundary reaches every client.

When tools are exposed through a FastMCP server, placing governance at ACGSMiddleware.on_call_tool governs requests regardless of which agent framework or IDE client initiates the call.

FastMCP server middlewarefastmcp-slim[server]>=4.1.0,<5
from acgs_lite import Constitution, GovernanceEngine
from fastmcp import FastMCP
from fastmcp_acgs import ACGSMiddleware

constitution = Constitution.from_yaml_str("""
rules:
  - id: block-prod-drop
    text: Block destructive schema operations
    severity: critical
    keywords: [DROP TABLE, TRUNCATE]
""")

mcp = FastMCP("governed-tools")
mcp.add_middleware(ACGSMiddleware(GovernanceEngine(constitution)))

Illustrative setup for fastmcp-acgs==0.1.0. Evaluates tool arguments against acgs-lite rules before call_next runs. Does not mint gove-zone kernel receipts.

Scope & verification

Know what the adapters cover today.

Each adapter repository is an independent Python package with its own unit test suite and CI matrix. Keep these four boundaries in view during evaluation.

Inspect Claims & Evidence
  1. 01

    Rule evaluation on rendered tool arguments

    All 13 adapters ship the ACGS-Lite ToolCallGovernor path: they serialize tool names and arguments, evaluate configured keyword/regex rules, and fail closed if governance evaluation raises an exception.

  2. 02

    Receipts, grants, and EffectStore are separate layers

    In the current 0.1.x adapter releases, 0 of 13 packages directly wire SignedReceipt, ExecutionGrant, or EffectStore. If you require receipt-gated tool execution or SQLite effect reservation, integrate those contracts explicitly in your tool executor.

  3. 03

    Version pin coupling with ACGS-Lite 3.0.1

    Every adapter declares acgs-lite>=3.0.1,<4 in pyproject.toml (and pins ==3.0.1 in oldest-version CI checks). Do not pair these adapters with older 2.x acgs-lite releases.

  4. 04

    Bypass paths and provider-hosted tools

    An adapter only governs tool calls that pass through its registered hook or middleware. Direct Python function calls, sub-agents without the hook attached, or provider-hosted server tools (for example in openai-agents-acgs) bypass local interception.

Put one real workflow under your control.

Choose one tool. Define what it may do. Inspect what happens when a request crosses the boundary.