Integration Guide
OpenClaw
Connect OpenClaw to OSuite and get your first governed action into /decisions in under 20 minutes.
Instance URL detected: https://readiness.osuite.ai
Governance context
Runtime class
Self-Built Multi-Agent Runtime
An orchestrator plus governed workers where both orchestration and worker execution boundaries can be instrumented.
Recommended surfaces
Embedded Runtime SDK / Package
Instrument customer-controlled runtimes, tools, and orchestrators from inside the code.
Control Plane
Run policy, approvals, replay, and evidence management as the operator system of record.
Typical governance range
Advisory Governance -> Approval-Orchestrated Governance -> Runtime-Enforced Governance
Self-host and future SaaS are deployment model choices for the OSuite control plane. They do not determine governance level by themselves.
Treat OpenClaw as a framework SDK runtime
OpenClaw belongs in the framework SDK family because governance can attach directly to tool steps and outcomes.
Use inline SDK mode
Do not push OpenClaw through a bridge if you own the runtime. Inline mode gives OSuite the strongest checkpoint coverage.
.env
OSUITE_BASE_URL=https://readiness.osuite.ai OSUITE_API_KEY=<your-workspace-api-key> OSUITE_AGENT_ID=openclaw-runtime
Fastest path: open /connect and generate a signed inline bootstrap package so you do not have to register keys by hand.
Instrument the real tool loop
Guard before side effects, create the action, record assumptions, then close the outcome.
openclaw-step.mjs
import { OSuite } from 'osuite';
const osuite = new OSuite({
baseUrl: process.env.OSUITE_BASE_URL,
apiKey: process.env.OSUITE_API_KEY,
agentId: process.env.OSUITE_AGENT_ID || 'openclaw-runtime',
});
const decision = await osuite.guard({
action_type: 'openclaw.tool_exec',
declared_goal: 'Execute a governed tool step in OpenClaw',
runtime_type: 'openclaw',
runtime_family: 'framework_sdk',
adapter_mode: 'inline_sdk',
protocol_lane: 'osuite_native',
risk_score: 44,
systems_touched: ['repo', 'filesystem'],
});
const created = await osuite.createAction({
action_type: 'openclaw.tool_exec',
declared_goal: 'Execute a governed tool step in OpenClaw',
runtime_type: 'openclaw',
runtime_family: 'framework_sdk',
adapter_mode: 'inline_sdk',
protocol_lane: 'osuite_native',
risk_score: 44,
});
const actionId = created.action?.action_id || created.action_id;
await osuite.recordAssumption({
action_id: actionId,
assumption: 'The runtime has direct tool-level visibility and can pause before side effects.',
});
// Run the real OpenClaw step here.
await osuite.updateOutcome(actionId, {
status: decision.decision === 'allow' ? 'completed' : 'pending_approval',
output_summary: 'OpenClaw step recorded with inline PCAA coverage',
});Promote from smoke tests to domain actions
Replace generic action types with tool, deploy, review, or data actions that match the real OpenClaw workload.
What success looks like
Open /replay after a run. The action should show framework_sdk + inline_sdk semantics with native checkpoint coverage.
Navigate to /decisions in your OSuite instance. Your action should appear in the ledger within seconds of the agent run.
Governance as Code
Drop a guardrails.yml in your project root to enforce policies without code changes. OSuite evaluates these rules at the guard step before any action executes.
guardrails.yml
version: 1
project: openclaw-runtime
policies:
- id: require_review_for_repo_writes
applies_to:
action_types:
- openclaw.tool_exec
when:
min_risk_score: 60
rule:
require: approval