Nếu bạn đang tìm kiếm cách khai thác tối đa sức mạnh của Claude thông qua HolySheep AI, bài viết này sẽ hướng dẫn bạn từng bước một. Chúng ta sẽ cùng nhau khám phá Tool Use - một tính năng cực kỳ mạnh mẽ cho phép Claude tương tác với thế giới bên ngoài. Bạn không cần bất kỳ kinh nghiệm nào về API hay lập trình chuyên sâu, chỉ cần đọc và làm theo.

Tool Use là gì và tại sao bạn cần nó?

Khi làm việc với Claude thông qua HolySheep AI, Claude có thể trả lời câu hỏi dựa trên kiến thức đã được huấn luyện. Tuy nhiên, Claude không thể truy cập internet, đọc file trên máy tính của bạn, hay thực hiện các phép tính phức tạp một cách đáng tin cậy. Đây chính là lúc Tool Use phát huy tác dụng.

Tool Use cho phép bạn định nghĩa các "công cụ" mà Claude có thể sử dụng khi cần. Claude sẽ quyết định khi nào cần gọi công cụ nào, gọi với tham số gì, và xử lý kết quả trả về. Điều này biến Claude từ một chatbot thông thường thành một trợ lý AI có khả năng hành động thực tế.

Lợi ích khi sử dụng Tool Use

Thiết lập môi trường và kết nối HolySheep AI

Trước khi bắt đầu, bạn cần có tài khoản HolySheep AI. Nền tảng này cung cấp API tương thích với Claude với chi phí tiết kiệm đến 85% so với các nhà cung cấp khác. Bạn có thể thanh toán qua WeChat hoặc Alipay, thời gian phản hồi dưới 50ms, và được nhận tín dụng miễn phí khi đăng ký.

Đăng ký và lấy API Key

Sau khi Đăng ký tại đây, hãy làm theo các bước sau để lấy API Key của bạn:

Gợi ý ảnh chụp màn hình: Chụp ảnh giao diện trang quản lý API Keys với vùng API Key được làm mờ để bảo mật

Cài đặt thư viện cần thiết

Chúng ta sẽ sử dụng Python với thư viện requests để giao tiếp với API. Nếu bạn chưa cài đặt Python, hãy tải từ python.org và cài đặt phiên bản 3.8 trở lên.

# Cài đặt thư viện cần thiết
pip install requests

Kiểm tra cài đặt thành công

python -c "import requests; print('Requests đã được cài đặt!')"

Cấu trúc tham số tools trong Claude

Tham số tools là một mảng (array) chứa định nghĩa của các công cụ mà Claude được phép sử dụng. Mỗi công cụ có cấu trúc gồm các trường quan trọng:

1. name - Tên công cụ

Đây là tên duy nhất để nhận diện công cụ. Claude sẽ dùng tên này để quyết định gọi công cụ nào. Tên nên ngắn gọn, rõ ràng và sử dụng underscore thay vì khoảng trắng.

2. description - Mô tả công cụ

Đây là phần quan trọng nhất giúp Claude hiểu khi nào nên sử dụng công cụ. Mô tả càng chi tiết và rõ ràng, Claude càng đưa ra quyết định chính xác. Hãy mô tả:

3. input_schema - Định nghĩa tham số đầu vào

Đây là JSON Schema định nghĩa các tham số mà công cụ cần để hoạt động. Claude sẽ tự động sinh giá trị cho các tham số này dựa trên yêu cầu của người dùng.

# Ví dụ cấu trúc một công cụ đơn giản
{
    "name": "calculate_bmi",
    "description": "Tính chỉ số BMI từ cân nặng (kg) và chiều cao (cm). Trả về giá trị BMI và phân loại (thiếu cân/bình thường/thừa cân/béo phì).",
    "input_schema": {
        "type": "object",
        "properties": {
            "weight_kg": {
                "type": "number",
                "description": "Cân nặng tính bằng kilogram"
            },
            "height_cm": {
                "type": "number",
                "description": "Chiều cao tính bằng centimet"
            }
        },
        "required": ["weight_kg", "height_cm"]
    }
}

Gọi API Claude với Tool Use qua HolySheep AI

Bây giờ chúng ta sẽ viết code để gọi Claude với Tool Use. Điều quan trọng cần nhớ là base_url phải là https://api.holysheep.ai/v1.

import requests
import json

Cấu hình kết nối HolySheep AI

BASE_URL = "https://api.holysheep.ai/v1" API_KEY = "YOUR_HOLYSHEEP_API_KEY" # Thay thế bằng API Key thật của bạn

Định nghĩa công cụ tính BMI

tools = [ { "name": "calculate_bmi", "description": "Tính chỉ số BMI từ cân nặng (kg) và chiều cao (cm). Trả về giá trị BMI và phân loại cân nặng theo tiêu chuẩn WHO.", "input_schema": { "type": "object", "properties": { "weight_kg": { "type": "number", "description": "Cân nặng tính bằng kilogram" }, "height_cm": { "type": "number", "description": "Chiều cao tính bằng centimet" } }, "required": ["weight_kg", "height_cm"] } } ]

Hàm gọi API Claude

def call_claude(messages, tools): headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } payload = { "model": "claude-sonnet-4-20250514", "messages": messages, "tools": tools, "max_tokens": 1024 } response = requests.post( f"{BASE_URL}/chat/completions", headers=headers, json=payload ) return response.json()

Tin nhắn từ người dùng

messages = [ {"role": "user", "content": "Tôi nặng 75kg và cao 175cm. BMI của tôi là bao nhiêu?"} ]

Gọi Claude

result = call_claude(messages, tools) print(json.dumps(result, indent=2, ensure_ascii=False))

Gợi ý ảnh chụp màn hình: Chụp kết quả trả về từ Claude, hiển thị rõ phần quyết định gọi tool_use

Xử lý kết quả và gọi công cụ thực tế

Khi Claude quyết định cần gọi công cụ, response sẽ chứa một block đặc biệt gọi là tool_calls. Bạn cần xử lý block này, thực thi công cụ, và gửi kết quả trở lại cho Claude.

import requests
import json

BASE_URL = "https://api.holysheep.ai/v1"
API_KEY = "YOUR_HOLYSHEEP_API_KEY"

Định nghĩa công cụ

tools = [ { "name": "calculate_bmi", "description": "Tính chỉ số BMI từ cân nặng (kg) và chiều cao (cm).", "input_schema": { "type": "object", "properties": { "weight_kg": {"type": "number"}, "height_cm": {"type": "number"} }, "required": ["weight_kg", "height_cm"] } } ]

Hàm thực thi công cụ BMI

def execute_calculate_bmi(params): weight = params["weight_kg"] height_m = params["height_cm"] / 100 bmi = weight / (height_m ** 2) # Phân loại theo WHO if bmi < 18.5: classification = "Thiếu cân" elif bmi < 25: classification = "Bình thường" elif bmi < 30: classification = "Thừa cân" else: classification = "Béo phì" return { "bmi": round(bmi, 1), "classification": classification }

Hàm xử lý tool calls

def handle_tool_calls(tool_calls): results = [] for tool_call in tool_calls: tool_name = tool_call["function"]["name"] arguments = json.loads(tool_call["function"]["arguments"]) # Thực thi công cụ tương ứng if tool_name == "calculate_bmi": result = execute_calculate_bmi(arguments) else: result = {"error": f"Không tìm thấy công cụ: {tool_name}"} results.append({ "tool_call_id": tool_call["id"], "role": "tool", "name": tool_name, "content": json.dumps(result, ensure_ascii=False) }) return results

Hàm hoàn chỉnh để gọi Claude với xử lý tool

def chat_with_tools(user_message): messages = [{"role": "user", "content": user_message}] while True: headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } payload = { "model": "claude-sonnet-4-20250514", "messages": messages, "tools": tools, "max_tokens": 1024 } response = requests.post( f"{BASE_URL}/chat/completions", headers=headers, json=payload ) response_data = response.json() assistant_message = response_data["choices"][0]["message"] # Thêm tin nhắn của assistant vào danh sách messages.append(assistant_message) # Kiểm tra nếu có tool_calls if "tool_calls" in assistant_message: # Xử lý và thêm kết quả tool_results = handle_tool_calls(assistant_message["tool_calls"]) messages.extend(tool_results) # Tiếp tục vòng lặp để Claude xử lý kết