ข้าม​ไป​ยัง​เนื้อหา

Loop Engineering: ออกแบบ​วง​วน​ให้ AI agent ทำงาน​เอง​จน​จบ

เกี่ยว​กับ​บทความ​นี้

บทความ​นี้​เป็น บท​เรียบเรียง​ของ Kaen ไม่ใช่​การ​แปล​จาก​ต้นฉบับ​เดียว เพราะ “loop engineering” เป็น​ศัพท์​ที่​เพิ่ง​ก่อ​ตัว​ใน​ปี 2026 และ​ยัง​ไม่มี​นิยาม​ที่​ตกผลึก​ใน​ที่​เดียว

เนื้อหา​จึง​สังเคราะห์​จาก​หลาย​แหล่ง โดย​อ้างอิง​หลัก​จาก “Loop, Harness, Context Engineering: The Terms Explained” ของ Benjamin Font Pera (Service Lead GenAI, codecentric — 5 กรกฎาคม 2026)

วลี​เด่น​ที่​ยก​มา​ตรง ๆ ให้​เครดิต​เจ้าของ ได้แก่ Boris Cherny (Head of Claude Code, Anthropic) และ Addy Osmani (Engineering Lead, Google Chrome)

เรียบเรียง​เพื่อ​การ​ศึกษา — ไดอะแกรม​วาด​ใหม่​เป็น Mermaid (label ของ node เป็น​ภาษา​อังกฤษ) ศัพท์​เทคนิค​คง​ไว้​เป็น​ภาษา​อังกฤษ​พร้อม​คำ​อธิบาย​ไทย​เมื่อ​พบ​ครั้ง​แรก ลิขสิทธิ์​ของ​ถ้อยคำ​และ​แนวคิด​ต้นฉบับ​เป็น​ของ​ผู้​เขียน​แต่ละ​ท่าน

ถ้า​ไล่​ดู​วิวัฒนาการ​ของ​การ​ทำงาน​กับ AI agent จะ​เห็น​ว่า​มัน​ไต่​ขึ้น​เป็น​ชั้น ๆ

  • เริ่ม​จาก prompt engineering (เขียน​คำ​สั่ง​เดียว​ให้​ดี)
  • ขยับ​ไป context engineering (ดูแล​ว่า​จะ​ให้​อะไร​อยู่​ใน context ของ model ใน​แต่ละ​ก้าว)
  • แล้ว​ต่อ​ไป harness engineering (โครง​ครอบ​รอบ model — tools, skills, hooks, sensors ที่​ล้อม model ไว้)
  • และ​ล่าสุด​คือ​ชั้น​บน​สุด: loop engineering

จุด​เปลี่ยน​ที่​ทำให้ loop engineering กลาย​เป็น​ทักษะ​แยก​ออก​มา สรุป​ได้​ด้วย​ประโยค​เดียว​ของ Boris Cherny:

“I don’t prompt Claude anymore. I write loops that prompt Claude.” — Boris Cherny, Head of Claude Code (Anthropic)

พูด​เป็น​ภาษา​คน: คุณ​ไม่ prompt agent อีก​ต่อ​ไป — คุณ​ออกแบบ​ระบบ​ที่ prompt agent แทน

เป้าหมาย​ไม่ใช่​การ​เค้น​เขียน​คำ​สั่ง​ที่​สมบูรณ์​แบบ​ต่อ​หนึ่ง​เทิร์นอีก​แล้ว แต่​คือ​การ​สร้าง “เครื่องจักร” ที่​กระตุ้น agent ซ้ำ ๆ อ่าน​ผลลัพธ์ ตัดสิน​ว่า​เสร็จ​หรือ​ยัง แล้ว​ป้อน​งาน​ต่อ​ให้​ตัวเอง จนกว่า​จะ​ถึง​เงื่อนไข​จบ โดย​แทบ​ไม่​ต้อง​มี​มนุษย์​คอย​พิมพ์​สั่ง​ที​ละ​รอบ

Loop engineering คือ​การ​ออกแบบ ระบบ​ที่​กระตุ้น agent ซ้ำ ๆ ตรวจ​ผล​ของ​แต่ละ​รอบ แล้ว​ป้อน​ตัวเอง​ต่อ โดย​ไม่​ต้อง​มี​มนุษย์​สั่ง​ที​ละ​เทิร์น มัน​ไม่ใช่​ตัว model และ​ไม่ใช่​ตัว agent เดี่ยว ๆ แต่​เป็น เครื่องจักร​รอบ​นอก ที่​ตัดสิน​ใจ​ว่า​จะ​เรียก agent เมื่อไร กี่​ตัว ให้​ทำ​อะไร ตรวจ​อย่างไร และ​เมื่อไร​ควร​หยุด

เส้น​แบ่ง​สำคัญ​คือ ชั้น​ที่​อยู่​ข้าง​ล่าง (context, harness) ตอบ​คำถาม​ว่า “หนึ่ง​รอบ​ของ agent จะ​ทำงาน​ได้​ดี​แค่​ไหน” ส่วน loop engineering ตอบ​คำถาม​ว่า “เรา​จะ​ร้อย​หลาย ๆ รอบ​เข้า​ด้วย​กัน​ให้​มัน​เดิน​ไป​เอง​จน​จบ​งาน​ได้​อย่างไร”

ต้นฉบับ​ของ Font Pera สรุป​สั้น ๆ ว่า loop คือ “ระบบ​ที่​กระตุ้น agent ซ้ำ ๆ แตก​ลูก agent มา​ช่วย ตรวจ​ผล และ​หล่อเลี้ยง​ตัวเอง​ต่อ​ไป​โดย​ไม่​ต้อง​มี​มนุษย์​ป้อนที​ละ​เทิร์น”

อีก​มุม​ที่​ช่วย​ให้​เห็น​ภาพ​คือ​สมการ​ที่ Font Pera ใช้​กับ harness ว่า Agent = Model + Tool Harness + User Harness — ตัว agent หนึ่ง​ตัว​คือ model ที่​ถูก​ห่อ​ด้วย harness สอง​ด้าน loop engineering คือ​ชั้น​ที่​เอา “agent สำเร็จรูป” ตัว​นี้​ไป​วาง​ใน​เครื่องจักร​ที่​เรียก​ใช้​มัน​ซ้ำ ๆ

ดังนั้น​คุณภาพ​ของ agent แต่ละ​ตัว​จึง​กลาย​เป็น “วัตถุดิบ” ที่ loop เอา​ไป​ทำซ้ำ ไม่ใช่​สิ่ง​ที่ loop จะ​ไป​เสก​ให้​ดี​ขึ้น​ได้​เอง

หัวใจ​ที่​หมุน​อยู่​ข้าง​ใน​ทุก loop คือ​วงจร​เล็ก ๆ ที่​ชื่อ​ว่า ReAct loop (reason + act)

แนวคิด​นี้​มา​จาก​งาน​วิจัย​ที่​เสนอ​ให้ model สลับ​ระหว่าง​การ​ให้​เหตุผล (reasoning trace) กับ​การ​ลงมือ​ทำ (action) ไป​ด้วย​กัน แทนที่​จะ​คิด​จบ​ทั้ง​ก้อน​แล้ว​ค่อย​ทำ และ​มัน​คือ​เครื่องยนต์​เดียว​กับ​ที่​ขับ​เคลื่อน​เครื่องมือ​อย่าง Claude Code และ Cursor อยู่​ทุก​วัน​นี้

agent จะ​วน​อยู่​ใน​สี่​จังหวะ: reason (คิด​ว่า​ก้าว​ต่อ​ไป​ควร​ทำ​อะไร) → act (ลงมือ​ด้วย​การ​เรียก tool) → observe (อ่าน​ผล​ที่​กลับ​มา) → แล้ว​ถาม​ตัวเอง​ว่า ถึง​เงื่อนไข​จบ​หรือ​ยัง ถ้า​ยัง ก็​วน​กลับ​ไป reason ใหม่​ด้วย​ข้อมูล​ที่​เพิ่ง​ได้​มา

flowchart LR
  Reason["Reason (plan next step)"] --> Act["Act (call a tool)"]
  Act --> Observe["Observe (read the result)"]
  Observe --> Decision{"Done?"}
  Decision -->|No| Reason
  Decision -->|Yes| Stop["Stop and hand back"]

ภาพ 1 — วงจร​แกน reason → act → observe ของ ReAct loop ทุก loop engineering ที่​ซับซ้อน​กว่า​นี้​ล้วน​สร้าง​ทับ​วงจร​นี้ จุด​ที่​คน​มัก​ออกแบบ​พลาด​ที่สุด​คือ​กล่อง Done? ตรง​กลาง เพราะ​ถ้า​เงื่อนไข​จบ​ไม่​ชัด agent ก็​จะ​วน​ไม่รู้​จบ หรือ​หยุด​ก่อน​งาน​เสร็จ

สังเกต​ว่า​ตัว​วงจร​นี้​ไม่มี​อะไร​ใหม่ — สิ่ง​ที่ loop engineering เพิ่ม​เข้า​มา​คือ​การ ออกแบบ​สิ่ง​ที่​อยู่​รอบ​วงจร: อะไร​จุด​ชนวน​ให้​มัน​เริ่ม ใคร​เป็น​คน​ตรวจ observe ว่า​ถูก​จริง และ​กล่อง Done? ตัดสิน​ด้วย​เกณฑ์​อะไร

Font Pera ชำแหละ​สาม​คำ — context, harness, loop — และ​เน้น​ว่า​มัน ไม่ใช่​ทาง​เลือก​แทน​กัน แต่​เป็น​ชั้น​ที่​ซ้อน​ทับ​กัน โดย​ชั้น​บน​สร้าง​อยู่​บน​ชั้น​ล่าง​เสมอ ใน​บท​เรียบเรียง​นี้​เรา​วาง prompt engineering เป็น​ชั้น​ฐาน​ที่​รองรับ​ทั้งหมด​ไว้​อีก​ชั้น จึง​เห็น​เป็น​สี่​ชั้น​ดัง​ภาพ

flowchart TB
  subgraph Stack["Four layers of agent engineering"]
    direction TB
    L4["Loop - run autonomously"]
    L3["Harness - guides and sensors"]
    L2["Context - right tokens per step"]
    L1["Prompt - one good instruction"]
    L4 --> L3 --> L2 --> L1
  end

ภาพ 2 — สี่​ชั้น: prompt เป็น​ฐาน context ดูแล​ว่า​จะ​ป้อน​อะไร​ต่อ model harness ล้อม​ด้วย guides (context/rules ที่​ให้​ก่อน​สร้าง code) และ sensors (การ​ตรวจ​หลัง​สร้าง​เพื่อ​ให้​แก้ตัวเอง​ได้) และ loop คือ​ชั้น​บน​สุด​ที่​ทำให้​ทั้ง​กอง​นี้​เดิน​เอง​ซ้ำ ๆ

หลักการ​ที่​ต้อง​จำ​ให้​ขึ้นใจ​คือ แต่ละ​ชั้น​ขยาย​จุด​อ่อนของ​ชั้น​ที่​อยู่​ข้าง​ล่าง loop ไม่​ได้ “แก้” harness ที่​ห่วย​หรือ context ที่​มั่ว มัน​แค่ ทำซ้ำ สิ่ง​ที่​อยู่​ข้าง​ล่าง ดังนั้น​ถ้า​ข้าง​ล่าง​ดี loop จะ​ขยาย​ผล​ดี​ทวีคูณ แต่​ถ้า​ข้าง​ล่าง​พัง loop ก็​ยิ่ง​พัง​เร็ว​และ​พัง​หลาย​รอบ​ขึ้น

loop คือ​ตัว​ขยาย ไม่ใช่​ตัว​แก้

Font Pera เตือน​ว่า loop ที่​วน​ทับ context ห่วย ๆ หรือ harness ที่​ตรวจ​งาน​ไม่​เป็น จะ คูณ​ปัญหา​ให้​ใหญ่​ขึ้น ไม่ใช่​ลด​ปัญหา​ลง ถ้า harness ของ​คุณ​ดี loop จะ​ยิ่ง​ได้​ผล ถ้า harness แย่ loop จะ​ยิ่ง​พัง​เร็ว — จึง​ต้อง​ลงทุน​กับ harness engineering และ context engineering ให้​แน่น​ก่อน แล้ว​ค่อย​ขึ้น​มา​เล่น​ชั้น loop

การ​เขียน loop ที่​ดี​คือ​การ​ตอบ​คำถาม​ห้า​ข้อ​ให้​ครบ ไม่ใช่​แค่ “สั่ง​ให้ agent วน ๆ ไป”:

  • Trigger — อะไร​จุด​ชนวน​ให้ loop เริ่ม (คน​กด​ปุ่ม, commit ใหม่, cron, หรือ agent ตัว​อื่น​เรียก)
  • Topology — โครง​ว่า​จะ​ใช้ agent เดี่ยว, หลาย​ตัว​ขนาน​กัน, หรือ agent หลัก​แตก sub-agent ไป​ทำงาน​ย่อย​แล้ว​สรุป​กลับ
  • Verifier — ใคร (หรือ​อะไร) เป็น​คน​ตัดสิน​ว่า​ผล​ของ​แต่ละ​รอบ “ถูก” จริง เช่น test suite, linter, type checker หรือ agent ตรวจสอบ​แยก​อีก​ตัว
  • Stop rule / termination condition — เกณฑ์​ที่​บอกว่า “เสร็จ​แล้ว” อย่าง​ชัดเจน ไม่​งั้น loop จะ​วน​ไม่​จบ​หรือ​เผา token ทิ้ง​เปล่า ๆ
  • การ​แยก recoverable error จาก hard blocker — ความ​ผิดพลาด​แบบ​ไหน​ที่ agent ลอง​ใหม่​เอง​ได้ (เช่น test แดง แก้​แล้ว​รัน​ซ้ำ) กับ​แบบ​ไหน​ที่​ต้อง​หยุด​แล้ว​เรียก​มนุษย์ (เช่น สิทธิ์​ไม่​พอ, requirement กำกวม)
flowchart LR
  Trigger["Trigger (what starts the run)"] --> Topology["Topology (single / multi / sub-agents)"]
  Topology --> Work["Reason - Act - Observe"]
  Work --> Verifier["Verifier (is this correct?)"]
  Verifier --> Stop{"Stop rule met?"}
  Stop -->|"Recoverable error"| Topology
  Stop -->|"Hard blocker"| Halt["Halt and ask a human"]
  Stop -->|"Done"| Finish["Terminate"]

ภาพ 3 — กายวิภาค​ของ loop ที่​ออกแบบ​มา​ดี: ผล​ของ verifier ป้อน​เข้า​กล่อง stop rule ซึ่ง​แตก​ทาง​เป็น​สาม​กรณี — วน​ต่อ (recoverable), หยุด​ถาม​คน (hard blocker), หรือ​จบ (done) loop ที่​ขาด​เส้น “hard blocker → ask a human” คือ loop ที่​จะ​ดันทุรัง​ทำ​ผิด​ต่อ​ไป​เรื่อย ๆ

สอง​ข้อ​ที่​ยาก​ที่สุด​ใน​รายการ​นี้​คือ verifier กับ stop rule และ​มัก​พัง​ด้วย​กัน กับดัก​คลาสสิก​คือ​ปล่อย​ให้ agent ตัว​ที่​ทำงาน​เป็น​คน “ตัดสิน​เอง” ว่า​งาน​เสร็จ — ซึ่ง​ก็​เหมือน​ให้​นักเรียน​ตรวจ​ข้อสอบ​ตัวเอง

verifier ที่​เชื่อถือ​ได้​จึง​ควร เป็น​อิสระ​จาก​ตัว​ที่​ผลิต​งาน เช่น test suite ที่​รัน​จริง, type checker หรือ agent ตรวจสอบ​ที่​มี context สะอาด​แยก​ต่างหาก

ส่วน stop rule ก็​ต้อง​ผูก​กับ​สัญญาณ​ที่​ปลอม​ยาก ถ้า​เกณฑ์​จบ​คือ “agent บอกว่า​เสร็จ” มัน​จะ​เรียนรู้​ที่​จะ​พูด​ว่า​เสร็จ (บทเรียน Goodhart ฉบับ​ย่อ) แต่​ถ้า​เกณฑ์​จบ​คือ “test ทั้ง​ชุด​ผ่าน​และ diff ไม่​แตะ file ต้อง​ห้าม” การ​โกง​ก็​ยาก​ขึ้น​มาก

ใน​ทาง​เครื่องมือ Osmani ให้​ชุด “อิฐ​ก่อสร้าง” (building blocks) ที่​ใช้​ประกอบ loop จริง​ใน​ทาง​ปฏิบัติ:

  • Automations — สิ่ง​ที่​จุด​ชนวน​และ​กำหนด​จังหวะ​การ​รัน (คือ trigger นั่นเอง)
  • Worktrees — พื้นที่​ทำงาน​แยก​เป็น​สัดส่วน ให้​หลาย​รอบ/หลาย agent ทำงาน​ขนาน​กัน​โดย​ไม่​ชน​กัน
  • Skills — เอกสาร​ความ​สามารถ​ที่​คง​อยู่ ให้ agent หยิบ​ใช้​ซ้ำ​ได้​ทุกรอบ
  • Plugins & connectors — ช่อง​ต่อ​เข้า​กับ tool และ​ข้อมูล​ภายนอก (รวม​ถึง MCP)
  • Sub-agents — ตัว​ช่วย​ที่​รับ​งาน​ย่อย​และ​ตรวจ​ผล​ให้

และ​ก้อน​สุดท้าย​ที่​ขาด​ไม่​ได้​คือ memory — สถานะ​ที่​อยู่ นอก context เช่น file markdown, บอร์ด Linear หรือ​อะไร​ก็ตาม​ที่ “อยู่​รอด​ข้าม​รอบ” เพราะ context window ถูกรีเซ็ต​ทุก​ครั้ง​ที่​รอบ​ใหม่​เริ่ม สิ่ง​ที่​ต้อง​จำ​ข้าม​รอบ​จึง​ต้อง​เก็บ​ไว้​ข้าง​นอก

ไม่ใช่​ทุก loop จะ​ซับซ้อน​เท่า​กัน มอง​เป็น​สาม​ระดับ​จาก​ง่าย​ไป​ยาก​ได้:

flowchart LR
  L1["Single-turn tool loop"] --> L2["Task loop (build + verify)"]
  L2 --> L3["Autonomous self-prompting loop"]

ภาพ 4 — สาม​ระดับ​ของ loop ยิ่ง​ขยับ​ไป​ทาง​ขวา ยิ่ง​ปล่อย​ให้​ระบบ​ตัดสิน​ใจ​เอง​มาก​ขึ้น และ​ยิ่ง​ต้องการ verifier กับ stop rule ที่​แข็งแรง​ขึ้น​ตาม​ไป​ด้วย

  1. Single-turn tool loop — วงจร reason-act-observe หนึ่ง​งาน​สั้น ๆ เช่น “ค้น file อ่าน แล้ว​ตอบ” นี่​คือ ReAct loop เปล่า ๆ ที่​จบ​ใน​ไม่​กี่​รอบ
  2. Task loop (build + verify) — วน​สร้าง​แล้ว​ตรวจ​ไป​เรื่อย ๆ จน​งาน หนึ่ง​งาน เสร็จ​ตาม​เกณฑ์ เช่น “เขียน feature นี้​ให้​ผ่าน test ทั้งหมด” agent จะ​แก้-รัน test-อ่าน​ผล-แก้​ใหม่ วนจน verifier บอกว่า​ผ่าน
  3. Autonomous self-prompting loop — ระบบ​ที่ prompt ตัวเอง ต่อ​เนื่อง หยิบ​งาน​ถัด​ไป​มา​ทำ​เอง​โดย​ไม่​รอ​คน มัก​ประกอบ​จาก worktrees + sub-agents + memory และ​เดิน​ได้​เป็น​ชั่วโมง​หรือ​เป็น​วัน นี่​คือ​ระดับ​ที่ Cherny พูด​ถึง​เมื่อ​บอกว่า​เขา “เขียน loop ที่ prompt Claude” แทน​การ prompt เอง

ภาพ​ที่​เป็น​รูปธรรม​ของ​ระดับ​ที่​สาม เช่น ระบบ​อ่าน backlog เป็น​แหล่ง trigger หยิบ​งานที​ละ​ใบ แตก​ออก​เป็น​หลาย worktree (สำเนา repo แยก​สาขา) ให้ sub-agent แต่ละ​ตัว​ลุย​คนละ​งาน​ขนาน​กัน แต่ละ​ตัว​วน task loop ของ​ตัวเอง​จน test ผ่าน

แล้ว​เขียน​สรุป​ความ​คืบ​หน้า​ลง memory ที่​อยู่​นอก context เพื่อ​ให้​รอบ​ถัด​ไป (หลัง context ถูกรีเซ็ต) รู้​ว่า​ทำ​อะไร​ไป​แล้ว​และ​เหลือ​อะไร วงนอก​สุด​คอย​เช็ค​ว่า backlog หมด​หรือ​ยัง — ถ้า​ยัง ก็​จุด​ชนวน​รอบ​ใหม่​เอง

ความ​ปลอดภัย: loop ที่​ปล่อย​ไว้ = loop ที่​ทำ​ผิด​โดย​ไม่มี​คน​ดู

หัวข้อ​ที่​มีชื่อ​ว่า “ความ​ปลอดภัย: loop ที่​ปล่อย​ไว้ = loop ที่​ทำ​ผิด​โดย​ไม่มี​คน​ดู”

ยิ่ง​ขยับ​ขึ้น​ไป​ทาง​ระดับ​ที่​สาม ความ​เสี่ยง​ก็​ยิ่ง​เปลี่ยน​หน้าตา Osmani สรุป​แก่น​ของ​มัน​ไว้​คม​มาก:

“A loop running unattended is also a loop making mistakes unattended.” — Addy Osmani, Engineering Lead (Google Chrome)

นั่น​คือ loop ที่​รัน​โดย​ไม่มี​คน​เฝ้า ก็​คือ loop ที่ ทำ​ผิดพลาด​โดย​ไม่มี​คน​เฝ้า ไป​พร้อม​กัน ความเร็ว​และ​ความ​อัตโนมัติ​ที่​เรา​ตื่นเต้น กลาย​เป็น​ตัว​ขยาย​ความ​ผิดพลาด​ได้​เท่า ๆ กับ​ที่​มัน​ขยาย​ผล​งาน Osmani ชี้​สาม​ความ​เสี่ยง​ที่​คน​มัก​ไม่​รับมือ:

  • Lack of verification — ไม่มี​ใคร​ตรวจ loop จึง​วิ่ง​ต่อ​ทั้ง​ที่​ผลลัพธ์​ผิด โดย​ไม่มี​สัญญาณ​เตือน
  • Loss of understanding — ความเร็ว​ของ automation บัง​ไม่​ให้​เรา​เข้าใจ​ปัญหา​ที่แท้​จริง​ข้าง​ใต้
  • Cognitive capitulation — การ​ยอมรับ​ผลลัพธ์​ของ agent แบบ​ไม่​คิด แทนที่​จะ​ใช้​วิจารณญาณ​ตรวจสอบ

Font Pera ตบ​ท้าย​ด้วย​ประโยค​ที่​ควร​แปะ​ไว้หน้า​จอ: ใคร​ก็ตาม​ที่​สร้าง loop โดย​ไม่​จัดการ​สาม​ความ​เสี่ยง​นี้ ก็​แค่​กำลัง​สร้าง “linter ราคา​แพง​ที่​หลอน​เอา​เอง” (an expensive linter that hallucinates)

อย่า​ปล่อย loop ที่​ไม่มี sensor

ทาง​แก้​ไม่ใช่​การ​เลิก​ใช้ loop แต่​คือ​การ​ทำให้​กล่อง Done? และ verifier แข็งแรง​จริง โยง​กลับ​ไป​ที่ sensors ของ harness engineering — test, type check, lint, การ​ตรวจ​ข้าม​ด้วย sub-agent — เพราะ sensor คือ​ดวงตา​ที่​ทำให้ loop รู้ตัว​ว่า​เพิ่ง​ทำ​พัง ยิ่ง​ปล่อย​ให้ autonomy สูง​เท่าไร guardrail ยิ่ง​ต้อง​แน่น​เท่านั้น

เรื่อง​ความ​เสี่ยง​ของ​การ​ปล่อย AI ทำงาน​เอง​อ่าน​ต่อ​ได้ที่ AI Autonomy ใน Code Generation ซึ่ง​พบ​ว่า​แม้​โจทย์​เล็ก ๆ agent ก็​ยัง​ขยาย​ขอบเขต​งาน​เอง อ้าง​ว่า test ผ่าน​ทั้ง​ที่​ไม่​ผ่าน และ​ละเมิด​กฎ​ที่​ตั้ง​ไว้

Font Pera ให้​เกณฑ์​วินิจฉัย​ที่​ใช้ได้​จริง​ว่า​ปัญหา​ที่​เจอ​อยู่​ควร​แก้​ที่​ชั้น​ไหน:

  • ซ่อม​ที่ context engineering เมื่อ agent ยัง ทำงาน​เดี่ยว ๆ ไม่​ผ่าน — ปรับ prompt, จัด​โครงสร้าง input, เพิ่ม file context ให้ model เห็น​สิ่ง​ที่​ควร​เห็น
  • ขยาย harness engineering เมื่อ​ผล​งาน ผ่าน​แต่​ยัง​ไม่​ได้​มาตรฐาน​ของ project — เพิ่ม guides (rules/specs) และ sensors (test/lint/hooks) ให้​ตรวจ​จับ​และ​แก้ตัวเอง​ได้
  • เพิ่ม loop engineering เมื่อ agent ควร​ทำงาน​เอง​ต่อ​เนื่อง​เป็น​ชั่วโมง​หรือ​เป็น​วัน โดย​ไม่​ต้อง​มี​คน​คอย​จุด​ชนวน​ที​ละ​รอบ

ลำดับ​นี้​สำคัญ เพราะ​การกระโดด​ขึ้น​ไป​เขียน loop ทั้ง​ที่ context ยัง​มั่ว​หรือ harness ยัง​ตรวจ​งาน​ไม่​เป็น คือ​การ​สร้าง​เครื่องจักร​ที่​ทำ​ผิด​เร็ว​ขึ้น​เท่านั้น​เอง

Loop engineering คือ​ชั้น​ที่​เปลี่ยน​โจทย์​จาก “เขียน prompt ให้​เก่ง” เป็น “ออกแบบ​ระบบ​ที่ prompt agent แทน​เรา” หัวใจ​ของ​มัน​คือ​วงจร reason → act → observe ที่​หมุน​อยู่​ข้าง​ใน กับ​การ​ออกแบบ​สิ่ง​รอบ​วงจร — trigger, topology, verifier, stop rule และ​การ​แยก recoverable error ออก​จาก hard blocker

แต่​สิ่ง​ที่​ต้อง​ไม่​ลืม​คือ loop เป็น ตัว​ขยาย ทั้ง harness ที่​ดี​และ harness ที่​พัง​จะ​ถูก​ทำซ้ำ​หลาย​เท่า​เมื่อ​วาง​ไว้​ใต้ loop

คำ​เตือน​ของ Osmani จึง​เป็น​เข็มทิศ​ที่​ดี​ที่สุด: loop ที่​ไม่มี​คน​ดู​คือ loop ที่​ทำ​ผิด​โดย​ไม่มี​คน​ดู — ลงทุน​กับ verifier และ sensor ให้​แน่น ก่อน​จะ​ปล่อย​ให้​มัน​เดิน​เอง