0Pricing
AI Agents · บทเรียน

การเลือกเครื่องมือขณะทำงาน

ให้โมเดลตัดสินใจว่าจะเรียกใช้เครื่องมือใด บังคับใช้เครื่องมือที่ระบุ หรือเปิดเผยเฉพาะเครื่องมือที่เกี่ยวข้องกับสถานะปัจจุบัน

การเลือกเครื่องมือขณะทำงาน เป็นบทเรียน 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 รายการ ให้ใช้ลำดับชั้น:

  1. เอเจนต์ภายนอกเลือก โดเมน (คำสั่งซื้อ / การเรียกเก็บเงิน / การจัดส่ง)
  2. เอเจนต์ภายในเลือกเครื่องมือเฉพาะภายในโดเมนนั้น

แต่ละการเรียกใช้จะเห็นเครื่องมือเพียงประมาณ 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 model

tool_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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การทำงานของการเรียกใช้ฟังก์ชัน
  2. การกำหนดโครงร่างเครื่องมือ (JSON Schema)
  3. การเลือกเครื่องมือขณะทำงาน
  4. การส่งผลลัพธ์กลับไปยังโมเดล
← กลับไปที่ AI Agents