การปฏิบัติวิศวกรรมความรู้เอเจนต์: การสร้างระบบความทรงจำที่ยั่งยืน เพื่อให้เอเจนต์โค้ดดิ้งเรียนรู้และเติบโตได้เหมือนมนุษย์

คำสำคัญ: 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

Like (0)
Previous 7 hours ago
Next 7 hours ago

相关推荐