Skip to main content

Integration Overview

AxonFlow integrates with AI frameworks and agent runtimes to add governance, policy enforcement, and audit logging to your existing AI applications. Add compliance guardrails without rewriting your agent code.

Looking for:

  • Governance for LangChain / LangGraph / CrewAI
  • Audit trail for agent workflows
  • PII/PHI redaction before LLM calls
  • Policy enforcement for multi-agent systems
  • Cost controls and token budgets for agents
  • Human approval gates for agent actions
  • SQL injection prevention in AI pipelines

→ You're in the right place.

Governance layer at a glance

Each integration governs at a different layer. This table states the honest interception model — what is enforced automatically vs. what you opt into by wrapping calls. "Governs prompt/model content" is marked ✅ only where a real callback or adapter sends model-bound content to the policy engine and can deny it; for everything else, prompt text is not policy-checked on that surface. Each page carries a matching Governance coverage box with the specifics.

IntegrationGovernance layerCan blockGoverns prompt/model content?
Claude CodeNative PreToolUse/PostToolUse hooks✅ tools
CursorNative IDE hooks + MCP✅ tools
OpenAI CodexNative hooks (shell) + advisory skills✅ shell only
OpenClawNative plugin hooks✅ tools / outbound message❌ (LLM in/out observe-only)
Claude DesktopMCP governance proxy (.mcpb)✅ tools
Google ADKNative BasePlugin callbacks✅ model + tools✅ via before_model_callback
n8nExplicit workflow node (opt-in step)✅ wired steps
LangGraphSDK node-wrapper adapter (opt-in)✅ node transitions / tools
LangChainSDK adapters AxonFlowChatModel + GovernedTool (opt-in)✅ LLM + tools✅ via AxonFlowChatModel
Anthropic Computer UseSDK ComputerUseGovernor (opt-in)✅ tool actions
LiteLLMaxonflow-litellm wrapper / callback✅ wrapper mode (callback is audit-only)✅ in wrapper mode
Claude Agent SDKTS SDK tool checks mcpCheckInput/mcpCheckOutput (opt-in)✅ wrapped tools
AutoGenSDK / Gateway boundary (opt-in) + GovernedTool⚠️ where you wire it❌ no framework-native interception
CrewAISDK / Gateway boundary (opt-in) + GovernedTool⚠️ where you wire it❌ no framework-native interception
DSPySDK / Gateway boundary (opt-in) + GovernedTool⚠️ where you wire it❌ no framework-native interception
LyzrSDK / Gateway boundary (opt-in) + GovernedTool⚠️ where you wire it❌ no framework-native interception
LangChainGoGo SDK / Gateway boundary (opt-in) + GovernedTool⚠️ where you wire it❌ no framework-native interception
LlamaIndex.TSTS SDK / Gateway boundary (opt-in) + GovernedTool⚠️ where you wire it❌ no framework-native interception
ObotTS SDK / Gateway boundary (opt-in); not in Obot's MCP path⚠️ where you wire it❌ no framework-native interception
Semantic KernelJava SDK / Gateway boundary (opt-in)⚠️ where you wire it❌ no framework-native interception
Microsoft Copilot StudioPower Automate connector (opt-in step)⚠️ wired steps❌ no framework-native interception

⚠️ "where you wire it" / opt-in means coverage exists only at the calls you explicitly wrap — there is no framework-native interceptor, so un-wrapped calls run ungoverned. Apply the WCP step-gate or Gateway Mode pattern consistently. The framework-agnostic GovernedTool adds enforced per-tool checks on top of any of these.

Recent release highlights

AxonFlow v7.1.x added new governance features that matter directly to framework and plugin users:

  • v7.1.0 Release Notes covers decision explainability, session overrides, workflow checkpoints, and SDK parity
  • v7.1.1 Release Notes covers the post-release fixes that made those features behave consistently across plugin paths

If you use LangChain, LangGraph, CrewAI, AutoGen, LlamaIndex.TS, Lyzr, OpenClaw, Claude Code, Cursor, or Codex, the updated integration pages below now call out the direct impact of those releases.

Supported Frameworks

LLM Orchestration Frameworks

FrameworkLanguageIntegration TypeBest Fit
LangChainPythonSDK + Raw HTTPMost comprehensive guide
LangChainGoGoGo SDKNative Go integration
LangGraphTypeScriptTypeScript SDKGraph-based workflows
LlamaIndex.TSTypeScriptTypeScript SDKNode.js/TypeScript apps
CrewAIPythonPython SDKMulti-agent crews
AutoGenPythonPython SDKMicrosoft multi-agent
Google ADKPythonPython SDK + ADK BasePluginAgent Development Kit plugin
DSPyPythonPython SDKProgrammatic LLM pipelines
LyzrPythonPython SDKEnterprise AI agents

AI Agent Runtimes

RuntimeIntegration TypeUse CaseBest Fit
OpenClawPlugin (@axonflow/openclaw)Policy enforcement, approval gates, audit trailsAI agent gateway
Anthropic Computer UsePython SDK (ComputerUseGovernor)Governed desktop actions, bash command blockingDesktop automation
Claude Agent SDKTypeScript SDKMCP tool governance patternsCustom agent tooling

AI Assistants & CLI Tools

ToolIntegration TypeUse CaseBest Fit
Claude CodeHTTP HooksCLI governanceAgentic coding assistant
Claude DesktopMCP proxy (.mcpb)Desktop tool-call governanceChat / Cowork / Claude Code modes
CursorIDE hooks + MCPIDE governanceAgentic code editor
OpenAI CodexHooks + skills + MCPHybrid governanceCloud coding agent

Enterprise Platforms

PlatformIntegration TypeUse CaseBest Fit
Microsoft Copilot StudioHTTP APILow-code AI appsPower Platform integration
Semantic KernelJavaMicrosoft AI orchestrationJava enterprise apps
ObotTypeScript SDKMCP GatewayMCP-based agents

Workflow Automation

PlatformIntegration TypeUse CaseBest Fit
n8nCommunity node + HTTP recipePolicy check, decision recording, HITL approval in n8n workflowsWorkflow automation with human-in-the-loop

Integration Patterns

Wrap any LangChain BaseTool with input/output policy enforcement. Works with LangChain, CrewAI, AutoGen, LangGraph, and any framework that accepts BaseTool:

from axonflow import AxonFlow
from axonflow.adapters import govern_tools

async with AxonFlow(endpoint="http://localhost:8080",
client_id="your-client-id",
client_secret="your-secret") as client:
governed = govern_tools([search, calculator], client)
# Use with any framework — they're still BaseTool instances

Benefits:

  • Input governance: block tool calls with PII/SQLi before execution
  • Output governance: redact sensitive data in tool results before LLM sees them
  • Framework-agnostic: one wrapper works across all Python frameworks
  • Per-tool governance details

Gateway Mode

The standard pattern for LLM call governance across all SDKs:

Your Framework → AxonFlow Pre-check → LLM Provider → AxonFlow Audit

Benefits:

  • Policy enforcement before LLM calls
  • Complete audit trail of all operations
  • Token usage and cost tracking
  • Works with any LLM provider and any SDK language

Proxy Mode

For simpler integrations:

Your Framework → AxonFlow Proxy → LLM Provider

Benefits:

  • Single API endpoint
  • Automatic policy enforcement
  • Simpler integration (one call)

SDK Coverage

SDKFrameworks Using It
Python SDKLangChain, CrewAI, AutoGen, DSPy, Lyzr
Go SDKLangChainGo
TypeScript SDKLangGraph, LlamaIndex.TS, Obot
Java SDKSemantic Kernel
Raw HTTPAll frameworks (Copilot Studio uses Power Automate HTTP)

Quick Start by Framework

Python Frameworks (LangChain, CrewAI, Lyzr)

from axonflow import AxonFlow

with AxonFlow.sync(
endpoint="http://localhost:8080",
client_id="your-client-id",
client_secret="your-client-secret"
) as client:
# Pre-check before LLM call
ctx = client.get_policy_approved_context(
user_token="user-123",
query="Your prompt here"
)

if ctx.approved:
# Make your framework's LLM call here
response = your_framework_llm_call(str(ctx.approved_data))

# Audit the result
client.audit_llm_call(
context_id=ctx.context_id,
provider="openai",
model="gpt-4",
response_summary=response[:200]
)

Go Frameworks (LangChainGo, Obot)

import "github.com/getaxonflow/axonflow-sdk-go/v8"

client := axonflow.NewClient(axonflow.AxonFlowConfig{
Endpoint: "http://localhost:8080",
ClientID: "your-client-id",
ClientSecret: "your-client-secret",
})

// Pre-check (GetPolicyApprovedContext handles policy check)
result, _ := client.GetPolicyApprovedContext("user-123", "Your prompt here", nil, nil)

if result.Approved {
// Your framework LLM call
response := yourFrameworkLLMCall(fmt.Sprint(result.ApprovedData))

// Audit
_, _ = client.AuditLLMCall(
result.ContextID,
response[:200],
"openai",
"gpt-4",
axonflow.TokenUsage{},
0,
nil,
)
}

TypeScript Frameworks (LlamaIndex.TS)

import { AxonFlow } from '@axonflow/sdk';

const client = new AxonFlow({
endpoint: 'http://localhost:8080',
clientId: process.env.AXONFLOW_CLIENT_ID,
clientSecret: process.env.AXONFLOW_CLIENT_SECRET,
});

// Pre-check
const ctx = await client.getPolicyApprovedContext({
userToken: 'user-123',
query: 'Your prompt here'
});

if (ctx.approved) {
// Your framework LLM call
const response = await yourFrameworkLLMCall(JSON.stringify(ctx.approvedData ?? query));

// Audit
await client.auditLLMCall({
contextId: ctx.contextId,
responseSummary: response.slice(0, 200),
provider: 'openai',
model: 'gpt-4',
});
}

What AxonFlow Adds

CapabilityDescription
PII Detection12+ PII types automatically detected and optionally redacted
SQL Injection Scanning37+ attack patterns blocked in prompts and responses
Policy EnforcementCustom rules in Rego/OPA with single-digit ms evaluation
Audit LoggingComplete request/response logging with compliance retention
Cost TrackingToken usage and cost per request
Multi-Model RoutingRoute to different LLM providers based on policy

Community, Evaluation, And Enterprise

FeatureCommunityEvaluationEnterprise
Framework integrationsYesYesYes
PII detection and redaction foundationsYesYesYes
SQL injection and dangerous-input policiesYesYesYes
Audit loggingYesYesYes
Policy enforcementYesYesYes
HITL approval gatesLimited by Community tierHigher evaluation limitsEnterprise operating model
Policy simulationNoYesYes
Evidence exportNoYesYes
Customer Portal, SSO, and SCIMNoNoYes

For exact limits, use Community vs Evaluation vs Enterprise. For plugin-tier limits on try.getaxonflow.com, use Community SaaS and Plugin Pro.

Choosing a Framework Guide

If you're using...Start with...
Python + multi-agent orchestrationCrewAI Guide or AutoGen Guide
Python + RAG/chainsLangChain Guide
Python + programmatic pipelinesDSPy Guide
Python + enterprise agentsLyzr Guide
Go backendLangChainGo Guide
TypeScript + graph workflowsLangGraph Guide
TypeScript + RAGLlamaIndex.TS Guide
TypeScript + MCPObot Guide
Java enterpriseSemantic Kernel Guide
Low-code/Power PlatformCopilot Studio Guide
Claude Code CLIClaude Code Guide

Need a Different Framework?

AxonFlow's SDK and HTTP APIs work with any framework. Use the LangChain guide as a reference - it includes both SDK and raw HTTP examples that can be adapted to any framework.

For framework-specific integration help: