跳到主要内容

后台任务

后台任务是 gateway 持有的工作记录,用于跟踪可能超过单轮前台回复寿命的工作。用户可以继续使用当前会话,Anyy 继续跟踪后台工作。

常驻 gateway 负责任务状态、日志访问、outbox 投递和完成通知。任务始终归属某个 session;列出或控制任务时需要匹配 session scope。

任务类型

Anyy 有三类用户可见的后台任务路径:

类型如何开始常见用途
后台子 Agentbackground_job/background <prompt>需要完成后通知的长时间 agentic 工作。
托管进程任务bash 搭配 background=true长命令、构建、测试、下载、服务进程。
工作流任务Runtime workflow 执行可能带有子任务记录的父任务。

Cron 也可以为 scheduled run 创建 bridge 记录。这些记录用于投递和可观测性,不是另一套用户侧自动化系统。

后台子 Agent

对于明显需要异步继续跑的 agentic 工作,Anyy 使用 subagents toolset 里的 background_job。它会启动子会话,立即返回句柄,并在子任务完成或失败时通知。

accepted payload 包含:

字段含义
background_job_id后台任务视图和 RPC 使用的句柄。
subagent_run_id子 Agent run id。
child_session_id子会话 id。
accepted_message面向用户的受理摘要。

TUI 中可以使用:

/background inspect the failing docs build and summarize what changed
/agents

/agents 会列出当前会话的子任务运行。

托管进程任务

对于长时间 shell 工作,模型可见的 bash 工具可以用 background=true 启动托管后台进程。随后用 process 工具管理这个任务。

常用 process actions:

Action含义
list列出当前 session 的托管进程任务。
poll读取某个任务状态。
log读取任务输出。
wait带超时等待任务完成。
killTERM 停止进程。
writesubmitclose向交互式托管进程发送 stdin 或控制输入。

process 不是通用主机进程查看器。它只管理 Anyy 通过托管 shell 路径创建的任务。

停止进程或发送输入可能改变运行状态,因此这些操作走 runtime-high 进程操作的 ChangePlan 和审批策略。

TUI 与 RPC 入口

TUI 提供当前会话的任务视图:

/jobs
/job <id>
/job kill <id>

Gateway RPC 方法:

RPC用途
jobs.list列出某个 session 的后台任务。
jobs.status查看单个任务;进程任务可附带日志。
jobs.logs读取进程任务日志。
jobs.wait等待进程任务。
jobs.kill停止进程任务。
jobs.clear在不再需要后清理进程任务记录。

jobs.logsjobs.waitjobs.killjobs.clear 当前适用于进程任务。非进程任务通过 jobs.status 查看;工作流任务可能返回子任务信息。

投递与通知

后台子 Agent 和 cron bridge 任务可以通过 gateway event bus 和 channel delivery 系统发布完成通知。事件 metadata 使用 source: background_job,并包含 background_job_id

投递仍遵循 messaging 的 channel binding 和 outbox 规则。如果 channel 断开,完成通知可能留在 outbox,直到可以投递。

排查

如果 /jobs 看不到任务,先确认你还在启动该任务的同一个 session。任务控制是 session-scoped。

如果读取不到进程日志,确认该任务是托管进程任务。子 Agent 和工作流任务是状态记录,不是 shell 日志流。

如果后台子任务不再需要,进程任务用 /job kill <id> 停止;子 Agent 运行用 subagent_cancelsubagents.kill 停止。