การปรับแต่ง ขยาย และตรวจสอบความถูกต้องของตัวแทนการเข้ารหัส Copilot

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

เอเจนต์การเข้ารหัส GitHub Copilot ทํางานภายในสภาพแวดล้อม GitHub Actions ที่ปลอดภัยและชั่วคราว ด้วยขั้นตอนการกําหนดค่าไม่กี่ขั้นตอน คุณสามารถตั้งค่าสภาพแวดล้อมนี้ไว้ล่วงหน้าเพื่อปรับปรุงความน่าเชื่อถือและความเร็ว ขยายความสามารถของเอเจนต์ด้วยเครื่องมือภายนอกผ่าน Model Context Protocol (MCP) และใช้แนวทางปฏิบัติที่ดีที่สุดเพื่อทดสอบและตรวจสอบผลลัพธ์ของเอเจนต์ก่อนการผสาน

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

  • ติดตั้งเครื่องมือ การขึ้นต่อกัน และข้อมูลลับล่วงหน้าเพื่อปรับแต่งสภาพแวดล้อมการพัฒนาของเอเจนต์
  • ขยายความสามารถของเอเจนต์โดยใช้ Model Context Protocol (MCP)
  • ทดสอบและตรวจสอบผลลัพธ์ของเอเจนต์อย่างมีประสิทธิภาพก่อนการรวมการเปลี่ยนแปลง

การเพาะเมล็ดสภาพแวดล้อมการพัฒนาล่วงหน้า

ติดตั้งเครื่องมือและการพึ่งพาล่วงหน้าด้วยcopilot-setup-steps.yml

สร้าง .github/workflows/copilot-setup-steps.yml บนสาขาเริ่มต้นของที่เก็บของคุณ เวิร์กโฟลว์ต้องกําหนดงานเดียวที่ชื่อcopilot-setup-steps รวมขั้นตอนที่จําเป็นในการติดตั้งการขึ้นต่อกันหรือตั้งค่าเครื่องมือ

ตัวอย่างสําหรับ TypeScript:

name: "Copilot Setup Steps"

on:
  workflow_dispatch:
  push:
    paths:
      - .github/workflows/copilot-setup-steps.yml
  pull_request:
    paths:
      - .github/workflows/copilot-setup-steps.yml

jobs:
  copilot-setup-steps:
    runs-on: ubuntu-latest
    permissions:
      contents: read
    steps:
      - name: Checkout code
        uses: actions/checkout@v5
      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: "20"
          cache: "npm"
      - name: Install JavaScript dependencies
        run: npm ci

คีย์การกําหนดค่าที่อนุญาตสําหรับ copilot-setup-steps งาน: steps, permissions, runs-on, container, services, snapshot, timeout-minutes (≤ 59) ความลึกของการดึงข้อมูลใดๆ actions/checkout จะถูกแทนที่เพื่อให้สามารถย้อนกลับได้อย่างปลอดภัย เวิร์กโฟลว์การตั้งค่าจะทํางานแบบสแตนด์อโลน (เพื่อให้คุณสามารถตรวจสอบความถูกต้องได้) และโดยอัตโนมัติก่อนที่ตัวแทนจะเริ่มทํางาน

นักวิ่งที่โฮสต์โดย GitHub ขนาดใหญ่ขึ้น

  • เพิ่มนักวิ่งขนาดใหญ่ก่อน
  • ใน copilot-setup-steps.ymlตั้งค่า runs-on เป็นป้ายกํากับ/กลุ่ม (เช่น ubuntu-4-core)
  • รองรับเฉพาะนักวิ่ง Ubuntu x64 เท่านั้น ไม่รองรับนักวิ่งที่โฮสต์เอง

กิต แอลเอฟเอส

หากคุณใช้ Git Large File Storage ให้เปิดใช้งานในขั้นตอนการตั้งค่า:

jobs:
  copilot-setup-steps:
    runs-on: ubuntu-latest
    permissions:
      contents: read
    steps:
      - uses: actions/checkout@v5
        with:
          lfs: true

การปรับแต่งไฟร์วอลล์

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

ขยายด้วย Model Context Protocol (MCP)

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

หมายเหตุ: ตัวแทนการเข้ารหัส Copilot รองรับเครื่องมือ MCP เท่านั้น (ไม่ใช่ทรัพยากรหรือข้อความแจ้ง) ไม่รองรับเซิร์ฟเวอร์ MCP ระยะไกลที่ต้องใช้ OAuth

เซิร์ฟเวอร์ MCP เริ่มต้น

  • เซิร์ฟเวอร์ GitHub MCP: เข้าถึงปัญหา PR และข้อมูล GitHub ด้วยโทเค็นแบบอ่านอย่างเดียวที่มีขอบเขตเป็นที่เก็บปัจจุบันตามค่าเริ่มต้น (คุณสามารถปรับแต่งโทเค็นได้)
  • เซิร์ฟเวอร์ MCP ของนักเขียนบทละคร: อ่าน โต้ตอบ และจับภาพหน้าจอของหน้าเว็บที่เข้าถึงได้ภายในสภาพแวดล้อมของตัวแทน (localhost/127.0.0.1)

การกําหนดค่าที่เก็บ

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

แนวทางปฏิบัติที่ดีที่สุด

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

การทดสอบและตรวจสอบเอาต์พุตของตัวแทน

คุณยังคงรับผิดชอบต่อคุณภาพและความปลอดภัย:

  • เรียกใช้ CI (tests, linters, scanning) บน PR ของตัวแทนทุกราย การตรวจสอบเหล่านี้จะไม่ทํางานจนกว่าคุณจะคลิก อนุมัติและเรียกใช้เวิร์กโฟลว์
  • ตรวจสอบบริเวณที่มีแรงกระแทกสูงหรือบอบบางด้วยตนเอง
  • ขอให้ตัวแทนสร้างการทดสอบ (เช่น "เพิ่มการทดสอบหน่วย Jest สําหรับฟังก์ชัน src/utils/ ทั้งหมดในรูปแบบ repo ต่อไปนี้") - การสร้างการทดสอบหลายไฟล์จะใช้ PRU
  • บังคับใช้ชุดกฎเพื่อให้ PR ของตัวแทนต้องผ่านการทดสอบ + การสแกน + การเข้าเส้นก่อนที่จะรวม
  • PR ตัวแทนฉลาก (เช่น agent-refactor, agent-tests) เพื่อตรวจสอบ คัดแยก และย้อนกลับหากจําเป็น
  • ทําซ้ําวิธีการใน .github/copilot-instructions.md เมื่อคุณเห็นข้อผิดพลาดซ้ําๆ
  • เปลี่ยนกลับอย่างรวดเร็วหากจําเป็นและขอการเปลี่ยนแปลงใหม่จากตัวแทน

การใช้ PRU โดยเจตนาเพื่อการตรวจสอบความถูกต้อง

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

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