前言:谁懂调试流式接口的崩溃?
Hello~大家好,我是秋天的一阵风
做 AI 对话、实时推送、进度上报的前端/全栈兄弟,一定有过这种窒息时刻:
需求要对接流式接口,打开 Chrome Network 面板,Response 里密密麻麻全是data: {...}碎片,一整条对话拆成几百个小帧,思考、正文、工具调用搅成一锅粥。想定位某个字段,只能疯狂滚动鼠标、反复 Ctrl+F 检索,眼睛看花都分不清哪段是有效输出。
Chrome 自带的 EventStream Tab 看似能看事件,实则纯属 “能用,但难用” :
- 表格只展示
id、type、data、time四列,没有折叠 JSON 树,复制字段都费劲; - 时间戳光秃秃,看不出帧间隔卡顿;
- 更别提把思考、工具内容分开归类,排查性能卡顿全靠瞎猜。
更折磨人的是扒第三方 AI 网页协议:打开豆包、Kimi、DeepSeek、通义任意一个对话页,Network 里瞬间塞满埋点、静态资源、鉴权 XHR,几十条请求里藏一条真实流式接口,只能挨个点开碰运气。
各家厂商帧格式还不统一,每次扒协议都像破译加密电报,折腾半小时找不到关键流是常态。
专属调试面板上线:自动抓流+智能合并,告别手动筛选
忍了无数次后,我干脆摆烂放弃原生 Network 调试逻辑,从零撸了一款专属 Chrome DevTools 面板 ——SSE DevTools Panel,专门根治 SSE、NDJSON、Connect+JSON 流式调试所有痛点,完全开源免费。
装上后 F12 控制台会新增独立 SSE DevTools 标签页,自动抓取fetch、EventSource、XHR发起的所有流式请求,普通埋点、静态 JSON 自动过滤,侧栏只保留真正需要调试的长连接,不用手动筛选。
针对国内主流 AI 网页、OpenAI 兼容接口做了专属协议识别,碎片化对话一键合并阅读,再也不用手动拼接data片段。
一、Events:十万条帧丝滑浏览,JSON 结构一目了然
选中侧栏任意一条流,Events 面板会把所有推送帧整理成规整表格:序号、到达时间、事件名、数据摘要一目了然。
- 超大流量无卡顿:内置虚拟滚动,哪怕一次性推送10万+事件,页面也不会卡死,只渲染屏幕可见区域;
- 可折叠 JSON 抽屉:点击单行事件,右侧弹出可折叠 JSON 树,复制字段、查看嵌套结构随手就能完成,告别原生纯文本乱码;
- 灵活检索过滤:支持纯文本、正则两种检索模式,列宽可自由拖拽调整;
原生 EventStream 对比下来,简直是石器时代产物。
二、Request:不用来回切 Network,敏感信息自动脱敏
不用在多个 Network 标签来回跳转查请求头、请求体,这条流完整请求信息全在 Request 面板:完整记录请求方法、URL、响应状态、全部请求头与请求体,同时自动脱敏敏感字段:Authorization、Cookie、各类token、api-key会做隐藏处理,截图发给后端联调也不用担心泄露密钥,省心又安全。
三、Timeline:一眼揪出卡顿、断连、重连问题
排查流式接口性能、断流 bug 的王牌功能,彻底解决“不知道哪里卡”的难题:
- 可视化时间轴:每一条事件按真实到达时间排布,直观看清帧推送节奏;
- 卡顿标红提醒:相邻两帧间隔≥250ms 自动标红,一眼定位延迟节点,点击直接跳转 Events 对应行;
- 间隔分布直方图:统计全部帧间隔分布,长停顿集中区间一目了然,和后端同步性能问题不用靠嘴描述;
- EventSource 专属标记:自动识别重连行为,标注重连次数与
Last-Event-ID,排查断连重试问题一步到位。
不管是首包 TTFT 延迟过高、中途长时间卡顿、网络抖动频繁重连,打开 Timeline 就能精准锁定根源。
四、Raw:完整原始流一键复制,复现 bug 超省事
有时候怀疑解析逻辑出错、需要给后端提供原始复现样本,Raw 面板会把所有帧拼接成服务端完整输出原文,支持一键全选复制。超长流同样搭载虚拟滚动,不会出现页面加载卡死,对照 Events、Conversation 视图核对解析差异极其方便,联调甩文件远比截图清晰。
五、Conversation:AI 对话碎片自动拆分阅读
专门为扒 AI 网页、调试大模型对话接口打造,也是我做这款插件的核心初衷。它会自动识别各大厂商私有流式协议,把零散的data碎片整合,分四大独立通道展示内容:
- 正文:模型最终输出回答;
- 思考:深度思考、推理过程;
- 工具:函数调用、网页搜索(搜索内容自动整理查询词+来源卡片,标题、摘要、URL 分类展示);
- 元数据:模型名称、token 用量、结束原因、协议标识。
当前原生适配的 AI 网页平台
DeepSeek、豆包、Kimi、通义千问、智谱清言、腾讯元宝,同时兼容所有 OpenAI 标准兼容流式接口;Anthropic 系列仅完成协议识别,对话合并功能持续迭代;未收录站点自动切换通用 Events 视图,基础调试功能完全不受影响。
再也不用手动复制拼接几百行碎片,扒竞品协议、自研 AI 对话联调效率直接翻倍。
六、配套全能调试工具箱,细节拉满
1. Stats 量化统计面板
一键生成这条流完整数据指标:首包延迟、总推送时长、平均帧间隔、最大停顿间隔、每秒事件数。Timeline 看局部卡顿,Stats 看整体性能,和后端对齐数据有理有据。同时自动扫描空数据、超长间隔等异常帧,附带 SSE 规范校验,对照 HTML 标准检查换行、BOM、字段格式,自研 SSE 服务端调试神器。
2. Search All 全局跨流检索
普通检索仅作用单条流,全局搜索能检索当前页面所有捕获过的流式请求,输入关键词就能命中对应流、对应事件,多并发流场景找内容不用逐条点开。
3. 完整导入导出归档
支持导出 JSON、CSV、.sse 原始流文件,本地存档留存调试样本;导出的 JSON 可重新导入面板回放查看,线上偶现 bug 复现不用反复复现页面,直接加载存档就能分析。
4. 基础控制功能
面板支持暂停捕获(后台持续抓流,恢复后补齐全部数据)、一键清空全部捕获记录、中英文双语切换,适配不同开发习惯。
三分钟本地安装教程,开箱即用
推荐: 从 Chrome 应用商店 安装,然后打开目标页 → F12 → SSE DevTools → 先刷新页面再触发流式请求。
从源码加载(开发 / 本地构建):
# 拉取仓库
git clone https://github.com/FatMii/sse-devtools-panel.git
cd sse-devtools-panel
# 安装依赖并打包
pnpm i && pnpm build
# 本地 demo 服务(自带多类型流式测试页面)
pnpm demo
- Chrome 地址栏输入
chrome://extensions,开启右上角开发者模式; - 点击「加载已解压的扩展程序」,选中仓库内 dist 文件夹;
- 打开 demo 页面 http://127.0.0.1:8765,F12切换到 SSE DevTools 标签,刷新页面;
- 分别点击 Fetch SSE、EventSource、XHR、NDJSON 按钮,侧栏会自动捕获测试流,所有面板功能均可体验。
日常开发修改代码后执行pnpm dev实时监听构建,扩展管理页点重新加载就能生效。前置环境要求:Node.js 20+、pnpm 10.x、Chrome/Edge 等 Chromium 内核浏览器。
客观说明:插件定位与现有局限
它是什么
独立 DevTools 专用流式调试面板,专门补充原生 Network 缺失的长连接分析能力;
它不是
不会替代 Network 完整审计功能,也不是全局抓包 MITM 代理;
已知限制
- 无法捕获 Service Worker 内部发起的流式请求;
- 部分小众底层流式 API 存在漏抓情况,遇到可带复现步骤提 Issue;
- AI 厂商协议会频繁迭代,对话拆分功能失效可导出 Raw 文件反馈适配;
- 页面打开前已推送的历史流,最多缓存2000条/4MB,超限会丢弃最早数据。
局限都在可控范围,日常99%流式调试场景完全覆盖。
最后:完全 MIT 开源,欢迎一起共建
项目全程 MIT 开源,无任何功能阉割、无付费门槛,仓库地址:github.com/FatMii/sse-…
不管是自研 SSE/AI 流式接口日常调试,还是扒各大模型网页协议,装上就能摆脱满屏 data 乱码的折磨。
好用的话欢迎给仓库点 Star;遇到 bug、有新厂商适配需求、想提功能优化,直接开 Issue 附上复现样本,我会持续迭代更新。
再也不用跟碎片化流式数据死磕,把时间留给业务开发,而不是和调试工具较劲。