สุนทรียศาสตร์ของการวิศวกรรมลูป (The Art of Loop Engineering)
(langchain.com)- หากต้องการนำเอเจนต์ไปใช้งานที่เป็นประโยชน์ได้อย่างเสถียร แค่มีโมเดลที่ดีอย่างเดียวไม่พอ แต่ต้องมี harness ที่ออกแบบให้เหมาะกับชุดงานด้วย
- agent loop พื้นฐานที่สุดคือโครงสร้างที่ให้คอนเท็กซ์กับ LLM และเรียกใช้เครื่องมือซ้ำ ๆ จนกว่างานจะเสร็จ
- จากนั้นสามารถสร้างเอเจนต์ที่มีประสิทธิภาพยิ่งขึ้นได้ด้วยการ ซ้อนทับ (stacking) validation loop, event-driven loop และ hill-climbing loop เข้าไป
- แต่ละชั้นของลูปสามารถทำ instrumentation ได้ด้วย LangChain primitives และอธิบายผ่านตัวอย่างเอเจนต์สำหรับเขียนเอกสารภายใน
- ศักยภาพที่แท้จริงไม่ได้อยู่ที่ตัวโมเดลเอง แต่อยู่ที่ ลูปที่สร้างล้อมรอบเอเจนต์
Loop 1: agent loop
- โดยแก่นแล้ว เอเจนต์คือ โมเดล ที่เรียกใช้เครื่องมือซ้ำ ๆ จนกว่างานจะเสร็จ
create_agentของ LangChain เป็นตัวให้ลูปนี้มาอยู่แล้ว เพียงเลือกโมเดลและเชื่อมต่อ tools ก็จะได้ agent loop ที่พร้อมทำงาน- tools คือองค์ประกอบที่ทำให้เอเจนต์ลงมือกระทำกับโลกจริงได้
- ในตัวอย่างเอเจนต์เอกสารภายใน ขั้นตอนลูปแรกจะรับคำขอปรับปรุงเอกสาร แล้วให้โมเดลวางแผนและร่างการเปลี่ยนแปลง พร้อมใช้เครื่องมือสำหรับโคลน repo, อ่านไฟล์, เขียนเอกสาร และเปิด pull request เป็นต้น
Level 2: validation loop
- แม้ agent loop จะจัดการงานได้ แต่ผลลัพธ์จากความพยายามครั้งแรกไม่ได้ถูกต้องหรือสม่ำเสมอเสมอไป ดังนั้นเมื่อความสม่ำเสมอสำคัญ จึงควรครอบมันด้วย validation loop ที่ตรวจผลลัพธ์ และหากยังไม่ดีพอก็ส่ง feedback กลับไปยังโมเดล
- validation loop จะเพิ่ม grader เข้ามาเพื่อตรวจผลลัพธ์ของเอเจนต์เทียบกับ rubric และหากไม่ผ่านก็ส่งผลกลับพร้อม feedback
- grader อาจเป็นแบบกำหนดตายตัวหรือเป็นแบบเอเจนต์ก็ได้ โดย LLM as a judge เป็นตัวอย่างที่พบบ่อย
RubricMiddlewareรองรับแพตเทิร์นนี้ หรือจะเชื่อมผ่านฮุกafter_agentของcreate_agentก็ได้
- ในตัวอย่างงานเขียนเอกสาร grader จะรันการทดสอบหลังแต่ละความพยายาม เพื่อตรวจว่าลิงก์ทั้งหมดใช้งานได้, CI checks ผ่านทั้งหมด และ diff จำกัดอยู่ในขอบเขตที่ร้องขอ ช่วยจับข้อผิดพลาดได้โดยไม่ต้องรีวิวด้วยมือ
- การเพิ่มการตรวจสอบทำให้ latency และ cost ต่อการรันสูงขึ้น แต่สำหรับการใช้งาน production ส่วนใหญ่ที่คุณภาพสำคัญกว่าความเร็ว สิ่งนี้คุ้มค่า
Level 3: event-driven loop
- หนึ่งในส่วนที่สำคัญที่สุดของการพัฒนาเอเจนต์คือ integrations layer ซึ่งเชื่อมเอเจนต์เข้ากับ ecosystem เพื่อให้ทำงานอยู่เบื้องหลังได้
- event-driven loop จะรันเอเจนต์เมื่อเกิดเหตุการณ์ เช่น มีเอกสารใหม่เข้ามา, ถึงเวลาตาม schedule หรือมี webhook เข้ามา
- เอเจนต์ไม่ใช่สิ่งที่ถูกเรียกด้วยมือเป็นครั้งคราว แต่เป็นองค์ประกอบที่ทำงานต่อเนื่องภายในระบบที่ใหญ่กว่า
- LangSmith Deployment รองรับโครงสร้างพื้นฐานสำหรับ trigger โดยรองรับทั้ง cron schedule และ webhook
- ตัวอย่างการใช้ cron ที่ได้รับความนิยมคือ heartbeats ของ openclaw ซึ่งเปลี่ยนเอเจนต์ให้กลายเป็นผู้ช่วยเชิงรุกที่เปิดทำงานตลอดเวลา
- เอเจนต์เอกสารถูกขับเคลื่อนด้วยตัวสร้างเอเจนต์แบบ no-code ชื่อ Fleet โดย channels และ schedules ของ Fleet จัดการ trigger แบบ event-driven และ cron
- เมื่อมีข้อความใน Slack channel
#docs-plzระบบจะเรียกใช้เอเจนต์เอกสารผ่าน channel นั้น
- เมื่อมีข้อความใน Slack channel
Level 4: hill-climbing loop
- หากสามลูปก่อนหน้าช่วยทำให้งานเป็นอัตโนมัติ ลูปที่สี่คือการทำให้ การปรับปรุง (improvement) เองเป็นอัตโนมัติ
- ทุกการรันของเอเจนต์จะสร้าง trace ที่บันทึกพฤติกรรมของโมเดล, tools ที่เรียกใช้ และ feedback จาก grader เป็นต้น ซึ่ง trace นี้มีสัญญาณมูลค่าสูงเกี่ยวกับสิ่งที่ได้ผลและสิ่งที่ไม่ได้ผล
- hill-climbing loop จะรัน analysis agent บน trace แล้วนำผลที่ได้มาเขียน การตั้งค่า harness ใหม่ให้ดีขึ้น
- ซึ่งอาจรวมถึงการปรับ prompt/tools หรือการปรับ grader
- ใน LangSmith สามารถทำ instrumentation ของลูปที่สี่นี้ได้ด้วย trace analysis agent ชื่อ Engine
- ในตัวอย่างเอเจนต์เอกสาร จะรัน engine บน trace เพื่อตรวจจับปัญหา และหากหลาย trace ส่งสัญญาณถึงปัญหาที่อาจเกิดขึ้น ระบบจะสร้าง issue เพื่อขอเปลี่ยน prompt หรือ tool ที่เป็นปัญหา
- ประเด็นสำคัญคือ ลูกศรย้อนกลับไม่ได้แค่ย้อนขึ้นไปด้านบน แต่ ย้อนเข้าไปภายในเพื่ออัปเดต agent loop โดยตรง ทำให้แต่ละรอบของลูปด้านนอกช่วยให้ลูปด้านในมีประสิทธิภาพขึ้น
-
แนวโน้มในอนาคต
- แม้การตั้งค่า prompt และ tools จะเป็นสิ่งที่ปรับปรุงได้ง่ายที่สุด แต่ไม่ใช่ทางเลือกเดียว ทีมที่ใช้งานโมเดลแบบ open-weight สามารถเชื่อม hill-climbing loop เข้ากับ RL fine-tuning โดยใช้ trace หรือผลการประเมินเป็นสัญญาณสำหรับการฝึก เพื่อปรับปรุงตัวโมเดลเองได้
- คอนเท็กซ์เสริมอย่าง memory หรือ retrieved skills ก็ปรับปรุงด้วยวิธีเดียวกันได้เช่นกัน โดยลูปเป็นเพียงแพตเทิร์น และสิ่งที่จะ optimize คือสิ่งที่ผู้ใช้เป็นผู้กำหนด
การกำกับดูแลและความเชี่ยวชาญของมนุษย์
- การทำงานอัตโนมัติไม่ได้หมายความว่าต้องเอามนุษย์ออกจากลูป เพราะในทุกชั้นยังมีจุดที่ human oversight เพิ่มคุณค่าได้เสมอ
- ตัว grader อัตโนมัติอาจตรวจได้ว่าลิงก์ใช้งานได้หรือไม่ แต่การสังเกตว่าการวางกรอบเนื้อหาไม่เหมาะกับผู้อ่านเป้าหมายยังเป็นหน้าที่ของมนุษย์ และเป็นการตัดสินจากบริบท ประสบการณ์ และวิจารณญาณที่ต้องอาศัย human review
- ความเชี่ยวชาญบางส่วนควรถูกเข้ารหัสไว้ใน prompt/tools เอง แต่สำหรับ การกระทำที่อ่อนไหว เช่น ธุรกรรมการเงินหรือการทำงานกับฐานข้อมูล การรีวิวโดยมนุษย์แบบเรียลไทม์ยังเป็นสิ่งจำเป็น
- LangChain ช่วยให้ทำ instrumentation ของจุดเชื่อมต่อเหล่านี้ได้ง่ายในทุกลูป
- agent loop: ขอข้อมูลจากมนุษย์ก่อนทำการกระทำที่อ่อนไหวหรือเรียกใช้ tool
- validation loop: ให้มนุษย์ทำหน้าที่เป็น grader ใน workflow ที่อ่อนไหว
- application loop: ให้มนุษย์อนุมัติผลลัพธ์ก่อนส่งคืนแก่ผู้ใช้ปลายทาง
- hill-climbing loop: ให้การปรับปรุง harness ผ่านการรีวิวโดยมนุษย์ก่อน deploy
- เฟรมเวิร์กโอเพนซอร์สทั้งหมดของ LangChain มี human in the loop เป็น primitive ระดับ first-class
สรุปรวม
- สรุปวิธีที่ลูปทั้งสี่ซ้อนทับกัน
- agent loop: โมเดลเรียกใช้ tools ซ้ำ ๆ จนงานเสร็จ → ทำให้งานเป็นอัตโนมัติ โดยมี primitive คือ create_agent และโมเดลที่ LangChain รองรับ
- validation loop: ให้คะแนนผลลัพธ์ตาม rubric และลองใหม่พร้อม feedback เมื่อไม่ผ่าน → รับประกันคุณภาพและความถูกต้องของงาน โดยมี primitive คือ RubricMiddleware
- event-driven loop: เหตุการณ์ trigger การรันเอเจนต์ที่ไปอัปเดตระบบจริง → ทำให้งานขนาดใหญ่เป็นอัตโนมัติ โดยมี primitive คือ LangSmith Deployment ที่อิง cron trigger/webhook หรือ Fleet channels
- hill-climbing loop: trace จากการรันใน production ปรับปรุงการตั้งค่า harness ผ่าน analysis agent → ปรับปรุง harness โดยมี primitive คือ LangSmith Engine
- นี่คือสิ่งที่ swyx เรียกว่า loopcraft หรือภาพจริงของการวิศวกรรมลูป และผู้นำอย่าง Steipete, Boris และ Andrej ก็ได้ข้อสรุปเดียวกันว่า ศักยภาพของเอเจนต์อยู่ที่ลูปที่สร้างล้อมรอบมัน
- แม้ลูป 1 และ 2 จะถูกพูดถึงมานานแล้ว แต่ตอนนี้จุดโฟกัสควรย้ายไปสู่ ลูป 3 และ 4 ที่ฝังเอเจนต์ไว้ใน ecosystem, ปรับปรุงอย่างต่อเนื่องตามเกณฑ์ และสร้างมูลค่าแบบทบต้น
- Satya กล่าวถึงแรงจูงใจระดับองค์กรไว้ว่า บริษัทที่สร้าง learning loop ได้ตั้งแต่เนิ่น ๆ ซึ่งทำให้ทั้งวิจารณญาณของมนุษย์และทุนโทเค็นสะสมแบบทบต้นร่วมกัน จะได้เปรียบที่ลอกเลียนได้ยาก
ยังไม่มีความคิดเห็น