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

การกำหนดเส้นทางและการแตกแขนงตามเงื่อนไข

ใช้ add_conditional_edges เพื่อส่งงานตามสถานะ โดยเอเจนต์จะตัดสินใจว่าจะไปที่ใดต่อ

การกำหนดเส้นทางและการแตกแขนงตามเงื่อนไข เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

เหตุใดจึงต้องใช้เส้นเชื่อมแบบมีเงื่อนไข

เอเจนต์จริงต้องตัดสินใจ หลังจากขั้นตอนหนึ่ง ขั้นตอนถัดไปจะขึ้นอยู่กับสถานะปัจจุบัน เส้นเชื่อมแบบมีเงื่อนไขใช้เข้ารหัสตรรกะนี้

การเพิ่มเส้นเชื่อมแบบมีเงื่อนไข

มีองค์ประกอบสามอย่าง: โหนดต้นทาง ฟังก์ชันกำหนดเส้นทาง และแผนผังปลายทาง:

def route_after_planning(state: AgentState) -> str:
    if state.get('confidence', 0) > 0.8:
        return 'execute'
    return 'replan'

graph.add_conditional_edges(
    'planner',
    route_after_planning,
    {
        'execute': 'executor',
        'replan': 'planner'
    }
)

รูปแบบลายเซ็นของฟังก์ชันกำหนดเส้นทาง

ตัวกำหนดเส้นทางรับสถานะทั้งหมดและส่งคืนสตริง (หรือรายการสตริงสำหรับแขนงแบบขนาน)

ลูปกลับเข้าตัวเอง

เส้นเชื่อมสามารถวนกลับไปยังโหนดเดิมได้ ซึ่งใช้สำหรับการลองใหม่:

graph.add_conditional_edges(
    'validator',
    lambda s: 'retry' if not s['valid'] else 'done',
    {'retry': 'planner', 'done': END}
)

แขนงแบบขนาน

ส่งคืนรายการชื่อโหนดเพื่อเรียกใช้โหนดปลายทางหลายโหนดแบบขนาน:

def fan_out(state):
    return ['search_news', 'search_arxiv', 'search_github']

graph.add_conditional_edges('planner', fan_out)

การรวมแขนงแบบขนาน

แขนงแบบขนานจะกลับมารวมกันที่โหนดปลายทางร่วม สถานะที่รวมกันจะผสานผลลัพธ์ของแต่ละแขนง (ใช้ตัวลดรูปสำหรับรายการหรือพจนานุกรม)

การกำหนดเส้นทางตามการเรียกใช้เครื่องมือ

รูปแบบคลาสสิก: หลังจาก LLM ตอบกลับ ให้ตรวจสอบ tool_calls แล้วกำหนดเส้นทางตามนั้น:

def should_use_tool(state):
    last_msg = state['messages'][-1]
    if last_msg.tool_calls:
        return 'tools'
    return END

graph.add_conditional_edges('agent', should_use_tool, {'tools': 'tools', END: END})

การกำหนดเส้นทางหลายทางเลือก

ตรรกะ switch-case:

def route_by_intent(state):
    intent = classify(state['messages'][-1])
    return {'q': 'qa_agent', 'order': 'order_agent', 'support': 'support_agent'}.get(intent, 'fallback')

การกำหนดเส้นทางด้วยการเรียกใช้ LLM

คุณสามารถใช้ LLM เพื่อตัดสินใจว่าจะไปที่ใดต่อไป:

def llm_router(state):
    decision = llm.invoke(f'Route this to: search, calculate, or end?\nState: {state}').content.strip()
    return decision  # 'search' / 'calculate' / END

หลีกเลี่ยงลูปไม่สิ้นสุด

หากไม่มีตัวนับขั้นตอน เอเจนต์อาจวนลูปตลอดไป ให้เพิ่มตัวนับลงในสถานะ:

class State(TypedDict):
    step: int
    ...

def route(state):
    if state['step'] >= MAX_STEPS:
        return END
    return 'continue'

Increment Counter Reducer

def add(old: int, new: int) -> int:
    return old + new

class State(TypedDict):
    step: Annotated[int, add]

def any_node(state):
    return {'step': 1}   # increments by 1

การแสดงภาพแขนง

ไดอะแกรม Mermaid ของกราฟที่มีเส้นเชื่อมแบบมีเงื่อนไขจะแสดงรูปสี่เหลี่ยมข้าวหลามตัดสำหรับการตัดสินใจ ซึ่งมีประโยชน์สำหรับการทบทวน:

print(app.get_graph().draw_mermaid())

เส้นเชื่อมแบบมีเงื่อนไข

ฟังก์ชันกำหนดเส้นทางใน add_conditional_edges ส่งคืนอะไร

สรุปทบทวน

เส้นเชื่อมแบบมีเงื่อนไขคือวิธีที่เอเจนต์ใช้ตัดสินใจ เพิ่มตัวนับขั้นตอนเพื่อหลีกเลี่ยงลูป และแสดงภาพกราฟเพื่อให้ตรวจสอบได้ง่าย

คำถามที่พบบ่อย

บทเรียน “การกำหนดเส้นทางและการแตกแขนงตามเงื่อนไข” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การกำหนดเส้นทางและการแตกแขนงตามเงื่อนไข” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การกำหนดเส้นทางและการแตกแขนงตามเงื่อนไข”

ใช้ add_conditional_edges เพื่อส่งงานตามสถานะ โดยเอเจนต์จะตัดสินใจว่าจะไปที่ใดต่อ คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การกำหนดเส้นทางและการแตกแขนงตามเงื่อนไข” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม

ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. เหตุใดกราฟจึงเหนือกว่าสายงานแบบแบน
  2. โหนด ขอบ และสถานะ
  3. การกำหนดเส้นทางและการแตกแขนงตามเงื่อนไข
  4. การคงอยู่ของสถานะกราฟ (จุดตรวจสอบ)
← กลับไปที่ AI Agents