การแบ่งงานแบบลำดับชั้น
เป้าหมายระดับบนสุด -> เป้าหมายย่อย -> เป้าหมายย่อยที่ย่อยลงไป — วิธีเดียวที่มนุษย์ (และเอเจนต์) ใช้จัดการงานขนาดใหญ่
การแบ่งงานแบบลำดับชั้น เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ
เมื่องานมีขนาดใหญ่ขึ้น
"ปรับโครงสร้างโมดูลการยืนยันตัวตน" ใหญ่เกินกว่าจะใช้พรอมต์เดียวได้ เอเจนต์ต้องแบ่งงานออกเป็นส่วนย่อยที่เล็กและจัดการได้
การแบ่งงานแบบลำดับชั้น (HTD) คือวิธีที่มนุษย์และเอเจนต์ใช้จัดการงานลักษณะนี้
ลำดับชั้น
- เป้าหมาย — วัตถุประสงค์ระดับสูง
- เป้าหมายย่อย — ระยะสำคัญต่าง ๆ
- งาน — ขั้นตอนที่เป็นรูปธรรม
- การกระทำ — การเรียกใช้เครื่องมือแต่ละครั้ง
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 documentationLLM-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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การแบ่งงานแบบลำดับชั้น
- กองเป้าหมายและการย้อนกลับ
- โมเดลโลกและการมองล่วงหน้า
- วงจรการไตร่ตรองและวิจารณ์ตนเอง