Bỏ qua đến nội dung chính

Handling message blocks

📖 Nội dung bài học

Tóm tắt

Khi làm việc với chức năng tool của Claude, bạn sẽ gặp một loại cấu trúc phản hồi mới, khác với các phản hồi văn bản đơn giản mà bạn đã thấy trước đây. Thay vì chỉ nhận lại một khối văn bản duy nhất, Claude giờ đây có thể trả về các tin nhắn đa khối, chứa cả thông tin văn bản và tool use.

Thực hiện các cuộc gọi API hỗ trợ tool

Để cho phép Claude dùng tool, bạn cần bao gồm tham số tools trong cuộc gọi API của mình. Đây là cách cấu trúc yêu cầu:

messages = []
messages.append({
    "role": "user",
    "content": "What is the exact time, formatted as HH:MM:SS?"
})

response = client.messages.create(
    model=model,
    max_tokens=1000,
    messages=messages,
    tools=[get_current_datetime_schema],
)

Tham số tools nhận một danh sách các lược đồ JSON mô tả các hàm có sẵn mà Claude có thể gọi.

Tìm hiểu về tin nhắn đa khối

Khi Claude quyết định dùng tool, nó trả về một tin nhắn assistant với nhiều khối trong danh sách nội dung. Đây là một thay đổi đáng kể so với các phản hồi chỉ có văn bản đơn giản mà bạn đã làm việc trước đây.

Một tin nhắn đa khối thường chứa:

  • Khối văn bản - Văn bản dễ đọc giải thích những gì Claude đang làm (ví dụ: "Tôi có thể giúp bạn tìm ra thời gian hiện tại. Để tôi tìm thông tin đó cho bạn")
  • Khối ToolUse - Hướng dẫn cho code của bạn về tool nào cần gọi và các tham số nào cần dùng

Khối ToolUse bao gồm:

  • ID để theo dõi tool call
  • Tên của hàm cần gọi (ví dụ: "get_current_datetime")
  • Tham số đầu vào được định dạng dưới dạng từ điển
  • Chỉ định loại "tool_use"

Quản lý lịch sử hội thoại với tin nhắn đa khối

Hãy nhớ rằng Claude không lưu trữ lịch sử hội thoại - bạn cần quản lý nó theo cách thủ công. Khi làm việc với các phản hồi tool, bạn phải giữ nguyên toàn bộ cấu trúc nội dung, bao gồm tất cả các khối.

Đây là cách thêm một tin nhắn assistant đa khối vào lịch sử hội thoại của bạn một cách chính xác:

messages.append({
    "role": "assistant",
    "content": response.content
})

Thao tác này giữ lại cả khối văn bản và khối tool use, điều này rất quan trọng để duy trì ngữ cảnh hội thoại khi bạn thực hiện các cuộc gọi API tiếp theo.

Quy trình dùng tool hoàn chỉnh

Quy trình dùng tool tuân theo mẫu sau:

  1. Gửi tin nhắn người dùng với lược đồ tool đến Claude
  2. Nhận tin nhắn assistant với khối văn bản và khối tool use
  3. Trích xuất thông tin tool và thực thi hàm thực tế
  4. Gửi kết quả tool trở lại Claude cùng với lịch sử hội thoại đầy đủ
  5. Nhận phản hồi cuối cùng từ Claude

Mỗi bước yêu cầu xử lý cẩn thận cấu trúc tin nhắn để đảm bảo Claude có đầy đủ ngữ cảnh cần thiết để cung cấp các phản hồi chính xác.

1. User message + tool schema

2. Assistant: text block + tool_use block

3. Trích xuất tool info — chạy hàm thực tế

4. Gửi tool result + full history

5. Phản hồi cuối cùng từ Claude

Cập nhật các hàm trợ giúp

Nếu bạn đã dùng các hàm trợ giúp như add_user_message()add_assistant_message(), bạn sẽ cần cập nhật chúng để xử lý nội dung đa khối. Các phiên bản hiện tại có thể chỉ hỗ trợ các khối văn bản đơn lẻ, nhưng giờ đây chúng cần chứa các cấu trúc nội dung phức tạp hơn bao gồm tool use.

Việc xử lý tin nhắn đa khối này rất cần thiết để xây dựng các ứng dụng mạnh mẽ có thể tích hợp liền mạch các khả năng tool của Claude trong khi vẫn duy trì luồng hội thoại thích hợp.

🔁 Bài học liên quan

📚 Nguồn & ghi nhận

Bài học có hữu ích không?

Góp ý / Báo lỗiPhát hiện sai sót hoặc có ý tưởng cải thiện?