デーモン REST API リファレンス
これは qwen serve --no-web を実行して独自の UI を提供するインテグレーション向けの公開 REST/SSE インターフェースです。まず インテグレーションガイド を確認し、その後このページでエンドポイントを調べ、HTTP プロトコルリファレンス で詳細なライフサイクルセマンティクスを参照してください。
OpenAPI
25 操作の厳選されたコントラクトは OpenAPI 3.1 JSON として利用可能です。この URL を OpenAPI 互換のレンダラー、クライアントジェネレーター、または検証ツールにインポートしてください。チェックインされた JSON は以下でインデックス化された操作のポータブルなインターフェースコントラクトであり、CI でガイド、プロトコル見出し、および登録済みルートに対して検証されています。
このインデックスはデーモンの REST サーフェスの厳選されたコアサブセットをカバーしており、すべてではありません。その外にはファーストパーティの Web Shell ルート、条件付きの内部サーフェス、およびその他の公開されているが非コアのルート——ファイル変更、ワークスペース登録、セッション整理と生成、ワークスペース MCP、スキル、プロバイダーなど——があります。これらのサーフェスは独自のケーパビリティタグで宣伝されており、HTTP プロトコルリファレンス にセッション、ワークスペースステータス、ファイルサーフェスがドキュメント化され、MCP サーバー管理、認証プロバイダー、デバイスフローサインインは デーモン認証とセキュリティノート でカバーされています。これらはこの契約の範囲外ですが、非推奨ではありません。
インデックスの読み方
- ケーパビリティ は
GET /capabilitiesで確認する機能タグです。ダッシュは操作に専用の機能タグがないことを意味します。古いデーモンビルドをサポートする必要があるクライアントは404を処理してください。 - スコープ はどのランタイムが操作を所有するかを示します。
process-globalはデーモン全体の状態を読み取り、selected-runtimeはリクエストのワークスペース選択を使用し、persisted-workspaceは永続化されたセッションストレージを解決し、live-session-ownerはライブセッションでルーティングし、legacy-primaryは常にデーモンのプライマリワークスペースをターゲットにします。GET /session/:id/exportはプライマリ固定です。管理された内部ランタイムのみを解決し、その後プライマリワークスペースにフォールバックします。 - このインデックスのすべての操作は v1 REST コントラクトで 安定 です。非推奨の
unstable_session_resumeケーパビリティ名は単なるエイリアスです。安定した resume ルートにはsession_resumeを使用してください。
Discovery
| Operation | Capability | Scope | TypeScript SDK |
|---|---|---|---|
GET /health | health | process-global | DaemonClient.health |
GET /capabilities | capabilities | process-global | DaemonClient.capabilities |
セッションライフサイクル
| Operation | Capability | Scope | TypeScript SDK |
|---|---|---|---|
POST /session | session_create | selected-runtime | DaemonClient.createOrAttachSession |
POST /session/:id/load | session_load | selected-runtime | DaemonClient.loadSession |
POST /session/:id/resume | session_resume | selected-runtime | DaemonClient.resumeSession |
POST /session/:id/heartbeat | client_heartbeat | live-session-owner | DaemonClient.heartbeat |
PATCH /session/:id/metadata | session_metadata | live-session-owner | DaemonClient.updateSessionMetadata |
POST /session/:id/model | session_set_model | live-session-owner | DaemonClient.setSessionModel |
DELETE /session/:id | session_close | live-session-owner | DaemonClient.closeSession |
プロンプトとイベント
| Operation | Capability | Scope | TypeScript SDK |
|---|---|---|---|
GET /session/:id/status | session_status | live-session-owner | DaemonClient.sessionStatus |
POST /session/:id/prompt | session_prompt | live-session-owner | DaemonClient.promptNonBlocking |
POST /session/:id/cancel | session_cancel | live-session-owner | DaemonClient.cancel |
GET /session/:id/events | session_events | live-session-owner | DaemonClient.subscribeEvents |
GET /session/:id/transcript | session_transcript | persisted-workspace | DaemonClient.getSessionTranscriptPage |
GET /session/:id/context | session_context | live-session-owner | DaemonClient.sessionContext |
GET /session/:id/export | session_export | legacy-primary | DaemonClient.exportSession |
GET /session/:id/pending-prompts | — | live-session-owner | DaemonClient.getPendingPrompts |
POST /session/:id/prompt はプロンプトがキューに入ると 202 を返します。エージェントが完了した時点ではありません。まずサブスクライブし、promptId で turn_complete または turn_error を関連付けます。
権限
| Operation | Capability | Scope | TypeScript SDK |
|---|---|---|---|
POST /session/:id/permission/:requestId | session_permission_vote | live-session-owner | DaemonClient.respondToSessionPermission |
POST /permission/:requestId | permission_vote | legacy-primary | DaemonClient.respondToPermission |
新しいマルチワークスペースインテグレーションは常にセッションスコープのルートを使用してください。レガシールートは別のランタイムが所有するリクエストに対して、すでに解決済みの投票と同じ 404 を返す可能性があります。
読み取り専用ワークスペースコンテキスト
| Operation | Capability | Scope | TypeScript SDK |
|---|---|---|---|
GET /workspace/tools | — | legacy-primary | DaemonClient.workspaceTools |
GET /file | workspace_file_read | legacy-primary | DaemonClient.readWorkspaceFile |
GET /file/bytes | workspace_file_bytes | legacy-primary | DaemonClient.readWorkspaceFileBytes |
GET /stat | workspace_file_read | legacy-primary | DaemonClient.fileStat |
GET /list | workspace_file_read | legacy-primary | DaemonClient.dirList |
GET /glob | workspace_file_read | legacy-primary | DaemonClient.glob |
これらの単一ルートはプライマリワークスペースをターゲットにします。複数の登録済みワークスペースを公開するインテグレーションは完全なプロトコルでドキュメント化されているワークスペース修飾の対照ルートを使用し、workspace_qualified_rest_core をプリフライトしてください。
共通プロトコルルール
- 通常のルートは
Authorization: Bearer <token>で認証します。デフォルトのループバック/healthプローブは免除される場合があります。非ループバックバインドは免除されません。 - 作成・ロードレスポンスで
X-Qwen-Client-Idが提供された場合は送信してください。これは添付・属性識別子であり、エンドユーザーのセキュリティプリンシパルではありません。 - エラーボディは追加的なものとして扱います。主に HTTP ステータスと、存在する場合は安定した
codeまたはerrorKindで分岐してください。 - SSE レスポンスヘッダーを保持し、プロキシバッファリングを無効にしてください。デーモンがエポックを提供した場合は
Last-Event-IDとX-Qwen-Event-Epochの両方で再開します。 - ワークスペースの信頼境界はテナント分離ではありません。セキュリティプリンシパルまたはプロセスレベルの障害境界を独立させる必要がある場合は別のデーモンを実行してください。