【用户】任务管理
任务数据流 WebSocket
功能定位:该接口通过 WebSocket 转发任务运行数据。任务对话继续输入使用 type=user-input。 数据格式约定:当前仅支持文本帧透传。服务端将 Agent 的原始文本数据包装为如下结构返回给前端(对应 domain.TaskStream):
{ "type": "string", "data": "string", "kind": "string", "timestamp": 0 }
user-input 上行新格式:
{ "type": "user-input", "data": "{\"content\":\"57un57ut5aSE55CG6L+Z5Liq6Zeu6aKY\",\"attachments\":[{\"url\":\"https://example-bucket.oss-cn-hangzhou.aliyuncs.com/temp/a.txt\",\"filename\":\"a.txt\"}]}" }
user-input 上行旧格式仍兼容:
{ "type": "user-input", "data": "继续处理这个问题" }
user-input 下行和历史返回统一使用新 JSON payload 字符串:
{ "type": "user-input", "data": "{\"content\":\"57un57ut5aSE55CG6L+Z5Liq6Zeu6aKY\",\"attachments\":[]}", "timestamp": 0 }
attachments 为可选附件列表,最多 10 个;每项包含 url 和 filename,URL 需要匹配后端配置的附件白名单前缀。 type 字段说明:
- task-started: 本轮任务启动
- task-ended: 本轮任务结束
- task-error: 本轮任务发生错误
- task-running: 任务正在运行
- task-event: 任务临时事件, 不持久化
- file-change: 文件变动事件
- permission-resp: 用户的权限响应
- auto-approve: 开启自动批准
- disable-auto-approve: 关闭自动批准
- user-input: 用户输入
- user-cancel: 取消当前操作,不会终止任务
- reply-question: 回复 AI 的提问
- cursor: 历史游标,用于通过 /rounds 接口加载更早的轮次
cursor 消息结构:
{ "type": "cursor", "data": { "cursor": "<nextCursor>", "has_more": true }, "timestamp": 0 }
- cursor: 当前分页游标,作为 GET /rounds 接口的 cursor 参数向前翻页
- has_more: 是否存在更早的轮次。为 false 时表示当前轮次即为第一轮,无需再翻页
get/api/v1/users/tasks/stream
Query parameters
idstring required
任务 ID
modestring
模式:new(等待用户输入)|attach(仅拉取当前轮次),默认 new
Response
成功