Chuyển đến nội dung
Lộ trình ClaudeGiai đoạn 07Building with the Claude APITool use & structured outputMở bản đồ

Tool use: trao cho Claude đôi tay làm việc thật

Tích hợp & APITrung cấp7 phút đọc

Claude không tự truy cập được hệ thống của bạn — và đó là thiết kế đúng. Tool use là cơ chế trao quyền có kiểm soát: bạn khai báo các hàm, Claude quyết định KHI NÀO cần gọi, code của bạn thực thi và trả kết quả. Đây là viên gạch nền của mọi agent.

Bạn sẽ học được
  • Nắm vòng lặp 4 bước của tool use
  • Viết tool schema mà Claude gọi đúng lúc, đúng tham số
  • Dựng vòng lặp đa lượt an toàn với max_turns
Bạn cần gì
  • Biết Python hoặc JavaScript cơ bản
  • API key của Anthropic

Vòng lặp 4 bước

Chú ý chỗ quan trọng nhất: Claude không bao giờ tự chạy code. Nó chỉ ĐỀ NGHỊ; quyền thực thi luôn nằm trong tay bạn.

  • Bạn gửi request kèm danh sách tools (schema mô tả từng hàm)
  • Claude trả lời với stop_reason "tool_use" khi nó cần gọi hàm — kèm tên hàm và tham số
  • Code CỦA BẠN thực thi hàm thật, gửi kết quả về qua tool_result
  • Claude đọc kết quả và trả lời tiếp — hoặc gọi thêm tool khác

Schema — bản mô tả quyết định tất cả

Mỗi tool có ba phần: name, description và input_schema. Trong đó description quan trọng nhất: Claude dựa vào đó để quyết định khi nào dùng.

{
  "name": "search_orders",
  "description": "Tìm đơn hàng theo email hoặc mã đơn.
    Dùng khi khách hỏi về tình trạng đơn, lịch sử mua,
    hoặc khiếu nại. Trả về danh sách đơn kèm trạng thái.",
  "input_schema": {
    "type": "object",
    "properties": {
      "query": {"type": "string", "description": "Email hoặc mã đơn"},
      "limit": {"type": "integer", "default": 5}
    },
    "required": ["query"]
  }
}

Công thức description: what — when — returns

Ba câu là đủ: tool làm gì, dùng khi nào, trả về gì. "Gets data" là mô tả khiến Claude gọi sai hoặc không gọi. Mô tả tốt gần như loại bỏ hoàn toàn chuyện gọi nhầm tool.

Vòng lặp đa lượt + cầu chì max_turns

Việc thật hiếm khi xong trong một lần gọi: tìm khách → lấy đơn → kiểm kho. Vòng lặp của bạn cứ tiếp tục chừng nào stop_reason còn là tool_use — nhưng luôn đặt trần số lượt.

turns = 0
while turns < MAX_TURNS:      # cầu chì: 10 lượt
    resp = client.messages.create(model=..., tools=TOOLS, messages=history)
    if resp.stop_reason != "tool_use":
        break                  # Claude đã có câu trả lời cuối
    for block in resp.content:
        if block.type == "tool_use":
            result = run_tool(block.name, block.input)
            history.append(tool_result(block.id, result))
    turns += 1

An toàn theo thiết kế

Học sâu hơn với 11 bài của module Tool Use trong khóa Building with the Claude API — từ schema tới text editor tool có sẵn.

  • Tool đọc tách khỏi tool ghi — cấp quyền ghi sau khi quyền đọc chạy ổn
  • Hành động không đảo ngược (gửi email, xóa bản ghi): thêm bước con người xác nhận
  • Kết quả tool là dữ liệu, không phải mệnh lệnh — validate trước khi đưa ngược vào vòng lặp
  • Log mọi lần gọi tool: ai, lúc nào, tham số gì — để audit lại được
Nội dung này có hữu ích không?
Kiểm tra kiến thức

Củng cố những gì bạn vừa học

3 câu trắc nghiệm · đạt từ 70% · câu hỏi và đáp án xáo trộn mỗi lần.

Hội thoại chia sẻ

Cộng đồng đang hỏi Claude điều gì?

Xem tất cả
Nền tảng

Claude khác ChatGPT và Gemini ở điểm nào?

Không có “tốt nhất” chung — chọn theo việc cần làm. Claude mạnh ở lập luận dài, bám ngữ cảnh và viết tự nhiên.

Ẩn danh312
Nền tảng

Nên chọn mô hình Claude nào để khỏi lãng phí chi phí?

Haiku cho việc nhẹ và nhanh, Sonnet cân bằng, Opus cho suy luận sâu. Đừng mặc định dùng model mạnh nhất.

Ẩn danh148
Nền tảng

Người mới nên bắt đầu với Claude từ đâu?

Mười tình huống thật trong ngày đầu: tóm tắt, viết nháp, phân tích file, brainstorm — thấy giá trị ngay, không cần khoá học.

Ẩn danh96
Chat

Làm sao giữ Claude bám đúng ý qua nhiều lượt trò chuyện?

Nhắc lại mục tiêu khi nối mạch, đổi hướng thật rõ ràng, và yêu cầu Claude tóm tắt hiểu biết trước khi đi tiếp.

Ẩn danh274
Chat

Projects trong Claude thật sự dùng để làm gì?

Gom tài liệu và chỉ dẫn một lần, mọi hội thoại cùng chung nền — hết cảnh dán lại bối cảnh mỗi lần mở chat.

Ẩn danh121
Chat

Tóm tắt tài liệu dài mà không đánh rơi ý chính?

Yêu cầu giữ lập luận thay vì liệt kê; chỉ định độ dài và góc nhìn cần giữ để bản tóm không cắt bừa.

Ẩn danh89
Cowork

Claude Cowork tự làm việc trên máy mình như thế nào?

Cùng kiến trúc agent với Claude Code nhưng ngay trong app desktop: mô tả kết quả, Claude thao tác trên tệp và app của bạn.

Ẩn danh203
Cowork

Tự động hoá báo cáo tuần bằng Claude ra sao?

Gộp số liệu → viết diễn giải → xuất nháp, rồi đóng gói cả chuỗi thành một câu lệnh lặp lại được cho tuần sau.

Ẩn danh167
Cowork

Giao việc nền cho Claude khi mình làm việc khác được không?

Được, với tác vụ không cần ngồi canh: giao rõ tiêu chí hoàn thành rồi theo dõi và nhận kết quả sau.

Ẩn danh78
Code

Claude Code khác gì gợi ý code trong IDE?

Nó đọc cả dự án, chạy lệnh và tự sửa qua nhiều bước — là một agent lập trình, không phải autocomplete.

Ẩn danh341
Code

Viết CLAUDE.md thế nào để agent hiểu codebase?

Ghi rõ quy ước, cấu trúc thư mục và ranh giới không được đụng — “sổ tay dự án” là chìa khoá cho kết quả ổn định.

Ẩn danh189
Code

Quy trình sửa lỗi với Claude Code gồm những bước nào?

Đưa log → agent lần theo dấu vết → đề xuất bản vá → kiểm chứng bằng test. Một vòng khép kín gọn gàng.

Ẩn danh156
Code

Dùng Claude review pull request có đáng không?

Rất đáng: một con mắt thứ hai không mệt mỏi, rà logic, bảo mật và hiệu năng trên từng thay đổi trước khi merge.

Ẩn danh112
Design

Làm sao dựng giao diện chạy được chỉ bằng mô tả?

Nói ra thứ bạn hình dung → nhận một Artifact bấm được → tinh chỉnh ngay trong cùng hội thoại. Vòng lặp thiết kế cực ngắn.

Ẩn danh298
Design

Brief Claude thế nào để có bộ slide chỉn chu?

Một thông điệp mỗi slide, cấu trúc mạch lạc; đưa dàn ý trước rồi để Claude soạn phần trình bày.

Ẩn danh134
Design

Prototype tương tác nhanh để thử ý tưởng?

Một bản mẫu bấm được trong vài phút giúp cả đội thấy ý tưởng và phản hồi sớm, trước khi vẽ kỹ hay code thật.

Ẩn danh92
Plugins & Skills

MCP là gì và tại sao nó quan trọng?

Một chuẩn mở để Claude nói chuyện với công cụ và dữ liệu bên ngoài — hiểu nó là mở khoá cả hệ sinh thái.

Ẩn danh256
Plugins & Skills

Cài MCP server đầu tiên nên bắt đầu từ đâu?

Filesystem và GitHub là hai server nền tảng để Claude đọc tệp và làm việc trên repo — lộ trình cài từng bước.

Ẩn danh118
Plugins & Skills

Agent Skills giải quyết vấn đề gì?

Đóng gói chỉ dẫn lặp lại thành một Skill — Claude tự gọi khi cần, khỏi phải dán lại đoạn hướng dẫn dài mỗi lần.

Ẩn danh97
Plugins & Skills

Gọi Claude API bằng Python bắt đầu ra sao?

Từ khoá API đến câu trả lời đầu tiên trong khoảng mười dòng code — nền tảng để xây mọi thứ tiếp theo.

Ẩn danh84

Đăng ký nhận bản tin

Chọn chủ đề bạn quan tâm — nhận bài viết chọn lọc và thông báo sự kiện gửi thẳng vào hộp thư.

Bảo mật thông tin. Hủy đăng ký bất cứ lúc nào. Chính sách bảo mật