Build

Tool use

Cho model đề xuất lệnh gọi công cụ, còn ứng dụng giữ quyền thực thi

Khai báo tool bằng JSON Schema trong tools. Model có thể trả block tool_use; ứng dụng xác thực input, kiểm tra quyền, thực thi và gửi lại tool_result.

{
  "name": "lookup_order",
  "description": "Tra cứu trạng thái đơn hàng theo mã",
  "input_schema": {
    "type": "object",
    "properties": {"order_id": {"type": "string"}},
    "required": ["order_id"],
    "additionalProperties": false
  }
}

Vòng lặp an toàn

  1. Gửi message và danh sách tool tối thiểu.
  2. Chỉ chấp nhận tool name trong allowlist và input hợp schema.
  3. Kiểm tra quyền của người dùng, timeout, idempotency và giới hạn lượt.
  4. Yêu cầu xác nhận trước thao tác có tác động ngoài hệ thống.
  5. Trả kết quả bằng tool_result có tool_use_id tương ứng.
  6. Dừng khi stop_reason kết thúc hoặc chạm giới hạn.

Năng lực tool phụ thuộc model/định tuyến. Smoke test cưỡng bức tool ngày 13/09/2026 trả HTTP 400; hãy kiểm tra trên key/model của bạn và luôn có fallback không-tool trước khi ship.