🏗️ 常量集中管理
- 新增 constants.ts:将
REFUSAL_PATTERNS(50+ 条拒绝检测规则)、IDENTITY_PROBE_PATTERNS、TOOL_CAPABILITY_PATTERNS、CLAUDE_IDENTITY_RESPONSE、CLAUDE_TOOLS_RESPONSE 及自定义拒绝规则逻辑从 handler.ts 提取到独立文件
- 提升可维护性:贡献者修改内置规则时只需查看 constants.ts,无需翻阅 2000 行的 handler 业务逻辑
- isRefusal() 函数统一导出:内置规则 + 自定义规则合并检测,所有调用点自动生效
🔧 自定义拒绝检测规则
- config.yaml 新增
refusal_patterns 字段:用户可添加自定义正则匹配规则,追加到内置列表之后(不替换),匹配到即触发重试逻辑
- 无效正则容错:无效的正则表达式自动退化为字面量匹配,不会导致服务报错
- 缓存编译:自定义规则只在配置变更时重新编译 RegExp,运行时零开销
- 热重载支持:修改后下一次请求即生效
# config.yaml 示例
refusal_patterns:
- "我无法协助"
- "this violates our"
- "I must decline"