Holiday offer: AI Agent Gap Check — $2,500, results in 5 business days →
Rends

Ecosystem

The Rends Ecosystem — Beyond governance. The standard.

Free risk tooling, open source SDKs, AICAP™ agent passports and a sample incident database. A regulatory API, benchmarks and an insurer program are planned.

v2.0.0MIT LICENSE

One SDK between your AI agent and its tools

Runtime interception for AI agents. Each tool call you wrap goes through synchronous policy enforcement before execution — not after — in default enforce mode (configurable; see Enforcement Modes below). Tamper-evident audit trail, kill switch, compliance passports.

The SDK is the reference client for the open standards at /standards — Rends Policy Language and the Agent Audit Log Schema, both MIT.

npm install @rends/agent-sdk@2.0.0pip install rends-agent-sdk==2.0.0

5-Stage Governance Pipeline

Every client.govern() call runs through this pipeline:

1. beforeActionValidates action context, computes input hash
2. policyCheckPOST /compliance/check-action — synchronous rules evaluation
3. decisionReturnParses { allowed, status, violations[], warnings[] }
4. executionGateExecute tool if ALLOW, throw GovernanceBlockError if BLOCK
5. telemetryEmitLog to tamper-evident audit trail with hash chain

What you get

Core capabilities ship identically across both SDKs. Framework adapters differ by language — the published Node SDK has 4; the published Python SDK has 10.

  • ✓Synchronous policy check before each wrapped tool call (allow, warn, block or escalate)
  • ✓Tamper-evident audit trail with SHA-512 hash chains
  • ✓Kill switch (Govern API) — pause or terminate an agent; the call returns only after the agent's recorded status confirms the stop, and the agent's next action checked through Rends is refused. In enforce mode, the SDK stops the action.
  • ✓Three enforcement modes: enforce, monitor, dry-run
  • ✓Fail-open option for non-blocking telemetry
  • ✓Batched telemetry with automatic flush
  • ✓TypeScript + Python — identical core API surface

TypeScript / Node.js

npm install @rends/agent-sdk@2.0.0

Python

pip install rends-agent-sdk==2.0.0

Quick Start — TypeScript

import { RendsClient } from "@rends/agent-sdk";

const client = new RendsClient({
  apiKey: "ac_live_...",
  orgId: "your-org-uuid",
  agentId: "your-agent-uuid",
  mode: "enforce", // or "monitor" or "dry-run"
});

const result = await client.govern(
  {
    actionType: "database_query",
    actionName: "select_users",
    resourceType: "customer_records",
    inputSummary: "SELECT * FROM users WHERE region = us-east-1",
  },
  async (params) => db.query("SELECT * FROM users")
);

// result.allowed = true/false
// result.status = "pass" | "warn" | "block"
// result.result = query output (if allowed)
// result.check.violations = [{ruleName, message, severity}]

Quick Start — Python

from rends_sdk import RendsClient, RendsClientConfig, ActionContext

async with RendsClient(RendsClientConfig(
    api_key="ac_live_...",
    org_id="your-org-uuid",
    agent_id="your-agent-uuid",
)) as client:
    result = await client.govern(
        ActionContext(
            action_type="database_query",
            action_name="select_users",
            resource_type="customer_records",
            input_summary="SELECT * FROM users",
        ),
        tool_fn=lambda p: db.query("SELECT * FROM users"),
    )

Framework Adapters

One-line integration for the frameworks below. 4 on Node, 10 on Python, in the published SDKs.

Node SDK adapters — 4 includednpm install @rends/agent-sdk@2.0.0

Google ADK · LangChain · OpenAI Agents · OpenTelemetry

LangChain

Node example

import { governTools } from "@rends/agent-sdk/adapters/langchain";

// Wrap all tools in one line
const governed = governTools(client, [search, calculator, browser]);
const agent = createReactAgent({ llm, tools: governed });

Python SDK adapters — 10 includedpip install rends-agent-sdk==2.0.0

AutoGen · CrewAI · Google ADK · Haystack · LangChain · LangGraph · LlamaIndex · OpenAI Agents · OpenTelemetry · PydanticAI

CrewAI

Python example

from rends_sdk.adapters import govern_crewai_tool

search = SerperDevTool()
governed = govern_crewai_tool(client, search, resource_type="web_search")
agent = Agent(tools=[governed], ...)

AutoGen

Python example

from rends_sdk.adapters import govern_autogen_tool

governed_search = govern_autogen_tool(
    client, search_web, "search_web", resource_type="web_search"
)
agent.register_function(function_map={"search_web": governed_search})

Enforcement Modes

enforce

BLOCK → throws GovernanceBlockError. Tool never executes.

monitor

All decisions logged but never block. Full telemetry, zero disruption.

dry-run

Policy checked, nothing executed. Test rules before deployment.

← Ecosystem hub

Runtime Interception SDK for AI Agents — @rends/agent-sdk | Rends