异步任务执行
AI 员工后台执行引擎——SSE 解耦、任务追踪、中断追加
异步任务执行
OpenVort 的异步任务执行引擎(AgentTaskRunner)让 AI 员工能够在后台持续工作,不受用户浏览器状态影响。
核心机制
传统 AI 聊天系统中,用户关闭页面 = AI 停止工作。OpenVort 彻底改变了这一模式:
- SSE 只是观众窗口:用户在 Chat 页面看到的流式输出是通过 SSE 传输的,但 AI 的实际执行是独立的后台任务
- 断开不中断:用户离开 Chat 页面,SSE 连接断开,但 AI 的后台任务继续执行
- 可重连续看:用户回到 Chat 页面时,自动重连到正在执行的任务流,继续看实时输出
任务生命周期
用户发消息 → 创建 agent_task(pending) → 启动后台执行(running)
↓
Agent 调用工具、生成回复
↓
完成(completed) ← Agent 执行结束 → 失败(failed)
↓ ↓
写入 chat_messages 记录错误信息
WebSocket 通知用户 WebSocket 通知用户
任务中断与追加
- 中断:在 Header 的活跃任务指示器上点击取消按钮,或在 Chat 中发送"取消"
- 追加消息:AI 执行过程中,你可以发送新消息补充要求(如"重点看安全部分"),AI 会在当前步骤完成后收到并调整
并发控制
- 同一会话同一时间只允许一个 running 任务
- 不同会话可以并行(多个 AI 员工同时工作)
服务重启容灾
如果 OpenVort 服务重启,所有正在运行的任务会自动标记为失败,并通知用户。用户可以选择重新执行。