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

การแบ่งงานแบบลำดับชั้น

เป้าหมายระดับบนสุด -> เป้าหมายย่อย -> เป้าหมายย่อยที่ย่อยลงไป — วิธีเดียวที่มนุษย์ (และเอเจนต์) ใช้จัดการงานขนาดใหญ่

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

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

เมื่องานมีขนาดใหญ่ขึ้น

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

การแบ่งงานแบบลำดับชั้น (HTD) คือวิธีที่มนุษย์และเอเจนต์ใช้จัดการงานลักษณะนี้

ลำดับชั้น

  1. เป้าหมาย — วัตถุประสงค์ระดับสูง
  2. เป้าหมายย่อย — ระยะสำคัญต่าง ๆ
  3. งาน — ขั้นตอนที่เป็นรูปธรรม
  4. การกระทำ — การเรียกใช้เครื่องมือแต่ละครั้ง

Example Decomposition

Goal: Refactor authentication module to use OAuth.

  Sub-goal 1: Set up OAuth dependencies
    Task: Add dependency to requirements.txt
    Task: Configure OAuth client

  Sub-goal 2: Replace existing auth flow
    Task: Replace login endpoint
    Task: Replace session middleware
    Task: Update tests

  Sub-goal 3: Migration and rollout
    Task: Write migration script
    Task: Update documentation

LLM-Driven Decomposition

DECOMPOSE_PROMPT = '''
Decompose this goal into 3-6 sub-goals. For each sub-goal, list 2-5 concrete tasks.
Return JSON: {sub_goals: [{name, tasks: [str]}]}

Goal: {goal}
'''

การแบ่งงานแบบเรียกซ้ำ

หากงานยังใหญ่เกินไป ให้แบ่ง IT ออกเป็นส่วนย่อยเพิ่มเติม หยุดเมื่อหนึ่งงานสามารถทำได้ภายในขั้นตอนเดียวของ LLM (ประมาณ 3-5 ครั้งของการเรียกใช้เครื่องมือ)

เมื่อใดควรหยุดแบ่งงาน

หลักเกณฑ์โดยประมาณ:

  • คำอธิบายงานอยู่ในประโยคเดียวได้
  • งานมีเกณฑ์การยอมรับที่ชัดเจน
  • งานเกี่ยวข้องกับไฟล์จำนวนน้อย
  • งานตรวจสอบได้ด้วยการทดสอบเฉพาะรายการ

โครงสร้างต้นไม้

แสดงการแบ่งงานเป็นต้นไม้ แต่ละโหนดคืองานที่มี: คำอธิบาย สถานะ (รอดำเนินการ/กำลังทำงาน/เสร็จสิ้น/ล้มเหลว) และโหนดย่อย:

@dataclass
class TaskNode:
    description: str
    status: Literal['pending', 'running', 'done', 'failed']
    children: list['TaskNode']
    result: str | None = None

ดำเนินการแบบเจาะลึกก่อน

เดินผ่านต้นไม้แบบเจาะลึกก่อน ทำใบแต่ละใบให้เสร็จก่อนดำเนินการต่อ:

def execute(node):
    if node.children:
        for child in node.children:
            execute(child)
    else:
        node.status = 'running'
        try:
            node.result = run_leaf(node)
            node.status = 'done'
        except Exception as e:
            node.status = 'failed'

รวบรวมผลลัพธ์

หลังจากโหนดย่อยทำงานเสร็จ ให้ aggregate ผลลัพธ์ที่โหนดแม่:

def aggregate(parent):
    summaries = [c.result for c in parent.children if c.status == 'done']
    parent.result = llm.invoke(f'Summarise these sub-task results: {summaries}').content

แสดงต้นไม้ให้ผู้ใช้เห็น

สำหรับเอเจนต์ที่ทำงานเป็นเวลานาน ให้แสดงต้นไม้พร้อมการอัปเดตสถานะแบบสดแก่ผู้ใช้ เพื่อสร้างความไว้วางใจและความโปร่งใส:

[x] Add OAuth dependency
[x] Configure OAuth client
[~] Replace login endpoint   <-- in progress
[ ] Replace session middleware
[ ] Update tests

อนุญาตให้แก้ไขต้นไม้

ผู้ใช้ขั้นสูงอาจต้องการข้าม เพิ่ม หรือจัดลำดับงานใหม่ ควรรองรับการแก้ไขต้นไม้แผนงานด้วยตนเอง

วางแผนใหม่เมื่อเกิดความล้มเหลว

หากงานย่อยล้มเหลวซ้ำ ๆ ให้ย้อนกลับไปยังโหนดแม่ แล้วแบ่งงานใหม่:

if failed_count(node) > 2:
    parent = node.parent
    parent.children = llm_replan(parent, failure_context=node.last_error)

ต้นทุนของการแบ่งงาน

การแบ่งงานแต่ละครั้งคือการเรียกใช้ LLM หนึ่งครั้ง การแคชช่วยได้ เพราะเป้าหมายเดิมจะได้การแบ่งงานเริ่มต้นแบบเดิม

เมื่อใดควรหยุดแบ่งย่อย

เอเจนต์ควรหยุดแบ่งงานเมื่อใด

ทบทวน

เป้าหมาย -> เป้าหมายย่อย -> งาน -> การกระทำ สร้างต้นไม้ ดำเนินการแบบเจาะลึกก่อน รวบรวมผลลัพธ์ และวางแผนใหม่เมื่อเกิดความล้มเหลว นี่คือรูปแบบมาตรฐานสำหรับงานที่มีระยะการทำงานยาว

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

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

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

คุณจะเรียนรู้อะไรในบทเรียน “การแบ่งงานแบบลำดับชั้น”

เป้าหมายระดับบนสุด -> เป้าหมายย่อย -> เป้าหมายย่อยที่ย่อยลงไป — วิธีเดียวที่มนุษย์ (และเอเจนต์) ใช้จัดการงานขนาดใหญ่ คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “การแบ่งงานแบบลำดับชั้น” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การแบ่งงานแบบลำดับชั้น
  2. กองเป้าหมายและการย้อนกลับ
  3. โมเดลโลกและการมองล่วงหน้า
  4. วงจรการไตร่ตรองและวิจารณ์ตนเอง
← กลับไปที่ AI Agents