Skip to content
FunCoding

Search

Search docs, Skills and MCP

渠道运行、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 显示断开不证明原工具没执行;涉及写入归属看会话恢复。