ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Mastra 工作流错误处理与重试:3 步把失败步骤找出来、控制住

Mastra 工作流错误处理与重试:3 步把失败步骤找出来、控制住 Mastra 工作流错误处理与重试3 步把失败步骤找出来、控制住【免费下载链接】mastraMastra is the modern TypeScript framework for AI-powered applications and agents.项目地址: https://gitcode.com/GitHub_Trending/ma/mastra工作流跑到一半挂了你不知道挂在哪个步骤、为什么挂、该不该再来一次——这是搭建 AI 工作流时最常见的三类问题。Mastra 的 TypeScript 工作流引擎把这三件事拆开处理先用追踪面板定位失败步骤与具体报错再按错误类型决定重试与否最后通过 retryConfig 控制重试次数与延迟。下面按先诊断、后治疗的顺序讲清楚。追踪面板怎么用先定位到失败步骤和报错原因不要看到执行失败就动手加代码。Mastra 的可观测集成会把工作流拆成 span你在追踪面板里能直接看到某次 run 停在哪个步骤、该步骤抛出的错误是什么。排查顺序建议固定为三步找到 runId 对应的 trace确认失败步骤名读该 span 的错误信息区分是外部调用问题还是自身逻辑问题对照历史 run判断是偶发抖动还是稳定复现稳定复现的错误重试没有意义先修代码偶发抖动才进入后面的重试设计。追踪入口的实现可以看 packages/core/src/workflows/ 里各引擎对 span 的封装面板功能细节见 docs/src/content/en/reference/workflows/workflow.mdx。哪些错误该重试、哪些不该按错误类型划界限把错误分成三类处理方式不同外部调用类上游 API 超时、连接中断、限流。这类瞬时问题占失败的大头适合重试业务逻辑类输入 schema 校验不过、数据不满足预期。重试一万次结果也一样应直接标记失败并落日志系统资源类内存不足、宿主负载过高。自动重试意义不大更该触发告警让人介入Mastra 给了两个配合使用的工具context.retryCount记录当前步骤已重试的次数用于第 N 次之后放弃TripWire 的retry选项让你在运行时判断这次失败值不值得再来一次而不必把所有异常一刀切。重试次数和延迟怎么配从固定间隔到按次数退避工作流支持retryConfig只有两个参数attempts最大尝试次数delay两次尝试之间的毫秒间隔。先写最简配置const wf createWorkflow({ id: order-checkout, inputSchema: orderInput, outputSchema: orderOutput, steps: [charge, notify], retryConfig: { attempts: 2, delay: 3000 }, }).commit();这段配置的含义整条工作流最多重试 2 次每次间隔 3 秒。改attempts直接调整重试预算把delay加大则拉长与下游服务之间的恢复窗口。对延迟有讲究的步骤可以在步骤内部按retryCount自己算间隔实现简单的递增退避// 重试越多等得越久第 1 次等 2s第 2 次等 6s const backoff 2000 * Math.pow(3, context.retryCount);固定间隔适合秒级抖动的调用递增退避适合下游恢复需要更长时间、或者会持续限流的场景。重试机制常见的三个坑错误做法、后果和正确姿势错误做法后果正确做法把所有异常都标为可重试业务逻辑错误反复空跑浪费 token 与配额先用追踪面板看原因只对瞬时性错误开重试把 attempts 调到很大图永不失败失败 run 越堆越多排查成本上升从 2 次起步按一周追踪数据再调用固定短间隔猛重试下游 API触发对端限流失败率反而更高用retryCount递增延迟或加大 delay控制重试成本并发、资源与告警怎么配重试不是免费的建议按下表管理项目建议次数起步 2 次追踪里确认某类错误重试成功率高再逐步上调间隔外部 API 类错误用 2 秒起步的递增退避本地逻辑错误直接失败并发限制同时重试的任务数避免对下游打爆资源失败步骤的临时数据及时清理避免内存堆积告警重试耗尽时推送通知人工介入而不是继续硬试三分钟总结先看追踪定位失败步骤和报错原因再决定要不要重试只重试瞬时性错误业务逻辑错误直接失败retryConfig只有 attempts 和 delay 两个参数从 2 次、3 秒起步用retryCount和 TripWire 的 retry 选项控制何时放弃、何时再来重试耗尽要告警别让它静默地反复烧钱下一步把你手上最不稳定的一条工作流先设成attempts: 2, delay: 3000跑一周后回看追踪面板里每个失败步骤的错误分布再决定哪些步骤值得更高的重试预算。【免费下载链接】mastraMastra is the modern TypeScript framework for AI-powered applications and agents.项目地址: https://gitcode.com/GitHub_Trending/ma/mastra创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表