@openclaw/sdk 是面向外部应用/客户端的公共 SDK,用于与 Gateway 通信。与 openclaw/plugin-sdk/*(插件开发 SDK)相互独立。

两层架构

  1. 低层:从 Gateway 协议 schema 自动生成的客户端
  2. 高层:封装 OpenClaw、Agent、Session、Run、Task、Artifact、Approval、Environment 等对象

命名空间设计

oc.agents.list();
oc.sessions.create(...);
oc.runs.create(...);
oc.tasks.list({ status: "running" });
oc.artifacts.list({ runId });
oc.approvals.respond(approvalId, ...);
oc.environments.list();

高层封装示例:

const run = await agent.run(inputOrParams);
await run.wait();
for await (const event of run.events()) { ... }

事件类型

事件含义
run.created/started/completed/failedRun 生命周期
assistant.delta/message助手输出
tool.call.started/completed/failed工具调用
approval.requested/resolved审批流程
artifact.created/updated产物变更
session.compacted会话压缩

Token 权限范围

Scope权限
agent.run启动 Run
session.write创建/发送/压缩会话
approval.respond审批/拒绝请求
artifacts.read列出/下载产物
admin管理操作

推荐包结构

包名用途
@openclaw/sdk公共高层 SDK + 低层 Gateway 客户端
@openclaw/sdk-reactReact hooks(可选)
@openclaw/sdk-testing测试辅助工具

相关页面

  • ref-rpc
  • docs/concepts/concept-agent-loop