การใช้ตัวแทนการเข้ารหัส GitHub Copilot อย่างมีความรับผิดชอบบน GitHub.com

เสร็จสมบูรณ์เมื่อ

เรียนรู้วิธีใช้เอเจนต์การเข้ารหัส Copilot บน GitHub.com อย่างมีความรับผิดชอบโดยทําความเข้าใจวัตถุประสงค์ ความสามารถ และข้อจํากัด

ในตอนท้ายของหน่วยนี้ คุณจะสามารถ:

  • ทําความเข้าใจวัตถุประสงค์ ความสามารถ และข้อจํากัดของตัวแทนการเข้ารหัส Copilot บน GitHub.com
  • ใช้แนวทางปฏิบัติในการใช้งานอย่างมีความรับผิดชอบ: การกําหนดขอบเขตงาน การรักษาความปลอดภัยสภาพแวดล้อม และการตรวจสอบผลลัพธ์
  • ตระหนักถึงมาตรการรักษาความปลอดภัย ความเสี่ยง และการบรรเทาผลกระทบ และตําแหน่งที่จะปรับปรุงประสิทธิภาพ

เกี่ยวกับ Copilot coding agent บน GitHub.com

Copilot coding agent เป็นตัวแทนการพัฒนาซอฟต์แวร์แบบอัตโนมัติและแบบอะซิงโครนัสที่รวมอยู่ใน GitHub ตัวแทนสามารถรับงานจากปัญหาหรือจาก Copilot Chat สร้างคําขอดึงข้อมูล แล้วทําซ้ําคําขอดึงข้อมูลเพื่อตอบสนองต่อข้อคิดเห็น

ตัวแทนการเข้ารหัส Copilot สามารถสร้างการเปลี่ยนแปลงที่ปรับให้เหมาะกับคุณตามคําอธิบายและการกําหนดค่าของคุณ รวมถึงงานต่างๆ เช่น การแก้ไขข้อบกพร่อง การใช้คุณสมบัติใหม่ที่เพิ่มขึ้น การสร้างต้นแบบ เอกสารประกอบ และการบํารุงรักษาฐานโค้ด หลังจากสร้างคําขอดึงข้อมูลเริ่มต้นแล้ว ตัวแทนสามารถทําซ้ํากับคุณตามคําติชมและบทวิจารณ์ของคุณ

ขณะทํางาน เอเจนต์จะสามารถเข้าถึงสภาพแวดล้อมการพัฒนาชั่วคราวของตัวเอง ซึ่งสามารถเปลี่ยนแปลงโค้ด ทําการทดสอบอัตโนมัติ และเรียกใช้ linters ได้ ตัวแทนได้รับการประเมินในภาษาโปรแกรมที่หลากหลาย โดยมีภาษาอังกฤษเป็นภาษาหลักที่รองรับ

วิธีการทํางานของเอเจนต์ (แบบ end-to-end)

  • การประมวลผลที่รวดเร็ว

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

  • การวิเคราะห์แบบจําลองภาษา

    จากนั้นพรอมต์จะถูกส่งผ่านโมเดลภาษาขนาดใหญ่ ซึ่งจะวิเคราะห์อินพุตเพื่อช่วยให้ตัวแทนให้เหตุผลกับงานและใช้ประโยชน์จากเครื่องมือที่จําเป็น

  • การสร้างการตอบสนอง

    โมเดลภาษาสร้างการตอบสนองตามการวิเคราะห์พรอมต์ การตอบกลับนี้อาจอยู่ในรูปแบบของคําแนะนําภาษาธรรมชาติและคําแนะนําโค้ด

  • การจัดรูปแบบผลลัพธ์

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

    คุณสามารถให้ข้อเสนอแนะแก่ตัวแทนได้โดยแสดงความคิดเห็นภายในคําขอดึงข้อมูลหรือกล่าวถึงตัวแทน (@copilot) อย่างชัดเจน จากนั้นตัวแทนจะส่งคําติชมนั้นไปยังแบบจําลองภาษาอีกครั้งเพื่อการวิเคราะห์เพิ่มเติม เมื่อตัวแทนทําการเปลี่ยนแปลงตามคําติชมเสร็จสมบูรณ์ จะตอบกลับความคิดเห็นของคุณด้วยการเปลี่ยนแปลงที่อัปเดต

Copilot มีจุดประสงค์เพื่อมอบโซลูชันที่เกี่ยวข้องมากที่สุดสําหรับการแก้ไขปัญหางาน อย่างไรก็ตาม อาจไม่ได้ให้คําตอบที่คุณต้องการเสมอไป คุณมีหน้าที่รับผิดชอบในการตรวจสอบและตรวจสอบการตอบกลับที่สร้างโดย Copilot เพื่อให้แน่ใจว่าถูกต้องและเหมาะสม นอกจากนี้ ในฐานะที่เป็นส่วนหนึ่งของกระบวนการพัฒนาผลิตภัณฑ์ของเรา GitHub ดําเนินการจัดทีมสีแดง (การทดสอบ) เพื่อทําความเข้าใจและปรับปรุงความปลอดภัยของตัวแทน

กรณีการใช้งานสําหรับตัวแทนการเข้ารหัส Copilot

  • การบํารุงรักษา Codebase: การแก้ไขความปลอดภัย การอัปเกรดการพึ่งพา และการปรับโครงสร้างใหม่ตามเป้าหมาย
  • เอกสาร: การอัปเดตและการสร้างเอกสารใหม่
  • การพัฒนาคุณสมบัติ: การใช้คําขอคุณลักษณะที่เพิ่มขึ้น
  • การปรับปรุงความครอบคลุมของการทดสอบ: การพัฒนาชุดทดสอบเพิ่มเติมสําหรับการจัดการคุณภาพ
  • การสร้างต้นแบบโครงการใหม่: แนวคิดใหม่ของกรีนฟิลด์

การปรับปรุงประสิทธิภาพสําหรับตัวแทนการเข้ารหัส Copilot

เพื่อเพิ่มประสิทธิภาพและแก้ไขข้อจํากัด ให้ใช้มาตรการเหล่านี้:

ตรวจสอบให้แน่ใจว่างานของคุณมีขอบเขตที่ดีโดยระบุ:

  • คําอธิบายที่ชัดเจนของปัญหาที่ต้องแก้ไขหรืองานที่จําเป็น
  • เกณฑ์การยอมรับที่สมบูรณ์ว่าโซลูชันที่ดีมีลักษณะอย่างไร (ตัวอย่างเช่น ควรมีการทดสอบหน่วยหรือไม่)
  • คําแนะนําหรือตัวชี้เกี่ยวกับไฟล์ที่ต้องเปลี่ยนแปลง

ปรับแต่งประสบการณ์ของคุณด้วยบริบทเพิ่มเติม

ตัวแทนการเข้ารหัส Copilot ใช้ประโยชน์จากพรอมต์ ความคิดเห็น และโค้ดของที่เก็บเป็นบริบทเมื่อสร้างการเปลี่ยนแปลงที่แนะนํา ปรับปรุงผลลัพธ์โดยการเพิ่ม คําสั่ง Copilot แบบกําหนดเอง เพื่อให้เอเจนต์เข้าใจวิธีสร้าง ทดสอบ และตรวจสอบความถูกต้องของการเปลี่ยนแปลง

การปรับแต่งที่เป็นประโยชน์อื่น ๆ :

  • การปรับแต่งสภาพแวดล้อมการพัฒนาสําหรับตัวแทนการเข้ารหัส GitHub Copilot
  • การปรับแต่งหรือปิดใช้งานไฟร์วอลล์สําหรับตัวแทนการเข้ารหัส GitHub Copilot
  • การขยายเอเจนต์การเข้ารหัส GitHub Copilot ด้วย Model Context Protocol (MCP)

ใช้ตัวแทนการเข้ารหัส Copilot เป็นเครื่องมือ ไม่ใช่การเปลี่ยน

ตรวจสอบและทดสอบเนื้อหาที่สร้างโดยตัวแทนเสมอเพื่อให้แน่ใจว่าตรงตามความต้องการของคุณและปราศจากข้อผิดพลาดหรือข้อกังวลด้านความปลอดภัยก่อนที่จะรวมเข้าด้วยกัน

ใช้แนวทางปฏิบัติในการเขียนโค้ดและการตรวจสอบโค้ดที่ปลอดภัย

แม้ว่าตัวแทนการเข้ารหัส Copilot จะสามารถสร้างโค้ดที่ถูกต้องตามหลักไวยากรณ์ได้ แต่ก็อาจไม่ปลอดภัยเสมอไป ปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดสําหรับการเข้ารหัสที่ปลอดภัยต่อไป (หลีกเลี่ยงความลับแบบฮาร์ดโค้ด ป้องกันช่องโหว่ในการฉีด) และใช้การทดสอบอย่างเข้มงวด การสแกน IP และการตรวจสอบช่องโหว่

ให้ คําติชม

หากคุณพบปัญหาหรือข้อจํากัดใดๆ ให้ใช้ไอคอนนิ้วโป้งด้านล่างการตอบกลับของเจ้าหน้าที่หรือแบ่งปันคําติชมในฟอรัมการสนทนาของชุมชน

ติดตามข่าวสารล่าสุด

ตัวแทนการเข้ารหัส Copilot กําลังพัฒนา ตรวจสอบความเสี่ยงด้านความปลอดภัยใหม่ๆ และแนวทางปฏิบัติที่ดีที่สุดเมื่อเกิดขึ้น

มาตรการรักษาความปลอดภัยสําหรับตัวแทนการเข้ารหัส Copilot

การหลีกเลี่ยงการยกระดับสิทธิ์

  • ตัวแทนการเข้ารหัส Copilot จะตอบสนองต่อการโต้ตอบจากผู้ใช้ที่มีสิทธิ์ เขียน เท่านั้น
  • เวิร์กโฟลว์การดําเนินการที่ทริกเกอร์โดย PR ของตัวแทนต้องได้รับการอนุมัติจากผู้ใช้ที่มีสิทธิ์ในการเขียนก่อนที่จะเรียกใช้
  • อักขระที่ซ่อนอยู่ (ไม่ได้แสดงผลบน GitHub.com) จะถูกกรองเพื่อลดความเสี่ยงในการฉีดพร้อมท์

การจํากัดสิทธิ์ของ Copilot

  • ตัวแทนเข้าถึงที่เก็บที่กําลังสร้าง PR เท่านั้น ไม่สามารถเข้าถึงที่เก็บอื่น
  • การพุชจะจํากัดเฉพาะสาขาที่มีชื่อขึ้นต้นด้วย copilot/ (ไม่ใช่สาขาเริ่มต้นของคุณ)
  • เอเจนต์ไม่มีสิทธิ์เข้าถึงข้อมูลลับหรือตัวแปรของ org/repo Actions ในขณะรันไทม์ เฉพาะความลับ/ตัวแปรที่เพิ่มไปยังสภาพแวดล้อม copilot เท่านั้นที่จะถูกส่งผ่านไปยังเอเจนต์

การป้องกันการขโมยข้อมูล

ไฟร์วอลล์จะเปิดใช้งานโดยค่าเริ่มต้นเพื่อป้องกันการขโมยโค้ดหรือข้อมูลที่ละเอียดอ่อนโดยไม่ได้ตั้งใจหรือเป็นอันตราย ดู การปรับแต่งหรือปิดใช้งานไฟร์วอลล์สําหรับตัวแทนการเข้ารหัส GitHub Copilot

ข้อจํากัดของตัวแทนการเข้ารหัส Copilot

ประสิทธิภาพอาจแตกต่างกันไปขึ้นอยู่กับฐานรหัสและอินพุตของคุณ โปรดคํานึงถึงข้อจํากัดเหล่านี้:

  • ขอบเขตและคุณภาพที่จํากัด: LLM อาจไม่จัดการกับโครงสร้างโค้ดหรือภาษาที่คลุมเครือ คุณภาพจะแตกต่างกันไปตามความครอบคลุมของภาษา
  • อคติที่อาจเกิดขึ้น: ข้อมูลการฝึกอบรมและบริบทที่ดึงมาอาจรวมถึงอคติ ตัวแทนอาจเอนเอียงไปทางภาษาหรือสไตล์บางอย่าง
  • ความเสี่ยงด้านความปลอดภัย: โค้ดที่สร้างขึ้นจะขึ้นอยู่กับบริบทของที่เก็บและอาจเปิดเผยข้อมูลที่ละเอียดอ่อนหากไม่ได้รับการตรวจสอบ จําเป็นต้องมีการตรวจสอบอย่างละเอียด
  • รหัสไม่ถูกต้อง: โค้ดอาจดูถูกต้อง แต่ผิดความหมาย/ไวยากรณ์หรือไม่สอดคล้องกับเจตนา ตรวจสอบความพอดี ลวดลาย และสไตล์
  • รหัสสาธารณะ: ตัวแทนอาจสร้างการจับคู่/ใกล้เคียงกับรหัสสาธารณะแม้ว่าจะตั้งค่า "บล็อก" ไว้ก็ตาม อาจไม่มีการอ้างอิง
  • กฎหมาย/ข้อบังคับ: ตรวจสอบให้แน่ใจว่าปฏิบัติตามภาระผูกพันที่เกี่ยวข้อง หลีกเลี่ยงการใช้งานที่ต้องห้ามภายใต้ข้อกําหนดในการให้บริการและจรรยาบรรณ