独家合作CubenceAI 中转平台立减 20%访问

系统设置

错误规则

错误规则是 Claude Code Hub 的智能错误处理功能,用于识别和分类上游 API 返回的错误消息。通过配置错误规则,系统可以智能判断哪些错误应该重试、哪些错误应该直接返回给用户,从而提升用户体验和系统稳定性。

错误规则主要用于识别「不可重试」的错误类型。当请求命中错误规则时,系统将跳过重试逻辑,直接返回错误给用户,避免无效的重试浪费资源。


页面概览

错误规则管理页面位于 设置 > 错误规则 (/settings/error-rules),提供以下功能:

  • 规则测试器:实时测试错误消息是否匹配规则
  • 规则列表:展示所有已配置的错误规则及其状态
  • 添加规则:创建自定义错误规则
  • 刷新缓存:同步默认规则并重新加载缓存

规则测试器

规则测试器位于页面顶部,用于验证错误消息是否能被正确匹配。

使用方法

  1. 在「测试消息」输入框中输入要测试的错误消息
  2. 点击「测试」按钮
  3. 查看匹配结果

测试结果说明

测试结果会显示以下信息:

字段说明
匹配状态显示是否命中规则(绿色勾表示匹配,灰色叉表示未匹配)
规则信息命中的规则详情,包括分类、匹配类型和匹配模式
覆写状态码如果配置了状态码覆写,显示最终返回的 HTTP 状态码
最终响应如果配置了响应体覆写,显示最终返回给用户的错误响应
警告信息如果规则配置存在问题,显示相关警告

测试器会模拟运行时的处理逻辑,确保测试结果与实际行为一致。建议在创建或修改规则后使用测试器验证配置是否正确。


规则列表

列表展示

每条规则显示以下信息:

元素说明
匹配模式用于匹配错误消息的模式(正则表达式或文本)
默认标签蓝色标签表示系统预置规则
分类错误所属的业务类别
描述规则的说明文字
状态开关启用/禁用规则
创建时间规则创建的时间
操作按钮编辑和删除按钮

默认规则

系统预置了以下默认错误规则,覆盖常见的不可重试错误场景:

分类说明匹配示例
prompt_limitPrompt 长度超限"prompt is too long...tokens maximum"
content_filter内容安全过滤"blocked by content filter"
pdf_limitPDF 页数超限"PDF has too many pages"
thinking_errorThinking 模式错误"thinking format invalid"
parameter_error请求参数错误"Missing required parameter"
invalid_request非法请求"invalid request"
cache_limit缓存控制超限"cache_control limit blocks"

默认规则的匹配模式和分类不可修改,但可以配置响应覆写和状态码覆写。如需禁用某条默认规则,可以关闭其状态开关。


匹配方式

错误规则支持三种匹配方式:

正则匹配(regex)

使用正则表达式进行模式匹配,功能最强大但性能相对较慢。

  • 适用场景:复杂的模式匹配、需要捕获多种变体的错误消息
  • 示例prompt is too long.*(tokens.*maximum|maximum.*tokens)
  • 注意事项
    • 系统会自动进行 ReDoS(正则表达式拒绝服务)风险检测
    • 存在风险的正则表达式会被拒绝保存

包含匹配(contains)

检查错误消息是否包含指定文本,大小写不敏感。

  • 适用场景:简单的关键词匹配
  • 示例blocked by
  • 性能优势:比正则匹配更快

精确匹配(exact)

检查错误消息是否完全等于指定文本,大小写不敏感。

  • 适用场景:需要精确匹配特定错误消息
  • 示例rate limit exceeded
  • 性能优势:使用 Hash 查找,性能最优

系统按照「包含匹配 → 精确匹配 → 正则匹配」的顺序进行检测,优先使用性能更好的匹配方式。


错误分类

错误规则使用分类(Category)对错误进行归类,便于统计和管理:

分类标识分类名称说明
prompt_limitPrompt 超限请求的 token 数量超过模型限制
content_filter内容过滤请求内容被安全过滤器拦截
pdf_limitPDF 超限PDF 文件页数超过处理限制
thinking_errorThinking 错误Thinking 模式配置或格式错误
parameter_error参数错误请求参数不符合 API 规范
invalid_request非法请求请求格式或内容非法
cache_limit缓存超限缓存控制块数量超过限制

添加规则

点击页面右上角的「添加规则」按钮,打开规则创建对话框。

基本信息

  1. 匹配模式(必填):用于匹配错误消息的模式

    • 支持正则表达式语法
    • 系统会自动验证正则表达式的有效性和安全性
  2. 错误分类(必填):选择错误所属的业务类别

    • 从预定义的分类列表中选择
  3. 描述(可选):规则的说明文字

    • 建议填写,便于后续维护

响应覆写(高级选项)

勾选「启用响应覆写」后,可以配置:

覆写响应体

自定义匹配成功时返回给用户的错误响应,需符合 Claude API 错误格式:

{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "您的自定义错误消息"
  }
}

点击「使用模板」按钮可快速填入标准格式模板。系统会实时验证 JSON 格式是否正确。

覆写状态码

自定义 HTTP 响应状态码,取值范围 400-599。留空则使用上游原始状态码。

正则测试器

对话框底部会显示正则表达式测试器,可以实时验证正则表达式是否正确:

  1. 输入测试文本
  2. 查看匹配结果(高亮显示匹配部分)

编辑规则

点击规则行右侧的编辑图标(铅笔图标)可修改规则配置。

可编辑内容

  • 自定义规则:所有字段均可编辑
  • 默认规则:仅可编辑描述、响应覆写和状态码覆写

默认规则的匹配模式和分类由系统维护,不可修改。如需使用不同的匹配模式,请创建新的自定义规则。


删除规则

点击规则行右侧的删除图标(垃圾桶图标)可删除规则。

默认规则不可删除。如需禁用默认规则,请使用状态开关将其关闭。


启用与禁用

每条规则右侧有一个开关,用于快速启用或禁用规则。

  • 启用:规则参与错误匹配检测
  • 禁用:规则被跳过,不参与匹配

禁用规则后,相关错误将走默认处理流程(可能触发重试)。


刷新缓存

点击页面右上角的「刷新缓存」按钮可以:

  1. 同步默认规则:将代码中的最新默认规则同步到数据库
  2. 重新加载缓存:刷新内存中的规则缓存

缓存统计

按钮右侧显示当前缓存的规则总数。悬停可查看详细统计:

  • 正则规则数量
  • 包含规则数量
  • 精确规则数量

当系统升级后默认规则有更新时,点击「刷新缓存」可确保使用最新的规则配置。


规则优先级

规则按照以下顺序进行匹配:

  1. 启用状态:禁用的规则不参与匹配
  2. 匹配类型:包含 → 精确 → 正则(性能优先)
  3. 优先级字段:数值越小优先级越高

目前界面暂不支持配置优先级字段,规则按照匹配类型的固定顺序执行。如需自定义优先级,可通过 API 或数据库直接修改。


运行时行为

当 API 请求返回错误时,系统会按以下流程处理:

上游返回错误

错误规则检测器匹配

├── 命中规则 → 跳过重试,直接返回(可应用覆写)
└── 未命中 → 按熔断器/重试逻辑处理

响应覆写处理

当命中规则且配置了响应覆写时:

  1. 验证覆写响应体格式是否合法
  2. 移除 request_id 字段(会从上游注入)
  3. 如果 message 为空,回退到原始错误消息
  4. 验证状态码范围(400-599)

如果覆写配置不合法,系统会跳过覆写并使用原始响应。可在规则测试器中查看相关警告。


操作权限

操作管理员普通用户
查看规则列表可以不可以
使用规则测试器可以不可以
添加规则可以不可以
编辑规则可以不可以
删除规则可以不可以
刷新缓存可以不可以

错误规则属于系统配置功能,仅管理员可访问。普通用户无法看到错误规则管理页面。


最佳实践

规则配置建议

  1. 善用默认规则:默认规则已覆盖常见场景,通常无需额外配置
  2. 优先使用简单匹配:包含匹配和精确匹配性能更好,优先考虑
  3. 正则表达式要精简:避免过于复杂的正则,防止性能问题
  4. 测试后再启用:创建规则后务必使用测试器验证

响应覆写建议

  1. 统一错误格式:使用覆写功能统一不同供应商的错误响应格式
  2. 友好错误消息:将技术性错误消息转换为用户友好的提示
  3. 保留调试信息:生产环境可考虑简化消息,开发环境保留详细信息

故障排查

如果错误规则未按预期工作:

  1. 检查规则是否启用:确认规则状态开关已打开
  2. 使用测试器验证:输入实际错误消息测试是否匹配
  3. 检查正则表达式:确保正则语法正确,无 ReDoS 风险
  4. 刷新缓存:点击刷新缓存按钮确保最新规则生效
  5. 查看警告信息:测试器会显示配置问题的警告

相关功能

Previous
请求过滤器