interrupted
AI SDK 引入的 finish reason 枚举值,表示流已结束但未收到 provider 的完成信号,属于正常结束但结果可能不完整的独立状态,而非错误,需调用方显式判断处理。
时间轴 (近 90 天)
升级到 2.0.81 前应全局搜索 finish reason 的穷尽式处理逻辑,确认新增的 interrupted 值已被覆盖,以避免 CI 类型检查失败。
AI SDK 2.0.81 为 provider 流引入了新的完成原因 interrupted,用于没有收到完成信号就结束的流。
当流以 interrupted 结束时,SDK 会保留已产生的部分输出,并且不会仅仅因为中断就抛出错误。
当流以 interrupted 结束时,工具执行、agent 继续运行以及自动 UI 后续操作都会停止,迟到的工具结果和审批请求也会被忽略。
interrupted 完成原因的 provider 端检测与发射逻辑尚未实现,当前版本仅为 SDK 层面的准备。
由于 interrupted 被加入公开的 finish-reason 类型,升级到 2.0.81 可能导致使用穷尽式 switch 或 Record<FinishReason, string> 映射的 TypeScript 项目出现类型检查错误。
对于需要检测不完整响应的应用,建议在现有错误处理之外额外检查 finishReason === 'interrupted'。
`interrupted` 状态保留已产出的部分输出,并且不因中断本身抛出错误。
官方在补丁说明中给出了 Compatibility notice,要求依赖 finishReason 做分支判断的应用在 switch、映射表和自定义校验中补上 `interrupted` 分支。
中断本身不触发错误处理路径,try/catch 无法捕获此类情况,只能通过 finish reason 判断。
还有 3 条时间轴事件
全部知识事实 (13)
升级到 2.0.81 前应全局搜索 finish reason 的穷尽式处理逻辑,确认新增的 interrupted 值已被覆盖,以避免 CI 类型检查失败。
50%待验证当流以 interrupted 结束时,SDK 会保留已产生的部分输出,并且不会仅仅因为中断就抛出错误。
50%待验证当流以 interrupted 结束时,工具执行、agent 继续运行以及自动 UI 后续操作都会停止,迟到的工具结果和审批请求也会被忽略。
50%待验证interrupted 完成原因的 provider 端检测与发射逻辑尚未实现,当前版本仅为 SDK 层面的准备。
50%待验证由于 interrupted 被加入公开的 finish-reason 类型,升级到 2.0.81 可能导致使用穷尽式 switch 或 Record<FinishReason, string> 映射的 TypeScript 项目出现类型检查错误。
50%待验证对于需要检测不完整响应的应用,建议在现有错误处理之外额外检查 finishReason === 'interrupted'。
50%待验证AI SDK 5.0.28 将上游模型流未发送 provider 完成信号即结束的状态正式建模为 `interrupted` finish reason。
50%待验证`interrupted` 状态保留已产出的部分输出,并且不因中断本身抛出错误。
50%待验证官方在补丁说明中给出了 Compatibility notice,要求依赖 finishReason 做分支判断的应用在 switch、映射表和自定义校验中补上 `interrupted` 分支。
50%待验证中断本身不触发错误处理路径,try/catch 无法捕获此类情况,只能通过 finish reason 判断。
50%待验证Google Generate Content 因输出长度上限触发的自动续写、Anthropic 后续消息中的截断属于可续写场景,可以基于已保留的部分输出拼接后续内容。
50%待验证纯传输层中断更适合重试而非续写,因为此时上下文可能不完整或重复。
50%待验证AI SDK 2.0.81 为 provider 流引入了新的完成原因 interrupted,用于没有收到完成信号就结束的流。
50%