การเลือกเครื่องมือขณะทำงาน
ให้โมเดลตัดสินใจว่าจะเรียกใช้เครื่องมือใด บังคับใช้เครื่องมือที่ระบุ หรือเปิดเผยเฉพาะเครื่องมือที่เกี่ยวข้องกับสถานะปัจจุบัน
การเลือกเครื่องมือขณะทำงาน เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
ให้โมเดลเป็นผู้เลือก
โดยค่าเริ่มต้น คุณจะส่งรายการเครื่องมือให้โมเดล แล้วโมเดลจะตัดสินใจว่าจะเรียกใช้รายการใด (หรือไม่เรียกใช้เลย) นี่คือโหมดมาตรฐานและทำงานได้ดีเมื่อ:
- คุณมีเครื่องมือ 5-15 รายการ
- เครื่องมือมีคำอธิบายที่ชัดเจนและแตกต่างกัน
- เครื่องมือที่เหมาะสมขึ้นอยู่กับอินพุตของผู้ใช้
tool_choice: auto
ค่าเริ่มต้น — โมเดลเป็นผู้ตัดสินใจ:
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=messages,
tools=tools,
tool_choice='auto', # default; can be omitted
)tool_choice: required
บังคับให้โมเดลเรียกใช้เครื่องมือ SOME รายการ (รายการใดก็ได้):
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=messages,
tools=tools,
tool_choice='required',
)
# Model must return a tool_call, never a free-form answerการบังคับใช้เครื่องมือเฉพาะรายการ
หากต้องการบังคับใช้เครื่องมือรายการใดรายการหนึ่ง ให้ระบุชื่อเครื่องมือนั้น:
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=messages,
tools=tools,
tool_choice={'type': 'function', 'function': {'name': 'extract_entities'}},
)tool_choice: none
ปิดใช้งานเครื่องมือสำหรับการทำงานหนึ่งรอบ:
# After a tool result, you might want a pure text response:
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=messages,
tools=tools,
tool_choice='none',
)ตัดรายการเครื่องมือตามบริบท
โมเดลจะเลือกได้แย่ลงเมื่อมีชุดเครื่องมือขนาดใหญ่ เปิดเผยเฉพาะเครื่องมือที่เกี่ยวข้องกับสถานะปัจจุบัน:
def relevant_tools(state):
if state == 'authenticated':
return [search_orders, refund_order, escalate]
elif state == 'guest':
return [search_products, contact_support]
return []การเลือกเครื่องมือสองขั้นตอน
สำหรับเครื่องมือมากกว่า 50 รายการ ให้ใช้ลำดับชั้น:
- เอเจนต์ภายนอกเลือก โดเมน (คำสั่งซื้อ / การเรียกเก็บเงิน / การจัดส่ง)
- เอเจนต์ภายในเลือกเครื่องมือเฉพาะภายในโดเมนนั้น
แต่ละการเรียกใช้จะเห็นเครื่องมือเพียงประมาณ 10 รายการ
การค้นหาเวกเตอร์เหนือเครื่องมือ
สร้างเวกเตอร์แทนคำอธิบายของเครื่องมือแต่ละรายการ ขณะทำงานให้สร้างเวกเตอร์แทนคำค้นหาของผู้ใช้ แล้วดึงเครื่องมืออันดับต้น ๆ จำนวน K รายการมาเปิดเผย:
from openai import OpenAI
import numpy as np
query_emb = embed(user_query)
sims = [cosine(query_emb, tool.emb) for tool in all_tools]
top = [t for _, t in sorted(zip(sims, all_tools), reverse=True)[:10]]
# Send only these 10 to the modeltool_choice ของ Anthropic
Anthropic ใช้แนวคิดเดียวกันแต่มีรูปแบบแตกต่างกัน:
tool_choice = {'type': 'auto'}
print("auto:", tool_choice)
tool_choice = {'type': 'any'} # required
print("any (required):", tool_choice)
tool_choice = {'type': 'tool', 'name': 'get_weather'} # specific
print("specific tool:", tool_choice)
tool_choice = {'type': 'none'}
print("none:", tool_choice)
เหตุใดจึงต้องบังคับใช้เครื่องมือเฉพาะรายการ
มีประโยชน์เมื่อ:
- การตรวจสอบความถูกต้อง — แยกฟิลด์แบบมีโครงสร้างเฉพาะหนึ่งรายการ
- การกำหนดเส้นทาง — ผู้ใช้คลิก "คืนเงิน" จึงเรียกใช้ refund_order
- เอาต์พุตแบบมีโครงสร้าง — ใช้การเรียกใช้เครื่องมือเพื่อรับ JSON
รายการเครื่องมือว่าง
หากคุณส่ง tools=[] แต่กำหนด tool_choice="required" คุณจะได้รับข้อผิดพลาด ตรวจสอบรายการเครื่องมือทุกครั้งก่อนส่ง
การบังคับเอาต์พุต JSON
เหตุใดคุณจึงอาจบังคับใช้การเรียกใช้เครื่องมือเฉพาะรายการ
สรุปทบทวน
ใช้ auto ในกรณีส่วนใหญ่ บังคับใช้เครื่องมือสำหรับการกำหนดเส้นทางและการดึงข้อมูลแบบมีโครงสร้าง ตัดรายการเครื่องมือตามสถานะเพื่อให้การเลือกมีความแม่นยำ
คำถามที่พบบ่อย
บทเรียน “การเลือกเครื่องมือขณะทำงาน” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การเลือกเครื่องมือขณะทำงาน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การเลือกเครื่องมือขณะทำงาน”
ให้โมเดลตัดสินใจว่าจะเรียกใช้เครื่องมือใด บังคับใช้เครื่องมือที่ระบุ หรือเปิดเผยเฉพาะเครื่องมือที่เกี่ยวข้องกับสถานะปัจจุบัน คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การเลือกเครื่องมือขณะทำงาน” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม
ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การทำงานของการเรียกใช้ฟังก์ชัน
- การกำหนดโครงร่างเครื่องมือ (JSON Schema)
- การเลือกเครื่องมือขณะทำงาน
- การส่งผลลัพธ์กลับไปยังโมเดล