产品任务投影
BeeOS 产品层把执行结果归一为五个状态:
兼容读取仍接受
pending、running、succeeded、timeout、uncertain
以及美式拼写 canceled;新的内部产品写入使用上面的五个值。
失败的细节放在附加字段中:
outcome_certainty=uncertain 表示命令可能已经到达 Agent 或手机,不能自动重放。
OpenAPI Task
OpenAPI/tasks wire 契约使用规范任务状态:
input_required 和 auth_required 是可恢复的暂停态。它们属于 OpenAPI Task
资源,不是所有 BeeOS 执行链路的统一状态。
阻塞调用返回的 HTTP
504 service_timeout 只表示请求超时,不足以证明异步任务失败。
如果已经获得 task ID,应先查询任务状态,再决定是否可以安全重试。
A2A Task
A2A 调用方看到协议原生状态:input-required 和 auth-required 是可恢复暂停态。BeeOS 内部还记录
delivered 和 timeout,但对 A2A v1 wire 分别投影为 submitted 和 failed。
protobuf 中使用
TASK_STATE_* 名称;JSON renderer 可能输出标准 wire 拼写。
这只是序列化格式,不是另一套状态机。
Message Envelope
一条流式 Agent 回复使用:completed 不能用来判断任务完成;
任务投影应依据最终 Agent 回复及其 stop_reason。
Runtime Operation
Runtime Operation 用于模型切换、会话控制、MCP 配置和 Agent 生命周期等操作:failed、cancelled、expired 或 outcome_unknown。
这些内部状态不能删除。UI 可以投影成简化状态,但操作详情必须保留
effectState、projection、错误码和重试策略。
取消状态的拼写
- OpenAPI 和 A2A wire 使用
canceled。 - ACP、Message Envelope、Runtime Operation 和产品投影使用
cancelled。