网易首页 > 网易号 > 正文 申请入驻

ai@6的streamText出错不抛异常?Sentry MCP修复让静默失败现形

0
分享至

这是 DEV 夏季 Bug 清除大赛(Summer Bug Smash: Clear the Lineup,由 Sentry 赞助)的参赛提交。 项目概览 Sentry MCP 是一个模型上下文协议(Model Context Protocol)服务器,它把 Sentry 的错误与性能数据开放给 AI 助手使用。仓库里附带了一个小型 CLI 测试客户端(packages/mcp-test-client),通过真实的大语言模型驱动服务器,从而端到端地验证所有工具。本次修复落在该测试客户端的 `runAgent` 函数中,并关闭了由 Sentry 创始人提交的 issue #500。 Bug 定位:错误被“无响应”三个字吞掉了 当客户端遇到提供商错误——无效 API 密钥、触发限流或 5xx 状态码——它只会打印一行 `(No response generated)` 然后继续执行,真正的原因完全丢失。 根源是仓库锁定的 Vercel AI SDK(ai@6)的一个反直觉行为:`streamText` 在请求失败时并不会抛出异常。它会以零个数据块结束 `textStream`,并且只通过 `onError` 回调上报失败,而这段代码从未设置过该回调。于是 `for await` 循环空转结束,`runAgent` 永远进不了 `catch` 分支,Sentry span 始终保持 OK 状态,任何信息都没有被捕获。客户端最终落入那行误导性的“无响应”提示。这个失败对用户不可见,对 Sentry 同样不可见。 动手修复之前,我先针对已安装的 SDK 版本做了探针验证:`textStream` 确实在不抛异常的情况下产出零块,而 `onError` 会携带一个 `statusCode: 401` 的 `APICallError` 触发。issue #500 曾猜测错误可能挂在 `result.errorPromise` 上,但在当前 SDK 版本中该属性并不存在,因此这次修复没有采用这个猜测。 修复方案:接住 onError,让错误走回 catch 客户端现在会先捕获 SDK 通过 `onError` 上报的错误,等流排空后再把错误抛出,让它流经既有的 `catch` 分支: ```typescript let streamError: unknown; const result = await streamText({ model: languageModel, system: SYSTEM_PROMPT, messages: [{ role: "user", content: userPrompt }], tools, stopWhen: stepCountIs(maxSteps), experimental_telemetry: { isEnabled: true }, onError: ({ error }) => { // 提供商错误会在这里到达,而不是作为抛出的异常。 streamError = error; }, }); // ...等待流排空... if (streamError) { throw streamError; } ``` 这样,真实的错误原因会被带进已有的错误处理链路:Sentry span 被标记为失败、原始错误信息得以保留、用户不会再看到那条空洞的“无响应”提示。一次原本静默消失的提供商故障,现在可以被完整地观测和追踪了。


特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
上港三大外援离队转投申花?球迷怒斥假消息求官宣

上港三大外援离队转投申花?球迷怒斥假消息求官宣

野渡舟山人
2026-08-14 00:56:18
划红线!联合国明确:敢武力介入台海就是侵略。

划红线!联合国明确:敢武力介入台海就是侵略。

阿芒娱乐说
2026-08-13 06:52:44
周启豪3-2卡尔伯格采访!强调变化与关键时刻,展望下轮打松岛!

周启豪3-2卡尔伯格采访!强调变化与关键时刻,展望下轮打松岛!

篮球资讯达人
2026-08-14 04:23:06
二三十岁的青年赵本山,也是难得一见

二三十岁的青年赵本山,也是难得一见

娱你同欢
2026-08-13 20:48:06
吃相难看!郭兰英去世,婚姻私生活被扒、遗愿曝光,难堪一幕发生

吃相难看!郭兰英去世,婚姻私生活被扒、遗愿曝光,难堪一幕发生

阿校谈史
2026-08-14 02:01:28
不出意外!爬南太行山失联4天的56岁李爱民就要被找到,搜救人员找到一处滑落点,与信号消失的地点重合

不出意外!爬南太行山失联4天的56岁李爱民就要被找到,搜救人员找到一处滑落点,与信号消失的地点重合

火山詩话
2026-08-13 13:22:47
追梦:球迷们真烂,为啥威少退役才得到赞美而在役时全是谩骂?

追梦:球迷们真烂,为啥威少退役才得到赞美而在役时全是谩骂?

懂球帝
2026-08-14 01:59:03
西方专家:中国又开始“反人类操作”,用不完的电藏在地下几千米

西方专家:中国又开始“反人类操作”,用不完的电藏在地下几千米

次元君情感
2026-08-13 10:47:55
湖人队迟迟未发布威斯布鲁克退役声明,引发球迷社交媒体上的热议

湖人队迟迟未发布威斯布鲁克退役声明,引发球迷社交媒体上的热议

好火子
2026-08-14 06:03:50
父亲58岁时购买保险5年需交费27万,儿子翻看条款发现“55岁后购买无法返还本金”

父亲58岁时购买保险5年需交费27万,儿子翻看条款发现“55岁后购买无法返还本金”

黄河新闻网吕梁
2026-08-13 11:02:57
为什么我劝白发奶奶:少剪短发、多扎发?看这3组对比图你就懂了

为什么我劝白发奶奶:少剪短发、多扎发?看这3组对比图你就懂了

白宸侃片
2026-08-11 12:55:56
A股跳水的原因找到了!10天,韩股牛市了,闪迪飙14%,纳指逼近新高

A股跳水的原因找到了!10天,韩股牛市了,闪迪飙14%,纳指逼近新高

金石随笔
2026-08-14 01:47:23
特朗普秘密换飞机细节曝光,搭乘餐饮转运车换乘,鲁比奥、贝森特和记者被留在“诱饵”飞机上!特朗普解释:我坐的飞机风险更大

特朗普秘密换飞机细节曝光,搭乘餐饮转运车换乘,鲁比奥、贝森特和记者被留在“诱饵”飞机上!特朗普解释:我坐的飞机风险更大

每日经济新闻
2026-08-12 20:27:46
一家4口在华山跳崖,总债务高达4亿元,仅有一个女儿被留下

一家4口在华山跳崖,总债务高达4亿元,仅有一个女儿被留下

纸鸢奇谭
2024-08-14 16:57:01
央八生活剧来袭!8月14日正式开播!积压时间长达四年!

央八生活剧来袭!8月14日正式开播!积压时间长达四年!

可乐谈情感
2026-08-14 00:30:50
根据庞加莱回归理论:宇宙未来会不断轮回,一切都是注定好的?

根据庞加莱回归理论:宇宙未来会不断轮回,一切都是注定好的?

观察宇宙
2026-08-13 20:10:45
高考444分考生回应被殡葬专业录取:出生于4月4日,当天还是清明节,纯属巧合,自己高一时就开始关注殡葬行业,就业前景不错

高考444分考生回应被殡葬专业录取:出生于4月4日,当天还是清明节,纯属巧合,自己高一时就开始关注殡葬行业,就业前景不错

极目新闻
2026-08-11 20:23:20
比亚迪深夜连发三款30万级新车,格局变了

比亚迪深夜连发三款30万级新车,格局变了

沙雕小琳琳
2026-08-14 01:51:43
宋庆龄向毛主席求情,希望宽大处理陈璧君,陈:我情愿监狱度余生

宋庆龄向毛主席求情,希望宽大处理陈璧君,陈:我情愿监狱度余生

谈古论今历史有道
2026-08-13 23:16:41
被年轻人的“邪修做家务”惊到了!不费时间不费力,收拾干干净净

被年轻人的“邪修做家务”惊到了!不费时间不费力,收拾干干净净

抠搜侠
2026-08-05 13:41:42
2026-08-14 07:15:00
全栈遛狗员
全栈遛狗员
白天跟需求对线,晚上在小区遛狗。
358文章数 111关注度
往期回顾 全部

科技要闻

一切皆插件!DeepSeek Harness正式发布

头条要闻

冉莹颖被指称"输了换老公有保险" 邹市明深夜回应

头条要闻

冉莹颖被指称"输了换老公有保险" 邹市明深夜回应

体育要闻

负债十几亿的联赛,还在疯狂买球星

娱乐要闻

篡改红歌已立案,郭德纲大祸临头

财经要闻

可治疗癌症?神话破灭的片仔癀 陷入争议

汽车要闻

全新红旗H7到底新在哪儿?

态度原创

时尚
数码
艺术
家居
军事航空

HYROX赛场上的美照怎么拍出来的?

数码要闻

英伟达GeForce NOW原生Linux应用发布:结束Beta测试

艺术要闻

顶级的大片

家居要闻

2026建博会(广州) 公装联探展交流活动

军事要闻

特朗普发文:伊朗已经完蛋

无障碍浏览 进入关怀版