Bỏ qua để đến nội dung

Tham chiếu Tools

Bài viết được dịch tự động từ bài viết gốc, chưa được kiểm tra lại bởi con người. Chỉ những bài viết có dấu tick xanh cạnh tiêu đề là đã được kiểm tra.

Claude Code có quyền truy cập vào một tập hợp các tool built-in giúp nó hiểu và chỉnh sửa codebase của bạn. Tên tool là chuỗi chính xác bạn dùng trong quy tắc quyền, danh sách tool của subagent, và matcher của hook.

Để kiểm soát Claude được dùng tool nào và khi nào nó phải hỏi trước, cấu hình quy tắc quyền trong settings, hooks, hoặc danh sách tool của một subagent. Để thêm tool tùy chỉnh, kết nối một MCP server. Để mở rộng Claude bằng workflow dựa trên prompt có thể tái sử dụng, viết một skill - chạy qua tool Skill có sẵn thay vì thêm một mục tool mới.

ToolMô tảYêu cầu quyền
AgentSinh ra một subagent với context window riêng để xử lý một tác vụ.Không
ArtifactXuất bản một file HTML hoặc Markdown dưới dạng artifact: một trang riêng tư, tương tác trên claude.ai. Yêu cầu gói Pro, Max, Team, hoặc Enterprise và đăng nhập qua /login.
AskUserQuestionĐặt câu hỏi trắc nghiệm để thu thập yêu cầu hoặc làm rõ điểm mơ hồ. Câu hỏi mặc định vẫn mở cho tới khi bạn trả lời.Không
BashThực thi lệnh shell trong môi trường của bạn.
CronCreateLên lịch một prompt lặp lại hoặc chạy một lần trong phiên hiện tại. Tác vụ gắn với phiên và được khôi phục khi --resume hoặc --continue nếu chưa hết hạn.Không
CronDeleteHủy một tác vụ đã lên lịch theo ID.Không
CronListLiệt kê mọi tác vụ đã lên lịch trong phiên.Không
EditThực hiện chỉnh sửa có mục tiêu trên các file cụ thể.
EndConversationKết thúc phiên, trong các trường hợp hiếm gặp input lạm dụng kéo dài hoặc khi bạn yêu cầu Claude minh họa tool này. Yêu cầu Claude Code v2.1.213 trở lên.Không
EnterPlanModeChuyển sang plan mode để thiết kế cách tiếp cận trước khi viết code.Không
EnterWorktreeTạo một git worktree cô lập và chuyển vào đó.
ExitPlanModeTrình bày một kế hoạch để phê duyệt và thoát plan mode.
ExitWorktreeThoát khỏi phiên worktree và quay về thư mục gốc.Không
GlobTìm file dựa trên khớp mẫu (pattern).Không
GrepTìm kiếm mẫu trong nội dung file.Không
ListMcpResourcesToolLiệt kê resource được các MCP server đã kết nối cung cấp.Không
LSPCung cấp code intelligence qua language server: nhảy tới định nghĩa, tìm tham chiếu, báo lỗi và cảnh báo kiểu dữ liệu.Không
MonitorChạy một lệnh ở background và đưa từng dòng output về cho Claude, để nó phản ứng với log, thay đổi file, hoặc trạng thái polling giữa hội thoại. Cũng có thể mở WebSocket và coi mỗi tin nhắn đến là một sự kiện.
NotebookEditChỉnh sửa các cell trong Jupyter notebook.
PowerShellThực thi lệnh PowerShell trực tiếp.
PushNotificationGửi thông báo desktop, và push điện thoại khi Remote Control được kết nối, để một tác vụ chạy lâu hoặc tác vụ đã lên lịch có thể tới được bạn khi bạn rời máy.Không
ReadĐọc nội dung của file.Không
ReadMcpResourceToolĐọc một MCP resource cụ thể theo URI.Không
RemoteTriggerTạo, cập nhật, chạy, và liệt kê Routine trên claude.ai. Hậu thuẫn cho lệnh /schedule.Không
ReportFindingsBáo cáo các phát hiện từ code review dưới dạng danh sách có cấu trúc, gồm file, tóm tắt, và kịch bản lỗi cho từng phát hiện.Không
ScheduleWakeupLên lại lịch cho lần lặp tiếp theo của một /loop tự định nhịp.Không
SendMessageGửi tin nhắn tới một teammate trong agent team, hoặc resume một subagent theo agent ID hoặc tên.Không
SendUserFileGửi file từ phiên tới bạn kèm chú thích tùy chọn, để một báo cáo, biểu đồ, ảnh chụp màn hình, hoặc artifact được tạo ra tới được thiết bị của bạn.Không
ShareOnboardingGuideUpload ONBOARDING.md và trả về link chia sẻ mà đồng đội có thể mở trong Claude Code.
SkillThực thi một skill trong hội thoại chính.
TaskCreateTạo một tác vụ mới trong danh sách tác vụ. Claude Code bỏ qua tool này trên các model liệt kê ở Khả dụng của Task tool trừ khi bạn opt-in.Không
TaskGetLấy chi tiết đầy đủ của một tác vụ cụ thể. Claude Code bỏ qua tool này trên các model liệt kê ở Khả dụng của Task tool trừ khi bạn opt-in.Không
TaskListLiệt kê mọi tác vụ cùng trạng thái hiện tại. Claude Code bỏ qua tool này trên các model liệt kê ở Khả dụng của Task tool trừ khi bạn opt-in.Không
TaskOutputLấy output từ một tác vụ background. Đã deprecated, nên dùng Read trên đường dẫn file output của tác vụ.Không
TaskStopDừng một tác vụ background đang chạy theo ID.Không
TaskUpdateCập nhật trạng thái, phụ thuộc, chi tiết tác vụ, hoặc xóa tác vụ. Claude Code bỏ qua tool này trên các model liệt kê ở Khả dụng của Task tool trừ khi bạn opt-in.Không
TodoWriteQuản lý checklist tác vụ của phiên. Mặc định tắt kể từ v2.1.142, thay bằng TaskCreate, TaskGet, TaskList, TaskUpdate. Đặt CLAUDE_CODE_ENABLE_TASKS=0 để bật lại.Không
ToolSearchTìm kiếm và nạp các tool bị hoãn (deferred) khi tool search được bật.Không
WaitForMcpServersĐợi một hoặc nhiều MCP server vẫn đang kết nối ở background, để một request có thể dùng tool của chúng mà không cần khởi động lại phiên.Không
WebFetchLấy nội dung từ một URL chỉ định.
WebSearchThực hiện tìm kiếm web.
WorkflowChạy một workflow động: một script điều phối nhiều subagent ở background và trả về một kết quả tổng hợp.
WriteTạo mới hoặc ghi đè file.

Cấu hình tool bằng quy tắc quyền và hooks

Phần tiêu đề “Cấu hình tool bằng quy tắc quyền và hooks”

Phần lớn, Claude tự quyết định khi nào dùng các tool này và bạn không cần chỉ định tên tool khi tương tác với Claude. Bạn tham chiếu trực tiếp tên tool khi định nghĩa quyền và các cấu hình khác:

  • trong permissions.allowpermissions.deny trong settings, và giao diện /permissions
  • trong flag CLI --allowedTools--disallowedTools
  • trong tùy chọn allowedToolsdisallowedTools của Agent SDK
  • trong frontmatter tools hoặc disallowedTools của một subagent
  • trong frontmatter allowed-tools của một skill
  • trong điều kiện if của một hook

Tất cả các nơi này dùng chung một định dạng quy tắc: ToolName(specifier). Specifier phụ thuộc vào tool, và một số tool dùng chung định dạng:

Định dạng quy tắcÁp dụng choChi tiết
Bash(npm run *)Bash, MonitorKhớp mẫu lệnh
PowerShell(Get-ChildItem *)PowerShellKhớp mẫu lệnh
Read(~/secrets/**)Read, Grep, Glob, LSPKhớp mẫu đường dẫn
Edit(/src/**)Edit, Write, NotebookEditKhớp mẫu đường dẫn
Skill(deploy *)SkillKhớp tên skill
Agent(Explore)AgentKhớp loại subagent
WebFetch(domain:example.com)WebFetchKhớp domain
WebSearchWebSearchKhông có specifier; cho phép hoặc từ chối cả tool

Các tool không có trong bảng, như ExitPlanMode hoặc ShareOnboardingGuide, chỉ chấp nhận tên tool trần, không có specifier.

Một quy tắc allow Edit(...) cũng cấp quyền đọc cho cùng đường dẫn, nên bạn không cần thêm quy tắc Read(...) tương ứng. Kể từ v2.1.208, một quy tắc deny Read(...) cũng chặn tool Edit trên cùng đường dẫn, kể cả việc tạo file mới ở đó, vì chỉnh sửa cần đọc lại kết quả.

Trường matcher của hook dùng tên tool trần, không dùng định dạng có ngoặc đơn ở trên.

Tool Agent sinh ra một subagent trong context window riêng biệt. Subagent tự xử lý tác vụ của nó, rồi trả về một kết quả text duy nhất cho hội thoại cha. Hội thoại cha không thấy các lệnh gọi tool hay output trung gian của subagent, chỉ thấy kết quả cuối cùng đó.

Để giới hạn số lượt (turn) một subagent chạy, đặt maxTurns trong định nghĩa subagent.

Cùng tool Agent này cũng khởi chạy các forked subagent khi fork mode được bật. Một fork kế thừa toàn bộ hội thoại cha thay vì bắt đầu mới, luôn chạy ở background, và vẫn hiển thị các prompt xin quyền trong terminal của bạn.

Việc một subagent có tên dùng được tool nào phụ thuộc vào trường toolsdisallowedTools trong định nghĩa subagent:

  • Không đặt trường nào: subagent kế thừa mọi tool khả dụng cho subagent.
  • Chỉ đặt tools: subagent chỉ được dùng các tool được liệt kê.
  • Chỉ đặt disallowedTools: subagent được dùng mọi tool của cha trừ các tool bị liệt kê.
  • Đặt cả hai: disallowedTools được ưu tiên. Một tool xuất hiện ở cả hai sẽ bị loại bỏ.

Trong mọi trường hợp, tập tool cuối cùng bị giới hạn trong các tool khả dụng cho subagent: một tool không khả dụng cho subagent thì không bao giờ được cấp, kể cả khi được liệt kê trong tools.

Việc khởi chạy subagent tự nó không hỏi xin quyền. Claude Code kiểm tra các lệnh gọi tool của chính subagent theo quy tắc quyền của bạn trong lúc nó chạy.

Kể từ v2.1.198, subagent chạy ở background theo mặc định; Claude chạy một subagent ở foreground khi nó cần kết quả trước khi tiếp tục.

  • Subagent ở foreground hiện cùng các prompt xin quyền như trong hội thoại chính, ngay tại thời điểm mỗi lệnh gọi tool xảy ra.
  • Subagent ở background hiện prompt xin quyền trong phiên chính của bạn (kể từ v2.1.186). Prompt nêu tên subagent nào đang hỏi, và nhấn Esc từ chối riêng lệnh gọi tool đó mà không dừng subagent.

Để giới hạn phạm vi subagent có thể chạm tới ngay từ đầu, thu hẹp trường tools của nó, không đưa Bash vào danh sách, hoặc đặt quy tắc deny trong settings của bạn.

Claude dùng AskUserQuestion để hỏi bạn câu hỏi trắc nghiệm khi nó cần một quyết định hoặc làm rõ. Trả lời bằng cách chọn một tùy chọn, hoặc gõ text của riêng bạn qua dòng Other hoặc ô ghi chú.

Khi bạn trả lời bằng cách gõ text riêng, Claude Code chuyển câu trả lời với cách diễn đạt trung lập để Claude làm theo đúng những gì bạn viết, kể cả yêu cầu chờ hoặc giải thích thêm.

Thời gian tự động tiếp tục của câu hỏi

Phần tiêu đề “Thời gian tự động tiếp tục của câu hỏi”

Câu hỏi mặc định vẫn mở cho tới khi bạn trả lời. Nếu bạn muốn một câu hỏi bị bỏ ngỏ cuối cùng tự đóng và để Claude tiếp tục mà không cần bạn, đặt cài đặt askUserQuestionTimeout thành 60s, 5m, hoặc 10m, trong settings.json của bạn hoặc từ dòng Question auto-continue timeout trong /config.

Sau khi một câu hỏi bị treo đủ lâu mà không có input, hộp thoại tự đóng: nó gửi các tùy chọn bạn đã chọn (nếu có) và báo cho Claude biết bạn có thể đang rời khỏi bàn phím, nên Claude tự quyết định và có thể hỏi lại sau. Bạn sẽ thấy đếm ngược trong 20 giây cuối. Nhấn phím bất kỳ để khởi động lại bộ đếm.

Timeout này chỉ áp dụng cho câu hỏi trắc nghiệm của AskUserQuestion; các prompt xin quyền, kể cả phê duyệt kế hoạch, không bao giờ tự động giải quyết khi bị treo.

Tool Bash chạy mỗi lệnh trong một tiến trình riêng biệt.

Điều gì được giữ lại giữa các lệnh

Phần tiêu đề “Điều gì được giữ lại giữa các lệnh”
  • Khi Claude chạy cd trong phiên chính, thư mục làm việc mới sẽ được giữ lại cho các lệnh Bash sau đó, miễn là nó vẫn nằm trong thư mục project hoặc một thư mục làm việc bổ sung mà bạn đã thêm bằng --add-dir, /add-dir, hoặc additionalDirectories trong settings. Phiên subagent không bao giờ giữ lại thay đổi thư mục làm việc.
    • Nếu cd đi ra ngoài các thư mục đó, Claude Code sẽ reset về thư mục project và thêm Shell cwd was reset to <dir> vào kết quả tool.
    • Để tắt việc giữ lại này sao cho mỗi lệnh Bash luôn bắt đầu ở thư mục project, đặt CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1.
  • Biến môi trường không được giữ lại. Một export trong lệnh này sẽ không khả dụng ở lệnh tiếp theo.
  • Alias và shell function định nghĩa trong file khởi động shell của bạn thì khả dụng. Lúc phiên bắt đầu, Claude Code load ~/.zshrc, ~/.bashrc, hoặc ~/.profile tùy theo shell của bạn, thu thập alias, function, và shell option kết quả, rồi áp dụng cho mọi lệnh Bash.

Hai giới hạn ràng buộc mỗi lệnh:

  • Timeout: mặc định hai phút. Claude có thể yêu cầu tới 10 phút cho mỗi lệnh bằng tham số timeout. Ghi đè giá trị mặc định và trần bằng BASH_DEFAULT_TIMEOUT_MSBASH_MAX_TIMEOUT_MS.
  • Độ dài output: mặc định 30.000 ký tự. Khi một lệnh tạo ra nhiều hơn mức đó, Claude Code lưu toàn bộ output vào một file trong thư mục phiên và cho Claude đường dẫn file kèm bản xem trước ngắn từ đầu. Claude đọc hoặc tìm kiếm trong file đó khi cần phần còn lại. Nâng giới hạn bằng BASH_MAX_OUTPUT_LENGTH, tối đa 150.000 ký tự.

Với các tiến trình chạy lâu như dev server hoặc watch build, Claude có thể đặt run_in_background: true để khởi động lệnh dưới dạng tác vụ background và tiếp tục làm việc trong lúc nó chạy. Liệt kê và dừng tác vụ background bằng /tasks.

Khi một lệnh chạm tới timeout mà chưa xong, Claude Code chuyển nó sang background thay vì dừng lại, để Claude tiếp tục làm việc trong khi lệnh chạy tới khi hoàn thành. Claude Code không bao giờ tự động đưa vào background một lệnh bắt đầu bằng sleep, và đặt CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1 sẽ tắt việc tự động đưa vào background cùng toàn bộ chức năng tác vụ background.

Tool Edit thực hiện thay thế chuỗi chính xác. Nó nhận old_stringnew_string, thay thế lần xuất hiện đầu tiên bằng lần thứ hai. Nó không dùng regex hay khớp mờ (fuzzy).

Ba điều kiện phải thỏa mãn để một chỉnh sửa được áp dụng. Trước đó, kể từ v2.1.208, một đường dẫn bị chặn bởi quy tắc deny Read sẽ bị từ chối ngay, kể cả việc tạo file mới ở đó.

  • Đọc trước khi sửa: Claude phải đọc file trong hội thoại hiện tại trước khi chỉnh sửa, và một lần đọc bị cắt ngắn với thông báo PARTIAL view không được tính. Các model mới hơn có thể chỉnh sửa một file chưa đọc khi việc đọc nó không cần hỏi xin quyền và tool Read khả dụng.
  • Khớp (Match): old_string phải xuất hiện trong file đúng như đã viết. Chỉ một khoảng trắng hoặc thụt lề khác biệt cũng đủ khiến không khớp.
  • Duy nhất (Uniqueness): old_string phải xuất hiện đúng một lần. Khi nó xuất hiện nhiều hơn một lần, Claude cần cung cấp một chuỗi dài hơn với đủ ngữ cảnh xung quanh để xác định một lần xuất hiện duy nhất, hoặc đặt replace_all: true để thay thế tất cả.

Tool EndConversation kết thúc phiên hiện tại. Claude chỉ dùng nó trong hai trường hợp:

  • như phương án cuối cùng trước input lạm dụng kéo dài, sau khi các nỗ lực chuyển hướng hội thoại đã thất bại và sau một cảnh báo rõ ràng ở tin nhắn trước đó
  • khi bạn yêu cầu rõ ràng muốn thấy tool này được minh họa và xác nhận muốn phiên kết thúc

Sự khó chịu thông thường, ngôn từ tục tĩu, hay một tác vụ diễn ra tệ không đủ điều kiện, và các yêu cầu về nội dung có hại cũng vậy - Claude sẽ từ chối nội dung đó thay vì kết thúc phiên.

Tool này chỉ xuất hiện khi đáp ứng tất cả các điều kiện sau: phiên bản Claude Code v2.1.213 trở lên, model là Claude Opus 4.8, Claude Sonnet 5, Claude Fable 5, hoặc phiên bản mới hơn của các dòng đó, chạy trong terminal tương tác (không phải -p, SDK, VS Code extension, GitHub Actions, hoặc Claude Code on the web), không phải phiên --bare, và không chạy qua Amazon Bedrock, Claude Platform on AWS, Google Cloud’s Agent Platform, hoặc Microsoft Foundry.

Tool Glob tìm file theo mẫu tên. Nó hỗ trợ cú pháp glob chuẩn gồm ** để khớp thư mục đệ quy:

  • **/*.js khớp mọi file .js ở bất kỳ độ sâu nào
  • src/**/*.ts khớp mọi file .ts bên dưới src/
  • *.{json,yaml} khớp file .json.yaml trong thư mục hiện tại

Kết quả được sắp theo thời gian sửa đổi và giới hạn tối đa 100 file. Nếu chạm trần, Claude thấy cờ báo bị cắt bớt trong kết quả và có thể thu hẹp mẫu tìm.

Glob mặc định không tuân theo .gitignore, nên nó tìm cả file bị gitignore lẫn file được track. Điều này khác với Grep, vốn bỏ qua file bị gitignore. Để Glob tuân theo .gitignore, đặt CLAUDE_CODE_GLOB_NO_IGNORE=false trước khi khởi động Claude Code.

Tool Grep tìm kiếm mẫu trong nội dung file. Trong khi Glob tìm file theo tên, Grep tìm dòng bên trong chúng.

Grep được xây trên ripgrep và dùng cú pháp regex của ripgrep, không phải POSIX grep. Mẫu chứa ký tự đặc biệt regex cần được escape.

Ba chế độ output kiểm soát kết quả trả về:

  • files_with_matches: chỉ đường dẫn file, không có nội dung dòng. Đây là mặc định.
  • content: các dòng khớp kèm file và số dòng.
  • count: số lần khớp trên mỗi file, kèm tổng số trên toàn bộ file khớp.

Claude có thể giới hạn phạm vi kết quả theo file bằng tham số glob, ví dụ **/*.tsx, hoặc theo ngôn ngữ bằng tham số type, ví dụ py hoặc rust. Mặc định, mẫu chỉ khớp trong một dòng. Claude có thể đặt multiline: true để khớp qua nhiều dòng.

Grep tuân theo .gitignore, nên file bị gitignore sẽ bị bỏ qua. Để tìm trong một file bị gitignore, Claude truyền trực tiếp đường dẫn của nó.

Tool LSP cung cấp code intelligence từ một language server đang chạy. Sau mỗi lần chỉnh sửa file, nó tự động báo cáo lỗi và cảnh báo kiểu dữ liệu để Claude có thể sửa vấn đề mà không cần một bước build riêng. Claude cũng có thể gọi trực tiếp để điều hướng code:

  • Nhảy tới định nghĩa của một symbol
  • Tìm mọi tham chiếu tới một symbol
  • Lấy thông tin kiểu dữ liệu tại một vị trí
  • Liệt kê symbol trong một file
  • Tìm kiếm symbol theo tên trên toàn workspace
  • Tìm các implementation của một interface
  • Truy vết call hierarchy

Tool này không hoạt động cho tới khi bạn cài một code intelligence plugin cho ngôn ngữ của bạn.

Tool Monitor cho phép Claude theo dõi thứ gì đó ở background và phản ứng khi nó thay đổi, mà không tạm dừng hội thoại. Yêu cầu Claude:

  • Theo dõi (tail) một file log và gắn cờ lỗi khi chúng xuất hiện
  • Poll một PR hoặc CI job và báo cáo khi trạng thái thay đổi
  • Theo dõi một thư mục để phát hiện thay đổi file
  • Theo dõi output từ bất kỳ script chạy lâu nào bạn chỉ định
  • Kết nối tới một luồng WebSocket và báo cáo từng tin nhắn khi nó tới

Bạn tiếp tục làm việc trong cùng phiên và Claude sẽ xen vào khi có sự kiện. Dừng một monitor bằng cách yêu cầu Claude hủy nó hoặc kết thúc phiên.

Tool này không khả dụng trên Amazon Bedrock, Google Cloud’s Agent Platform, hoặc Microsoft Foundry. Cũng không khả dụng khi DISABLE_TELEMETRY hoặc CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC được đặt.

Khi một server đã sẵn có cơ chế đẩy sự kiện qua WebSocket, Claude có thể kết nối trực tiếp thay vì viết script polling. Mỗi loại hoạt động socket sẽ trở thành một sự kiện hoặc kết thúc việc theo dõi:

  • Tin nhắn text: mỗi tin nhắn trở thành một sự kiện, kể cả khi tin nhắn trải dài nhiều dòng.
  • Tin nhắn binary: không được chuyển tiếp nguyên vẹn. Claude nhận một dòng placeholder như [binary frame, 512 bytes].
  • Tin nhắn lớn hơn 1 MiB: việc theo dõi kết thúc.
  • Socket đóng: việc theo dõi kết thúc và Claude nhận mã đóng (close code).

NotebookEdit chỉnh sửa một Jupyter notebook theo từng cell, nhắm tới cell bằng cell_id. Nó không thực hiện thay thế chuỗi trên toàn notebook như Edit làm với file thường.

Ba chế độ chỉnh sửa kiểm soát điều gì xảy ra với cell mục tiêu:

  • replace: ghi đè nội dung nguồn của cell. Đây là mặc định.
  • insert: thêm một cell mới sau cell mục tiêu. Không có cell_id, cell mới sẽ nằm ở đầu notebook. Yêu cầu cell_typecode hoặc markdown.
  • delete: xóa cell mục tiêu.

Tool PowerShell cho phép Claude chạy lệnh PowerShell trực tiếp. Trên Windows, điều này nghĩa là lệnh chạy trong PowerShell thay vì đi qua Git Bash. Cách tool này khả dụng phụ thuộc vào nền tảng của bạn:

  • Windows không có Git Bash: tool được bật tự động.
  • Windows có cài Git Bash: tool đang được triển khai dần dần.
  • Linux, macOS, và WSL: tool là tùy chọn bật thêm (opt-in).

Đặt CLAUDE_CODE_USE_POWERSHELL_TOOL=1 trong môi trường của bạn hoặc trong settings.json:

{
"env": {
"CLAUDE_CODE_USE_POWERSHELL_TOOL": "1"
}
}

Tool Read nhận một đường dẫn file và trả về nội dung kèm số dòng. Claude được hướng dẫn luôn truyền đường dẫn tuyệt đối.

Mặc định, Read trả về file từ đầu. Khi đọc toàn bộ file vượt quá giới hạn token, Read trả về trang đầu tiên kèm thông báo PARTIAL view cho Claude biết nó đã nhận bao nhiêu phần của file và cách đọc thêm bằng offsetlimit.

Read xử lý một số loại file ngoài văn bản thuần:

  • Ảnh: PNG, JPG, và các định dạng ảnh khác được trả về dưới dạng nội dung hình ảnh Claude có thể “nhìn thấy”, không phải byte thô.
  • PDF: Claude đọc trọn vẹn các file .pdf ngắn. Với PDF dài hơn 10 trang, nó đọc theo khoảng bằng tham số pages, ví dụ "1-5", tối đa 20 trang một lần.
  • Jupyter notebook: file .ipynb trả về mọi cell kèm output, gồm code, markdown, và hình ảnh trực quan.

Từ Claude Code v2.1.233 trở đi, các tool sau không có sẵn trên Opus 4.8, Sonnet 5, Fable 5, Mythos 5, hoặc các bản sau đó của những dòng model này, trừ khi bạn opt-in: TodoWrite, TaskCreate, TaskGet, TaskUpdate, và TaskList. Các model này tự theo dõi được công việc nhiều bước mà không cần một checklist viết ra, và định nghĩa cùng lời nhắc của các tool đó tốn thêm context, nên Claude Code bỏ qua chúng. Không có các tool này, Claude không thêm gì vào danh sách tác vụ trong lúc làm việc. Trên các model khác, ví dụ Opus 4.7, Claude Code mặc định cấp sẵn 4 Task tool, và chỉ cấp TodoWrite khi bạn đặt CLAUDE_CODE_ENABLE_TASKS=0.

Nếu vẫn muốn dùng các tool này trên một trong các model liệt kê ở trên, làm một trong các cách sau:

  • Export CLAUDE_CODE_ENABLE_TODO_TOOLS=1 trước khi khởi động Claude Code, ví dụ CLAUDE_CODE_ENABLE_TODO_TOOLS=1 claude. Claude Code khi đó cấp cùng bộ tool trên mọi model và mọi provider.
  • Nêu tên một trong các tool ở --allowedTools, ví dụ claude --allowedTools TaskCreate.
  • Liệt kê các tool ở --tools, giới hạn tool có sẵn của phiên chỉ còn những tool được nêu tên. Thêm các tool bạn muốn cùng với các tool có sẵn khác bạn đang dùng.
  • Trong Agent SDK, tuỳ chọn allowedToolstools hoạt động tương tự hai cờ trên.

Trong background session và trong Claude Code on the web, Claude Code luôn cấp cùng bộ tool trên mọi model, dù có nằm trong danh sách trên hay không.

Claude Code chỉ cấp cho subagent các tool này khi phiên của bạn cũng có chúng, kể cả khi subagent chạy một model khác. Một teammate trong agent team chạy in-process cũng theo quy tắc này giống phiên của bạn, còn teammate chạy ở split pane riêng là một process Claude Code độc lập nên tự quyết theo model của chính nó. Không có các Task tool, một agent vẫn phối hợp được với team qua tin nhắn, thay vì qua danh sách tác vụ dùng chung.

WebFetch nhận một URL và một prompt mô tả điều cần trích xuất. Nó lấy trang, chuyển đổi phản hồi sang Markdown khi server trả về HTML, và chạy prompt trên nội dung đó bằng một model nhỏ, nhanh. Với hầu hết các lần lấy, Claude nhận câu trả lời của model đó, không phải trang thô.

Điều này khiến WebFetch có tính “lossy” theo thiết kế. Prompt trích xuất quyết định điều gì tới được Claude.

Trong chế độ quyền mặc định và acceptEdits, WebFetch hỏi xin phép lần đầu tiên chạm tới một domain mới, ngoại trừ một tập domain tài liệu được chấp thuận sẵn. Để cho phép trước một domain khác mà không cần hỏi, thêm quy tắc quyền như WebFetch(domain:example.com).

WebSearch chạy một truy vấn trên backend tìm kiếm web của Anthropic và trả về tiêu đề, URL kết quả. Nó không lấy nội dung các trang kết quả. Để đọc một trang Claude tìm thấy trong kết quả tìm kiếm, nó tiếp tục gọi WebFetch.

Tool có thể thực hiện tới tám lượt tìm kiếm backend cho mỗi lệnh gọi, tinh chỉnh nội bộ trước khi trả kết quả. Claude có thể giới hạn kết quả bằng allowed_domains để chỉ bao gồm một số host nhất định, hoặc blocked_domains để loại trừ chúng.

Một phiên có thể thực hiện tối đa 200 lệnh gọi WebSearch, tính trên cả hội thoại chính lẫn mọi subagent nó sinh ra. Đặt biến môi trường CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION để thay đổi giới hạn.

Tool Write tạo mới một file hoặc ghi đè file đã tồn tại bằng toàn bộ nội dung được cung cấp. Nó không nối thêm (append) hay hợp nhất (merge).

Nếu đường dẫn mục tiêu đã tồn tại, Claude phải đọc file đó ít nhất một lần trong hội thoại hiện tại trước khi ghi đè. Một lệnh Write lên file đã tồn tại nhưng chưa đọc sẽ thất bại với lỗi. Ràng buộc này không áp dụng cho file mới.

Với các thay đổi từng phần trên một file đã tồn tại, Claude dùng Edit thay vì Write.

Tập tool chính xác của bạn phụ thuộc vào provider, nền tảng, và cài đặt. Để kiểm tra tool nào được nạp trong một phiên đang chạy, hỏi Claude trực tiếp:

What tools do you have access to?

Claude sẽ trả lời tóm tắt bằng hội thoại. Để lấy tên tool MCP chính xác, chạy /mcp.