“Fable 5 的安全措施标记了这条消息。”如果你在编写正常代码时遇到这个提示,Fable 5 的分类器捕获到了三个领域之一中的关键词模式:生物学、网络安全或 ML 训练。
你无法禁用分类器。但正确的系统提示框架可以消除大多数误报。95% 的 Fable 5 会话从不触发回退。本指南涵盖触发回退的原因、如何诊断,以及让你的请求保持在 Fable 5 上的代码级策略。
Fable 5 的安全系统做什么
Fable 5 不会拒绝被标记的请求。它会将这些请求重定向到 Opus 4.8,使用意图建模和上下文加权进行第二次评估。以下三类分类器会触发此重定向:
- 生物学和生命科学 — 病原体研究、蛋白质工程、化学合成路径
- 网络安全和进攻性安全 — 漏洞利用开发、漏洞分析、渗透测试
- ML 训练和蒸馏 — 前沿模型预训练、分布式训练基础设施、模型权重提取
这些类别是故意设得过于宽泛的。Anthropic 的 @ClaudeDevs 表示:“让这些防护措施可见会让它们更容易被规避,因此,为了使它们对越狱更具鲁棒性,不幸的是,在我们改进分类器的过程中,会出现更多误报。”
如何判断你已被标记
Fable 5 有两个不同的干预措施。
可见回退
你会看到一条明确的消息,而你的请求则改由 Opus 4.8 提供服务。你仍然会得到一个回复,但 Opus 4.8 在 SWE-Bench Pro 上的得分是 69.2%,而 Fable 5 的得分是 80.3%。
无声的退化
对于与 ML 相关的任务,Fable 5 可以在不发出任何通知的情况下悄悄降低响应质量。这针对前沿 LLM 预训练、分布式训练基础设施以及 ML 加速器设计。它影响大约 0.03% 的流量,但如果你正好属于这 0.03%,输出看起来更像是模型混淆,而不是策略拦截。
检查 API 响应中的 model 字段,以确认由哪个模型处理了该请求:
import anthropic
client = anthropic.Anthropic(api_key="your-key")
response = client.messages.create(
model="claude-fable-5",
max_tokens=1024,
system="你正在协助进行 ML 基础设施工作。",
messages=[{"role": "user", "content": "your prompt here"}]
)
# 如果这与你请求的不匹配,说明你被重新路由了
print(f"Requested: claude-fable-5")
print(f"Served by: {response.model}")
如果所提供的模型与您的请求不同,则分类器已介入。
为什么合法的工作会被阻止
分类器读取的是内容,而不是意图。审计自己代码的安全研究人员和开发恶意软件的人会使用相同的术语。每个类别都有不同的误报模式:
生物学:COMBINE-lab 的一名研究人员花了 15-30 分钟尝试让 Fable 5 帮助重写一个用于 RNA-seq 分析的 Rust 库。代码中涉及生物序列处理,而分类器将每次尝试都标记出来。该任务只是一个没有生物意图的 Rust 移植,但领域词汇已经足够了。
网络安全:一位开发者要求 Fable 5 审查其应用程序是否存在安全漏洞。Fable 5 在他们的系统上发现了实际恶意软件,然后分类器标记了这次交互并降低了会话级别。该模型被阻止协助处理它所发现的那个威胁。
ML/蒸馏:环境科学研究提示已被阻止,而无人机群协调提示则通过了。“ML 训练”的边界足够宽泛,足以涵盖相关的科学计算。
降低误报的四种策略
在系统提示中设置专业上下文
分类器会非常重视你的系统提示。像通用的“你是一个乐于助人的编程助手”这样的表述,无法为它提供区分正当工作与威胁模拟的信号。
这个系统提示通过了生物分类器:
你正在协助一所大学基因组学实验室的生物信息学研究人员。
这项工作涉及使用 Rust 开发标准的 RNA-seq 流程。
所有生物学参考都指向公开可用的参考基因组和标准
生物信息学文件格式(FASTQ、BAM、VCF)。
这个会触发它:
帮助我处理生物序列数据并分析
蛋白质结构。
第一个明确指定了谁、什么领域、什么工具,并将生物学参考范围限定到公开数据。第二个则在没有上下文的情况下使用了广泛的生物学术语。
将技术术语与说明分开
当你的提示词将“危险”术语混入直接指令时,分类器会将其视为操作性内容。当相同术语出现在数据或上下文块中时,它会将其视为参考材料。
而不是:
编写代码以扫描该网络中的漏洞
并利用认证系统中的任何弱点。
重组:
我是安全工程师,正在对我们公司预发布环境进行授权渗透
测试。请查看以下网络扫描结果,并建议接下来应测试哪些
身份验证机制,遵循
OWASP 方法论。
[在此粘贴扫描结果]
第二条将意图(审查结果)与授权上下文(预发布环境、授权测试)以及方法(OWASP)分开。分类器可以将其与攻击请求区分开来。
通过 API 使用运算符级系统提示词
Anthropic 的操作员级系统提示在分类器中的权重高于用户级提示。请使用 system 参数在操作员级设置上下文,而不是将其嵌入到对话消息中。
response = client.messages.create(
model="claude-fable-5",
max_tokens=1024,
# 运算符级上下文 — 分类器对此赋予更高权重
system="This application is a licensed security audit platform. "
"All requests involve authorized penetration testing of "
"the user's own infrastructure.",
messages=[{"role": "user", "content": user_prompt}]
)
Anthropic 还支持在其使用政策范围内为专业用例校准安全阈值。如果您正在构建安全分析工具或生物信息学平台,操作员级配置是正确的路径。
将敏感任务拆分到聚焦的提示词中
在单个提示中累积关键词会提高分类器对该请求具有风险的置信度。一个同时提到蛋白质折叠、CRISPR 和合成路径的提示,比三个分别独立处理每个主题的单独提示更有可能触发。
每个聚焦提示都为分类器提供了更清晰的上下文以进行评估。
何时使用不同的模型
有些工作流更适合切换模型。Fable 5 的安全分类器在 Opus 4.8 或 Sonnet 5 上不存在。
| 任务 | 推荐模型 | 原因 |
|---|---|---|
| 安全代码审查 | Opus 4.8 or Sonnet 5 | 无分类器,直接评估 |
| 生物/化学研究代码 | Sonnet 5 | 更宽松的安全约束 |
| ML training infrastructure | Opus 4.8 | 无蒸馏分类器 |
| 通用编程 | Fable 5 | 80.3% SWE-Bench Pro,最佳可用 |
代码中的自动回退
如果您使用 API,则可以检测安全重路由,并在没有安全分类器的模型上重试:
def query_with_fallback(prompt, system_context):
primary = client.messages.create(
model="claude-fable-5",
max_tokens=1024,
system=system_context,
messages=[{"role": "user", "content": prompt}]
)
# 检测安全重定向
if primary.model != "claude-fable-5":
return client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
system=system_context,
messages=[{"role": "user", "content": prompt}]
)
return primary
这适用于任何通过同一端点支持多个 Claude 模型的 API 提供商。像 AIReiter 这样的第三方 API 代理通过一个 API key 提供所有 Claude 模型,并且按较低费率计费,使模型切换只需改一行,无需单独设置账户。
常见问题
你可以完全禁用 Fable 5 分类器吗?
不。该分类器运行在服务端,且不能按每次请求进行配置。运算符级系统提示会影响其标记的激进程度,但不能将其关闭。该分类器在超过 99% 的情况下会阻止所报告的越狱向量,而且 Anthropic 已扩大其安全团队以保持这种效果。
安全分类器会保留我的数据吗?
被标记的 Fable 5 流量需遵守强制性的 30 天数据保留要求,且这一要求优先于现有的零保留协议。此要求适用于所有接入场景,包括 GitHub Copilot 等第三方集成,而不仅限于直接 API 访问。如果你的企业签有 ZDR 合同,被标记的请求属于例外情况。
尽管存在误报,Fable 5 还值得使用吗?
如果你的工作不与这三个触发领域重叠,Fable 5 在 SWE-Bench Pro 上以 80.3% 领先(Opus 4.8:69.2%,GPT-5.5:58.6%)。如果你经常触发分类器,尽管基准分数较低,使用不带分类器开销的 Opus 4.8 或 Sonnet 5 会为你节省更多时间。
