Cheat sheet Claude Certified Architect — Foundations (CCAR-F)
Tóm tắt ôn thi chứng chỉ Claude CCAR-F: thông tin kỳ thi, trọng số domain, nguyên tắc chọn đáp án và kiến thức trọng tâm cả 5 domain trên một trang.
Đây là bản tóm tắt ôn thi một trang cho chứng chỉ Claude Certified Architect – Foundations (CCAR-F). Mỗi dòng ghép một dấu hiệu bạn sẽ gặp trong đề với hướng đáp án thường đúng, rút ra từ exam guide v1.0. Đọc trọn trong 10–15 ngày cuối, còn 15 phút trước giờ thi thì chỉ lướt các bảng và phần nguyên tắc ra quyết định.
⚠ đánh dấu đáp án theo exam guide v1.0 trong khi docs Claude hiện hành có thể đã khác. Khi thi, cứ theo guide.
Thông tin kỳ thi tóm gọn
| Mục | Chi tiết |
|---|---|
| Mã thi | CCAR-F |
| Số câu | 60, gồm multiple-choice và multiple-response; mỗi câu ghi rõ cần chọn mấy đáp án |
| Thời gian | 120 phút, tức khoảng 2 phút/câu |
| Cấu trúc | 4 scenario chọn ngẫu nhiên từ 6, mỗi scenario khoảng 15 câu và 30 phút |
| Điểm đậu | Scaled 720 trên thang 100–1.000; chấm theo chuẩn cố định, không so với thí sinh khác |
| Báo cáo điểm | Đậu/trượt + điểm scaled; % theo domain chỉ để tham khảo |
| Lệ phí | 125 USD mỗi lần thi |
| Hình thức | Pearson VUE giám sát, thi online hoặc tại test center |
| Đổi lịch | Chậm nhất 24 giờ trước giờ thi; muộn hơn thì mất lệ phí |
| Thi lại | Chờ 14 / 30 / 90 ngày sau lần trượt thứ 1 / 2 / 3; tối đa 4 lần trong 12 tháng cuốn chiếu |
| Hiệu lực | 12 tháng; gia hạn đúng hạn bằng một bài đánh giá miễn phí, không giám sát |
Đọc yêu cầu trước khi đọc phương án: đề cần mấy đáp án ("Choose TWO") và có hỏi phủ định không ("Which will NOT…").
Trọng số domain và 6 scenario
| Domain | Trọng số | ≈ Số câu (ước tính) |
|---|---|---|
| D1 · Agentic Architecture & Orchestration | 27% | 16 |
| D3 · Claude Code Configuration & Workflows | 20% | 12 |
| D4 · Prompt Engineering & Structured Output | 20% | 12 |
| D2 · Tool Design & MCP Integration | 18% | 11 |
| D5 · Context Management & Reliability | 15% | 9 |
Số câu là 60 × trọng số, làm tròn. Guide chỉ công bố trọng số, đề thật có thể lệch.
Nhận ra scenario ngay từ câu đầu là đoán trước được nhóm chủ đề:
| Scenario | Chủ đề hay ra |
|---|---|
| 1 · Customer Support Agent | Gate xác minh trước refund, hook chặn refund vượt ngưỡng, trigger escalation, case facts block, handoff đủ trường |
| 2 · Code Generation with Claude Code | CLAUDE.md hierarchy, command và skill, path rule, plan vs direct, resume/fork |
| 3 · Multi-Agent Research | Hub-and-spoke, decomposition quá hẹp, truyền provenance, error propagation, nguồn mâu thuẫn |
| 4 · Developer Productivity | Grep vs Glob, fallback của Edit, MCP scope, khám phá codebase, scratchpad |
| 5 · Claude Code for CI/CD | -p, --output-format json + --json-schema, tiêu chí giảm false positive, reviewer độc lập, batch cho job ban đêm |
| 6 · Structured Data Extraction | tool_use + JSON schema, nullable field, validation-retry, batch + custom_id, calibrate confidence |
Nguyên tắc ra quyết định: dấu hiệu → hướng đáp án
Phần lớn câu hỏi quy về một trong các nguyên tắc sau:
- Tiền, bảo mật, compliance, "100%" → enforce bằng code (hook, prerequisite gate, schema). Prompt và few-shot chỉ giúp "thường đúng", không bao giờ đảm bảo.
- Trị gốc theo bằng chứng → gốc thường nằm ở upstream (coordinator, input). Đừng sửa component đang chạy đúng.
- Bước đầu tương xứng → cách rẻ trước: tool description → tiêu chí rõ + few-shot → routing layer → classifier.
- Least privilege → 4–5 tool mỗi agent, chia theo vai trò. Thêm một tool hẹp cho nhu cầu cross-role thường gặp.
- Có cấu trúc thắng chung chung → lỗi có category và
isRetryable; handoff có trường cố định; output theo JSON schema. - Cô lập context → subagent không thừa hưởng gì, phải truyền đủ. Reviewer là instance riêng.
- Không tin tín hiệu model tự báo → self-confidence, sentiment, câu "đã xong" đều không đáng tin. Dùng
stop_reasonvà tiêu chí rõ. - Context window lớn hơn không chữa được attention dilution → chia pass, đưa key facts lên đầu, dùng scratchpad.
- Không giấu lỗi, không dừng cả workflow → recover tại chỗ, rồi propagate kèm partial results. Kết quả rỗng hợp lệ không phải lỗi.
- Giữ thông tin, không để model bịa → nullable field, case facts block, claim → source, giữ cả hai giá trị khi nguồn mâu thuẫn.
- Hỏi lại thay vì đoán → nhiều bản ghi khớp: xin thêm identifier. Policy không nói tới: escalate.
- Declarative, tự động thắng thủ công → path rule thay vì một CLAUDE.md khổng lồ; cấu hình project thay vì nhắc từng người.
- Chỉ dùng tính năng có tài liệu →
-p,.mcp.json,.claude/rules/. Không cóCLAUDE_HEADLESS,--batchhay.claude/config.json.
Từ khoá trong đề → loại đáp án
| Từ khoá trong đề | Đáp án thường là |
|---|---|
| "first step", "most effective first" | Phương án rẻ nhất mà vẫn trị đúng gốc |
| "guarantee", "must always", "100%", compliance | Enforce bằng code: hook, gate, schema |
| "maintainable", "consistent across the team" | Declarative, cấp project: .claude/rules/, .mcp.json, project skill |
| "long-term", "most robust" | Phương án nặng hơn (tách tool, pipeline) có thể thắng |
| "in a single response", "simultaneously", giảm latency | Nhiều Task call song song trong cùng một response |
| "overnight", "weekly", "not time-sensitive", giảm chi phí | Message Batches API |
| "blocking", "pre-merge", "developer waits" | API đồng bộ, không dùng batch |
| "a new team member doesn't get the rule" | Rule đang nằm ở ~/.claude/; chuyển lên project |
| "Choose TWO", "Which will NOT…" | Đếm đúng số đáp án; với NOT, tìm phương án vi phạm nguyên tắc |
Kiến thức trọng tâm theo domain
D1 · Agentic Architecture & Orchestration (27%)
flowchart LR
A[Gọi Messages API] --> B{stop_reason}
B -- tool_use --> C[Chạy tool]
C --> D[Append tool_result vào history]
D --> A
B -- end_turn --> E[Xong]
B -- max_tokens --> F[Bị cắt, chưa xong]
- Điều khiển loop → branch theo
stop_reason, không theocontent[0].typehay việc có text. Iteration cap chỉ là safety net. - Claude "không thấy" kết quả tool → chưa append
tool_resultvào hội thoại. - Báo cáo thiếu hẳn một nhóm chủ đề → coordinator chia task quá hẹp. Sửa decomposition, không sửa subagent.
- Subagent nói chuyện trực tiếp với nhau → sai. Hub-and-spoke: mọi thứ đi qua coordinator.
- Coordinator không spawn được subagent →
allowedToolsthiếu"Task"⚠ (docs mới gọi là Agent tool). - Synthesis mất citation → metadata bị cắt ở ranh giới coordinator. Truyền finding có cấu trúc kèm source và ngày.
- Refund đôi khi bỏ qua bước xác minh → prerequisite gate:
process_refundchỉ chạy khi đã có customer ID được verify. - Handoff cho người thật → tự đủ: customer ID, tóm tắt, root cause, số tiền, đề xuất. Người nhận không có transcript.
| Hook | Dùng để | Chặn được không? |
|---|---|---|
PreToolUse | Từ chối hoặc sửa call trước khi chạy (vd refund > $500 → escalate) | Có |
PostToolUse | Chuẩn hoá kết quả trước khi model thấy (vd ngày về ISO 8601) | Không; side effect đã xảy ra |
| Chọn session | Khi nào |
|---|---|
--resume <name> | Tiếp tục cùng hướng, file không đổi |
fork_session | So sánh hai hướng từ cùng một baseline |
| Session mới + summary có cấu trúc | File đã đổi nhiều, context cũ đã lỗi thời |
- 3 trong 50 file đã đổi → báo cho session đã resume những file nào đổi và chỉ phân tích lại chúng.
- Pipeline cố định vs dynamic → bước biết trước, input có cấu trúc: prompt chaining. Điều tra mở: dynamic decomposition.
D2 · Tool Design & MCP Integration (18%)
- Model nhầm hai tool → mở rộng description trước: mục đích, format input, ví dụ, edge case, "dùng X thay vì Y khi…".
- Description đã tốt mà vẫn route sai → tìm keyword rule trong system prompt đang đè lên description.
- Một tool làm quá nhiều, hoặc tên chồng chéo → tách thành tool hẹp, đặt tên rõ nghĩa.
- Một agent có 18+ tool → giảm còn 4–5 theo vai trò.
| MCP primitive | Dùng cho | Dấu hiệu trong đề |
|---|---|---|
| Tools | Hành động model gọi | "xử lý refund", "tạo ticket" |
| Resources | Nội dung client đọc vào | Agent gọi lặp list_tables → expose catalog dạng resource |
| Prompts | Template tái sử dụng do người dùng chọn | Hiếm khi là đáp án; biết là có |
| Error category | Agent xử lý |
|---|---|
| Transient (timeout, service down) | Retry có backoff |
| Validation (input sai) | Sửa input rồi thử lại |
| Business (vi phạm policy) | Không retry; luồng khác hoặc escalate, giải thích cho khách |
| Permission | Đổi quyền hoặc escalate |
- Lỗi có cấu trúc →
isError: true+errorCategory+isRetryable+ mô tả dễ hiểu. "Operation failed" chung chung luôn sai. - Không có kết quả →
isError: falsevới 0 kết quả là câu trả lời hợp lệ, không retry. Nguồn không truy cập được là lỗi, không bao giờ trả danh sách rỗng.
tool_choice | Hành vi |
|---|---|
auto | Có thể gọi tool hoặc trả lời bằng text |
any | Bắt buộc gọi một tool nào đó |
{"type": "tool", "name": "…"} | Bắt buộc gọi đúng tool đó (dùng cho bước đầu bắt buộc, sau đó trả về auto) |
| Cấu hình MCP | Phạm vi |
|---|---|
.mcp.json | Project: commit, share cho team, secret qua ${ENV_VAR} |
~/.claude.json | User: cá nhân, thử nghiệm; hai loại load cùng lúc |
- Jira, GitHub và tích hợp phổ biến khác → community MCP server trước; chỉ tự viết khi nhu cầu thật sự riêng.
- Grep vs Glob → Grep tìm trong nội dung file (caller, import, chuỗi lỗi); Glob khớp đường dẫn và tên file.
Editlỗi vì anchor không duy nhất → fallback sangRead+Write⚠.
D3 · Claude Code Configuration & Workflows (20%)
| Cấp CLAUDE.md | Vị trí | Có share không? |
|---|---|---|
| User | ~/.claude/CLAUDE.md | Không, chỉ cá nhân |
| Project | CLAUDE.md hoặc .claude/CLAUDE.md | Có, được commit |
| Directory | CLAUDE.md trong thư mục con | Có, áp dụng cho subtree đó |
Các cấp được cộng dồn, không ghi đè nhau. Kiểm tra file nào đang load bằng /memory ⚠ (bản mới cũng hiện trong /context).
| Nhu cầu | Cơ chế |
|---|---|
| Chuẩn luôn áp dụng | CLAUDE.md |
Quy ước cho một loại file rải khắp repo (**/*.test.tsx) | .claude/rules/*.md với glob paths: trong frontmatter |
| Quy trình gọi khi cần | Skill: .claude/skills/<name>/SKILL.md (hoặc command trong .claude/commands/) |
| CLAUDE.md quá lớn | Tách bằng import @path/to/file.md và rule theo chủ đề |
- Frontmatter của skill →
context: forkchạy trong subagent cô lập (hợp với output dài),allowed-toolsgiới hạn tool,argument-hintnhắc tham số cần nhập. - Plan mode vs direct → quyết theo độ mơ hồ, không theo độ lớn: kiến trúc, nhiều file, nhiều hướng hợp lệ → plan; lỗi rõ có stack trace → direct.
- Refinement → model hiểu sai yêu cầu: 2–3 cặp input/output. Edge case khó: viết test trước. Domain lạ: interview pattern.
- Nhiều chỗ cần sửa → phụ thuộc nhau: gửi chung một message. Độc lập: sửa từng cái.
| Nhu cầu CI/CD | Flag |
|---|---|
| Job treo vì chờ input | claude -p / --print |
| Output cho chương trình khác đọc | --output-format json + --json-schema |
| Thêm luật, giữ mặc định | --append-system-prompt (khác --system-prompt là thay toàn bộ) |
- Review lặp lại comment cũ → đưa findings trước vào prompt; chỉ báo issue mới hoặc chưa xử lý.
- Review code Claude vừa viết → dùng instance riêng, không review trong session đã sinh code.
D4 · Prompt Engineering & Structured Output (20%)
- Quá nhiều false positive → tiêu chí report/skip cụ thể + ví dụ code cho từng severity. "Be conservative" là sai.
- Một category ~40% false positive làm dev mất niềm tin vào mọi finding → tạm tắt category đó, sửa tiêu chí, rồi bật lại.
- Few-shot đúng cách → 2–4 ví dụ nhắm vào ca mơ hồ, kèm lý do, đa dạng cấu trúc tài liệu ⚠.
- Few-shot không chữa được → JSON hỏng (dùng schema), bịa giá trị (nullable), chọn sai tool (description), tổng sai (validation).
- tool_use + JSON schema → đảm bảo cấu trúc, không đảm bảo đúng nghĩa. Strict mode loại lỗi cú pháp.
- Model bịa giá trị không có trong nguồn → để trường optional/nullable; enum thêm
"other"+ detail và"unclear". - Validation-retry → gửi lại tài liệu + output lỗi + lỗi cụ thể. Vô ích nếu dữ liệu không có trong nguồn; trả null hoặc chuyển người review.
- Kiểm tra ngữ nghĩa → trích
calculated_totalcùngstated_total; gắn cờconflict_detected.
| Messages API đồng bộ | Message Batches API | |
|---|---|---|
| Chi phí | Giá thường | Rẻ hơn 50% |
| Độ trễ | Ngay lập tức | Tối đa 24 giờ, không SLA |
| Multi-turn tool calling | Có | Không |
| Khớp kết quả | Không cần | custom_id cho từng request |
| Dùng cho | Check pre-merge, mọi việc có người đang chờ | Báo cáo ban đêm, audit hằng tuần, trích xuất hàng loạt |
- Batch lỗi một phần → chỉ gửi lại các
custom_idlỗi, kèm chỉnh sửa (vd chia nhỏ tài liệu quá lớn). - SLA 30h với batch tối đa 24h → còn 6h đệm, nên submit khoảng mỗi 4 giờ.
- Confidence score → dùng để route, phải calibrate; không bao giờ thay cho tiêu chí.
D5 · Context Management & Reliability (15%)
- Số tiền, ngày, ID bị mất sau khi tóm tắt → case facts block có cấu trúc, đưa vào mọi prompt, không tóm tắt.
- Lost in the middle → key findings lên đầu, có section header; sắp lại input thay vì nhắc lại.
- Tool trả về 40 trường → trim còn trường cần thiết trước khi vào history.
- Trigger escalation → khách đòi gặp người thật (escalate ngay) · policy không đề cập hoặc có ngoại lệ · không tiến triển sau khi đã thử thật sự.
- Không phải trigger → khách bực nhưng việc đơn giản, self-confidence thấp. Cứ xử lý.
- Nhiều khách khớp tên → xin email, số điện thoại hoặc mã đơn; không bao giờ chọn bản ghi gần nhất.
- FCR 55% so với mục tiêu 80% → tiêu chí escalation rõ + few-shot trước khi nghĩ tới classifier.
- Error propagation → báo loại lỗi, hành động đã thử, partial results, phương án thay thế. Timeout trả về
results: []kèm success là silent suppression. - Câu trả lời dần chung chung ("typical pattern") → context degradation: scratchpad file, subagent cho câu hỏi hẹp,
/compactsớm. - Phiên khám phá dài có thể crash → state manifest: phase, explored paths, findings, next steps.
- Accuracy tổng 97% → có thể che một segment yếu. Đo theo loại tài liệu và theo trường; stratified sampling cả output có confidence cao.
- Hai nguồn uy tín mâu thuẫn → giữ cả hai giá trị kèm nguồn. Không chọn bản mới nhất hay lấy trung bình; khác thời điểm có thể là xu hướng.
- Mỗi claim trong báo cáo → claim + source + trích đoạn + ngày, thêm mục coverage gap cho các nguồn chưa kiểm tra được.
Đáp án bẫy và mồi nhử ngoài phạm vi
Phương án sai thường rơi vào vài kiểu quen thuộc:
| Bẫy | Vì sao sai | Nên chọn |
|---|---|---|
| "Ghi bắt buộc vào system prompt" cho luật cứng | Prompt chỉ mang tính xác suất | Hook hoặc gate bằng code |
| Classifier hay service mới ngay bước đầu | Chưa thử cách rẻ | Description, tiêu chí, few-shot |
| Sửa component đang chạy đúng | Bỏ qua bằng chứng | Sửa đúng chỗ bằng chứng chỉ vào |
| Self-confidence 1–10, sentiment, parse chữ "done" | Tín hiệu không đáng tin | stop_reason, tiêu chí rõ, calibration |
Flag bịa (CLAUDE_HEADLESS, --batch) | Không có trong tài liệu | -p, .mcp.json, .claude/rules/ |
Cấu hình team ở ~/.claude, token commit vào repo | Sai scope | Project scope + ${ENV_VAR} |
| Model lớn hơn, context window lớn hơn | Không chữa dilution | Chia pass, scratchpad |
| Cho agent mọi tool | Model chọn tool kém đi | 4–5 tool theo vai trò |
| Self-review cùng session, "think harder" | Cùng điểm mù với generator | Instance độc lập |
| Chỉ báo issue xuất hiện 2/3 lần chạy | Che bug chập chờn | Per-file pass + integration pass |
| Bắt dev tự chia nhỏ PR | Đẩy việc cho người | Thiết kế lại các pass |
| Required field cho dữ liệu có thể vắng | Ép model bịa | Nullable |
Ngoài phạm vi theo guide. Phương án dựa vào các mục này thường là mồi nhử: fine-tuning hay huấn luyện model, auth/billing/quản lý tài khoản API, OAuth và xoay vòng API key, deploy hay host MCP server, kiến trúc nội bộ và quá trình huấn luyện Claude (RLHF, Constitutional AI), embedding và vector DB, computer use, vision, streaming/SSE, rate limit và tính giá API, cấu hình riêng của cloud provider, benchmark, tokenization, và prompt caching ngoài mức biết là có.
Ý chính cần nhớ
- Ràng buộc cứng (tiền, bảo mật, compliance) phải nằm trong code; còn lại thì bắt đầu bằng cách rẻ nhất mà vẫn trúng gốc.
stop_reasonđiều khiển loop; phải appendtool_result; subagent chỉ nhận context qua prompt.- Cấu trúc ở mọi nơi: lỗi có kiểu và
isRetryable, handoff có trường cố định, JSON schema có nullable field, case facts block. - Scope quan trọng: project (
.claude/,.mcp.json) cho team, user (~/.claude/) cho thiết lập cá nhân. - Batch cho việc không ai chờ; đồng bộ cho việc đang chặn một người.
Câu hỏi thường gặp
Không. Quy định trong exam guide yêu cầu khu vực thi không có ghi chú, sách, điện thoại hay tài liệu khác, và liệt study materials vào danh sách vật dụng cấm. Hãy dùng bản này trước giờ thi, không phải trong lúc thi.
Khó. Bản này nén lại những gì bạn đã phải biết; câu hỏi scenario kiểm tra việc bạn áp dụng được nó khi bị giới hạn thời gian. Hãy kết hợp với bài học và luyện scenario có bấm giờ, rồi dựa vào các câu sai trong mock exam để chọn phần cần đọc lại.
D1 (27%) nhiều câu nhất, nên phải chắc phần nguyên tắc của nó. Sau đó dành buổi ôn cuối cho domain mà mock exam cho thấy bạn yếu nhất. % theo domain không quyết định đậu/trượt, nhưng mất điểm ở đâu cũng bị cộng vào tổng.
Bản trong app có thêm bộ lọc theo domain, đánh dấu chắc/chưa chắc cho từng dòng, link tới bài học tương ứng và đầy đủ bảng X vs Y cùng checklist thuật ngữ: Mở cheat sheet tương tác đầy đủ, rồi tự kiểm tra bằng luyện scenario. Để lên kế hoạch và căn giờ, xem thêm lộ trình ôn CCAR-F, chiến lược làm mock exam và mẹo ôn thi.