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。选择其他注册工作区则进入该工作区的独立默认会话。
按使用场景阅读
- 认证与令牌:默认本机权限、生成令牌和 require-auth。
- Web Shell 与远程访问及TLS:浏览器、手机、Origin 与证书。
- 工作区运行时:注册、信任、容量与移除。
- 会话与事件:订阅、共享审批、排队和后台延续。
- 历史与恢复:load、resume、transcript 和导出。
阅读官方版本说明
官方主章仍保留 v0.16-alpha 的旧路线图,例如“没有 HTTP load/resume”“审批模式只能重启修改”等表述,但同页已有对应具体接口说明。本组文档按已明确描述的接口整理,并要求客户端检查 capabilities,不把旧路线图中的待办或未来规划当作当前限制或完成承诺。
daemon 重启会失去运行中的内存状态;磁盘会话可通过专用恢复接口重新加载,这不等于重放未完成任务。多工作区也不是多用户权限隔离,独立安全主体应采用独立进程和相应系统隔离。
运行与维护
修改服务本身时,参见Daemon 内部实现。
本节文档
- Daemon 认证与令牌区分本机默认授权、共享 bearer、临时令牌和渠道独立认证。
- Web Shell 与远程访问连接浏览器或手机,配置跨域、Local Control、PWA 与语音入口。
- Daemon HTTPS 与证书配置 PEM 证书、浏览器安全上下文及渠道 worker 的回连信任。
- 工作区注册与运行边界管理多个工作区的生命周期、信任和容量,并识别 daemon 共享的权限边界。
- 共享会话、SSE 与审批订阅事件封套、处理先到审批与慢客户端,并配置有限的 Todo 延续。
- 会话历史与恢复选择 load、resume、分页 transcript 或导出,并处理恢复超时和游标失效。
- 会话容量、队列与期限按工作区、daemon、连接和 prompt 分层限制负载,并配置超时。
- 内存预算与回放窗口理解 ACP heap 模式、自适应 journal 容量和仅观察的内存压力状态。
- Daemon 文件与附件边界区分 HTTP 工作区读写、agent 主机访问、乐观锁和附件迁移。
- Git 位置检查与外部 Tool Guard理解内置 Git 误操作检查及外部执行前裁决的覆盖范围。
- 运行时设置与能力检查通过 API 管理技能声明、扩展激活、模型和认证,区分持久变更与刷新。
- Daemon MCP 池与动态服务按 capability 判断预算范围,管理临时 MCP 覆盖及添加失败。
- Daemon 渠道管理选择工作区 worker、重载凭据并识别部分连接和回滚后的真实状态。
- Daemon 状态与日志选择轻量状态、按需磁盘扫描和轮转日志,避免把未知结果当清理成功。
- Linux 常驻服务用 systemd user unit 固定工作区、工具 PATH、令牌环境和失败重启。
- macOS 常驻与临时后台配置 launchd 的绝对路径、私有凭据和失败重启,并比较 tmux 与 nohup。