成熟度:Preview
目标
让客户端完整消费 Run 事件,在传输中断后安全恢复,并将 Consent 作为独立授权状态处理,而不是把断流、拒绝或超时误判为成功。
当前可用
Fellow 原生流式 wire 是 StreamEvent SSE。客户端先创建 Run,再订阅该 Run 的事件流。事件带递增序号并写入数据库;断线后可使用 fromSequence 回放缺失事件,再接入实时流。
@fellow.work/client 提供 Run 事件迭代、自动重连选项,以及查询和提交待处理 Consent 的能力。AG-UI 事件是参考客户端在边界上的 adapter,不是 Gateway 的原生事件真相。
客户端恢复责任
- 持久化最后已处理的事件序号,并从该位置恢复。
- 将回放和实时阶段可能重复到达的事件设计为幂等处理。
- 只有收到明确的业务终态才能判定 Run 成功或失败;网络断开本身不是业务终态。
- 将 Consent 的请求、批准、拒绝和过期视为授权流程,不要用模型输出或客户端字段伪造批准。
- 浏览器重连仍须使用短期 access token,不能暴露
fkey_。
当前边界
- 当前实时 fan-out 使用内存 Stream Bridge。单实例回放可用,但不能据此推断 Redis 支撑的多副本实时流。
- 心跳、事件保留窗口、慢消费者策略、最大事件大小和统一 terminal error 契约尚未冻结为公共兼容承诺。
- 通用 idempotency key 支持不能假定存在;重试创建或触发副作用前,应以具体 API 的已发布行为为准。
- 本页不新增任何事件或 Consent 端点;精确调用面以 Gateway 与 Client SDK 当前文档为准。
未来能力
Planned: 冻结事件 schema、终态与错误语义、恢复游标、保留窗口、去重标识和 adapter 映射测试,并纳入 Interaction conformance。