OpenClaw App SDK는 OpenClaw 프로세스 외부의 앱을 위한 공개 클라이언트 API입니다. 스크립트, 대시보드, CI 작업, IDE 확장 프로그램 또는 기타 외부 앱이 Gateway에 연결하거나, 에이전트 실행을 시작하거나, 이벤트를 스트리밍하거나, 결과를 기다리거나, 작업을 취소하거나, Gateway 리소스를 검사하려는 경우Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
@openclaw/sdk를 사용하세요.
App SDK는 Plugin SDK와 다릅니다.
@openclaw/sdk는 OpenClaw 외부에서 Gateway와 통신합니다.
openclaw/plugin-sdk/*는 OpenClaw 내부에서 실행되며 provider, channel, tool, hook 또는 신뢰할 수 있는 runtime을 등록하는 Plugin 전용입니다.현재 제공되는 항목
@openclaw/sdk는 다음을 제공합니다.
| 인터페이스 | 상태 | 기능 |
|---|---|---|
OpenClaw | 준비됨 | 기본 클라이언트 진입점입니다. transport, 연결, 요청, 이벤트를 소유합니다. |
GatewayClientTransport | 준비됨 | Gateway 클라이언트 기반 WebSocket transport입니다. |
oc.agents | 준비됨 | 에이전트 핸들을 나열, 생성, 업데이트, 삭제, 조회합니다. |
Agent.run() | 준비됨 | Gateway agent 실행을 시작하고 Run을 반환합니다. |
oc.runs | 준비됨 | 실행을 생성, 조회, 대기, 취소, 스트리밍합니다. |
Run.events() | 준비됨 | 빠른 실행을 위한 재생 기능과 함께 실행별 정규화 이벤트를 스트리밍합니다. |
Run.wait() | 준비됨 | agent.wait를 호출하고 안정적인 RunResult를 반환합니다. |
Run.cancel() | 준비됨 | 사용 가능한 경우 세션 키와 함께 실행 id로 sessions.abort를 호출합니다. |
oc.sessions | 준비됨 | 세션 핸들을 생성, 해석, 전송, 패치, compact, 조회합니다. |
Session.send() | 준비됨 | sessions.send를 호출하고 Run을 반환합니다. |
oc.models | 준비됨 | models.list와 현재 models.authStatus 상태 RPC를 호출합니다. |
oc.tools | 부분 지원 | tool 카탈로그와 유효 tool을 나열합니다. 직접 tool 호출은 연결되어 있지 않습니다. |
oc.artifacts | 준비됨 | Gateway transcript artifact를 나열, 조회, 다운로드합니다. |
oc.approvals | 준비됨 | Gateway 승인 RPC를 통해 exec 승인을 나열하고 처리합니다. |
oc.rawEvents() | 준비됨 | 고급 소비자를 위해 원시 Gateway 이벤트를 노출합니다. |
normalizeGatewayEvent() | 준비됨 | 원시 Gateway 이벤트를 안정적인 SDK 이벤트 형태로 변환합니다. |
AgentRunParams, RunResult, RunStatus, OpenClawEvent,
OpenClawEventType, GatewayEvent, OpenClawTransport,
GatewayRequestOptions, SessionCreateParams, SessionSendParams,
ArtifactSummary, ArtifactQuery, ArtifactsListResult,
ArtifactsGetResult, ArtifactsDownloadResult, RuntimeSelection,
EnvironmentSelection, WorkspaceSelection, ApprovalMode 및 관련
결과 타입입니다.
Gateway에 연결하기
명시적인 Gateway URL로 클라이언트를 만들거나, 테스트 및 임베디드 앱 runtime을 위해 사용자 지정 transport를 주입하세요.new OpenClaw({ gateway: "ws://..." })는 url과 동일합니다. gateway: "auto" 옵션은 생성자에서 허용되지만, 자동 Gateway 검색은 아직 별도의 SDK 기능이 아닙니다. 앱이 Gateway를 검색하는 방법을 이미 알고 있지 않다면 url을 전달하세요.
테스트에서는 OpenClawTransport를 구현하는 객체를 전달하세요.
에이전트 실행하기
앱이 에이전트 핸들을 필요로 할 때oc.agents.get(id)를 사용한 다음 agent.run()을 호출하세요.
openai/gpt-5.5 같은 provider 한정 model 참조는 Gateway provider 및 model override로 분리됩니다. timeoutMs는 SDK에서 밀리초로 유지되며 agent RPC용 Gateway timeout 초 단위로 변환됩니다.
run.wait()는 Gateway agent.wait RPC를 사용합니다. 실행이 아직 활성 상태인 동안 대기 기한이 만료되면, 실행 자체가 timeout된 것처럼 가장하지 않고 status: "accepted"를 반환합니다. runtime timeout, 중단된 실행, 취소된 실행은 timed_out 또는 cancelled로 정규화됩니다.
세션 생성 및 재사용
앱이 지속 가능한 transcript 상태를 원할 때 세션을 사용하세요.Session.send()는 sessions.send를 호출하고 Run을 반환합니다. 세션 핸들은 다음도 지원합니다.
이벤트 스트리밍
SDK는 원시 Gateway 이벤트를 안정적인OpenClawEvent envelope로 정규화합니다.
| 이벤트 타입 | 원본 Gateway 이벤트 |
|---|---|
run.started | agent lifecycle 시작 |
run.completed | agent lifecycle 종료 |
run.failed | agent lifecycle 오류 |
run.cancelled | 중단/취소된 lifecycle 종료 |
run.timed_out | timeout lifecycle 종료 |
assistant.delta | Assistant 스트리밍 delta |
assistant.message | Assistant 메시지 |
thinking.delta | 사고 또는 계획 스트림 |
tool.call.started | Tool/item/command 시작 |
tool.call.delta | Tool/item/command 업데이트 |
tool.call.completed | Tool/item/command 완료 |
tool.call.failed | Tool/item/command 실패 또는 차단 상태 |
approval.requested | Exec 또는 Plugin 승인 요청 |
approval.resolved | Exec 또는 Plugin 승인 처리 |
session.created | sessions.changed 생성 |
session.updated | sessions.changed 업데이트 |
session.compacted | sessions.changed Compaction |
task.updated | Task 업데이트 이벤트 |
artifact.updated | Patch 스트림 이벤트 |
raw | 아직 안정적인 SDK 매핑이 없는 모든 이벤트 |
Run.events()는 이벤트를 하나의 실행 id로 필터링하고 빠른 실행을 위해 이미 본 이벤트를 재생합니다. 따라서 문서화된 흐름은 안전합니다.
oc.events()를 사용하세요. 원시 Gateway frame에는 oc.rawEvents()를 사용하세요.
모델, Tool, Artifact 및 승인
모델 helper는 현재 Gateway method에 매핑됩니다.sessionKey, runId 또는 taskId scope 중 하나가 필요합니다.
현재 명시적으로 지원되지 않는 항목
SDK에는 우리가 원하는 제품 모델의 이름이 포함되어 있지만, Gateway RPC가 존재하는 것처럼 조용히 가장하지 않습니다. 현재 다음 호출은 명시적인 미지원 오류를 throw합니다.workspace, runtime, environment, approvals 필드는 future shape으로 타입이 지정되어 있지만, 현재 Gateway는 agent RPC에서 이러한 override를 지원하지 않습니다. 호출자가 이를 전달하면 SDK는 실행을 제출하기 전에 throw하여, 작업이 기본 workspace, runtime, environment 또는 승인 동작으로 우발적으로 실행되지 않게 합니다.
App SDK와 Plugin SDK 비교
코드가 OpenClaw 외부에 있을 때 App SDK를 사용하세요.- 에이전트 실행을 시작하거나 관찰하는 Node 스크립트
- Gateway를 호출하는 CI 작업
- 대시보드 및 관리자 패널
- IDE 확장 프로그램
- channel Plugin이 될 필요가 없는 외부 bridge
- 가짜 또는 실제 Gateway transport를 사용하는 통합 테스트
- provider Plugin
- channel Plugin
- tool 또는 lifecycle hook
- 에이전트 harness Plugin
- 신뢰할 수 있는 runtime helper
@openclaw/sdk에서 import해야 합니다. Plugin 코드는 문서화된 openclaw/plugin-sdk/* 하위 경로에서 import해야 합니다. 두 contract를 섞지 마세요.