关于 fortify
fortify 是用于增强工作流容错能力的 Agent 技能,面向会调用外部服务的工作流。它涵盖输入校验、重试、回退、熔断、超时控制和审查清单。
主要功能
- 01输入校验与长度限制
- 02指数退避重试
- 03回退响应与升级处理
- 04熔断器与超时控制
- 05容错审查清单
适用场景
- 01增强调用外部 API 的工作流
- 02设定暂时性故障后的处理方式
- 03检查工作流组件的错误处理
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ sharpdeveye/ maestro --skill fortify安装后在 Claude Code 中输入/fortify确认已加载。
详细介绍
强制准备
调用 /agent-workflow — 其中包含工作流原则、反模式和上下文收集协议。继续之前请遵循该协议 — 如果尚无工作流上下文,必须先运行 /teach-maestro。 查阅 agent-workflow 技能中的 guardrails-safety 参考资料,了解纵深防御模式和错误边界设计。
让工作流具备韧性。所有外部调用最终都会失败 — 模型 API、工具、数据库、第三方服务都不例外。Fortify 可确保工作流妥善处理故障。
加固层级
第 1 层:输入验证
- 处理前验证所有输入
- 对无效输入返回清晰的错误消息
- 为所有输入字段设置大小限制
第 2 层:退避重试 对于暂时性故障(网络错误、速率限制、超时):
Retry strategy:
max_retries: 3
initial_delay: 1s
backoff_multiplier: 2
max_delay: 30s
retryable_errors: [429, 500, 502, 503, 504, TIMEOUT, CONNECTION_ERROR]
non_retryable_errors: [400, 401, 403, 404]
第 3 层:回退响应 重试耗尽时:
- 使用缓存的先前响应(如适用)
- 使用更简单/成本更低的模型作为回退
- 返回平稳降级的响应
- 升级至人工审核
第 4 层:熔断器 服务持续故障时:
Circuit breaker:
failure_threshold: 5 consecutive failures
state: CLOSED → OPEN (after threshold) → HALF_OPEN (after cooldown)
cooldown: 60 seconds
half_open_max_requests: 1
第 5 层:超时控制 每次外部调用都需要设置超时:
- 模型 API 调用:根据任务设置为 30-120s
- 工具执行:根据工具设置为 10-60s
- 数据库查询:5-15s
- 第三方 API:10-30s
加固审计
针对每个组件,确认:
- 已进行输入验证
- 对暂时性故障设置了重试逻辑
- 重试失败时有回退方案
- 已设置超时
- 已记录包含上下文的错误
- 用户会收到有意义的错误信息(而非堆栈跟踪)
建议的下一步
加固后,运行 /evaluate,在逼真的故障场景下验证错误处理是否有效。
绝不:
- 重试不可重试的错误(身份验证失败、验证错误)
- 不使用退避机制进行重试(这会让问题变得更糟)
- 悄悄吞掉错误(记录并处理,不要忽略)
- 设置无限超时(这会导致永远挂起)
- 跳过回退方案(重试耗尽且没有回退 = 用户会看到错误)
评论
支持 Markdown