Trọng tâm trước thi
Hiểu nguyên tắc.
Nhớ ranh giới.
CCA-F kiểm tra quyết định kiến trúc trong một tình huống cụ thể: mục tiêu gì, thông tin nào đã có, điều gì phải được bảo đảm và cơ chế nào thực sự giải quyết lỗi.
Nguyên tắc cốt lõi · Hiểu cơ chế · Nhớ đúng ranh giới
Trọng tâm trước thi
CCA-F kiểm tra quyết định kiến trúc trong một tình huống cụ thể: mục tiêu gì, thông tin nào đã có, điều gì phải được bảo đảm và cơ chế nào thực sự giải quyết lỗi.
5 domain của Exam Guide
| # | Domain | Trọng số |
|---|---|---|
| 1 | Agentic Architecture & Orchestration | 27% |
| 2 | Tool Design & MCP Integration | 18% |
| 3 | Claude Code Configuration & Workflows | 20% |
| 4 | Prompt Engineering & Structured Output | 20% |
| 5 | Context Management & Reliability | 15% |
Cùng một nguyên tắc có thể dẫn tới lựa chọn khác khi ràng buộc đổi. Cần nhớ điều kiện áp dụng cùng với tên công cụ.
Mô hình tư duy chung
Claude suy luận; hệ thống chịu trách nhiệm về quyền hạn, dữ liệu, kiểm tra và xử lý hậu quả.
Tự chủ trong phần cần phán đoán; kiểm soát rõ phần không được phép sai.
Trục suy luận: Ràng buộc → nguyên nhân → cơ chế → đánh đổi. “Dùng được” chưa chắc “phù hợp nhất với tình huống”.
Liên hệ task 1.2 · 1.6 · 3.4
Đáp ứng điều kiện bắt buộc trước; trong các cách đáp ứng được, chọn cách ít phức tạp và ít đánh đổi không cần thiết hơn.
Vì sao: mỗi agent, lượt gọi và lớp điều phối đều thêm chi phí, độ trễ và một chỗ có thể mất thông tin. Tăng độ phức tạp chỉ có ích khi nó giải quyết một nhu cầu cụ thể.
Phân biệt: một lần gọi phù hợp khi đầu vào đã đủ và đầu ra rõ. Workflow/prompt chain phù hợp khi các bước đã biết trước. Agent phù hợp khi bước tiếp theo phụ thuộc kết quả vừa tìm thấy. Multi-agent có ích khi cần chia chuyên môn, cô lập context hoặc chạy các phần độc lập song song.
Ranh giới: một workflow cố định vẫn có thể dùng model để suy luận ở từng bước. Model-driven không có nghĩa bỏ mọi thứ tự bắt buộc. Một agent có thể tự chọn hướng điều tra, nhưng vẫn phải qua bước xác minh trước hành động tài chính.
“Đơn giản nhất” không có nghĩa “ít dòng code nhất”. Prompt ngắn không thay được chốt chặn khi yêu cầu là không bao giờ vượt chính sách. Cũng không mặc định chọn multi-agent chỉ vì đề nhắc đến agent.
Liên hệ task 1.1
Model đề xuất bước tiếp theo; runtime thực thi tool, trả kết quả và điều khiển vòng lặp bằng tín hiệu có cấu trúc.
Cơ chế: gửi messages và tools → nhận response → nếu có stop_reason: tool_use, thực thi các tool được yêu cầu → giữ assistant response trong history và gửi các tool_result tương ứng ở lượt tiếp theo → model dùng kết quả đó để quyết định tiếp. Trong Messages API, tool result được gửi dưới role user, gắn đúng tool_use_id.
Điểm dừng: end_turn kết thúc lượt của model; ứng dụng vẫn phải phân biệt đã hoàn thành yêu cầu với đang chờ thông tin người dùng. Không dùng câu văn “done”, sự xuất hiện của text, hay một số vòng cố định làm dấu hiệu hoàn thành. Giới hạn vòng/thời gian là chốt an toàn phụ. max_tokens là hạn mức độ dài của một response, không phải tín hiệu công việc đã xong: chạm trần thì response bị cắt giữa chừng, cần xử lý riêng chứ đừng đọc như end_turn.
Thông tin và tiến triển: xóa tool history tùy tiện khiến agent quên việc đã làm. Ngược lại, thêm cùng một kết quả nhiều lần không tự tạo tiến triển. Khi có lỗi, cần trả trạng thái đủ rõ để model đổi hướng hoặc dừng có lý do.
Cache không mặc nhiên làm agent lặp. Dữ liệu ổn định có thể được dùng lại; dữ liệu đang chờ thay đổi cần chính sách làm mới phù hợp. Chỉ thấy lặp chưa đủ kết luận thiếu tool_use_id, dữ liệu đã cũ hay model phát hiện được cache. Đây là giới hạn suy luận, không phải một quy luật mới cần học thuộc.
Liên hệ task 1.2 · 1.3 · 1.6
Các subagent làm đúng phần được giao vẫn có thể tạo ra một báo cáo sai phạm vi. Độ phủ và tích hợp là trách nhiệm của coordinator.
Cơ chế: coordinator đọc mục tiêu, chia thành các phần đủ rộng để có ý nghĩa, chọn agent phù hợp, nhận kết quả rồi kiểm tra còn thiếu gì. Nếu tổng hợp chưa đủ, giao lại truy vấn có mục tiêu vào phần thiếu thay vì chạy lại toàn bộ pipeline.
Context: subagent không tự nhận lịch sử hội thoại của coordinator hoặc findings của agent trước. Prompt giao việc phải chứa mục tiêu, dữ liệu cần dùng, ràng buộc và tiêu chí chất lượng. Findings nên tách claim khỏi metadata: nguồn, đoạn trích, ngày và vị trí.
Phân rã: chia theo subtopic hoặc loại nguồn để tránh tìm trùng. Các phần độc lập có thể chạy song song; bước phụ thuộc phải đợi đầu vào. Review lớn cần lượt phân tích cục bộ và lượt tích hợp giữa các file, vì lỗi luồng dữ liệu có thể nằm ở giao điểm của chúng.
Tool và điều phối: theo thuật ngữ guide, coordinator cần quyền dùng Task để gọi subagent — cụ thể là allowedTools của coordinator phải chứa "Task". Đừng nhầm key này với allowed-tools trong frontmatter của skill: khác cấp, khác cách viết. Mỗi loại subagent được mô tả bằng AgentDefinition gồm description, system prompt và giới hạn tool riêng. Guide gọi kiến trúc này là hub-and-spoke: mọi trao đổi giữa các subagent đều đi qua coordinator, nên luồng thông tin và xử lý lỗi mới nhất quán và quan sát được. Subagent không nói chuyện trực tiếp với nhau. Mỗi agent chỉ cần tools phục vụ vai trò; một tool kiểm chứng hẹp cho nhu cầu thường xuyên có thể tránh nhiều lượt chuyển giao.
Chạy song song: cách làm là coordinator phát nhiều Task call trong cùng một response, không rải mỗi call sang một lượt khác nhau. Nếu chờ từng subagent hoàn thành rồi mới gọi agent tiếp theo thì công việc chạy nối tiếp; không suy ra chỉ từ số lượt gọi rằng runtime không thể chạy nền.
Cô lập context không có nghĩa agent làm việc không cần dữ liệu chung. Song song không có nghĩa các agent được tự sửa cùng một trạng thái mà không phối hợp. Brief cần mục tiêu và chất lượng; không cần trói mọi cuộc điều tra vào một danh sách bước cứng.
Liên hệ task 1.4 · 1.5
Prompt định hướng phán đoán. Điều kiện bắt buộc phải được kiểm tra bằng cơ chế thực thi, ở phạm vi bao phủ đúng các hành động cần bảo vệ.
Soft preference: ưu tiên đề xuất đổi hàng khi hợp lý là hướng dẫn có ngoại lệ; prompt rõ và ví dụ phù hợp giúp model cân nhắc. Hard constraint: chưa xác minh đúng tài khoản thì không được hoàn tiền; hệ thống phải chặn tool nếu điều kiện chưa đạt.
PreToolUse: kiểm tra đầu vào trước khi chạy tool; có thể chặn hành động vi phạm hoặc điều chỉnh input trong giới hạn runtime hỗ trợ. Chặn cần kèm lý do và hướng tiếp tục, chẳng hạn chuyển người có thẩm quyền, thay vì chỉ làm cả phiên chết.
PostToolUse: xử lý kết quả sau khi tool thành công, chẳng hạn chuẩn hóa timestamp hoặc status để model đọc nhất quán. Với MCP result và runtime hỗ trợ thay kết quả, có thể dùng bước này để chuyển đổi payload. Nó không quay ngược một khoản tiền đã chuyển.
Hook và gate: hook là điểm gắn logic; code chạy trong hook có thể chính là gate. Không có thứ bậc “hook chỉ tự động hóa, code mới chặn được”. Bảo đảm phụ thuộc logic kiểm tra, đường gọi được bao phủ và cách xử lý khi kiểm tra thất bại. Luật dùng chung mọi caller có thể cần đặt trong backend/tool chung.
Không suy ra mọi hook chạy tuần tự hoặc mọi runtime kế thừa hook giống nhau. Nếu dữ liệu nhạy cảm tuyệt đối không được vào model hay log, phải kiểm soát cả đường dữ liệu và logging; không chỉ yêu cầu model đừng nhắc lại. Các chi tiết triển khai này cần xem đúng runtime khi xây thật.
Liên hệ task 2.1 · 2.3
Đủ chi tiết về từng tool chưa chắc đã rõ ranh giới giữa hai tool.
Một contract tốt: tên khớp hành vi; description nêu khi nào dùng, input được chấp nhận, output có gì, giới hạn và khi nào chuyển sang tool khác. Schema giới hạn input; quyền hạn giới hạn hành động thực sự được phép. Description rõ hỗ trợ lựa chọn, không thay authorization.
Ví dụ giải thích: extract_tables dùng khi mục tiêu chỉ là lấy bảng. extract_document dùng khi cần cả prose, form và bảng. Hai mô tả dù dài vẫn cần nói rõ sự phân biệt này. Lỗi chọn nhầm trước hết cần được kiểm tra ở tên, mô tả và hướng dẫn có thể đang tạo liên tưởng sai.
Khi thay cấu trúc: tách tool quá chung khi nhiều hành vi và input/output bị trộn. Gộp hoặc bỏ tool khi đã xác định chúng dư thừa và không còn nhu cầu riêng. Không tự suy ra tool chuyên biệt rẻ hơn, nhanh hơn hoặc chính xác hơn nếu tình huống chưa cho bằng chứng.
Khi ép tool: forced tool_choice phù hợp khi một bước cụ thể bắt buộc phải xảy ra, như extraction trước enrichment. Nó không phải mặc định cho mọi lỗi chọn tool. Quyền tối thiểu nghĩa là đủ tools cho vai trò, không phải càng ít tool càng tốt bất kể công việc.
Chọn sửa description vì lỗi là ranh giới lựa chọn chưa rõ; không học thành “description luôn thắng”. Nếu description đã rõ mà quyền hoặc input contract sai, phải sửa đúng lớp đang hỏng.
Liên hệ task 4.1 · 4.2
Criteria nói điều gì được tính là đúng. Ví dụ minh họa dấu hiệu khiến một trường hợp nằm ở bên này hoặc bên kia của tiêu chí.
False positive: “be conservative” hoặc “chỉ báo lỗi rất chắc” không định nghĩa lỗi. Hãy xác định loại vấn đề cần báo, loại cần bỏ qua và hậu quả tương ứng với severity. Ví dụ, comment mâu thuẫn hành vi code khác với comment chỉ không kể hết chi tiết.
Few-shot: khi model hiểu yêu cầu nhưng output không nhất quán hoặc gặp ca mơ hồ, dùng một ít ví dụ có chủ đích. Guide nêu 2–4 ví dụ cho tình huống mơ hồ; con số là hướng dẫn, không phải hạn mức kỹ thuật. Ví dụ còn giúp thống nhất format location / issue / severity / suggested fix và cách đọc nhiều cấu trúc tài liệu. Ví dụ cần bao gồm cả trường hợp dễ nhầm và cách xử lý thiếu dữ liệu.
Ví dụ giải thích: “Retry được implement ở đâu?” cần code nên dùng search_code. “Team quy định retry thế nào?” cần tài liệu nên dùng search_docs. Cặp request → tool chỉ cho thấy kết quả; thêm lý do ngắn gọn cho thấy tiêu chí để áp dụng sang câu mới.
Phân biệt ba nhu cầu: chọn sai vấn đề cần báo → criteria; trình bày không đều hoặc khó áp dụng tiêu chí ở ca biên → examples; máy phía sau cần cấu trúc xác định → schema. Chúng bổ sung cho nhau, không phải ba đáp án thay thế trong mọi hoàn cảnh.
Thêm nhiều ví dụ cùng một dạng không chắc bổ sung phần thông tin đang thiếu. Một tie-break mặc định cũng không giải thích được ý định thực sự. Không cần yêu cầu chuỗi suy nghĩ dài; cần dấu hiệu phân biệt và lý do lựa chọn có thể kiểm tra.
Liên hệ task 4.3 · 4.4
Output hợp schema có thể vẫn sai giá trị, sai trường hoặc không được tài liệu gốc hỗ trợ.
Ba lớp: (1) Schema kiểm tra cấu trúc, kiểu, required, enum và những ràng buộc đã định nghĩa. (2) Semantic validation kiểm tra quan hệ và ý nghĩa, như tổng các dòng so với tổng hóa đơn — guide nhắc Pydantic như công cụ quen thuộc cho lớp này và cho vòng validation–retry. (3) Grounding kiểm tra giá trị thực sự xuất phát từ đúng phần của tài liệu.
Thiếu dữ liệu: thiết kế field optional hoặc nullable khi nguồn có thể không chứa nó. Optional cho phép thiếu key; nullable cho phép giá trị null — hai khái niệm khác nhau. Một key có thể vừa required vừa nullable: chẳng hạn bắt buộc có invoice_date nhưng cho phép null khi tài liệu không có ngày. Strict không đồng nghĩa mọi key đều phải required; đó là lựa chọn trong schema và phải phù hợp cơ chế được hỗ trợ.
Phân loại mở: other kèm detail dùng khi danh mục có thể chưa đầy đủ; unclear biểu diễn trường hợp chưa thể xác định. Không ép chọn một giá trị cụ thể chỉ để làm đẹp bản ghi.
Retry có phản hồi: gửi tài liệu gốc + kết quả sai + lỗi validation cụ thể. Chỉ thông báo “invalid” không cho model biết cần sửa gì. Nếu nguồn thật sự mâu thuẫn, giữ cả giá trị tính được và giá trị được nêu, đánh dấu xung đột; đừng âm thầm sửa tài liệu cho khớp. Guide đặt tên cho chính cách này: trích calculated_total song song với stated_total để lộ chênh lệch, và thêm cờ conflict_detected khi nguồn tự mâu thuẫn.
Retry có thể sửa cách đọc hoặc format; nó không tạo ra ngày ký vốn không có trong tài liệu. Forced tool selection buộc chọn tool, còn schema enforcement cần cơ chế strict structured output tương ứng. Không coi mọi tool call có schema là tự động được bảo đảm hợp lệ.
Liên hệ task 1.7 · 5.1 · 5.4 · 5.6
Context tốt là đủ bằng chứng đúng, còn hiệu lực và dễ tìm; không phải toàn bộ text từng thu thập được.
Giữ chính xác: mã đơn, số tiền, ngày, trạng thái và cam kết với khách nên nằm trong facts block có cấu trúc, được cập nhật khi dữ kiện đổi. Một summary như “đã thỏa thuận hoàn tiền” làm mất số tiền và điều kiện đã thỏa thuận.
Giảm nhiễu: cắt trường tool output không liên quan, giữ bản chi tiết ở nơi có thể đọc lại. Đặt kết luận quan trọng ở đầu bản tổng hợp, chia phần rõ — vì hiệu ứng lost-in-the-middle: model xử lý phần đầu và phần cuối của input dài đáng tin hơn, và có thể bỏ sót nội dung nằm ở khúc giữa. Dùng subagent để cô lập việc khám phá dài — trong Claude Code đó là Explore subagent, chạy phần discovery nhiều output rồi chỉ trả summary về phiên chính; scratchpad để lưu findings qua ranh giới context; đọc lại scratchpad khi cần chứ không chỉ ghi rồi bỏ.
Resume / fork / fresh: resume khi lịch sử còn hữu ích và báo rõ những file đã đổi. Fork để hai hướng phát triển độc lập từ cùng nền phân tích; lỗi trong nền cũng đi theo cả hai. Khi tool results đã lỗi thời hoặc context đầy thử nghiệm bỏ đi, phiên mới với summary đúng hiện trạng thường đáng tin hơn. Trong Claude Code, /compact nén lịch sử phiên đang chạy để lấy lại chỗ trong context — nó rút gọn, nên vẫn phải giữ facts quan trọng ở nơi không bị tóm tắt, và không làm cho dữ liệu đã cũ trở lại đúng.
Provenance: claim đi cùng nguồn, đoạn trích/vị trí, thời điểm và điều kiện giới hạn. Hai số khác nhau có thể đo hai năm hoặc hai nhóm đối tượng. Giữ khác biệt đó thay vì lấy trung bình hoặc chọn số từ report dài hơn. Phân biệt kết luận đã được nhiều nguồn hỗ trợ với kết luận còn tranh luận.
Khôi phục: state có cấu trúc và manifest cho biết phần nào đã xong, artifact nằm ở đâu, phần nào còn thiếu; coordinator dùng chúng để tiếp tục sau gián đoạn. Đây là lưu trạng thái rõ ràng, không phải shared memory tự động giữa subagent.
Context lớn không bảo đảm chú ý tốt; summary không phải nguồn chân lý; URL đúng không cứu được claim đã mất qualifiers. Giữ cả “nghiên cứu sơ bộ”, thời gian và mẫu khảo sát khi chúng giới hạn kết luận.
Liên hệ task 2.2 · 5.3
Tín hiệu thất bại phải phân biệt được lỗi sửa được, lỗi cần đổi input/quyền và kết quả tìm kiếm hợp lệ nhưng rỗng.
Contract: dùng isError để báo tool thất bại. Bổ sung category, retryability, giải thích và partial results khi có. Các tên như errorCategory, isRetryable là thiết kế metadata của tool; không phải tất cả đều là trường bắt buộc của chuẩn MCP.
Transient: timeout hoặc dịch vụ tạm lỗi có thể đáng thử lại có giới hạn. Validation: input không hợp lệ cần được sửa, không gửi lại y nguyên. Business: chính sách từ chối cần giải thích hoặc chuyển đúng người. Permission: thiếu quyền cần xử lý quyền; chờ thêm không tự cấp quyền.
Phạm vi phục hồi: subagent xử lý cục bộ lỗi tạm thời đơn giản; nếu không khắc phục được, trả lên coordinator loại lỗi, việc đã thử, phần kết quả tốt và hướng thay thế. Coordinator giữ công việc đã thành công và giao lại phần thiếu khi phù hợp.
Báo cáo: nếu chỉ có bằng chứng cho ba trong bốn chủ đề, nêu rõ độ phủ thay vì trình bày như đã hoàn chỉnh. Một tool timeout không phải bằng chứng rằng không có tài liệu phù hợp.
Không retry mù mọi loại lỗi; cũng không dừng cả hệ thống chỉ vì một nguồn thất bại. Với thao tác ghi, timeout còn có thể là kết quả chưa biết; không tự suy rằng thao tác chưa xảy ra. Cơ chế chống ghi lặp là lưu ý triển khai, không thay phần phân loại lỗi của guide.
Liên hệ task 4.1 · 4.4 · 4.6 · 5.5
Kết quả trông hợp lý, confidence cao hoặc accuracy tổng tốt đều chưa đủ chứng minh chất lượng ở trường hợp đang xử lý.
Review độc lập: instance sinh code mang theo lý do đã chọn cách làm, dễ bỏ qua giả định của chính nó. Reviewer độc lập giảm ảnh hưởng đó, nhưng vẫn phải nhận code, yêu cầu, tiêu chí chấp nhận và context cần kiểm chứng. Độc lập với reasoning của generator không có nghĩa thiếu project context.
Review nhiều lượt: local pass cho lỗi trong file; integration pass cho luồng qua nhiều file. Không chỉ tăng context rồi kỳ vọng mọi phần đều được chú ý như nhau. Đồng thuận giữa nhiều model không tự chứng minh một finding đúng, và có thể bỏ sót lỗi chỉ một lượt nhìn thấy.
Đo theo segment: accuracy tổng có thể che lỗi ở một loại chứng từ hoặc một field. Dùng tập có nhãn để đo và hiệu chỉnh confidence theo field; trước khi giảm human review phải xem hiệu năng theo document type và field. Lấy mẫu phân tầng cả nhóm confidence cao để tìm lỗi đang lọt qua.
Confidence: điểm tự báo 0.9 không mặc nhiên nghĩa 90% đúng. Một điểm hữu ích để xếp hạng có thể chưa được hiệu chỉnh thành xác suất. Chuyển attention của reviewer vào trường hợp confidence thấp, mơ hồ hoặc mâu thuẫn; vẫn cần theo dõi nhóm tự động thông qua.
Feedback: lưu loại pattern gây finding và kết quả được chấp nhận/bác bỏ để sửa tiêu chí có mục tiêu. Guide gọi trường này là detected_pattern trong finding có cấu trúc: nhờ nó mới phân tích được dev đang bác bỏ nhóm nào. Tạm tắt một nhóm false positive cao có thể hợp lý trong lúc sửa nhóm đó, thay vì làm mọi nhóm im lặng.
Schema check và phép tính có thể kiểm bằng code. Đừng trả tiền cho một lượt model tự nói “tôi chắc” rồi coi đó là validation độc lập. Human approval cũng chỉ có ý nghĩa khi quy trình thật sự kiểm tra được bằng chứng.
Liên hệ task 1.4 · 5.2
Độ khó thao tác, cảm xúc khách và thẩm quyền giải quyết là ba chuyện khác nhau.
Tự xử lý: việc nhiều bước nhưng chính sách rõ, tools đủ và nằm trong thẩm quyền vẫn có thể hoàn thành tự động. Khách bực không tự động biến một việc đơn giản thành trường hợp cần người xử lý.
Escalate: khách yêu cầu người thật; tình huống cần ngoại lệ hoặc chính sách thiếu/không rõ; hệ thống không thể tiến triển có ý nghĩa. Không dùng một confidence score chưa hiệu chỉnh hay sentiment làm đại diện cho các điều kiện này.
Mơ hồ danh tính: nhiều customer match thì xin thêm thông tin phân biệt. Không chọn người có đơn gần nhất, số dư lớn nhất hoặc tên giống nhất. Chỉ “đã xác minh ai đó” chưa đủ để cho phép thao tác trên mọi tài khoản.
Handoff: người nhận cần customer/order ID, vấn đề, nguyên nhân đã tìm được, hành động đã thực hiện, số tiền/trạng thái liên quan và đề xuất tiếp theo. Đừng giả định họ có transcript. Với yêu cầu nhiều vấn đề, phân tách để xử lý và chuyển đúng phần, rồi trả một kết quả nhất quán.
“Luôn escalate để an toàn” không đạt mục tiêu tự động hóa. “Cố giải quyết cho xong trước khi chuyển người” cũng sai khi khách đã yêu cầu người thật hoặc agent không có thẩm quyền.
Liên hệ task 3.4 · 3.5 · 3.6
Chọn cách làm theo mức chưa biết và giá của quyết định sai; không dựa duy nhất vào số file.
Plan mode: dùng để khám phá codebase, hiểu phụ thuộc, cân nhắc nhiều cách và chốt hướng trước khi sửa. Chưa biết nguyên nhân không làm plan mode trở thành sai; có thể lập kế hoạch điều tra trước rồi điều chỉnh theo findings. Giai đoạn discovery nhiều output nên giao cho Explore subagent để khỏi ăn hết context của phiên chính.
Direct execution: phù hợp khi yêu cầu, vị trí sửa và hành vi mong đợi đã rõ, phạm vi nhỏ. Một thay đổi hai file vẫn có thể cần cân nhắc kiến trúc; nhiều file giống nhau không tự tạo nhiều lựa chọn kiến trúc.
Iterative refinement: phản hồi phải chứa input cụ thể, output mong đợi và sai khác hiện tại. Các lỗi tương tác cần được mô tả cùng nhau để không sửa bên này làm hỏng bên kia. Với vấn đề độc lập có thể sửa tuần tự. Interview pattern giúp làm rõ ràng buộc chưa được nói ra trước khi implement.
Tests và context: theo Task 3.5, viết test suite trước, bao gồm hành vi mong đợi, edge cases và yêu cầu hiệu năng, rồi gửi test failures để cải thiện từng lượt. Khi mô tả bằng lời bị hiểu không nhất quán, đưa 2–3 ví dụ input/output cụ thể. Test suite định nghĩa hành vi cần giữ, nhưng test sai vẫn lái vòng lặp sai. Khi lịch sử đầy patch đã bỏ, giữ code hiện tại và kết luận còn giá trị thay vì bắt model tổng hợp mọi phương án cũ.
CI: cần chạy không tương tác, có project conventions và tiêu chí review rõ. Đưa tests/fixtures hiện có để tránh đề xuất trùng. Lượt review sau nhận findings trước đó và chỉ báo lỗi mới hoặc chưa được giải quyết.
Đừng học “plan chỉ dùng sau khi đã biết lời giải”, “cứ 45 file là plan”, hay “sau tám vòng phải viết tay”. Đây không phải các ngưỡng cố định trong guide.
Nhìn vào thứ đang thiếu để phân biệt, không chọn chỉ vì nhớ một từ khóa.
| Phân biệt | Bản chất | Giới hạn cần giữ |
|---|---|---|
| Description chi tiết / boundary rõ | Description kể tool làm gì; boundary nói khi nào chọn nó thay vì tool bên cạnh. | Không tự thêm lợi thế giá hoặc độ chính xác chưa được nêu. |
| Criteria / few-shot | Criteria định nghĩa đúng–sai; few-shot minh họa cách áp dụng, đặc biệt ở trường hợp mơ hồ. | Ví dụ nên có dấu hiệu quyết định và lý do ngắn, không chỉ nhãn output. |
| Guidance / enforcement | Guidance hướng hành vi; enforcement kiểm tra và chặn hành động không hợp lệ. | Hook chạy code có thể là enforcement. Phải bao phủ đúng đường gọi. |
| Tool choice / output validity | Tool choice quyết định có gọi tool nào; strict schema quyết định hình dạng được chấp nhận. | Cả hai vẫn không chứng minh giá trị lấy đúng từ nguồn. |
| Không tìm thấy / không truy cập được | Kết quả rỗng hợp lệ khác với timeout hoặc permission error. | Không biến lỗi thành dữ liệu rỗng thành công. |
| Kết thúc lượt / hoàn thành công việc | Model có thể end_turn để chờ thông tin; trạng thái nghiệp vụ vẫn chưa xong. | Không đọc text hoặc một số vòng cố định để thay stop_reason. |
| Nhiều bước / cần người xử lý | Nhiều bước có thể vẫn trong chính sách và khả năng agent. | Escalate theo yêu cầu người dùng, thẩm quyền/chính sách và khả năng tiến triển. |
| Độc lập review / thiếu context | Reviewer không cần reasoning của generator, nhưng cần yêu cầu và bằng chứng để kiểm tra. | Không loại CLAUDE.md hoặc requirements chỉ để tạo sự độc lập. |
| Confidence / accuracy | Một số tự báo là tín hiệu cần hiệu chỉnh; accuracy là kết quả đo trên dữ liệu có nhãn. | Đo theo segment và kiểm tra cả nhóm confidence cao. |
| Thông tin cũ / thông tin sai | Kết quả từng đúng có thể không còn phù hợp với trạng thái hiện tại. | Resume hoặc cache không tự chứng minh dữ liệu còn hiệu lực. |
Tên và đường dẫn theo thuật ngữ Exam Guide đã đọc. Ưu tiên hiểu phạm vi áp dụng; không cần học thêm tính năng mới sát ngày thi.
| Nhu cầu | Tên / vị trí | Ý nghĩa |
|---|---|---|
| Quy ước cá nhân | ~/.claude/CLAUDE.md | Áp dụng cho người dùng đó; không tự đi theo Git của project. |
| Quy ước team | CLAUDE.md ở root hoặc .claude/CLAUDE.md | Commit vào repo. File trong thư mục con chứa quy ước riêng của khu vực; các chỉ dẫn cần nhất quán với phần chung. |
| Tổ chức quy ước | .claude/rules/ và import dạng @docs/standards.md | Chia nội dung theo chủ đề. Import không tự tiết kiệm token nếu vẫn nạp tất cả tài liệu ở mọi lượt. |
| Rule theo đường dẫn | YAML paths: ["**/*.test.tsx"] | Áp dụng theo file khớp pattern, hữu ích khi test nằm ở nhiều thư mục. Kiểm tra bằng /memory; không suy rằng nhắc từ “test” là rule đã được nạp. |
| Command dùng chung | .claude/commands/ | Theo thuật ngữ guide; bản cá nhân ở ~/.claude/commands/. Không định nghĩa command bằng một mảng tự đặt trong config. |
| Skill | .claude/skills/<name>/SKILL.md | Quy trình dùng theo tác vụ; context: fork cô lập context; argument-hint gợi ý tham số. |
| Quyền trong skill | allowed-tools | Guide đề cập giới hạn tools của skill. Khi cần bảo đảm một quyền bị cấm ở mọi đường gọi, dùng permission/gate được runtime thực thi; không coi một dòng mô tả là sandbox. |
| Quyền gọi subagent | allowedTools phải chứa "Task" | Của coordinator, để nó được phép spawn subagent. Khác allowed-tools ở frontmatter skill — nhìn giống nhưng khác cấp và khác cách viết. Mỗi loại subagent khai báo bằng AgentDefinition. |
| Khám phá tốn context | Explore subagent | Chạy giai đoạn discovery dài rồi chỉ trả summary, giữ context phiên chính. Đi cùng plan mode cho task nhiều file. |
| MCP dùng chung | .mcp.json + ${GITHUB_TOKEN} | Chia sẻ định nghĩa server qua repo; lấy secret từ environment thay vì commit giá trị secret. |
| MCP cá nhân | ~/.claude.json | Dùng cho server cá nhân/thử nghiệm. Các server có thể được kết nối đồng thời; kiểm tra scope thực tế khi máy khác nhau có hành vi khác nhau. |
| MCP resource / tool | Catalog / thao tác | Resource có thể cung cấp danh mục nội dung, cấu trúc docs hoặc schema DB để giảm việc gọi tool thăm dò; tools thực hiện các thao tác tìm kiếm hoặc hành động. Với tích hợp chuẩn, ưu tiên MCP server có sẵn phù hợp; viết custom server khi workflow riêng của team cần nó. |
| Tìm và đọc code | Glob / Grep / Read | Glob tìm tên/đường dẫn; Grep tìm nội dung; Read đọc phần liên quan. Theo cả wrapper và tên export khi truy vết caller. |
| Sửa và chạy code | Edit / Write / Bash | Edit cho sửa bằng anchor rõ; Read + Write khi cần thay toàn bộ hoặc không có anchor độc nhất. Bash chạy chương trình/tests. |
| Chạy trong CI | -p hoặc --print | Không chờ tương tác. Project context, tiêu chí và fixtures vẫn cần được cung cấp. |
| Output CI | --output-format json + --json-schema | JSON envelope không tự định nghĩa danh sách finding mà downstream cần; schema mới mô tả cấu trúc nội dung. |
| Resume / fork | --resume / fork_session | Tiếp tục lịch sử / rẽ nhánh từ baseline. Báo rõ file hoặc tool đã đổi; không dùng lịch sử cũ như hiện trạng đã được kiểm tra. |
Phân biệt phiên bản: guide dùng Task; docs SDK hiện hành dùng Agent và AgentDefinition.tools để giới hạn tool của subagent. allowedTools ở cấp coordinator và allowed-tools trong skill là các cấu hình khác nhau. Theo docs skills hiện hành, allowed-tools cho phép dùng tool mà không hỏi lại, không tự cấm các tool còn lại; ranh giới cấm cần cơ chế permission/deny được thực thi. Đọc đúng phiên bản và ngữ cảnh của câu hỏi.
| Cấu hình | Bảo đảm điều gì | Không được suy rộng |
|---|---|---|
auto | Model có thể gọi tool hoặc trả lời text. | Phù hợp khi không phải lượt nào cũng cần tool. |
any | Model phải gọi tool, được chọn trong các tool có sẵn. | Không bảo đảm chọn đúng một tool cụ thể. |
{type: "tool", name: "extract_metadata"} | Buộc gọi tool được chỉ định. | Dùng khi workflow yêu cầu bước đó; không thay kiểm tra ý nghĩa output. |
| Strict schema | Ràng buộc cấu trúc đầu vào tool / structured output theo cơ chế được hỗ trợ. | Khác với việc chỉ buộc có tool call; vẫn phải kiểm tra semantic và nguồn. |
Task 4.5: phù hợp workload, cửa sổ xử lý, tương quan kết quả và chỉ xử lý lại phần lỗi.
Batch phù hợp khi kết quả không chặn công việc đang chờ và toàn bộ cửa sổ xử lý vẫn nằm trong thời hạn cho phép.
Thông tin guide nêu: Message Batches có mức giảm 50% chi phí xử lý tương ứng và cửa sổ tới 24 giờ; không có bảo đảm rằng batch sẽ xong trong vài phút hay trong một đêm cụ thể. Đây không phải lời hứa mọi request đều thành công.
Thời gian tổng: chờ gom dữ liệu + cửa sổ xử lý + thời gian nhận/kiểm tra kết quả phải nằm trong deadline. Ví dụ thời hạn 30 giờ, chờ gom tối đa 4 giờ và cửa sổ 24 giờ dùng 28 giờ trước các bước còn lại. Nếu đã gửi ngay mà vẫn trễ 30 giờ, thêm 4 giờ chờ không tự sửa nguyên nhân trễ.
Tổ chức: thử chất lượng prompt trên mẫu đại diện trước khi gửi khối lượng lớn; mỗi request có custom_id; ghép theo ID thay vì vị trí; chỉ gửi lại mục thất bại với điều chỉnh phù hợp. Nội dung dài vượt context cần được chia hoặc rút gọn, không chỉ retry y nguyên.
Tool loop: một request trong batch không phải cuộc hội thoại tương tác để ứng dụng chen vào thực thi client tool rồi trả kết quả ngay trong chính request đó. Cần phân biệt điều này với tools chạy phía server hoặc nhiều đợt xử lý do ứng dụng điều phối.
“Overnight” không mặc nhiên có đủ 24 giờ. “Ít tài liệu” cũng không chứng minh chỉ tiết kiệm vài USD: cần model, token volume và chi phí tích hợp mới tính được. Giữ nguyên tắc phù hợp thời hạn; không ghi nhớ số tiền tự suy đoán từ bank.
Mỗi task dẫn tới phần giải thích liên quan. Đây là bản đồ đọc, không phải tuyên bố mọi kỹ năng đã được kiểm chứng.
Mỗi bối cảnh nhấn mạnh một số trách nhiệm khác nhau; cơ chế kiểm soát và giữ bằng chứng vẫn nhất quán.
Xác minh đúng người, đúng tài khoản; xử lý trong chính sách; escalation đúng trigger; handoff có facts và việc đã làm.
Scope cấu hình đúng; plan/direct theo mức chưa rõ; phản hồi bằng hành vi cụ thể; nhận biết context cũ khi resume.
Phân công đủ phạm vi; context tường minh; giữ claim–source mapping; coordinator bổ sung phần thiếu và xử lý partial failure.
Grep/Glob đúng mục đích; khám phá tăng dần; tools vừa đủ; tách output khám phá dài và giữ findings có thể đọc lại.
Chạy không tương tác; có project conventions; findings có cấu trúc; tiêu chí cụ thể; review độc lập và biết các finding cũ.
Schema cho phép thiếu dữ liệu thật; validation cả ý nghĩa; retry kèm nguồn và lỗi; batch theo deadline; review theo chất lượng đã đo.
Chỉ đọc lại các kết luận. Không có bài tập, điểm mục tiêu hay yêu cầu chứng minh thêm.
Format theo Exam Guide v1.0: 60 câu trong 120 phút, chọn 4 trong 6 scenario; có câu một đáp án và nhiều đáp án, mỗi câu ghi số lựa chọn cần chọn. Điểm đỗ 720 trên thang 100–1.000 là scaled score, không phải 72% câu đúng. Trọng số domain là xấp xỉ phần được chấm, không phải quota câu cố định. Nguồn: Anthropic Academy và Exam Guide.
Một quyết định tốt giải thích được từ dữ kiện và cơ chế. Không cần một “mẹo chọn đáp án” luôn đúng trong mọi tình huống.
Theo mục Out-of-Scope của Exam Guide v1.0. Các chủ đề dưới đây không xuất hiện trong đề.