Glamorous Toolkit
(gtoolkit.com)- เมื่อระบบขนาดใหญ่และโค้ดที่ 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
ยังไม่มีความคิดเห็น