Trang này gom ý chính của 25 bài vào một chỗ để bạn ôn trước khi thi. Mỗi ý chỉ nói ngắn; muốn hiểu vì sao thì mở bài tương ứng (số bài ghi trong ngoặc).
Đề thi gồm những gì
| Mục | Chi tiết |
|---|
| Số câu | 53, một đáp án hoặc nhiều đáp án (câu nào cũng ghi rõ chọn mấy) |
| Thời gian | 120 phút |
| Cấu trúc | Mỗi câu là một tình huống riêng, không chia theo kịch bản |
| Điểm đậu | 720 trên thang 100–1.000 |
| Lệ phí, hiệu lực | $125; chứng chỉ có hiệu lực 12 tháng |
| Kết quả | Đạt hay không, điểm quy đổi, và tỉ lệ đúng theo từng domain |
| Domain | Tỉ trọng | Số bài |
|---|
| 1. Agents and Workflows | 14,7% | 3 |
| 2. Applications and Integration | 33,1% | 6 |
| 3. Claude Code | 3,1% | 1 |
| 4. Eval, Testing, and Debugging | 2,6% | 1 |
| 5. Model Selection and Optimization | 16,8% | 4 |
| 6. Prompt and Context Engineering | 11,0% | 3 |
| 7. Security and Safety | 8,1% | 4 |
| 8. Tools and MCPs | 10,6% | 3 |
Domain 2 chiếm một phần ba đề. Domain 3 và 4 rất nhỏ trên giấy, nhưng kiến thức Claude Code và gỡ lỗi xuất hiện rải rác ở các domain khác.
Đề nghĩ thế nào
Ba câu hỏi mẫu Anthropic công bố và các câu luyện thi cho thấy vài quy tắc lặp lại:
- Tất định thắng lời dặn. Đề ghi "tuyệt đối", "trong bất kỳ trường hợp nào", "tất định" thì chọn code chạy ngoài model: hook, bộ lọc đầu ra, schema chặt. Thêm câu vào system prompt không phải là cơ chế thực thi (7.2, 7.3, 8.1).
- Quan sát trước, sửa sau. Đầu ra lạ, từ chối sai, chi phí tăng: bước đầu là đọc trace hay đo theo tính năng, không phải đổi model hay cắt đều (4.1, 5.4).
- Ràng buộc bắt buộc thắng mong muốn. Hợp đồng bắt dùng Bedrock, chính sách bắt dữ liệu ở trong hạ tầng của mình: làm đúng từ đầu, không "ship trước rồi tính" (2.1, 7.2).
- Chọn bộ đủ mảnh. Review đòi cả cấu hình, xử lý lỗi và test; đầu ra cần schema, prompt và bước kiểm; dự toán cần đủ token vào, ra, giá và cache (2.4, 5.4, 6.3).
- Lỗi là một nhánh có xử lý. Thử lại có giới hạn, sửa tại chỗ, dự phòng; không thử lại mãi, không tắt bước kiểm, không đẩy đầu ra hỏng xuống hệ thống sau (4.1, 6.3).
- Chữa đúng gốc. Tăng context window, tăng temperature hay đổi model lớn hơn không chữa được thông tin bị chìm, prompt injection hay lỗi dựng yêu cầu (5.1, 6.1, 7.1).
- Dùng thứ có sẵn và chuẩn. SDK chính thức, Batch API, tool có sẵn, MCP server và skill để dùng lại, thay vì tự viết lại hay chép mã cho từng đội (2.3, 5.2, 8.3).
- Cấu hình là code. Prompt,
CLAUDE.md, settings.json, model ID, phiên bản plugin đều vào version control và qua review (2.6). - Loại đáp án cực đoan. Tắt hết hook, bỏ hẳn tool, khởi động lại agent liên tục, giữ model cũ mãi, gọi người trực cho mọi lỗi.
Domain 1: Agents and Workflows
- Code quyết định bước tiếp theo là workflow, model quyết định là agent. Chọn bậc thấp nhất đủ dùng; đường chuẩn làm workflow, chỉ gọi agent ở điểm cần phán đoán (1.1).
- Manager/supervisor = orchestrator giao việc cho subagent; mỗi subagent context riêng, tool riêng. Tầng quản lý phải có ngân sách, kiểm schema, hợp đồng bàn giao (1.1).
- Chỉ chia nhiều agent khi cần bảo vệ context, chạy song song hay chuyên môn hoá; nhiều agent tốn gấp 3–10 lần token (1.1).
- Client SDK: tự viết vòng lặp. Agent SDK: vòng lặp, tool, quyền, hook có sẵn. Managed Agents: Anthropic chạy vòng lặp, tool chạy trong sandbox của Anthropic hoặc tự host (1.2).
- Năm mẫu workflow; quy trình có đường quay lại thì mẫu đồ thị; việc dài thì lưu checkpoint; framework giúp nhanh nhưng che prompt thật (1.3).
| Tình huống | Chọn |
|---|
| Đội đã chọn Agent SDK | Để SDK lo vòng lặp, gọi tool, lịch sử (1.2) |
| Tuỳ chỉnh cũ ghi đè mặc định của SDK | Xét từng cái theo lý do ban đầu và khả năng hiện tại của SDK (1.2) |
| Việc 30–60 phút cần chạy tiếp khi bị ngắt | Checkpoint: lưu trạng thái, nạp lại (1.3) |
| Phải chặn một hành động chắc chắn | Hook, không phải prompt (1.2) |
- Các bước biết trước, không đổi?Workflow
- Đường chính biết trước, vài chỗ cần phán đoán?Workflow, gọi agent ở điểm quyết định
- Ticket nhiều vấn đề con, agent rối?Orchestrator và subagent chuyên trách
- Còn lạiViệc mở, không đoán được số bước: agent có giới hạn
Domain 2: Applications and Integration
- Bước đầu là diễn giải mục tiêu nghiệp vụ thành yêu cầu chức năng và hạ tầng đo được; yêu cầu hạ tầng loại bớt lựa chọn trước (2.1).
- Ship xong là vận hành và bảo trì. Model đi qua Active, Legacy, Deprecated, Retired; báo trước ít nhất 60 ngày. Đổi model hay tham số: kiểm mức dùng, regression test, đổi từng đợt, kiểm hệ thống phía sau (2.2).
- Messages API không giữ trạng thái; người dùng chờ thì stream; không ai chờ thì Batch API (giảm 50%, tối đa 24 giờ); dùng tool thì gửi lại khối thinking nguyên vẹn (2.3).
- Service async thì dùng async client; SDK tự thử lại 2 lần, timeout 10 phút; test ba tầng; CI giữ đủ cổng chất lượng; refactor từng bước nhỏ (2.4).
- Mỗi giao diện gửi kèm thứ khác nhau: Agent SDK mặc định chỉ có system prompt tối thiểu. Nội dung bên thứ ba vào
tool_result; schema cho phép "không rõ"; phiên có luật hết hạn và đặt lại (2.5). CLAUDE.md theo tầng; .claude/settings.json commit, settings.local.json không; model ID là bản ghim, alias thì đổi; prompt có nguồn duy nhất và review; plugin phụ thuộc có dải phiên bản (2.6).
| Tình huống | Chọn |
|---|
| 10.000 tài liệu qua đêm, chi phí là chính | Message Batches API (2.3) |
| Hiện chữ dần cho người đang chờ | Streaming (2.3) |
| Hợp đồng bắt đi qua Bedrock | Gọi qua Bedrock từ đầu, logic không phụ thuộc nhà cung cấp (2.1) |
| Không ai cần đổi nhà cung cấp | Tích hợp thẳng qua SDK của Claude (2.1) |
| Tham số bị bỏ, ý nghĩa thay thế hơi khác | Regression test trước, đổi từng đợt (2.2) |
| Pull request thiếu cấu hình, xử lý lỗi, test | Yêu cầu sửa đủ cả ba (2.4) |
| Phân loại và soạn trả lời | Hai lần gọi riêng (2.5) |
| Plugin cập nhật làm hỏng | Theo dõi và ghim phiên bản plugin (2.6) |
- Người dùng đang chờ?Messages API, streaming
- Khối lượng lớn, không gấp?Batch API, nếu nền tảng có
- Hợp đồng hay chính sách bắt một nền tảng?Gọi qua nền tảng đó, kiểm tính năng có và không có
- Còn lạiĐổi model: hướng dẫn chuyển đổi, regression test, bật dần có đường lùi
Domain 3: Claude Code
- Rule, skill (command đã gộp vào skill), subagent, auto memory: mỗi thứ một việc, đều là ngữ cảnh chứ không phải luật bắt buộc (3.1).
- Khởi tạo repo bằng
/init, commit CLAUDE.md và .claude/settings.json cấp dự án (3.1). - Phiên:
--continue, --resume, /resume, /clear, /compact (3.1). - Trong CI:
claude -p, quyền khai sẵn, --output-format json hoặc stream-json; --bare cho script (3.1).
| Chế độ quyền | Chạy không hỏi |
|---|
default | Chỉ đọc (3.1) |
acceptEdits | Đọc, sửa file, lệnh file thông dụng (3.1) |
plan | Đọc và lập kế hoạch (3.1) |
auto | Mọi thứ, có model phân loại kiểm từng hành động (3.1) |
dontAsk | Chỉ thứ đã cho phép trước (3.1) |
- Quy ước cả đội cần trong mọi phiên?CLAUDE.md ở gốc repo
- Quyền, model mặc định, hook cho cả đội?.claude/settings.json cấp dự án
- Quy trình gõ lại nhiều lần?Skill
- Còn lạiChạy trong pipeline: claude -p, quyền trong settings, đầu ra JSON
Domain 4: Eval, Testing, and Debugging
- 400 và 413 thì sửa yêu cầu; 429, 5xx, 529 thì chờ thử lại; 504 thì chuyển streaming hay Batch (4.1).
- 429 có nhiều loại: giới hạn tốc độ (có
retry-after), giới hạn tăng tốc, chạm mức chi tiêu tháng (không retry-after, thử lại vô ích). Hạn mức tự đặt trả 400 (4.1). - Đầu ra sai mà API trả 200: đọc trace, gọi đúng tên kiểu hỏng (format drift, mất ngữ cảnh, injection, lẫn phiên) rồi mới sửa (4.1).
- Chia mức độ lỗi theo ảnh hưởng và khả năng tự phục hồi để chọn gọi người trực hay ghi log (4.1).
- Có mã lỗi HTTP?Lớp tích hợp
- stop_reason là max_tokens?Tăng max_tokens, đầu ra bị cắt
- Trace cho thấy đầu vào sai hay lẫn dữ liệu?Code dựng messages
- Còn lạiĐầu vào đúng mà đầu ra sai: prompt, ngữ cảnh, schema
Domain 5: Model Selection and Optimization
- Model sinh từng token bằng cách lấy mẫu: đầu ra khác nhau giữa các lần và có thể trôi chảy mà sai. Context window là bộ nhớ làm việc; temperature không mở rộng nó (5.1).
- Effort (
low tới max) chỉnh độ sâu suy luận; fast mode tăng tới 2,5 lần tốc độ sinh, giá cao hơn; ví dụ mẫu 3–5 cái, đa dạng, bọc thẻ (5.1). - Claude API là REST ở
api.anthropic.com; dùng SDK chính thức; streaming là SSE, kết nối bền hai chiều thì WebSocket (5.2). - Chọn model theo cả chất lượng, độ trễ, chi phí, cần mục tiêu trước; thử chỉnh effort trước khi đổi model (5.3).
- Đầu ra đắt gấp 5 lần đầu vào; cache phần tĩnh lặp lại; gắn nhãn tính năng cho
usage (5.4).
| Model | Giá vào / ra mỗi triệu token | Hợp với |
|---|
| Fable 5.1 | $10 / $50 | Suy luận khó, agent rất dài (5.3) |
| Opus 5.5 | $4 / $20 | Agent lập trình, việc tri thức phức tạp (5.3) |
| Sonnet 5.5 | $2 / $10 | Việc hằng ngày, nhanh và giỏi (5.3) |
| Haiku 5.5 | từ $0,10 / $0,50 | Khối lượng lớn, độ trễ thấp (5.3) |
| Hệ số | Ảnh hưởng |
|---|
| Batch API | −50% (5.4) |
| Ghi cache 5 phút / 1 giờ | ×1,25 / ×2 giá đầu vào (5.4) |
| Đọc cache | ×0,1; Opus 5.5, Sonnet 5.5 ×0,05; Fable 5.1 ×0,025 (5.4) |
inference_geo: "us" | ×1,1 (5.4) |
- Đội chưa có mục tiêu chất lượng, độ trễ, chi phí?Hỏi mục tiêu trước
- Việc đơn giản, khối lượng lớn, cần nhanh rẻ?Model nhỏ, nhanh
- Model mới đổi định dạng đầu ra?Sửa prompt, chạy lại eval, feature flag theo luồng
- Còn lạiChi phí tăng không rõ vì đâu: đo token theo tính năng trước
Domain 6: Prompt and Context Engineering
- Prompt engineering nắn từng prompt; context engineering quản lý những gì đi vào context qua các lượt (6.1).
- Context càng dài càng kém (context rot). Kết quả tool cũ thì cắt tỉa (context editing), hội thoại dài thì compaction, việc tìm tòi thì subagent (6.1).
- Chỉ dẫn rõ, có lý do, có bước đánh số; hành vi và định dạng trong system prompt; prefill đã bị bỏ, dùng structured outputs; sửa prompt từng thay đổi một, đo bằng eval (6.2).
- Structured outputs hay strict tool use để đúng schema, nhưng vẫn kiểm
stop_reason, schema, luật nghiệp vụ; đọc phòng thủ; không tin câu trả lời chỉ vì nó tự tin (6.3).
| Tình huống | Chọn |
|---|
| Kết quả tool cũ hết giá trị lấp đầy context | Cắt tỉa kết quả tool (6.1) |
| Model bám chi tiết cũ không còn liên quan | Compaction (6.1) |
| Bước sau không được thấy lịch sử | Cô lập ngữ cảnh bằng subagent (6.1) |
| Chỉ dẫn rải giữa system và user | Gom về system prompt (6.2) |
| Có vài ví dụ gắn nhãn, trường hợp khó | Few-shot trong prompt (6.2) |
| System prompt dài, mâu thuẫn, lỗi thời | Rà soát rồi viết lại (6.2) |
| JSON thỉnh thoảng hỏng | Kiểm theo schema, thử lại hoặc dự phòng (6.3) |
- Thông tin quan trọng bị chìm dù context còn chỗ?Cắt tỉa hoặc compaction, giữ trạng thái việc đang làm
- Đầu ra phải đúng schema?Structured outputs, rồi kiểm trước khi chuyển đi
- Câu trả lời tự tin đi thẳng vào hệ thống khác?Đòi trích dẫn, cho phép "không biết", để code tính số
- Còn lạiPrompt kém ở một nhóm đầu vào: sửa nhắm vào nhóm đó, đo lại bằng eval
Domain 7: Security and Safety
- Mối đe doạ riêng: prompt injection, jailbreak, rò rỉ dữ liệu, đầu ra không an toàn. Nội dung bên thứ ba vào
tool_result, mã hoá JSON, chính sách trong system prompt; quyền tối thiểu (7.1). - Lọc hoặc che dữ liệu nhạy cảm ngay tại ranh giới ứng dụng, trước khi gửi cho Claude (7.1).
- Guardrail nhiều lớp; chính sách tuyệt đối cần lớp tất định; chính sách nơi lưu dữ liệu thắng mong muốn ship nhanh (7.2).
- Hook
PreToolUse chặn được (thoát mã 2 hoặc deny), PostToolUse thì tool đã chạy; nhắm hẹp bằng matcher và if, chỉ cho hành động rủi ro (7.3). - Khoá gắn danh tính, service account cho việc chung, WIF bỏ khoá tĩnh; 401 là khoá sai hay hết hạn, 403 là thiếu quyền; mỗi môi trường một khoá, lưu trong secrets manager (7.4).
| Tình huống | Chọn |
|---|
| Trang web có chữ ẩn ra lệnh cho model | Coi là không tin cậy, tách khỏi chỉ dẫn, guardrail hay hook chặn hành động nhạy cảm (7.1) |
| Văn bản người dùng có thể chứa số tài khoản, mật khẩu | Xác định ranh giới, lọc hay che tại ranh giới (7.1) |
| Chính sách nội dung "không bao giờ" bị vi phạm | Lọc đầu ra tất định (7.2) |
| Agent đã chạy truy vấn phá huỷ | Hook chặn hoặc đòi duyệt trước khi chạy (7.3) |
| Hook chạy cho mọi hành động, agent chậm | Chỉ gắn hook cho hành động rủi ro cao (7.3) |
| Khoá API dùng chung ba môi trường | Mỗi môi trường một khoá (7.4) |
- Người dùng là kẻ tấn công?Sàng lọc đầu vào, xử lý người cố tình lặp lại
- Kẻ tấn công nằm trong nội dung Claude đọc?tool_result, mã hoá JSON, sàng lọc kết quả tool
- Chính sách tuyệt đối?Lớp tất định: lọc đầu ra, hook, luật quyền
- Còn lạiNghi khoá bị lộ: tắt ngay, tạo khoá mới, xem mức dùng theo khoá
Domain 8: Tools and MCPs
- Tool client thì bạn chạy và giữ vòng lặp; tool máy chủ thì Anthropic chạy, có thể dừng ở
pause_turn (8.1). - Mô tả chi tiết là yếu tố quan trọng nhất của tool; schema chặt với
strict: true; kiểm tham số trước khi chạy và trả is_error có hướng dẫn sửa; bộ tool gọn, có tiền tố (8.1). - MCP: host tạo client, mỗi client nối một server; tool do model điều khiển, resource do ứng dụng, prompt do người dùng; lỗi chạy tool trả
isError: true (8.2). - Server cục bộ thì stdio và giữ stdout sạch; dùng chung thì Streamable HTTP, triển khai nơi mọi ứng dụng truy cập được (8.2).
- Có sẵn thì dùng tool có sẵn; kiến thức và quy trình thì skill (nạp dần); kết nối hệ thống ngoài cho nhiều ứng dụng thì MCP; hai thứ thường đi cùng (8.3).
| Tình huống | Chọn |
|---|
| Agent gọi tool với tham số ngoài schema | Giữ schema chặt, kiểm trước khi chạy, trả lỗi có cấu trúc (8.1) |
| Bỏ mô tả tool vì tên đã rõ | Không: model dựa vào mô tả để chọn tool (8.1) |
| Quá nhiều tool chồng nhau | Gộp, bỏ tool thừa, làm rõ mô tả (8.1) |
| MCP server cho Claude Code chạy cục bộ | stdio (8.2) |
| Dịch vụ nội bộ cần dùng lại ở nhiều ứng dụng | MCP server (8.2) |
| Skill có chỉ dẫn và script cho cả đội | Thư mục skill mà Claude Code nhận ra (8.3) |
- Anthropic đã có tool làm được?Dùng tool có sẵn, mở rộng nếu thiếu chút ít
- Kết nối hệ thống ngoài cho nhiều ứng dụng?MCP server
- Kiến thức, quy trình, tài liệu tham khảo?Skill
- Còn lạiChỉ một ứng dụng cần, nghiệp vụ riêng: tool tự viết
Tên trong đề và tên hiện nay
Đề thi được soạn từ 07/2026, và docs đã đổi ở vài chỗ so với đề hoặc so với cách làm cũ hay gặp trong tài liệu ôn. Bài học viết theo docs hiện tại, kèm một câu cho biết đề chấm thế nào.
| Trong đề hoặc cách cũ | Hiện nay | Bài |
|---|
Chỉnh temperature để đầu ra ổn định | API 2026-10-21 bỏ temperature, top_p, top_k (lỗi 400); model từ 4.7 chỉ nhận mặc định. Dựa vào kiểm đầu ra và thử lại | 5.1 |
| Extended thinking | Model Claude 5 dùng adaptive thinking bật sẵn, chỉnh độ sâu bằng effort; ngân sách budget_tokens chỉ còn ở model cũ | 5.1 |
| Manager/supervisor | Docs gọi là orchestrator-workers, orchestrator và subagent | 1.1 |
| Framework Strands, LangGraph, PydanticAI | Docs Anthropic chỉ nhắc Claude Agent SDK, Strands, Rivet, Vellum, và khuyên bắt đầu bằng gọi API trực tiếp | 1.3 |
| BYOC (tự host trong cloud của mình) | Docs không dùng chữ này; gần nhất là sandbox tự host của Managed Agents | 7.2 |
Ép gọi tool bằng tool_choice any hay tool | Lỗi 400 trên Opus 5.5, Sonnet 5.5, Fable 5.1; dùng auto với strict tool use | 5.3, 8.1 |
| Prefill phần đầu câu trả lời để ép định dạng | Bị từ chối từ các model 4.6; dùng structured outputs | 6.2 |
Header x-api-key | Header chính là Authorization: Bearer; x-api-key vẫn được nhận | 2.4, 5.2 |
| Custom slash command | Đã gộp vào skill; .claude/commands/ vẫn chạy | 3.1 |
| Transport SSE của MCP | Bị bỏ dần; dùng Streamable HTTP | 8.2 |