ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Midscene 模型调用追踪指南:一次配置打通整条请求链路

Midscene 模型调用追踪指南:一次配置打通整条请求链路 Midscene 模型调用追踪指南一次配置打通整条请求链路【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midsceneMidscene 跑 E2E 用例时aiAct 超时、断言失败报告里只留下一句「步骤失败」。报错告诉你哪里炸了却说不清这次任务向模型发了多少请求、哪次重试才成功。本文教你用 Midscene 的模型调用追踪把任务与模型服务之间的通信完整录下来让整条链路可查。成果预告跟着做完你能得到什么一份逐行记录每次模型请求、流式分片、响应与错误的 JSONL 日志一套把日志、HTTP 请求头、报告执行树对到同一个 executionId 上的方法一套排查「任务到底卡在哪次模型调用」的标准动作开始之前三个前提先自检运行环境是 Node.js 或 Electron浏览器与 Worker 里该功能不写本地文件已配好模型环境变量BASE_URL / API_KEY / MODEL_NAME能跑通一次用例项目里装了 midscene/web、midscene/android 等平台包之一或已安装 midscene/core第一步一行环境变量开启追踪只需在运行前加一个开关其余全部保持默认export MIDSCENE_RECORD_MODEL_CALLtrue npx midscene/web ai 打开一个购物网站并搜索 headphones改了什么只新增了这一个开关。没改什么模型配置、报告输出目录、执行逻辑都没动。开启后每个进程会在midscene_run/model-requests/下生成一个以启动时间和 PID 命名的 .jsonl 文件一个进程一个文件。第二步跑一条真实任务逐行看懂记录假设你跑了一个搜索用例任务内部会多次调用模型。跑完后打开刚生成的 jsonl每行是一个 JSON 事件tail -n 3 midscene_run/model-requests/*.jsonl | jq .type逐行看这几类request一次发往模型的完整请求体含截图 Base64 与 promptchunk流式响应到达的每个分片response完整响应含模型返回内容和 usageerror网络失败或超时直接看到重试前的失败现场每个事件都带一个 executionId。同一次 aiAct 里的所有调用和它的重试共用同一个 id连接检查这类不属于报告 execution 的调用则会带unscoped-前缀。原理速览executionId 如何串起整条链路打个比方任务对模型的每一次请求都像寄出一个包裹Midscene 会在包裹面单上印一个单号同时把发货记录写进黑匣子。数据流是这样的任务发起 → service-caller 生成或继承 executionId → 请求带上x-midscene-execution-id头发往模型服务 → 响应、分片、错误按顺序追加进 JSONL。于是你能顺着单号把报告里的一个步骤、HTTP 层的一次重试、日志里的若干行串成一条线。想看细节点这里请求与单号逻辑、黑匣子写入实现。自检环节如何验证追踪已生效确认文件出现ls midscene_run/model-requests/应能看到启动时间-pid.jsonl打开报告文件在执行树里挑一个步骤记下它的耗时在 JSONL 里按 executionId 过滤看这个步骤对应的模型调用有几条 request / response核对若某次调用有重试你会发现同一个 executionId 出现多次且前面的 error 行就是失败现场读面板时重点看三块左侧任务树步骤与子动作、右侧 Task Meta开始 / 结束时间、中间时间轴缩略图。把这三块和 JSONL 里的时间戳对齐就能判断卡点到底是模型慢还是重试太多。高频问题5 个最常见的坑Q1开启追踪后文件特别大能限制吗JSONL 会原样记录请求体含 Base64 截图体积天然偏大。建议只在排查问题时临时开启用完后妥善保存或删除不要把日志提交进仓库。Q2为什么浏览器里开了环境变量却没文件该功能只在 Node.js 和 Electron 里写本地文件浏览器与 Worker 环境会直接跳过。想录调用请用 Node 侧运行CLI 或 Playwright 脚本。Q3x-midscene-execution-id这个请求头会被覆盖吗Midscene 默认给 OpenAI 兼容的 HTTP 请求加上x-midscene-version和x-midscene-execution-id两个头。如果你在MIDSCENE_*_INIT_CONFIG_JSON里自定义了同名头Midscene 会覆盖成自己的值。Q4unscoped-开头的 executionId 是什么连接检查这类不属于报告 execution 的调用会临时生成带unscoped-前缀的 id。看到这种 id 就知道这条请求没挂在任何报告步骤上属于自检性质。Q5追踪记录和 HTML 报告是什么关系HTML 报告记录「任务做了什么」JSONL 记录「模型说了什么」。两者通过 executionId 对账报告里的一个步骤对应 JSONL 里同 id 的一组事件。收尾从查链路到查成本模型调用追踪的核心价值是把「任务失败」还原成「第几次模型调用、哪个分片、哪次重试」让排障从猜变成查。下一步你可以用 jq 统计每个 intentplan / insight / act的 token 用量找出最贵的步骤把 JSONL 接入自己的告警系统对 error 行做实时通知【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表