跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

Qwen Serve 守护进程

启动 HTTP 与 SSE 服务,让浏览器、IDE 和脚本连接同一工作区会话。

qwen serve 提供 HTTP API、Server-Sent Events 和内置 Web Shell,让多个客户端共同访问工作区 agent。它是实验性的 daemon 入口,适合开发客户端和同一操作者的多个项目。

启动与授权

qwen serve --workspace /absolute/path/to/project

默认监听 127.0.0.1:4170,工作区未指定时使用当前目录。默认 loopback 不启用 bearer 认证,能访问该端口的本地进程拥有完整 operator API 能力,包括以 daemon 用户身份运行代码。工作区信任、会话归属、权限和资源检查仍然适用。

需要认证时,在当前终端提供令牌并启动:

export QWEN_SERVER_TOKEN="$(openssl rand -hex 32)"
qwen serve --require-auth --workspace /absolute/path/to/project

后面的 API 示例使用同一终端变量。不要把这一 export 长期加入所有 shell 的启动文件;常驻服务应只向 daemon 注入凭据。

最小 API 流程

先检查能力,再创建会话:

curl -H "Authorization: Bearer $QWEN_SERVER_TOKEN" \
  http://127.0.0.1:4170/capabilities

curl -X POST http://127.0.0.1:4170/session \
  -H "Authorization: Bearer $QWEN_SERVER_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{}'

记录返回的 sessionId。在另一个持有相同令牌的终端先订阅事件,再发送 prompt:

SESSION_ID='<returned-session-id>'
curl -N -H "Authorization: Bearer $QWEN_SERVER_TOKEN" \
  "http://127.0.0.1:4170/session/$SESSION_ID/events"
SESSION_ID='<returned-session-id>'
curl -X POST "http://127.0.0.1:4170/session/$SESSION_ID/prompt" \
  -H "Authorization: Bearer $QWEN_SERVER_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"prompt":[{"type":"text","text":"Explain the project structure."}]}'

默认 sessionScope 为 single:同一工作区的第二个客户端创建会话时通常附着到现有会话,返回 attached: true。选择其他注册工作区则进入该工作区的独立默认会话。

按使用场景阅读

阅读官方版本说明

官方主章仍保留 v0.16-alpha 的旧路线图,例如“没有 HTTP load/resume”“审批模式只能重启修改”等表述,但同页已有对应具体接口说明。本组文档按已明确描述的接口整理,并要求客户端检查 capabilities,不把旧路线图中的待办或未来规划当作当前限制或完成承诺。

daemon 重启会失去运行中的内存状态;磁盘会话可通过专用恢复接口重新加载,这不等于重放未完成任务。多工作区也不是多用户权限隔离,独立安全主体应采用独立进程和相应系统隔离。

运行与维护

修改服务本身时,参见Daemon 内部实现。

本节文档