# 09:单 Agent 任务闭环 ## 本阶段目标 让总控可以选择一个已认证且在线的子 Agent,下发单条文本任务,并持续展示 `queued → accepted → running → completed/failed` 的状态和最终结果。 ## 已实现范围 1. 控制端 SQLite 新增 `task_runs` 与 `task_events`,保存任务、状态变更、输出和错误。 2. 仅向当前 WSS 会话中已认证的在线 Agent 下发 `task_dispatch` 消息;消息携带协议版本、任务 ID、文本指令和 UTC 时间。 3. 控制端只接受来自该任务目标 Agent 的 `task_event`,并忽略终态任务的重复事件。 4. Wails React 总控界面提供在线 Agent 选择、任务输入、下发按钮,以及最近任务的状态与结果显示;Go 只向前端暴露这些受限用例。 5. 当 WSS 连接在下发瞬间断开时,任务会标记为失败而非伪装为已执行。 ## 本阶段刻意限制 - 这是单 Agent、文本任务闭环;尚不支持取消、重试、工作流、附件或多 Agent 编排。 - 子 Agent 目前运行安全的内置演示执行器,不会调用 LLM、Shell、浏览器、文件或任何高风险工具。 - 模型 Provider 的 API 密钥和工具授权策略将在后续阶段单独设计,不能为了演示而写入任务数据库或配置文件。 ## 验收步骤 1. 启动总控,完成一个 Agent 的配对并确认其显示为在线。 2. 在“单 Agent 任务”区域选择该 Agent,输入任意文本并下发。 3. 确认任务依次显示为 `accepted`、`running`、`completed`,且出现内置演示执行器的结果。 4. 重启总控,确认最近任务仍显示在任务记录中。