เมื่อผู้ร่วมพัฒนาโปรเจกต์กลายเป็น AI: วิธีรับมือ Pull Request มหาศาลสไตล์ AutoGPT

เมื่อผู้ร่วมพัฒนาโปรเจกต์กลายเป็น AI: วิธีรับมือ Pull Request มหาศาลสไตล์ AutoGPT

คำถามสำคัญที่มักเกิดขึ้นในวงสนทนาของผู้ดูแลโปรเจกต์ (maintainer) คือคุณจะรับมืออย่างไรเมื่อคิว Pull Request (PR) เต็มไปด้วยผลงานที่เขียนโดยเอเจนท์ AI (Agent)

นี่คือสิ่งที่ Nicholas Tindle วิศวกร AI และผู้ก่อตั้ง AutoGPT ต้องเผชิญอยู่ทุกวัน ผมได้พูดคุยกับเขาในเดือนพฤษภาคม ช่วง Maintainer Month ซึ่งในขณะนั้น AutoGPT มีดาวมากกว่า 180,000 ดวง และมี PR ค้างอยู่ราว 150 รายการ โดยส่วนใหญ่เขียนขึ้นด้วยเอเจนท์อย่าง Copilot, OpenClaw หรือเครื่องมือภายในของ AutoGPT เอง

ในขณะที่ผู้ดูแลส่วนใหญ่มักเลือกที่จะปิดรับ PR เพื่อเลี่ยงภาระการตรวจสอบงานขยะ แต่ Nicholas กลับมองเห็นโอกาส โดยเขากล่าวว่า "มันคือการที่มีคนอื่นมาจ่ายค่าประมวลผล (compute) ให้กับคุณ" หากผู้ร่วมพัฒนาต้องการใช้ Token ของพวกเขาเพื่อพัฒนาโปรเจกต์ของคุณ สิ่งสำคัญคือการสร้าง "ทางเข้า" ที่มีระบบคัดกรองอย่างมีประสิทธิภาพ

เอกสารไม่ใช่ปัญหา แต่คือวิธีการค้นพบข้อมูลต่างหาก

AutoGPT เคยพยายามปรับปรุงเอกสารและ Wiki สำหรับผู้ร่วมพัฒนาให้ดีขึ้นแต่กลับไม่ได้ผล เพราะเอเจนท์ AI จะไม่อ่านเอกสารเหล่านั้นเว้นแต่จะถูกสั่ง พวกมันมักจะอ่านเฉพาะสิ่งที่อยู่ตรงหน้าในระดับไดเรกทอรีที่กำลังทำงานอยู่เท่านั้น

ทีมงานจึงเริ่มใส่คำแนะนำไว้ในที่ที่เอเจนท์มองหา โดยเริ่มจากไฟล์ CLAUDE.md สำหรับ Claude และขยับมาใช้มาตรฐานกลางที่ชื่อ AGENTS.md เพื่อให้ครอบคลุมเครื่องมืออื่นๆ อย่าง Copilot และ Codex ด้วย

เทคนิคที่น่าสนใจคือการวางไฟล์ AGENTS.md ไว้ข้างๆ โค้ดที่มันควบคุม เพื่อให้เอเจนท์โหลดคำแนะนำขึ้นมาแบบไดนามิก ตัวอย่างเช่น ทีม frontend ได้เขียนคู่มือเป็น "ทักษะ" (Skill) ใน Repo โดยกำหนดเงื่อนไขว่าหากมีการแก้ไขคอมโพเนนต์ในโฟลเดอร์ที่ระบุ เอเจนท์จะต้องเขียนการทดสอบ Storybook ด้วยเสมอ ทำให้ปัญหา PR ที่ใช้งานไม่ได้ลดลงอย่างมาก

เกณฑ์การคัดกรอง (Gates) ที่ใช้งานได้จริง เพื่อให้โปรเจกต์ดำเนินไปได้โดยไม่สร้างภาระ Nicholas แนะนำเกณฑ์การคัดกรองดังนี้:

  1. บังคับใช้ PR Template อย่างเคร่งครัด: ระบบจะปิด PR ที่ไม่ทำตามเทมเพลตโดยอัตโนมัติ ซึ่ง Nicholas พบว่ากฎนี้ช่วยคัดกรองมนุษย์ออกจากเอเจนท์ได้ เพราะมนุษย์มักต้องการพื้นที่อธิบายมากกว่าเทมเพลต

  2. แผนการทดสอบ (Test Plan): เทมเพลตจะกำหนดให้ระบุแผนการทดสอบ ซึ่งจะกระตุ้นทักษะ test PR ให้เอเจนท์ต้องติดตั้งเบราว์เซอร์และรันโค้ดจริงก่อนส่งงาน

  3. ใช้ CI เป็นกำแพง: กำหนดให้การทดสอบ Codecov เป็นเงื่อนไขบังคับ หากไม่ผ่าน เอเจนท์จะเห็นข้อผิดพลาดและต้องกลับไปเขียนการทดสอบเพิ่มเอง

  4. ใช้ CLA ตรวจจับมนุษย์: การลงนามสัญญาอนุญาต (CLA) ต้องใช้การยืนยันตัวตนผ่านเบราว์เซอร์ ซึ่งเอเจนท์ยังทำได้ไม่ดีนัก ช่วยดึงมนุษย์กลับเข้ามาในกระบวนการตัดสินใจ

  5. ตรวจสอบ Commit SHA ก่อนปิดการรีวิว: เพื่อป้องกันเอเจนท์ที่กด resolve การรีวิวโดยไม่แก้ไขโค้ดจริง AutoGPT กำหนดให้การตอบกลับต้องระบุ SHA ของ commit ที่แก้ไขแล้วเท่านั้น

เกณฑ์การคัดกรองที่ควรระวัง

บทเรียนสำคัญอย่างหนึ่งคือการหลีกเลี่ยง "มลภาวะทางเสียง" AutoGPT เคยใช้เอเจนท์คอยคอมเมนต์ทุกครั้งที่ CI ล้มเหลว แต่สุดท้ายต้องปิดไปเพราะสร้างข้อความรบกวนมากเกินไป

นอกจากนี้ยังมีข้อควรระวังอื่นๆ เช่น การวางไฟล์ AGENTS.md พร่ำเพรื่อเกินไปจนรบกวนบริบทของ AI, ปัญหา Rate Limit ของ GraphQL API ที่ควรเลี่ยงมาใช้ GitHub App แทน รวมถึงค่าใช้จ่ายในการรันเอเจนท์หลายตัวเพื่อทดสอบ PR ซึ่งอาจสูงเกินความจำเป็นในบางกรณี

ท้ายที่สุด Nicholas เน้นย้ำว่าผู้ดูแลยังคงเป็นผู้ตัดสินใจสูงสุด คุณไม่จำเป็นต้องรับทุก PR และมีสิทธิ์กำหนดขอบเขตของโอเพนซอร์สในแบบของคุณเอง เช่นเดียวกับ SQLite ที่รับเพียงรายงานข้อผิดพลาดแต่ไม่รับโค้ดจากภายนอก

หากคุณเป็นผู้ดูแลโปรเจกต์ ลองแวะไปศึกษาโครงสร้างไฟล์เอเจนท์ที่ AutoGPT repo หรือเข้าร่วมชุมชนที่ maintainers.github.com เพื่อแลกเปลี่ยนและกำหนดทิศทางของแพลตฟอร์มในยุค AI-First นี้

Source: GitHub Blog
ดูแลงานแปลและเรียบเรียงโดย NatapolK

ความคิดเห็น (0)

เข้าสู่ระบบเพื่อร่วมแสดงความเห็น

สมัครสมาชิก

มาเป็นคนแรกที่แสดงความเห็นกันเลยโบร