ARTICLE DETAIL

资讯详情

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

Mastra 工作流错误处理实战:重试配置、排查路径与自查清单

Mastra 工作流错误处理实战:重试配置、排查路径与自查清单 Mastra 工作流错误处理实战重试配置、排查路径与自查清单【免费下载链接】mastraMastra is the modern TypeScript framework for AI-powered applications and agents.项目地址: https://gitcode.com/GitHub_Trending/ma/mastra凌晨两点定时触发的 Mastra 工作流卡在第 3 步一次外部 API 调用超时没有重试整条链路就此挂掉。这类单点故障拖垮全流程的场景几乎每个跑过 AI 工作流的人都遇到过。本文围绕 Mastra 工作流的错误处理与智能重试讲清楚三件事哪些错误值得重试、重试参数怎么配、失败了去哪查最后附一份可直接照做的自查清单。先分清三类错误再谈重试不是所有失败都值得重试先按来源把错误分三类网络类外部服务暂时不可用。典型例子是 fetch 外部接口时连接超时或返回 503过一会儿大概率恢复——这类是重试最该覆盖的对象。业务逻辑类请求本身有问题重试只是浪费资源。例如 LLM 返回的结构没通过 zod 校验同样的输入再发 5 次结果还是一样的。系统资源类运行环境出了问题如内存不足、沙箱超时被杀。这类要修环境重试顶多给恢复窗口。判断依据很简单这个错误是暂时的还是确定性的暂时性错误配重试确定性错误直接告警。重试次数与延迟retryConfig 和 retries 两层怎么配Mastra 的重试分两层理解层级关系是关键工作流级retryConfig对整个工作流的步骤生效示例文档中attempts: 5, delay: 2000表示每步最多执行 5 次、每次失败后固定等 2 秒退避在这里体现为固定间隔若要指数退避需要在步骤内部自己按次数累加延迟框架层只给了固定值。步骤级retries只对当前步骤生效并覆盖工作流级设置。配置长这样export const testWorkflow createWorkflow({ retryConfig: { attempts: 5, // 该工作流内每步最多执行 5 次 delay: 2000, // 两次尝试之间固定等待 2000ms }, }) .then(step1) // step1 声明了 retries: 3 时以 3 次为准 .commit();两条实战建议次数上限别超过 5 次瞬时故障大多 2~3 次内恢复更多只会拖长失败时长只给真正会碰到外部服务的步骤配重试纯计算步骤配了也是噪音。工作流失败后去哪里查配置对了不代表失败时会自愈定位路径要提前熟悉。Mastra 的失败信息走两条线执行结果execute返回带状态的 Result 对象检查状态即可知道是success还是failed以及失败在第几个步骤可观测性追踪把 Mastra 接入 Langfuse、PostHog 这类追踪后端后每次执行的每个步骤都有对应 span可以精确定位失败步骤、看它重试了几次、每次的入参出参是什么。官方对错误处理、retryConfig和条件分支的完整说明在 docs/src/content/en/docs/workflows/error-handling.mdx排查卡住的工作流超时或重试行为时先翻这里。重试失效自查清单按顺序过一遍配置层级对不对该步骤写了retries就覆盖retryConfig两者数值是否是你预期的那个错误是不是真的往外抛业务代码里try/catch吞掉异常、只返回错误信息时步骤算成功重试根本不会触发——这是最高频的坑错误类型值不值得重试确认失败是瞬时性网络错误而不是参数、鉴权这类确定性错误步骤是否幂等重试会完整重跑该步骤带副作用的写库、发消息操作会重复执行有没有告警兜底重试耗尽后是否有通知邮件、IM否则失败只能靠人肉发现。常见问题重试为什么没有触发九成是错误被步骤内部捕获了只要execute没有抛出异常而是返回了错误信息Mastra 就认为步骤成功。把瞬时错误改成throw重试才有机会介入。retries 和 retryConfig 哪个生效按范围分retryConfig管整个工作流内所有未单独声明的步骤retries只管声明它的那个步骤且优先生效。同一个步骤两处都配时以retries为准。工作流超时怎么排查先看追踪里各步骤的时间线区分是 LLM 调用慢、外部服务慢还是循环步骤次数过多再决定调大超时、拆步骤还是收紧dowhile的退出条件而不是盲目加等待时间。错误处理的目标从来不是让流程永不出错而是出错时能优雅恢复重试给瞬时故障一个缓冲可观测性让失败可定位这两件事做到位工作流在无人值守时也能稳下来。【免费下载链接】mastraMastra is the modern TypeScript framework for AI-powered applications and agents.项目地址: https://gitcode.com/GitHub_Trending/ma/mastra创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表