AxioRankDocs
Integrations

Framework integrations

Drop-in adapters that put every tool your agent runs behind the AxioRank gateway, no rewrite.

If your agent is built on a framework, you don't call the gateway by hand. A drop-in adapter wraps the tools you already define, so every call the agent makes is scored, policed, and audited, with no change to your agent logic.

The model

There are two ways to put a framework's tools behind the gateway:

  • Wrap a tool (most frameworks): guardTool / guardTools (TypeScript) or guard_tool (Python) returns a drop-in replacement that scores the call's arguments, then runs the original tool on allow. Name, description, and schema are preserved.
  • A callback handler (LangChain in Python): attach one handler and every tool the agent runs is checked first, with no per-tool wrapping.

Allow, deny, hold

A guarded call scores its arguments through the gateway before the tool runs. A require_approval hold is waited out transparently and resolves to the final allow / deny. Adapters never surface a third state. On a deny you choose the behaviour:

  • Raise (default): a denied call raises AxioRankDeniedError and the tool step fails hard (onDeny: "throw" in TypeScript, on_deny="raise" in Python).
  • Return a refusal: onDeny: "return" / on_deny="return" returns a short, model-readable refusal string in place of the tool result, so the agent reads why it was blocked and re-plans. The natural choice for an autonomous agent.

Correlate a whole run

Pass axio.trace() instead of the bare client to give every tool call in one agent run a shared trace id, so the gateway can stitch a multi-step kill chain (read a secret → exfiltrate it) into a single trace. The same handle carries a session id and metadata tags, and emits the AI Gateway headers that stitch LLM turns into the run. See Agent Runs.

Supported frameworks

FrameworkTypeScriptPython
Anthropic Messages API@axiorank/sdk/anthropicaxiorank[anthropic]
Vercel AI SDK@axiorank/sdk/vercel-
OpenAI Agents@axiorank/sdk/openai-agentsaxiorank[openai-agents]
LangChain · LangGraph@axiorank/sdk/langchainaxiorank[langchain]
Mastra@axiorank/sdk/mastra-
LlamaIndex@axiorank/sdk/llamaindexaxiorank[llamaindex]
Pydantic AI-axiorank[pydantic-ai]
CrewAI-axiorank[crewai]
AutoGen · AG2-axiorank (framework-free)
Google ADK-axiorank (framework-free)
Google Gemini@axiorank/sdk/geminiaxiorank (framework-free)
smolagents-axiorank (framework-free)
LiteLLM proxy-axiorank[litellm]
Cloudflare Agents@axiorank/sdk/vercel-
Strands Agents-axiorank[strands]

The adapters are thin: each one funnels through the same toolCall used by the TypeScript and Python SDKs, so the allow / deny / hold semantics are identical to a hand-written integration.

Protecting an inbound surface

The table above is for the calls your agents make outbound. To verify the agents reaching into a site you operate, see inbound surfaces. On WordPress, the AxioRank Agent Verification plugin does it with no code.

Streaming to your SIEM

The decisions these adapters produce are a tamper-evident audit log you can push live to your SIEM. On Datadog, the AxioRank tile adds a log pipeline, three dashboards, and five monitors over the stream. See audit export for the raw NDJSON and CSV feeds and the other destinations.

Alerts and approvals in Slack

When a call is held or a high-risk alert fires, the person who needs to act is usually in Slack. The AxioRank Slack app installs with one click, routes alerts to a channel, and lets approvers approve or deny held tool calls right there, through the same dual-control path as the dashboard. Run /axiorank for what is waiting on you.

Next steps

On this page