Microsoft ได้เปิดเผยซอร์สโค้ดของ GitHub Copilot Chat ต่อสาธารณะ ทำให้นักพัฒนาได้เห็นรายละเอียดครั้งแรกของวิธีการที่ผู้ช่วย AI สำหรับการเขียนโค้ดประมวลผลคำขอของผู้ใช้และจัดการบริบท การเปิดเผยครั้งนี้ได้จุดประกายการอภิปรายอย่างมากในชุมชนนักพัฒนาเกี่ยวกับการทำงานภายในของเครื่องมือนี้และแนวทางของ Microsoft ต่อซอฟต์แวร์โอเพนซอร์ส
ส่วนขยาย GitHub Copilot ใน VS Code:
- GitHub Copilot: ให้คำแนะนำการเขียนโค้ดแบบอินไลน์ขณะที่คุณพิมพ์
- GitHub Copilot Chat: ส่วนขยายเสริมสำหรับความช่วยเหลือ AI แบบสนทนา
![]() |
---|
มุมมองของหน้าเว็บ repository ใน GitHub สำหรับโปรเจกต์ vscode-copilot-chat ที่แสดงซอร์สโค้ดที่เปิดเผยต่อสาธารณะใหม่โดย Microsoft |
การค้นพบระบบติดตามตำแหน่งเคอร์เซอร์ทำให้นักพัฒนาประหลาดใจ
หนึ่งในการเปิดเผยที่น่าสนใจที่สุดจากซอร์สโค้ดคือวิธีที่ Copilot Chat ติดตามตำแหน่งเคอร์เซอร์เพื่อให้ความช่วยเหลือที่แม่นยำยิ่งขึ้น ระบบใช้ตัวบ่งชี้พิเศษที่เรียกว่า ${CURSOR_TAG}
เพื่อระบุตำแหน่งที่แน่นอนของเคอร์เซอร์ของนักพัฒนาในโค้ด การค้นพบนี้ได้เปลี่ยนวิธีที่นักพัฒนาหลายคนวางแผนที่จะโต้ตอบกับเครื่องมือนี้
ผู้ใช้หลายคนไม่ทราบว่าฟีเจอร์นี้มีอยู่ แม้ว่าจะมักอ้างอิงถึงโค้ดโดยใช้วลีเช่น บรรทัดนี้ หรือ เมธอดนี้ ในการสนทนากับ AI การติดตามเคอร์เซอร์อธิบายได้ว่าทำไมการอ้างอิงดังกล่าวจึงทำงานได้อย่างมีประสิทธิภาพ เนื่องจากระบบสามารถเข้าใจบริบทเฉพาะของสิ่งที่นักพัฒนากำลังพูดถึงโดยไม่ต้องการคำอธิบายรายละเอียดของตำแหน่งโค้ด
![]() |
---|
ฟีเจอร์แชทแบบบูรณาการใน Visual Studio Code ที่แสดงให้เห็นว่าผู้ใช้สามารถโต้ตอบกับ GitHub Copilot เพื่อขอความช่วยเหลือในการเขียนโค้ดได้อย่างไร |
เผยสถาปัตยกรรมทางเทคนิคและการประมวลผล Prompt
สมาชิกชุมชนได้เริ่มวิเคราะห์โค้ดเบสเพื่อเข้าใจวิธีที่ Copilot Chat ประมวลผลคำขอและสร้างการตอบสนอง ระบบใช้ต้นไม้การตัดสินใจที่ซับซ้อนซึ่งจัดการกับประเภทต่างๆ ของความตั้งใจของผู้ใช้ ตั้งแต่คำถามง่ายๆ ไปจนถึงงานการเขียนโค้ดหลายขั้นตอน สถาปัตยกรรมประกอบด้วยคลาสพิเศษสำหรับจัดการโหมดการโต้ตอบที่แตกต่างกัน รวมถึงโหมดเอเจนต์ที่เพิ่งเพิ่มเข้ามาสำหรับเซสชันการเขียนโค้ดแบบอัตโนมัติ
ระบบประมวลผล prompt ใช้ไฟล์ TypeScript React (TSX) สำหรับการเรนเดอร์ prompt และการตอบสนองของเครื่องมือ ซึ่งแสดงถึงแนวทางที่น่าสนใจในการจัดการการโต้ตอบกับ AI ระบบยังรวมถึงการนับโทเค็นและตรรกะการตัดทอนการสนทนาเพื่อให้แน่ใจว่าคำขอจะอยู่ภายในข้อจำกัดของโมเดล
องค์ประกอบทางเทคนิคหลัก:
${CURSOR_TAG}
: เครื่องหมายพิเศษสำหรับติดตามตำแหน่งของเคอร์เซอร์- ไฟล์ TSX : ใช้สำหรับการแสดงผล prompts และการตอบสนองของเครื่องมือ
- การนับและตัดแต่ง Token : ช่วยให้มั่นใจว่าการสนทนาจะอยู่ในขีดจำกัดของโมเดล
- ตัวจัดการ intent หลายตัว: AskAgentIntent และ EditAgentIntent สำหรับโหมดการโต้ตอบที่แตกต่างกัน
![]() |
---|
ส่วนติดต่อผู้ใช้ของฟีเจอร์ "Ask Copilot" ใน Visual Studio Code ที่แสดงให้เห็นด้านการโต้ตอบของการประมวลผลพรอมต์ใน Copilot Chat |
การถกเถียงเรื่องโอเพนซอร์สและความสงสัยของชุมชน
การเปิดเผยซอร์สโค้ดได้จุดประกายการถกเถียงเรื่องสิ่งที่ถือเป็นซอฟต์แวร์โอเพนซอร์สที่มีความหมายอีกครั้ง นักวิจารณ์โต้แย้งว่าการเปิดเผยเพียงโค้ดฝั่งไคลเอนต์ในขณะที่เก็บโมเดล AI จริงและกระบวนการฝึกอบรมไว้เป็นกรรมสิทธิ์ แสดงถึงการ open-washing มากกว่าการมีส่วนร่วมโอเพนซอร์สที่แท้จริง
Copilot Chat คืออะไรนอกจากส่วนหน้าของบริการ SaaS ของ Microsoft บางอย่าง? ไม่มีอะไรที่เป็น 'โอเพนซอร์ส' อย่างแท้จริงเกี่ยวกับเรื่องนั้น สิ่งสำคัญทั้งหมดถูกล็อกไว้เบื้องหลัง GitHub Copilot API
ผู้สนับสนุนโต้แย้งว่าโค้ดส่วนหน้าให้ข้อมูลเชิงลึกที่มีค่าเกี่ยวกับเทคนิค prompt engineering และการจัดการบริบทที่นักพัฒนาคนอื่นสามารถเรียนรู้และปรับใช้ได้ การเปิดเผยช่วยให้นักพัฒนาที่อยากรู้เข้าใจวิธีการประมวลผล prompt ของพวกเขาและข้อมูลอะไรที่ถูกส่งไปยังบริการ AI
ประวัติของ Microsoft ในการมีส่วนร่วมของชุมชน
การประกาศครั้งนี้ยังได้ดึงดูดความสนใจไปยังการจัดการของ Microsoft ต่อการมีส่วนร่วมของชุมชนในโปรเจกต์โอเพนซอร์สของพวกเขา นักพัฒนาบางคนชี้ไปที่ backlog ขนาดใหญ่ของ pull request ที่ยังไม่ได้ merge ใน VS Code เป็นหลักฐานว่าความพยายามโอเพนซอร์สของ Microsoft ให้ความสำคัญกับการพัฒนาภายในมากกว่าข้อมูลป้อนกลับจากชุมชน
อย่างไรก็ตาม คนอื่นๆ ชี้ให้เห็นว่าการจัดการการมีส่วนร่วมของชุมชนหลายพันรายการต้องการทรัพยากรอย่างมาก และ Microsoft ก็ merge pull request จำนวนมากทุกวัน แนวทางของบริษัทสะท้อนถึงความท้าทายในการสร้างสมดุลระหว่างข้อมูลป้อนกลับจากชุมชนกับวิสัยทัศน์ผลิตภัณฑ์และมาตรฐานคุณภาพ
การเปิดเผยซอร์สโค้ด GitHub Copilot Chat ให้ข้อมูลเชิงลึกที่มีค่าเกี่ยวกับเครื่องมือพัฒนาที่ได้รับความช่วยเหลือจาก AI สมัยใหม่ แม้ว่าการถกเถียงจะยังคงดำเนินต่อไปเกี่ยวกับผลกระทบที่กว้างขึ้นของกลยุทธ์โอเพนซอร์สของ Microsoft สำหรับนักพัฒนาที่สนใจเข้าใจวิธีการทำงานของผู้ช่วยเขียนโค้ด AI เบื้องหลัง โค้ดเบสนี้มอบมุมมองที่หาได้ยากเกี่ยวกับการตัดสินใจทางเทคนิคที่หล่อหลอมเครื่องมือที่มีความสำคัญเพิ่มขึ้นเหล่านี้