mcpField
F
fortify

fortify

github.com/sharpdeveyeAgent 工作流592335 次安装26 周前更新
代码仓库

关于 fortify

fortify 是用于增强工作流容错能力的 Agent 技能,面向会调用外部服务的工作流。它涵盖输入校验、重试、回退、熔断、超时控制和审查清单。

主要功能

  1. 01输入校验与长度限制
  2. 02指数退避重试
  3. 03回退响应与升级处理
  4. 04熔断器与超时控制
  5. 05容错审查清单

适用场景

  1. 01增强调用外部 API 的工作流
  2. 02设定暂时性故障后的处理方式
  3. 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