Dùng tham số tool_choice (Anthropic/OpenAI) hay function_calling_config.mode (Gemini). Ba chế độ thường gặp:
- auto (mặc định): model tự quyết định gọi tool hay trả lời thẳng.
- any / required: bắt buộc gọi một tool nào đó, không được trả lời bằng văn bản.
- chỉ định tên tool: ép gọi đúng một tool cụ thể — hữu ích khi bạn dùng tool như một cách lấy structured output.
- none: cấm gọi tool ở lượt này.
python
response = client.messages.create(
model=MODEL,
tools=[get_weather, search_orders],
tool_choice={"type": "tool", "name": "get_weather"}, # force this exact tool
messages=messages,
)Parallel tool call: trong một lượt, model có thể trả về nhiều tool call cùng lúc khi chúng độc lập (vd tra thời tiết ở 3 thành phố). Bạn chạy chúng song song và trả về đủ kết quả cho mọi call_id trước khi gọi model lượt tiếp theo — thiếu một kết quả thì API báo lỗi.
Hai lưu ý: ép required liên tục sẽ khiến model gọi tool cả khi câu hỏi không cần, nên chỉ bật cho những luồng đã biết chắc; và tool có tác dụng phụ thì không nên để chạy song song nếu chúng đụng cùng một bản ghi.