DEV Community

Cover image for Quay lại Fable 5: Hướng dẫn định tuyến lại khối lượng công việc API an toàn
Sebastian Petrus
Sebastian Petrus

Posted on • Originally published at apidog.com

Quay lại Fable 5: Hướng dẫn định tuyến lại khối lượng công việc API an toàn

Khi Claude Fable 5 ngừng hoạt động vào ngày 12 tháng 6 năm 2026 theo quy định kiểm soát xuất khẩu của Hoa Kỳ, nhiều nhóm đã chuyển production sang Claude Opus 4.8 hoặc Sonnet 4.6, vá prompt lỗi và triển khai workaround. Các biện pháp kiểm soát đã được dỡ bỏ vào ngày 30 tháng 6, và Fable 5 đã trở lại từ ngày 1 tháng 7 trên Claude.ai, API, Claude Code và Cowork. Anthropic cũng đã xác nhận việc triển khai đầy đủ trong thông báo chính thức.

Dùng thử Apidog ngay hôm nay

Đừng chỉ hoàn tác commit đổi model rồi deploy lại. Dịch vụ bạn quay lại không hoàn toàn giống trạng thái trước ngày 12 tháng 6: lớp an toàn đã được huấn luyện lại, một số nền tảng cloud có thể vẫn đang cập nhật theo khu vực, và Opus 4.8 mà bạn đã chạy trong ba tuần qua hiện là baseline tốt nhất để so sánh. Hãy xem đây là một migration có kiểm thử, quan sát và rollback rõ ràng.

Kiểm kê những gì đã thay đổi

Trước khi đổi traffic về Fable 5, hãy xác nhận bốn điểm sau.

1. Bộ phân loại an toàn đã được huấn luyện lại

Fable 5 được triển khai lại với một safety classifier mới, nhắm vào một kỹ thuật “jailbreak” được báo cáo trong thời gian ngừng hoạt động. Theo Anthropic, lớp này chặn hơn 99% các nỗ lực dùng kỹ thuật đó.

Điểm quan trọng cho backend/API team:

  • Request bị gắn cờ không nhất thiết fail.
  • Request có thể được tự động chuyển hướng sang Claude Opus 4.8.
  • Response vẫn có HTTP 200.
  • Trường model trong response sẽ cho biết model thực sự đã phục vụ request.

Vì vậy, migration này không chỉ là đổi model ID. Bạn cần kiểm tra hành vi thực tế của prompt.

2. Kiểm tra trạng thái cloud provider

Nếu workload của bạn chạy qua cloud provider, đừng giả định Fable 5 đã sẵn sàng ở mọi region.

  • Amazon Bedrock đã khôi phục Fable 5 vào ngày 1 tháng 7, cùng ngày với API gốc, nhưng cấu hình suy luận theo khu vực có thể không đồng đều.
  • Google Vertex AI và Microsoft Foundry có thể vẫn đang trong quá trình cập nhật.
  • Hướng dẫn của Anthropic cho các nền tảng còn chờ xử lý là “càng nhanh càng tốt”, không có ngày cụ thể.

Checklist nhanh:

[ ] Provider hỗ trợ lại claude-fable-5
[ ] Region production đã có model
[ ] IAM / credential vẫn hoạt động
[ ] SDK hoặc gateway nội bộ không chặn model ID
Enter fullscreen mode Exit fullscreen mode

3. Kiểm tra thay đổi liên quan đến gói đăng ký

Nếu đồng đội dùng Claude qua subscription thay vì API key, hãy lưu ý thay đổi về credit của gói có hiệu lực vào ngày 7 tháng 7. Việc này không ảnh hưởng đến billing API, nhưng có thể ảnh hưởng đến Claude Code hoặc Cowork nếu nhóm bạn dùng các công cụ đó trong quy trình phát triển.

4. Model ID và thông số kỹ thuật không đổi

Bản thân model vẫn là:

claude-fable-5
Enter fullscreen mode Exit fullscreen mode

Các thông số chính không đổi:

  • Context window mặc định: 1M token
  • Output tối đa: 128K token
  • Giá: 10 USD / 1M input token
  • Giá: 50 USD / 1M output token

Tổng quan về các mô hình vẫn phản ánh cùng mục như trước khi ngừng hoạt động. Request payload cũ của bạn vẫn hợp lệ. Phần cần xác minh lại là hành vi runtime.

Xác minh quyền truy cập bằng một request tối thiểu

Trước khi chạm vào cấu hình production, hãy gửi một request đơn giản từ chính môi trường sẽ phục vụ traffic:

  • Cùng network path
  • Cùng API key hoặc secret source
  • Cùng SDK version
  • Cùng proxy/gateway nếu có

Mục tiêu là xác nhận:

  1. Credential có quyền gọi claude-fable-5
  2. Response thực sự được phục vụ bởi claude-fable-5

Kiểm tra nhanh bằng curl:

curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-fable-5",
    "max_tokens": 256,
    "messages": [{
      "role": "user",
      "content": "Summarize this changelog entry in one sentence: Added retry logic to the payments webhook."
    }]
  }'
Enter fullscreen mode Exit fullscreen mode

Cùng request qua Python SDK:

import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=256,
    messages=[{
        "role": "user",
        "content": "Summarize this changelog entry in one sentence: "
                   "Added retry logic to the payments webhook.",
    }],
)

print(response.model)        # expect "claude-fable-5"
print(response.stop_reason)  # expect "end_turn"
print(response.usage)        # token counts, for your cost model
Enter fullscreen mode Exit fullscreen mode

Trường quan trọng nhất là:

response.model
Enter fullscreen mode Exit fullscreen mode

Nếu request bị chuyển hướng bởi lớp an toàn mới, trường này có thể là:

claude-opus-4-8
Enter fullscreen mode Exit fullscreen mode

Đây cũng là field bạn nên log sau khi rollout.

Hai lỗi cần xử lý sớm:

  • 404 khi gọi qua Bedrock, Vertex AI hoặc Foundry: thường nghĩa là model chưa có ở provider/region của bạn. Hãy thử xác minh với API gốc trước khi gửi support ticket.
  • stop_reason = "refusal" trên request kiểm tra lành tính: xem lại request shape, system prompt hoặc wrapper nội bộ trước khi scale traffic.

Nếu bạn đang tích hợp mới thay vì khôi phục hệ thống cũ, xem hướng dẫn cách sử dụng API Claude Fable 5.

Xây dựng regression run trước khi đổi production

Đây là bước dễ bị bỏ qua nhất. Nhưng nếu bạn đã chạy Opus 4.8 từ giữa tháng Sáu, bạn đang có một baseline rất hữu ích.

Mục tiêu:

  • Lấy prompt thực tế từ production
  • Chạy lại trên claude-fable-5
  • So sánh với kết quả Opus 4.8
  • Chỉ rollout khi khác biệt nằm trong ngưỡng chấp nhận được

Dưới đây là workflow trong Apidog.

Bước 1: Thu thập prompt quan trọng

Đừng chỉ dùng test prompt tổng hợp. Hãy lấy prompt thật.

Ví dụ:

  • Nếu bạn có công cụ tạo test case API:
    • Tạo test case từ OpenAPI spec
    • Giải thích assertion bị fail
    • Sinh mock response cho endpoint
  • Nếu bạn có endpoint tóm tắt tài liệu:
    • Tài liệu ngắn 2 đoạn
    • Tài liệu trung bình
    • PDF dài gây áp lực lên context window
  • Nếu bạn dùng agent:
    • Prompt có system instruction dài
    • Tool definitions
    • Multi-step task

Một bộ 50 prompt production quan trọng thường đủ để phát hiện vấn đề lớn trước rollout.

Bước 2: Tạo test scenario

Trong Apidog, mỗi prompt là một request step đến:

POST /v1/messages
Enter fullscreen mode Exit fullscreen mode

Payload mẫu:

{
  "model": "claude-fable-5",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "{{prompt}}"
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Dùng environment variables cho:

ANTHROPIC_API_KEY
BASE_URL
MODEL_ID
Enter fullscreen mode Exit fullscreen mode

Như vậy cùng một scenario có thể chạy trên staging hoặc production credential mà không cần sửa request thủ công.

Bước 3: Thêm assertion thực tế

Tối thiểu nên có bốn nhóm assertion.

[ ] HTTP status = 200
[ ] Latency dưới SLO
[ ] response.model = claude-fable-5
[ ] stop_reason = end_turn
Enter fullscreen mode Exit fullscreen mode

Ngoài ra, nếu app của bạn parse structured output, hãy assert luôn schema.

Ví dụ với JSON output:

{
  "summary": "string",
  "risk_level": "low | medium | high",
  "actions": ["string"]
}
Enter fullscreen mode Exit fullscreen mode

Bạn nên kiểm tra:

[ ] summary tồn tại
[ ] risk_level thuộc enum hợp lệ
[ ] actions là array
[ ] usage tồn tại để phục vụ tính cost
Enter fullscreen mode Exit fullscreen mode

Assertion response.model = claude-fable-5 đặc biệt quan trọng. Một test có nội dung đúng nhưng được phục vụ bởi Opus 4.8 nghĩa là prompt của bạn đang kích hoạt classifier mới.

Bước 4: Chạy và so sánh với Opus 4.8

So sánh các chỉ số sau:

Chỉ số Vì sao cần kiểm tra
Pass rate Phát hiện lỗi chức năng
p95 latency Kiểm tra ảnh hưởng đến SLO
Refusal count Phát hiện prompt bị chặn
Redirect count Phát hiện fallback sang Opus 4.8
Output format errors Bảo vệ parser/downstream service
Token usage Ước tính cost sau migration

Khác biệt trong test run thì rẻ. Khác biệt trong production thì đắt.

Bước 5: Đưa regression run vào CI/CD

Nếu bạn đổi model ID qua pull request, hãy để pipeline chạy regression suite trước khi merge.

Luồng đề xuất:

PR đổi MODEL_ID -> chạy Apidog scenario -> so sánh baseline -> pass mới cho merge
Enter fullscreen mode Exit fullscreen mode

Như vậy quyết định “có thể quay lại Fable 5” trở thành artifact của build, không phải cảm giác chủ quan.

Sau khi rollout, vẫn nên chạy suite này hằng ngày trong giai đoạn triển khai theo pha. Regression suite cũng đóng vai trò canary cho safety classifier mới.

Theo dõi redirect sang Opus 4.8

Một fallback có thể nhìn như request thành công:

HTTP 200
Completion hợp lý
Không exception
Không retry
Enter fullscreen mode Exit fullscreen mode

Nhưng response có thể cho biết model thực sự là:

claude-opus-4-8
Enter fullscreen mode Exit fullscreen mode

Vì vậy, error monitoring thông thường không đủ. Bạn cần log các field vận hành.

Tối thiểu log:

{
  "requested_model": "claude-fable-5",
  "served_model": "claude-fable-5",
  "input_tokens": 1234,
  "output_tokens": 456,
  "stop_reason": "end_turn",
  "latency_ms": 3200
}
Enter fullscreen mode Exit fullscreen mode

Ví dụ logging đơn giản trong Python:

import time
import logging
import anthropic

client = anthropic.Anthropic()
logger = logging.getLogger(__name__)

start = time.time()

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Analyze this API error..."}],
)

latency_ms = int((time.time() - start) * 1000)

logger.info(
    "claude_request_completed",
    extra={
        "requested_model": "claude-fable-5",
        "served_model": response.model,
        "stop_reason": response.stop_reason,
        "input_tokens": response.usage.input_tokens,
        "output_tokens": response.usage.output_tokens,
        "latency_ms": latency_ms,
    },
)
Enter fullscreen mode Exit fullscreen mode

Alert nên dựa trên:

redirect_rate = requests_served_by_opus_4_8 / total_fable_5_requests
Enter fullscreen mode Exit fullscreen mode

Vì hơn 95% phiên không gặp fallback, một mức tăng kéo dài trên vài phần trăm là tín hiệu đáng điều tra. Thường đó là vấn đề prompt pattern, không phải outage.

Nếu bạn muốn tự động xử lý refusal hoặc fallback, tham số fallbacks hiện đang ở beta trên Claude API và Nền tảng Claude trên AWS. Nó có thể thử lại hoặc chuyển hướng trong cùng một call, thay vì bạn tự viết vòng retry riêng. Trước khi tự xây retry loop, hãy đọc thêm về tham số fallbacks của Fable 5.

Tính lại chi phí trước khi rollout

Trong ba tuần, hóa đơn của bạn đã dựa trên rate của Opus 4.8. Khi quay lại Fable 5, chi phí mỗi token cao hơn:

Input:  10 USD / 1M token
Output: 50 USD / 1M token
Enter fullscreen mode Exit fullscreen mode

Mức giá này không đổi so với thông báo ra mắt ban đầu.

Cách tính nhanh:

estimated_cost =
  input_tokens_millions  * 10
+ output_tokens_millions * 50
Enter fullscreen mode Exit fullscreen mode

Nhưng với workload dùng prompt caching, cần tính thêm discount. Prompt caching trên Fable 5 được giảm giá 90%, khiến cache hit có giá 1.00 USD / 1M token.

Điều này tạo khác biệt lớn giữa các workload:

Workload Khả năng hưởng lợi từ cache
Agent gửi lại system prompt lớn và tool definitions Cao
API summarization với tài liệu mới mỗi request Thấp
Code assistant với context lặp lại Trung bình đến cao
One-shot completion ngắn Thấp

Một kết luận hợp lệ là chỉ một phần traffic nên quay lại Fable 5, còn phần còn lại tiếp tục dùng Opus 4.8. Đây không phải migration thất bại. Đây là routing theo năng lực và chi phí.

So sánh năng lực giữa hai model được đề cập thêm trong bài Fable 5 so với Opus 4.8.

Danh sách kiểm tra chuyển đổi

Thực hiện theo thứ tự này trước khi mở 100% traffic.

[ ] Model ID được cấu hình tập trung: claude-fable-5
[ ] Không hard-code model ID rải rác trong codebase
[ ] Cloud provider và region đã hỗ trợ Fable 5
[ ] Request smoke test thành công từ môi trường production
[ ] Regression suite trong Apidog pass
[ ] Kết quả đã so sánh với baseline Opus 4.8
[ ] response.model được log trên mọi call
[ ] usage được log để tính cost
[ ] Alert có redirect_rate và refusal_rate
[ ] Rollback path về Opus 4.8 vẫn deploy được
Enter fullscreen mode Exit fullscreen mode

Triển khai theo pha:

5% traffic  -> quan sát ít nhất 1 ngày làm việc
25% traffic -> quan sát ít nhất 1 ngày làm việc
100% traffic
Enter fullscreen mode Exit fullscreen mode

Đặt rollback trigger bằng văn bản trước khi rollout. Ví dụ:

Rollback nếu:
- redirect_rate > 5%
- p95 latency vượt SLO
- output parse error cao hơn baseline
- refusal_rate tăng bất thường
Enter fullscreen mode Exit fullscreen mode

Đừng chỉ alert HTTP error. Trong migration này, một số chế độ lỗi vẫn trả về 200.

Câu hỏi thường gặp

Fable 5 được triển khai lại có phải model cũ không?

Có cùng model ID, thông số kỹ thuật và giá:

claude-fable-5
1M context
128K max output
10 USD / 1M input token
50 USD / 1M output token
Enter fullscreen mode Exit fullscreen mode

Khác biệt nằm ở safety classifier đã được huấn luyện lại phía trước model. Lớp này có thể chuyển hướng request bị gắn cờ sang Opus 4.8. Vì vậy bạn nên chạy regression test thay vì chỉ hoàn tác cấu hình.

Điều gì xảy ra nếu request bị gắn cờ?

Request không nhất thiết fail. Nó có thể được tự động chuyển hướng sang Claude Opus 4.8, hoàn thành ở đó, và response sẽ cho biết model phục vụ trong trường model.

Nếu workload của bạn gặp tình huống này thường xuyên:

[ ] Xác định prompt nào gây redirect
[ ] So sánh với baseline Opus 4.8
[ ] Điều chỉnh prompt nếu cần
[ ] Cân nhắc tham số fallbacks nếu phù hợp
Enter fullscreen mode Exit fullscreen mode

Có nên xóa fallback code đã viết trong thời gian ngừng hoạt động không?

Không. Sự cố tháng Sáu cho thấy phụ thuộc vào một model duy nhất là rủi ro. Lớp routing/fallback bạn đã xây trong thời gian đó nên được giữ lại và chuẩn hóa.

Nếu muốn biến bản vá khẩn cấp thành kiến trúc ổn định, xem thêm thiết kế chuyển đổi dự phòng cho API AI.

Kết thúc migration

Quay lại Fable 5 là một migration, dù model ID không đổi. Quy trình an toàn là:

1. Smoke test một request tối thiểu
2. Chạy regression suite bằng prompt production
3. So sánh với baseline Opus 4.8
4. Tính lại cost
5. Rollout theo pha
6. Theo dõi response.model, usage, refusal_rate và redirect_rate
7. Giữ rollback path về Opus 4.8
Enter fullscreen mode Exit fullscreen mode

Nếu bạn muốn regression run và CI/CD gate trong cùng một công cụ, hãy Tải Apidog và xây dựng scenario trước khi đổi cấu hình production.

Top comments (0)