คำสำคัญ: Agent Knowledge Engineering, ความจำถาวร, การสะท้อนและตกตะกอนความรู้, การโหลดแบบแบ่งชั้น, ระบบการจัดหมวดหมู่ความรู้
บทความนี้นำเสนอชุดปฏิบัติการด้านวิศวกรรมความรู้สำหรับ Agent ที่สมบูรณ์ โดยมีเป้าหมายหลักคือทำให้ Coding Agent สามารถเรียนรู้ จดจำ และเติบโตอย่างต่อเนื่องในการทำงานร่วมกันได้เหมือนมนุษย์ แทนที่จะพึ่งพาเพียง Prompt Engineering ในการสนทนาเพียงครั้งเดียว

- Agent Knowledge Engineering ในทางปฏิบัติ: ทำให้ Coding Agent เรียนรู้ จดจำ และเติบโตได้เหมือนมนุษย์
โปรเจกต์โอเพ่นซอร์ส
agent-knowledge-frameworkเป็นเฟรมเวิร์กสำหรับจัดการความรู้ของทีม AI coding agent โดยใช้โครงสร้างแบบแบ่งชั้น (ความรู้ทั่วไป + ความรู้เฉพาะบทบาท) และระบบการจัดหมวดหมู่ (experience / skill / principle / insight) ทำให้ agent หลายตัวสามารถสะสม ค้นหา และนำประสบการณ์ทางวิศวกรรมกลับมาใช้ใหม่ได้อย่างมีประสิทธิภาพ
- การได้มาซึ่งความรู้: Agent เรียนรู้อย่างกระตือรือร้นผ่านสามวิธีทางปัญญา ทบทวนความรู้เดิม – สะท้อนคิดหลังเสร็จสิ้นงาน เพื่อตกตะกอนประสบการณ์; เทียบเคียงกับผู้อื่น – อ่านบล็อก, PR, เอกสารโครงสร้างโดยตรง เพื่อสกัดหลักการที่นำไปปฏิบัติได้ในบริบทของโปรเจกต์; ฝึกซ้อมในสภาพแวดล้อมจำลอง – สำรวจเครื่องมือที่ไม่รู้จักผ่านการทดลองต้นทุนต่ำ เพื่อรับข้อเสนอแนะจากการโต้ตอบกับสภาพแวดล้อม เนื้อหาความรู้ที่เฉพาะเจาะจงจะถูกสรุปโดย Agent เอง บทบาทของมนุษย์คือการถามว่า “ทำไม” และเตือนให้ “จดบันทึกไว้”
- การจัดเก็บความรู้: สร้างระบบความจำถาวรหลายชั้น
AGENTS.mdรับผิดชอบกฎเบื้องต้นระดับโปรเจกต์; ฐานความรู้แยกต่างหากถูกจัดระเบียบตามวิธีห้าประเภท (experience/skill/principle/insight/question) และมิติของบทบาท เพื่อสร้างเครือข่ายความรู้ที่มีโครงสร้าง; พร้อมทั้งเชื่อมต่อกับเอกสารและที่เก็บโค้ดที่มีอยู่ของทีม ทำให้ Agent สามารถผสานเข้ากับกระแสข้อมูลของทีมได้ - การบำรุงรักษาความรู้: ใช้วงจรป้อนกลับเพื่อให้ Agent ปรับปรุงความรู้ด้วยตนเองเมื่อทำผิด; กฎเกณฑ์เมตาคอกนิชัน (knowledge-sedimentation.md) ชี้แนะกระบวนการตกตะกอนความรู้; กลไก comment สร้างการเชื่อมโยงสองทางระหว่างความรู้; การตรวจตราแบบ dreaming ค้นพบช่องว่างของดัชนีและเนื้อหาที่ล้าสมัยโดยอัตโนมัติ
- การใช้ความรู้: ใช้กลยุทธ์การโหลดแบบแบ่งชั้น
AGENTS.mdอยู่ใน context ตลอดเวลาเป็นจุดยึดสำหรับการกู้คืน context, โหลด skill/principle/insight ตามความต้องการผ่านดัชนีสรุป, experience ถูกโหลดในระดับที่สูงขึ้นเมื่อจำเป็นเพื่อใช้เป็นหลักฐาน กลไก triggers ทำให้ความรู้ค้นหา Agent ได้อย่างกระตือรือร้น การเชื่อมต่อระหว่างความรู้ก่อให้เกิดเครือข่ายความสัมพันธ์ ทำให้เกิด Context Engineering ที่แม่นยำ
ระบบทั้งหมดนี้ใช้ไฟล์ข้อความล้วน ไม่พึ่งพาโครงสร้างพื้นฐานที่ซับซ้อน เน้นให้ระบบความรู้เติบโตขึ้นตามธรรมชาติในการทำงานร่วมกันจริง จนในที่สุดทำให้ Agent “ยิ่งใช้ยิ่งเข้าใจโปรเจกต์”
สารบัญ
- บทนำ: Agent ไม่ได้ด้อย เพียงแต่เขาไม่รู้
- ความรู้มาจากไหน? – ทำให้ agent เรียนรู้ได้เหมือนมนุษย์
- ทบทวนความรู้เดิม: สะท้อนคิดและตกตะกอน แปลงประสบการณ์เป็นประสบการณ์สะสม
- เทียบเคียงกับผู้อื่น: เรียนรู้และอ้างอิง หาคำแนะนำจากปฏิบัติการของผู้อื่น
- ฝึกซ้อมในสภาพแวดล้อมจำลอง: จำลองและลองผิดลองถูก ได้รับข้อเสนอแนะจากการกระทำผ่าน “การทดลองต้นทุนต่ำ”
- เก็บความรู้อย่างไร? – Persistent Memory
- เก็บไว้ที่ไหน? – ตัวกลางหลากหลาย
- โครงสร้างภายในของฐานความรู้แยกต่างหาก: สองมิติ
- บำรุงรักษาอย่างไร? – ทำให้ความรู้คงความมีชีวิตชีวา
- วงจรป้อนกลับ – เมื่อความรู้ที่มีอยู่ไม่ทำงาน จะทำอย่างไร
- เมตาคอกนิชัน – การตกตะกอนความรู้เองก็เป็นความรู้ชนิดหนึ่ง
- Comment – ยินดีต้อนรับสู่ Web 2.0
- Dreaming – Agent แบบชีวภาพจะฝันถึง H10 อิเล็กทรอนิกส์ไหม
- Agent อ่านอย่างไร? – Context Engineering
- การโหลดแบบแบ่งชั้น: อยู่ตลอดเวลา vs ตามความต้องการ
- Trigger: ทำให้ความรู้ค้นหา agent ได้อย่างกระตือรือร้น
- ความสัมพันธ์: จากความรู้หนึ่งไปสู่ความรู้กลุ่มหนึ่ง
- การกู้คืนหลังการบีบอัด Context
- บทสรุป
- ภาคผนวก A: ตัวอย่าง AGENTS.md
- ภาคผนวก B: มาตรฐานการตกตะกอนประสบการณ์ (knowledge-sedimentation.md)
บทนำ: Agent ไม่ได้ด้อย เพียงแต่เขาไม่รู้
หลายครั้งที่ผลลัพธ์จาก agent ผิดเพี้ยนไปจากที่คาดหวัง ใช้งานไม่ได้ ต้องให้คำแนะนำแก้ไขซ้ำแล้วซ้ำเล่า
พนักงานใหม่ที่เข้ามา แม้จะมีประสบการณ์มากมายและทักษะรอบด้าน แม้ว่าเอกสารและโค้ดของงานใหม่จะจัดระเบียบได้ดีเยี่ยม แต่เมื่อลงมือปฏิบัติจริงก็ยังต้องใช้เวลาในการปรับตัว (ramping up) – ลองผิดลองถูก และประสานงานกับเพื่อนร่วมงาน กระบวนการนี้โดยพื้นฐานแล้วคือการกลั่นกรองความรู้ของเพื่อนร่วมงาน – รวมถึงความรู้ที่มองไม่เห็น – ส่งต่อให้เขา Agent ก็เหมือนพนักงานใหม่ ความสามารถไม่ขาด แต่อาจขาดบริบทเกี่ยวกับโปรเจกต์ของคุณ ทีมของคุณ และความชอบของคุณ เมื่อให้บริบทเพียงพอ เขาก็สามารถลงมือทำงานได้
หลายคนสรุปว่าใช้ agent ไม่ได้ผลเพราะ “prompt เขียนไม่ดี” แล้วจึงไปศึกษา prompt engineering – ว่าจะใช้ถ้อยคำอย่างไร แบ่งขั้นตอนอย่างไร ให้ตัวอย่าง few-shot อย่างไร สิ่งเหล่านี้มีประโยชน์ แต่แก้ไขปัญหา “จะถามคำถามให้ชัดเจนอย่างไร” ไม่ใช่ “agent ขาดความรู้อะไร” คุณสามารถใช้ prompt ที่สมบูรณ์แบบที่สุดเพื่อให้ agent ทำการปรับโครงสร้าง API ข้ามชั้น แต่ถ้าเขาไม่รู้ลำดับการแก้ไขแต่ละชั้นของโครงสร้างสี่ชั้นของโปรเจกต์ ไม่รู้ว่ามีการเรียกใช้ทางอ้อมสามแห่งใน Python wrapper ไม่รู้ว่าหลังจากแก้ไข signature แล้วต้องซิงค์ไฟล์ .pyi ด้วย – เขาก็ยังทำผิดพลาดได้อยู่ดี prompt engineering เพิ่มประสิทธิภาพการแสดงออกในการสนทนาครั้งเดียว ส่วน knowledge engineering แก้ปัญหาพื้นฐานทางปัญญาของ agent อันแรกเป็นกลยุทธ์ระดับยุทธวิธี อันหลังเป็นกลยุทธ์ระดับยุทธศาสตร์
ขีดจำกัดสูงสุดที่ agent สามารถแสดงออกได้ส่วนใหญ่ขึ้นอยู่กับความรู้ที่คุณให้เขา
ความรู้มาจากไหน? – ทำให้ agent เรียนรู้ได้เหมือนมนุษย์
ลองถามก่อนว่ามนุษย์เรียนรู้สิ่งใหม่ได้อย่างไร
เมื่อเผชิญกับไลบรารีหรือเครื่องมือใหม่ เราจะเข้าไปท่องจำ API ทั้งหมดในเอกสารทันทีหรือ? ดูเหมือนจะไม่ใช่ แม้จะท่องจำได้ก็ยังไม่กล้าบอกว่าเชี่ยวชาญ และตอนนี้หลายคนใช้ skill แบบนั้น – ให้ agent ติดตั้ง skill เขาก็แค่รู้จัก API เหล่านั้น แต่จะใช้อย่างไร มีข้อควรระวังอะไร ใช้ในสถานการณ์ไหน ต้องระวังอะไร สิ่งเหล่านี้ที่เกี่ยวข้องกับบริบทอย่างใกล้ชิด ไม่สามารถครอบคลุมทั้งหมดได้ด้วย skill package ทางการเพียงชุดเดียว ดังนั้นจึงต้องใช้ประโยชน์จากข้อได้เปรียบของ agent ที่สามารถโต้ตอบกับสภาพแวดล้อมและได้รับข้อเสนอแนะ ทำให้เขาเรียนรู้อย่างกระตือรือร้นมากขึ้น เหมือนมนุษย์ สิ่งสำคัญคือทำให้ agent ใช้วิธีทางปัญญาของมนุษย์ในการเรียนรู้และดูดซับความรู้อย่างกระตือรือร้น
ทบทวนความรู้เดิม: สะท้อนคิดและตกตะกอน แปลงประสบการณ์เป็นประสบการณ์สะสม
2. ความรู้มาจากไหน? – เรียนรู้อย่างกระตือรือร้นจากการโต้ตอบ
ความรู้ไม่ได้เกิดขึ้นจากความว่างเปล่า มันเกิดจากการปฏิบัติ การสะท้อนคิด และการสำรวจของ Agent ในสถานการณ์การทำงานร่วมกันจริง บทบาทหลักของมนุษย์ไม่ใช่การป้อนความรู้โดยตรง แต่เป็นการออกแบบกลไกเพื่อชี้นำให้ Agent เรียนรู้ 消化 และตกตะกอนอย่างกระตือรือร้น
ทบทวนและสะท้อนคิด: สกัดประสบการณ์จากแต่ละเซสชัน
นี่คือวิธีการเรียนรู้พื้นฐานที่สุด แต่ละการโต้ตอบระหว่างมนุษย์กับเครื่อง – คำสั่งของผู้ใช้ การตัดสินใจของ Agent ข้อเสนอแนะของผู้ใช้ – ล้วนมีบริบทความรู้ที่มีค่าแฝงอยู่ ความรู้เหล่านี้สำคัญเป็นพิเศษ เพราะเกี่ยวข้องโดยตรงกับปัญหาที่เฉพาะเจาะจงที่ Agent เผชิญในสถานการณ์จริง
หลังจากทำงานเสร็จ อย่าจบเซสชันทันที แต่ให้ชี้นำ Agent ในการทบทวน:
* ตกตะกอนโดยตรง: กำหนดให้ Agent “บันทึกข้อมูลสำคัญหรือเหตุผลในการตัดสินใจจากงานนี้ลงใน AGENTS.md”
* ชี้นำการสะท้อนคิด: ใช้คำถามช่วย Agent ตรวจสอบและเติมเต็มช่องว่าง เช่น “ทำไมคุณถึงไม่ใช้แผน X เมื่อสักครู่?” Agent จะอธิบายข้อจำกัดทางปัญญาในตอนนั้น ทำให้เผยให้เห็นข้อมูลที่ขาดหายไป คุณสามารถใช้โอกาสนี้เติมเต็มส่วนความรู้นี้ให้สมบูรณ์
* แก้ไขและปรับปรุง: เมื่อ Agent ทำผิด กำหนดให้เขา “ลองสะท้อนคิดดูว่าจะอัปเดต AGENTS.md อย่างไรเพื่อหลีกเลี่ยงปัญหาเดียวกันในอนาคต” สิ่งนี้กระตุ้นให้ Agent แปลงบทเรียนที่เฉพาะเจาะจงเป็นกฎที่ปฏิบัติได้
เทียบเคียงและอ้างอิง: ได้รับคำแนะนำจากปฏิบัติการภายนอก
เมื่อเผชิญกับปัญหาที่ยาก ผู้พัฒนาที่มีประสบการณ์จะมองหาคำแนะนำจากภายนอก: บล็อกเทคนิคที่ตรงประเด็น Pull Request ที่มีฟังก์ชันคล้ายกัน การออกแบบโครงสร้างของโปรเจกต์ที่ยอดเยี่ยม ในการทำงานร่วมกับ Agent ควรสืบทอดนิสัยนี้ แต่เปลี่ยนวิธีการ
แทนที่คุณจะค้นหาคำตอบแล้ว “ป้อน” ข้อสรุปให้ Agent โดยตรง ควรให้ Agent อ่านวัสดุดั้งเดิมและ消化ด้วยตนเอง ความรู้ที่เข้าใจด้วยตนเอง ใช้งานได้แน่นหนากว่าข้อสรุปที่ถูกบอก
1. อ้างอิงโค้ดและโครงสร้างโปรเจกต์
เมื่อต้องการเพิ่มฟังก์ชันหรือเลือกเทคโนโลยีสำหรับไลบรารีโค้ดที่ไม่คุ้นเคย ให้ Agent ไปศึกษาปฏิบัติการที่เกี่ยวข้องโดยตรง
“อ้างอิงโครงสร้างการใช้ PyO3 จัดระเบียบ Python binding ในโปรเจกต์
https://github.com/apache/opendal/เพื่อวางแผนชั้น binding ของโปรเจกต์เรา”
2. เข้าใจปรัชญาและแนวคิดการออกแบบ
สำหรับบทความเกี่ยวกับแนวคิดการออกแบบ การให้ Agent ตีความและสกัดสาระสำคัญโดยเชื่อมโยงกับบริบทโปรเจกต์เฉพาะ มีคุณค่ามากกว่าการรู้จักแนวคิดเพียงผิวเผิน
อ่านบทความนี้:
https://ferd.ca/the-zen-of-erlang.html
เชื่อมโยงกับสถานการณ์การจัดการข้อผิดพลาดของงานประมวลผลแบบแบตช์ในโปรเจกต์ของเรา คิดว่าแนวคิด “Let it crash” ใดบ้างที่สามารถอ้างอิงได้ ใดบ้างที่ไม่เหมาะสม และตกตะกอนเป็นหลักการออกแบบหนึ่งข้อที่ใช้กับโปรเจกต์นี้
สิ่งสำคัญคือให้ Agent เข้าใจแนวคิดเชิงนามธรรมใหม่ในบริบทโปรเจกต์ของคุณ กำหนดขอบเขตการใช้งาน เงื่อนไขขอบเขต และวิธีการเชื่อมต่อกับระบบที่มีอยู่ หลักการที่ผลิตจากการ “เรียนรู้โดยมีปัญหาเป็นตัวนำ” เช่นนี้ มีความหมายในการชี้นำมากกว่า
ฝึกซ้อมในสภาพแวดล้อมจำลอง: เรียนรู้ผ่านการทดลองในสภาพแวดล้อมที่ปลอดภัย
เมื่อเผชิญกับเครื่องมือใหม่ (โดยเฉพาะเครื่องมือภายในหรือเครื่องมือที่ขาดเอกสาร) วิธีการเรียนรู้ที่มีประสิทธิภาพที่สุดไม่ใช่การอ่าน API ทั้งหมด แต่เป็นการทดลองในสถานการณ์ที่คาดหวัง Agent ก็สามารถทำเช่นเดียวกันได้
ตัวอย่างเช่น ทีมมีเครื่องมือจัดตารางงานคลัสเตอร์ภายในชื่อ jobMan ไม่มีเอกสารสาธารณะ แทนที่จะเขียนคู่มือการใช้งานด้วยตนเอง ควรออกแบบงานสภาพแวดล้อมจำลอง ให้ Agent สำรวจผ่านการโต้ตอบ:
ในสภาพแวดล้อมของเรามีเครื่องมือจัดตารางงานคลัสเตอร์ภายในชื่อ
jobManโปรดผสมผสานผลลัพธ์helpของมันและเอกสารย่อที่ทีมภายในจัดเตรียมไว้ ลองใช้มันส่งงานทดสอบชุดหนึ่งที่ไม่ได้แก้ไขสภาพแวดล้อมจริง รวมถึงแต่ไม่จำกัดเพียง:
1. งานที่ทำงานเป็นเวลานาน
2. งานที่มีระยะเวลาการทำงานต่างกัน
3. งานที่ใช้โควต้าทรัพยากรต่างกัน
4. งานที่แน่นอนว่าจะล้มเหลวเนื่องจาก segmentation fault, memory overflow, exit code ไม่ใช่ศูนย์
5. งานที่จะล้มเหลวภายใต้พารามิเตอร์เฉพาะ
6. งานที่มีโอกาสล้มเหลวแต่สามารถสำเร็จได้หลังลองใหม่หลังจากส่ง use case เหล่านี้แล้ว โปรดใช้เครื่องมือ command line
jobManตรวจสอบสถานะงาน ดูบันทึก (log) ลองใหม่ เป็นต้น และพยายามทำให้งานที่ล้มเหลวสำเร็จในที่สุด โปรดสรุปการดำเนินการทั้งหมด การสังเกต และข้อสรุปตลอดกระบวนการสำรวจนี้ และตกตะกอนเป็น Skill เกี่ยวกับวิธีการใช้jobMan
ข้อได้เปรียบหลักของการฝึกซ้อมในสภาพแวดล้อมจำลองคือ Agent สามารถเติมเต็มช่องว่างของข้อมูลฝึกฝนได้ผ่านการดำเนินการคำสั่งจริง สังเกตผลลัพธ์ และปรับพฤติกรรมตามข้อเสนอแนะ สำหรับเครื่องมือภายใน ความรู้ที่ผลิตจากการฝึกซ้อมในสภาพแวดล้อมจำลองที่ออกแบบมาอย่างดี มักจะมีประโยชน์มากกว่าการอ่านเอกสารคงที่สิบรอบ
ความเข้าใจสำคัญที่ต้องยึดถือตลอดคือ: เนื้อหาความรู้ที่เฉพาะเจาะจงควรถูกสร้างโดย Agent เอง ไม่ใช่โดยมนุษย์ ไม่ว่าจะเป็นการทบทวน เทียบเคียง หรือฝึกซ้อมในสภาพแวดล้อมจำลอง ความรู้ที่ผลิตออกมาคือสิ่งที่ Agent 消化 เข้าใจ และสรุปในบริบทเฉพาะ Agent รู้ดีกว่ามนุษย์ว่าต้องการจำอะไร เพราะมันเป็นผู้ใช้ความรู้เหล่านี้ในที่สุด บทบาทของมนุษย์คือผู้ชี้นำ: ถามว่า “ทำไม” เมื่อ Agent ทำผิด กำหนดให้ “จดบันทึกไว้” เมื่อเขาทำถูก ไม่ใช่เขียนกฎแทนเขา
3. เก็บความรู้อย่างไร? – สร้างระบบความจำถาวร
⚠️ หมายเหตุ: เนื้อหาได้รับการแปลโดย AI และตรวจสอบโดยมนุษย์ หากมีข้อผิดพลาดโปรดแจ้ง
本文来自网络搜集,不代表คลื่นสร้างอนาคต立场,如有侵权,联系删除。转载请注明出处:https://www.itsolotime.com/th/archives/25651
