• เมื่อระบบขนาดใหญ่และโค้ดที่ AI สร้างอย่างรวดเร็วทำให้มนุษย์อ่านและทำความเข้าใจได้ยากขึ้นเรื่อย ๆ Glamorous Toolkit จึงมุ่งเป็น Moldable Development Environment ที่ช่วยให้เข้าใจระบบผ่าน เครื่องมือบริบทแบบกำหนดแน่นอน
  • แนวทางคือสร้าง เครื่องมือบริบท ที่บีบอัดมุมมองของระบบที่จำเป็นสำหรับแต่ละคำถาม แล้วผูกเครื่องมือเหล่านี้เข้ากับอ็อบเจ็กต์หรือสถานการณ์ที่เกี่ยวข้อง เพื่อให้ทำงานเฉพาะเมื่อจำเป็นเท่านั้น
  • agent harness ในตัวสามารถกำหนดบริบทการสนทนา เครื่องมือ และ structured output ด้วยสคริปต์ และใช้งานร่วมกับ OpenAI, Anthropic, Ollama หรือผู้ให้บริการที่สร้างเองได้
  • ขอบเขตการใช้งานครอบคลุมมากกว่าการวิเคราะห์ระบบ legacy ไปถึง การค้นพบโดเมน, การสำรวจ API·ข้อมูล·ล็อก, การทำเอกสาร, การทำ domain modeling, การเขียนโค้ดใหม่, การสนทนากับ AI และการตรวจสอบ runtime
  • เป็น โอเพนซอร์สฟรีภายใต้ MIT License โดยมีศูนย์กลางอยู่ที่ Smalltalk บน Pharo แต่สามารถขยายไปยัง Rust รวมถึงการวิเคราะห์หลายภาษาและหลาย runtime ได้

Moldable Development Environment สำหรับทำความเข้าใจระบบและ AI

  • เป้าหมายของ Glamorous Toolkit คือการปรับวิธี รับข้อมูล เกี่ยวกับระบบให้ดียิ่งขึ้น
  • ระบบมีขนาดใหญ่เกินไป และ AI สร้างโค้ดได้เร็วเกินไป ทำให้การทำความเข้าใจด้วยการ อ่านโค้ด เพียงอย่างเดียวกลายเป็นคอขวด
  • แทนที่จะใช้แนวทางที่เน้นการอ่าน จึงใช้ เครื่องมือบริบทแบบกำหนดแน่นอน ที่บีบอัดระบบรอบ ๆ ปัญหา
  • เครื่องมือเหล่านี้ช่วยให้มนุษย์และ AI สำรวจระบบได้เร็วขึ้น และสามารถสร้างได้โดยตรงหรือสร้างร่วมกับ AI ภายในสภาพแวดล้อมเดียวที่ผสานรวมกัน
  • คำถามเกี่ยวกับระบบที่มีอยู่สามารถตอบได้ผ่าน narrative ที่ประกอบด้วยเครื่องมือบริบท

Agent harness ในตัว

  • Agent ที่โปรแกรมได้

    • สามารถกำหนดบริบทของการสนทนา เครื่องมือ และ structured output ได้ด้วยสคริปต์
  • หน่วยความจำของ agent ที่ขยายได้

    • กำหนดบริบทเป็นคำอธิบายที่รันได้ ซึ่งเชื่อมโยงกับโค้ดและตัวอย่าง
    • ใช้ context view เพื่อขยายหน่วยความจำของ agent ไปยังอ็อบเจ็กต์ใด ๆ ได้
  • พฤติกรรมของ agent ที่อธิบายได้

    • ไม่จำเป็นต้องยอมรับตามที่ AI บอกว่ามันทำอะไร แต่สามารถทำความเข้าใจแบบกำหนดแน่นอนได้ผ่าน context view
  • อ็อบเจ็กต์ ไม่ใช่ข้อความ

    • ส่ง live object เข้าไปในการสนทนา และรับ structured object กลับมาได้
    • อ็อบเจ็กต์แต่ละตัวมี context view ที่มนุษย์และ AI สามารถสำรวจได้
    • ใช้งานร่วมกับ OpenAI, Anthropic, Ollama ได้ และสามารถสร้างผู้ให้บริการของตัวเองได้ด้วย

เหตุผลที่ต้องมีเครื่องมือบริบท

  • ซอฟต์แวร์ไม่มีรูปร่าง และไม่มีสิ่งใดในระบบซอฟต์แวร์ที่รับรู้ได้โดยไม่ผ่าน เครื่องมือ
  • เครื่องมือเป็นผู้ให้รูปร่างแก่ซอฟต์แวร์ ดังนั้นหากควบคุมเครื่องมือได้ ก็ย่อมควบคุมการรับรู้และความเข้าใจได้ด้วย
  • ซอฟต์แวร์ ขึ้นกับบริบท อย่างมาก เครื่องมือจึงต้องมีบริบทจึงจะมีประสิทธิภาพ
  • ระบบซอฟต์แวร์หนึ่งระบบไม่มีการแทนภาพเพียงแบบเดียว
    • รูปแบบข้อความของโค้ดก็เป็นเพียงรูปแบบโดยบังเอิญของสื่อป้อนข้อมูลเท่านั้น
    • ปัญหาต่างกันต้องการการแทนภาพที่ต่างกัน
  • Glamorous Toolkit ถูกออกแบบเหมือนภาษาที่ประกอบด้วยตัวดำเนินการเชิงภาพและโต้ตอบได้ เพื่อรองรับเครื่องมือบริบทจำนวนมากที่คาดการณ์ได้ยาก
    • สามารถโปรแกรมและประกอบ micro-tool ได้ด้วยต้นทุนต่ำ
    • สามารถสร้างเครื่องมือได้หลายวิธีใน live environment

เครื่องมือ การบีบอัด และ inversion of control

  • เครื่องมือคือ อินเทอร์เฟซ สำหรับโต้ตอบกับการคำนวณ
    • อาจเป็นตัวแก้ไขการตั้งค่า, runtime debugger หรือ API inspector
    • อาจเป็นเครื่องมือซับซ้อน หรือเครื่องมือง่าย ๆ ที่โฟกัสคำถามเดียวก็ได้
    • อาจเป็นแบบภาพหรือแบบ plain text ก็ได้
    • อาจเป็นเครื่องมือทั่วไป หรือเครื่องมือบริบทที่เกี่ยวข้องเฉพาะกับ input แคบ ๆ ก็ได้
  • เครื่องมือทั่วไปใช้ได้กว้าง แต่มีต้นทุนคือทำให้ทุกอย่างดูคล้ายกัน
  • คุณค่าของระบบซอฟต์แวร์ย่อมเป็นสิ่งเฉพาะเจาะจงเสมอ ดังนั้น เครื่องมือบริบท จึงถ่ายทอดคุณค่านั้นได้อย่างมีประสิทธิภาพและน่าใช้งานกว่า
  • การทำความเข้าใจระบบท้ายที่สุดคือกระบวนการตอบคำถาม
    • คำตอบอยู่ในผลผลิตของระบบ แต่ผลผลิตมีขนาดใหญ่เกินกว่าจะอ่านได้ง่าย
    • เครื่องมือเข้ารหัสวิธีได้คำตอบแบบกำหนดแน่นอน
    • ผลลัพธ์จากเครื่องมือทำหน้าที่เหมือน การบีบอัด ระบบสำหรับคำถามนั้น
  • หากต้องตอบทุกคำถามด้วยเครื่องมือบริบทแบบกำหนดแน่นอน แต่ละระบบจะต้องมีเครื่องมือหลายพันชิ้น
  • Glamorous Toolkit ไม่ให้ผู้ใช้เรียกใช้เครื่องมือโดยตรงอย่างชัดเจน แต่เชื่อมเครื่องมือเข้ากับบริบทที่เกี่ยวข้อง เพื่อให้ทำงานเฉพาะเมื่อมีการโต้ตอบกับบริบทนั้น
    • บริบทนี้อาจเป็นหน่วยพื้นฐานอย่างอ็อบเจ็กต์แต่ละตัวก็ได้

กระบวนการ Moldable Development ทั่วไป

  • เริ่มจากคำถามที่เป็นรูปธรรม
  • หากไม่มีเครื่องมือที่เกี่ยวข้องก็สร้างขึ้นใหม่
  • ตีความคำตอบและตัดสินใจ
  • ทำกระบวนการนี้ซ้ำ

Object view และ narrative

  • view ที่เชื่อมกับอ็อบเจ็กต์กลายเป็นหน่วยของการทำเอกสาร
  • เมื่ออ็อบเจ็กต์ถูกสร้างเป็นตัวอย่างอัตโนมัติและถูกทดสอบ ก็สามารถสร้าง narrative ที่กำหนดไว้เพื่อถ่ายทอดแนวคิดที่คงอยู่ได้นาน ตั้งแต่ tutorial ไปจนถึงข้อจำกัดทางสถาปัตยกรรมและกระบวนการธุรกิจ
  • narrative นี้สามารถออกแบบสำหรับทั้งมนุษย์และ AI
  • เนื่องจากองค์ประกอบเดียวกันถูกผสานเข้ากับประสบการณ์การพัฒนาทั้งหมด จึงสามารถทำ automated test และ refactoring ร่วมกับโค้ดได้
  • narrative ที่กำหนดไว้เป็นชิ้นส่วนที่นำกลับมาใช้ใหม่ได้ แต่ด้วยลักษณะเชิงบริบทของซอฟต์แวร์ จึงยังต้องมี dynamic narrative ที่ตอบคำถามใหญ่ขึ้นแบบตามความต้องการด้วย
    • การตรวจสอบประสิทธิภาพของคลัสเตอร์
    • การสำรวจโครงสร้างระบบ COBOL
  • narrative สามารถจัดการอ็อบเจ็กต์ใด ๆ ที่แสดงมุมมองต่าง ๆ ของระบบ รวมถึงโดเมนได้
  • สามารถมุ่งไปยังผู้มีส่วนได้ส่วนเสียที่มีพื้นฐานและความสนใจต่างกัน ทำให้สภาพแวดล้อมทำหน้าที่เป็นตัวกลางในการสนทนาระหว่างผู้มีส่วนได้ส่วนเสียของระบบ

การแก้ไขตามบริบท

  • การทำให้เป็นบริบทขยายไปสู่การโต้ตอบทั้งหมดกับระบบ รวมถึงการแก้ไข
  • ระบบประกอบด้วยหลายมุมมอง
    • เทคโนโลยี
    • กฎของโดเมน
    • ขนบปฏิบัติ
    • ไลบรารี
    • อินเทอร์เฟซ
    • การทดสอบ
    • ผลผลิตที่สร้างขึ้น
    • พฤติกรรมขณะรัน
  • การแก้ไขไม่ใช่แค่การป้อนข้อความ แต่เป็นการกระทำที่ส่งผลต่อบางส่วนของมุมมองเหล่านี้
  • การเปลี่ยนแปลงทุกครั้งเกิดขึ้นภายใน บริบท ที่กำหนดความหมายของมัน
  • editor ทั่วไปทำให้บริบทนี้แบนราบ และบังคับให้ผู้ใช้ทำงานในระดับของ editor
  • context editor ยกระดับการโต้ตอบให้สอดคล้องกับ mental model ของผู้ใช้

ขอบเขตการใช้งานและข้อจำกัด

  • Glamorous Toolkit ใช้เป็นหลักในการสร้างเครื่องมือ view คำอธิบาย และ workflow เพื่อทำความเข้าใจและเปลี่ยนแปลงระบบ
  • ไม่ใช่แพลตฟอร์มแอปพลิเคชันทดแทน
  • ใช้กับระบบ legacy ขนาดใหญ่ได้ แต่ยังครอบคลุมสถานการณ์อื่น ๆ อีกหลายแบบ
    • การค้นพบโดเมน
    • การสำรวจ API
    • การสำรวจข้อมูล
    • การทำความเข้าใจล็อก
    • การทำเอกสาร
    • การทำ domain modeling
    • การเขียนโค้ดใหม่
    • การสนทนากับ AI
    • การตรวจสอบ runtime
  • เครื่องมือมาตรฐานมีประโยชน์กับปัญหาทั่วไป
  • สำหรับคำถามเฉพาะที่เกิดขึ้นภายในระบบที่เป็นรูปธรรม จำเป็นต้องมี เครื่องมือบริบท

สรุปโดย AI และเครื่องมือแบบกำหนดแน่นอน

  • คำถามส่วนใหญ่เกี่ยวกับระบบต้องการ คำตอบแบบกำหนดแน่นอน ที่อิงข้อมูลของระบบ
  • สรุปโดย AI อาจสะดวก แต่ไม่สามารถรู้ได้ว่าถูกต้องหรือเป็นตัวแทนที่ดีหรือไม่ และไม่สามารถอธิบายได้ด้วย
  • สำหรับคำตอบเพื่อวัตถุประสงค์ทางวิศวกรรม ความถูกต้อง ความเป็นตัวแทน และความสามารถในการอธิบายเป็นสิ่งสำคัญ
  • เครื่องมือบริบทแบบกำหนดแน่นอนก็อาจมีอคติได้เช่นกัน แต่สามารถตรวจสอบอคตินั้นก่อนตีความ output ได้
  • ดูรายละเอียดเพิ่มเติมได้ใน Rewilding Software Engineering บทที่ 6

การใช้งานจริงและเทคโนโลยีที่รองรับ

  • Glamorous Toolkit ทำให้สร้างเครื่องมือบริบทได้ไม่ยาก
  • สภาพแวดล้อมถูกสร้างเหมือนภาษาที่ประกอบด้วยตัวดำเนินการเชิงภาพและโต้ตอบได้ ทำให้โปรแกรมเครื่องมือและประกอบใช้งานได้หลายวิธีอย่างง่ายดาย
  • เมื่อเปิด Glamorous Toolkit จะเห็นเครื่องมือบริบท มากกว่า 6,000 ชิ้น ที่ใช้ในกระบวนการพัฒนา
  • หากต้องการใช้ศักยภาพของเครื่องมือให้เต็มที่ จำเป็นต้องมีการโปรแกรม และวิธีหลักคือ Pharo ซึ่งเป็นหนึ่งใน Smalltalk
  • เหตุผลที่ใช้ Smalltalk เป็นหลัก เพราะเป็นระบบเชิงสะท้อนที่ช่วยให้เปลี่ยนสภาพแวดล้อมแบบ live ระหว่างใช้งานได้
  • ปัจจุบันส่วนสำคัญของ Glamorous Toolkit ถูก implement ด้วย Rust ด้วย และทำงานร่วมกับหลายเทคโนโลยี
  • การรองรับ Pharo มีความประณีต แต่ถูกออกแบบให้ขยายไปยังเทคโนโลยีและภาษาอื่นได้
    • ตัวอย่างซอร์สที่วิเคราะห์ได้: Rust, Java, C#, Ruby/Rails, Python, TypeScript, JavaScript, React, COBOL
    • ตัวอย่าง runtime ที่ทำงานร่วมกันได้: GraphQL, Python, JavaScript, Gemstone
  • การรองรับเหล่านี้มีมาให้ในตัว และยังมองได้ว่าเป็นตัวอย่างที่ผู้ใช้สามารถสร้างเองสำหรับแต่ละภาษาและเทคโนโลยีได้

ไลเซนส์และแหล่งข้อมูล

  • Glamorous Toolkit เป็นโอเพนซอร์สฟรีภายใต้ MIT License
  • รายละเอียดเชิงปฏิบัติดูได้ใน Glamorous Toolkit book
  • คำอธิบายในระดับที่สูงขึ้นดูได้ที่ moldabledevelopment.com
  • แหล่งข้อมูลสำหรับเริ่มต้นมีให้ที่ Get started

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น