/docs/integrations/OpenClawAdapter

OpenClaw

Wrapper for OpenResponses-compatible OpenClaw clients. Model calls become obsrv traces with normalized messages, usage, and metadata.

Python

from openclaw import Client
from theta_observability import TraceClient
from theta_observability.integrations import wrap_openclaw

obs = TraceClient()
claw = wrap_openclaw(Client(), obs)

claw.responses.create(
    model="openclaw-default",
    input="Order a coffee for 9:30am.",
)

Node

import { TraceClient } from "@theta-lab/obsrv";
import { wrapOpenClaw } from "@theta-lab/obsrv/openclaw";

const obs = new TraceClient();
const claw = wrapOpenClaw(openclawClient, { client: obs });

await claw.responses.create({
  model: "openclaw-default",
  input: "Order a coffee for 9:30am.",
});

What it adds

  • OpenResponses input messages are normalized into obsrv messages.
  • Response text, usage, latency, and model metadata are captured as LLM steps.
  • Errors are captured on the trace instead of disappearing in application logs.
  • Cluster discovery can group repeated OpenClaw failure patterns after traces are ingested.