渠道运行、Daemon 与恢复
选择独立 ACP 服务或工作区 worker,核对自动恢复与租约状态。
This page has not been translated into English yet. The original Chinese version is shown below.
独立 channel start 与 daemon-managed channel 是两种运行方式。状态/停止命令是否带 daemon URL 决定操作哪一个,不应只看渠道实例名推断。
独立服务
qwen channel start team-bot
qwen channel status
qwen channel stop省略 start 后名字会启动所有配置渠道,共用一个 ACP agent 进程但隔离路由会话,每渠道可有自己的 cwd。服务在前台,Ctrl+C 或另一终端 stop 正常停止。
~/.qwen/channels/service.pid 防止重复实例。agent 意外退出时约三秒内重启并尝试恢复 sessions.json,连续三次崩溃后服务报错退出;正常停止清理该会话映射,下一次冷启动不是完整恢复旧会话。
Daemon-managed
qwen serve --channel team-bot
qwen channel status --daemon-url http://127.0.0.1:4170 --token "$QWEN_SERVER_TOKEN"
qwen channel stop --daemon-url http://127.0.0.1:4170 --token "$QWEN_SERVER_TOKEN"Daemon 按工作区启动独立 worker,通过 SDK 回连,不把适配器加载进 daemon 主进程。选中渠道的 cwd 必须解析到已注册工作区;all 只选主工作区,并不是全部工作区渠道。
显式 --channel 优先,无法 ready 会导致启动失败。运行时 channel set 选择不写入 settings,重启不保留;需要持久自启使用各工作区自己的 serve.channels。
自动恢复顺序
无显式 --channel 启动时恢复已注册可信工作区的 serve.channels;不可托管的名字记录并跳过,其他工作区继续。后续新注册工作区也可异步恢复,一次 daemon 运行只做一次;若后注册列表中有名字不可托管,该工作区整个列表会失败。
显式启动选择或执行过 channel stop 后,不因注册新工作区再自动恢复。无任何来源时,不提前加载适配器或占用渠道服务租约。
非法名称(空白、前后空格、控制/不可见字符)按项记日志并跳过,启动不会自动改名或重写设置。配置自启开关表示保存意图,实际运行状态需另看。
失败和停止确认
早期校验或 lease 失败可跳过恢复;worker 已启动后失败,只有清理确认成功 daemon 才继续。全局启动超时或停止未确认仍走失败流程,租约继续持有,不能直接删文件重开。
ready worker 后来意外退出时 daemon 继续运行,在 /daemon/status 显示 channel-worker warning。替换多工作区选择时,顺序列表没变的工作区 worker 保留,避免不必要中断。
后台 agent 结果可能在主轮结束后才返回,要保持渠道服务/daemon 运行。UI 显示断开不证明原工具没执行;涉及写入归属看会话恢复。