Skip to Content
EntwicklerhandbuchDaemon-REST-API-Referenz

Daemon-REST-API-Referenz

Dies ist die öffentliche REST/SSE-Schnittstelle für Integrationen, die qwen serve --no-web ausführen und eine eigene UI bereitstellen. Beginnen Sie mit dem Integrationsleitfaden, verwenden Sie dann diese Seite für die Endpunkt- Erkundung und die HTTP-Protokollreferenz für detaillierte Lebenszyklus-Semantik.

OpenAPI

Der kuratierte 25-Operation-Vertrag ist als OpenAPI 3.1 JSON  verfügbar. Importieren Sie diese URL in einen OpenAPI-kompatiblen Renderer, Client-Generator oder Validierungstool. Das eingecheckte JSON ist der portable Schnittstellenvertrag für die unten indizierten Operationen und wird im CI gegen den Leitfaden, die Protokoll-Überschriften und die registrierten Routen validiert.

Dieser Index deckt eine kuratierte Kern-Teilmenge der REST-Oberfläche des Daemons ab, nicht alles. Außerhalb befinden sich die erstklassigen WebShell-Routen, bedingte interne Oberflächen und andere öffentliche, aber nicht zum Kern gehörende Routen: Datei-Mutation, Workspace-Registrierung, Session-Organisation und -Generierung sowie Workspace-MCP, Skills und Provider unter anderem. Diese Oberflächen werden durch ihre eigenen Capability-Tags gekennzeichnet; die HTTP-Protokollreferenz dokumentiert die Session-, Workspace-Status- und Datei-Oberflächen, und MCP-Server-Verwaltung, Auth-Provider und Device-Flow-Anmeldung werden in den Daemon-Auth- und Sicherheitshinweisen behandelt. Sie sind außerhalb dieses Vertrags, nicht deprecated.

Den Index lesen

  • Capability ist das Feature-Tag, das in GET /capabilities geprüft werden soll. Ein Gedankenstrich bedeutet, dass die Operation kein eigenes Feature-Tag hat; Clients, die ältere Daemon-Builds unterstützen müssen, sollten 404 behandeln.
  • Scope gibt an, welche Runtime die Operation besitzt. process-global liest Daemon-weiten Zustand, selected-runtime verwendet die Workspace-Auswahl der Anfrage, persisted-workspace löst persistierte Session-Speicher auf, live-session-owner routet über die Live-Session, und legacy-primary zielt immer auf den primären Workspace des Daemons. GET /session/:id/export ist primär-angeheftet: es löst nur verwaltete interne Runtimes auf, bevor es auf den primären Workspace zurückfällt.
  • Alle Operationen in diesem Index sind im v1-REST-Vertrag stabil. Der deprecated Capability-Name unstable_session_resume ist nur ein Alias; verwenden Sie session_resume für die stabile Resume-Route.

Discovery

OperationCapabilityScopeTypeScript SDK
GET /healthhealthprocess-globalDaemonClient.health
GET /capabilitiescapabilitiesprocess-globalDaemonClient.capabilities

Session-Lebenszyklus

OperationCapabilityScopeTypeScript SDK
POST /sessionsession_createselected-runtimeDaemonClient.createOrAttachSession
POST /session/:id/loadsession_loadselected-runtimeDaemonClient.loadSession
POST /session/:id/resumesession_resumeselected-runtimeDaemonClient.resumeSession
POST /session/:id/heartbeatclient_heartbeatlive-session-ownerDaemonClient.heartbeat
PATCH /session/:id/metadatasession_metadatalive-session-ownerDaemonClient.updateSessionMetadata
POST /session/:id/modelsession_set_modellive-session-ownerDaemonClient.setSessionModel
DELETE /session/:idsession_closelive-session-ownerDaemonClient.closeSession

Prompts und Events

OperationCapabilityScopeTypeScript SDK
GET /session/:id/statussession_statuslive-session-ownerDaemonClient.sessionStatus
POST /session/:id/promptsession_promptlive-session-ownerDaemonClient.promptNonBlocking
POST /session/:id/cancelsession_cancellive-session-ownerDaemonClient.cancel
GET /session/:id/eventssession_eventslive-session-ownerDaemonClient.subscribeEvents
GET /session/:id/transcriptsession_transcriptpersisted-workspaceDaemonClient.getSessionTranscriptPage
GET /session/:id/contextsession_contextlive-session-ownerDaemonClient.sessionContext
GET /session/:id/exportsession_exportlegacy-primaryDaemonClient.exportSession
GET /session/:id/pending-promptslive-session-ownerDaemonClient.getPendingPrompts

POST /session/:id/prompt gibt 202 zurück, wenn der Prompt die Warteschlange betritt, nicht wenn der Agent fertig ist. Abonnieren Sie zuerst, dann korrelieren Sie turn_complete oder turn_error über promptId.

Berechtigungen

OperationCapabilityScopeTypeScript SDK
POST /session/:id/permission/:requestIdsession_permission_votelive-session-ownerDaemonClient.respondToSessionPermission
POST /permission/:requestIdpermission_votelegacy-primaryDaemonClient.respondToPermission

Neue Multi-Workspace-Integrationen sollten immer die Session-scoped Route verwenden. Die Legacy-Route kann für eine Anfrage, die einer anderen Runtime gehört, denselben 404 zurückgeben wie für eine bereits aufgelöste Abstimmung.

Schreibgeschützter Workspace-Kontext

OperationCapabilityScopeTypeScript SDK
GET /workspace/toolslegacy-primaryDaemonClient.workspaceTools
GET /fileworkspace_file_readlegacy-primaryDaemonClient.readWorkspaceFile
GET /file/bytesworkspace_file_byteslegacy-primaryDaemonClient.readWorkspaceFileBytes
GET /statworkspace_file_readlegacy-primaryDaemonClient.fileStat
GET /listworkspace_file_readlegacy-primaryDaemonClient.dirList
GET /globworkspace_file_readlegacy-primaryDaemonClient.glob

Diese singulären Routen zielen auf den primären Workspace. Integrationen, die mehrere registrierte Workspaces bereitstellen, sollten die Workspace-qualifizierten Gegenstücke verwenden, die im vollständigen Protokoll dokumentiert sind, und workspace_qualified_rest_core vorab prüfen.

Gemeinsame Protokollregeln

  • Authentifizieren Sie normale Routen mit Authorization: Bearer <token>. Eine Standard- Loopback-/health-Probe kann ausgenommen sein; Non-Loopback-Binds sind es nicht.
  • Senden Sie X-Qwen-Client-Id, wenn eine Create/Load-Antwort eines bereitgestellt hat. Es ist ein Zuordnungs- und Attributions-Identifier, kein Endnutzer-Sicherheitsprinzipal.
  • Behandeln Sie Fehler-Bodys als additiv. Verzweigen Sie primär über HTTP-Status und den stabilen code oder errorKind, falls vorhanden.
  • Bewahren Sie SSE-Antwort-Header auf und deaktivieren Sie Proxy-Buffering. Setzen Sie mit beiden Last-Event-ID und X-Qwen-Event-Epoch fort, wenn der Daemon eine Epoch bereitgestellt hat.
  • Eine Workspace-Trust-Grenze ist keine Tenant-Isolation. Führen Sie separate Daemons aus, wenn Sicherheitsprinzipale oder Prozess-Level-Fehlerschranken unabhängig sein müssen.
Last updated on