Skip to content
FunCoding

Search

Search docs, Skills and MCP

后台续接与工作目录

查询和继续已有 agent,理解通知积压、恢复限制与 caller-owned worktree。

This page has not been translated into English yet. The original Chinese version is shown below.

后台任务完成不一定意味着角色状态被销毁。相关后续工作可以继续已有 agent,减少重复启动和重复读取。

用任务标识续接

list_agents 返回当前会话可寻址的后台 agent,包括恢复会话时兼容的记录。检查 task_id、状态及是否能接收消息,再用 send_message 指向该任务:

原状态续接行为
运行中排入后续消息
暂停恢复执行
已完成继续相关工作,优先复用常驻运行时,否则从保留转录恢复

后续结果仍通过完成通知返回。恢复记录可见但缺少状态或格式不兼容时,不一定能够续接;列表会给出原因。任务无关或不能恢复时,再建立新 agent。

外部 Codex agent 是单次临时线程,不能按此方式续接;原生外部会话也不能跨 Qwen 重启恢复。

通知队列

交互 TUI 与 ACP 中,agent、shell、monitor、workflow 的后台通知共用队列,会话空闲后进入模型轮次。队列最多 20 条;无头 CLI 本地队列不受这一上限约束。

新通知超过容量时,优先移除临时 monitor 脉冲,否则移除较早通知。交互 TUI 对 agent 结果、workflow 结果和定时提示有保留规则:不会为了新通知驱逐它们;无法腾出位置的新通知会被丢弃。

丢弃会形成摘要,不等于停止或删除原任务。可从 /tasks、任务输出文件继续检查结果。被丢弃的定时提示没有交给模型,也不会重试。

ACP 还会把丢弃摘要加到该轮输入前,但清理或切换会话、取消或抢占通知轮次可能使待发摘要消失。TUI 把摘要留给下一批通知,以免改动定时提示的斜杠、shell 和 @ 预处理。

Daemon 通知先持久记录再确认接收;不能实时送达的记录仍可能留在会话转录中。查看历史时,应区分“已记录但未实时送达”和真正丢失的通知。

固定到已有 worktree

常规具名类型 subagent 的 working_dir 可以指向当前仓库已注册的关联 Git worktree。相对路径基于当前目录解析;随意创建的普通文件夹不满足要求。

这种调用者拥有目录生命周期、且没有团队队友 name 的启动走前台:显式 run_in_background: true 会被拒绝。若 agent 定义有 background: true,顶层拒绝,嵌套启动则降为前台。

同时提供 working_dir 与 isolation: "worktree" 时,普通 Agent 调用复用调用者已有 worktree。Workflow 脚本更严格,workingDir 与 isolation 并存会被拒绝,不能套用普通调用规则。

Fork 不能设置 working_dir。需要 Qwen 创建隔离目录时,使用常规 Agent 的 worktree 隔离,并结合Worktree 生命周期核对清理和保留结果。