ใช้ GitHub ทำงานร่วมกับ AI Coding Agent อย่างปลอดภัยและเป็นระบบ
สรุปสั้น ๆ: AI coding agent ในปี 2026 (Claude Code, GitHub Copilot coding agent, Codex, Cursor) ทำงานผ่าน GitHub เป็นหลัก — อ่าน repo, เปิด branch, commit, เปิด pull request ให้เอง บทความนี้ไม่ได้สอนใช้ GitHub พื้นฐาน (commit/push/pull) แต่โฟกัสที่สิ่งที่ต้อง ตั้งค่าเพิ่ม เมื่อให้ AI agent เข้ามาทำงานในระบบ: ไฟล์ AGENTS.md, สิทธิ์ที่ควรให้/ไม่ควรให้, การรันอัตโนมัติผ่าน GitHub Actions, และวิธีตรวจ PR ที่ AI เขียนก่อน merge
ชื่อฟีเจอร์และรายละเอียดการตั้งค่าของ GitHub, Claude Code, Copilot และ Codex เปลี่ยนบ่อย — ตรวจกับเอกสารทางการที่ลิงก์ท้ายบทความก่อนตั้งค่ากับ repo งานจริงเสมอ
ภาพรวม: AI agent เข้ามาแตะ GitHub ได้กี่ทาง#
ก่อนตั้งค่าอะไร ควรเข้าใจก่อนว่า AI coding agent เชื่อมกับ GitHub ได้หลายทางที่ ความเสี่ยงต่างกัน:
| วิธีเชื่อม | ทำงานที่ไหน | ตัวอย่าง | ความเสี่ยงหลัก |
|---|---|---|---|
| CLI ในเครื่อง | เครื่องคุณเอง ใช้ git ที่ติดตั้งอยู่แล้ว | Claude Code, Cursor, Codex CLI | คุณเห็นทุก diff ก่อน commit/push เอง |
| GitHub App / Actions | รันบนคลาวด์ของ GitHub | Claude Code GitHub Actions, Copilot coding agent | รันอัตโนมัติตาม event — ต้องตั้งสิทธิ์และ secrets ให้รัดกุม |
| MCP Server | agent เรียก GitHub API ผ่านเครื่องมือมาตรฐาน | GitHub MCP Server (ทางการ) | agent เข้าถึงได้เท่าที่ token ที่ผูกไว้อนุญาต |
| Web UI ผู้ช่วยในตัว | อยู่ในหน้าเว็บ GitHub เอง | Copilot ใน PR review, Copilot Chat | จำกัดขอบเขตอยู่แล้วโดยดีไซน์ของ GitHub |
บทความนี้เน้นสามทางแรก เพราะเป็นจุดที่ต้องตั้งค่าเองและมีโอกาสตั้งผิดได้
ไฟล์ AGENTS.md: คู่มือสำหรับ agent ไม่ใช่สำหรับคน#
AGENTS.md คือไฟล์มาตรฐานที่วางไว้ที่ root ของ repo เพื่อบอก coding agent (ไม่ว่าจะเป็น Claude Code, Copilot coding agent, หรือ Codex) ว่า "ทำงานใน repo นี้อย่างไรให้ถูกต้อง" — ต่างจาก README ที่เขียนให้คนอ่าน
โครงที่ใช้ได้จริง:
# Commands
- ติดตั้ง: `npm install`
- รันเทสต์: `npm test`
- เช็คชนิดข้อมูล: `npm run typecheck`
- Build: `npm run build`
# สิ่งที่ถือว่า "งานเสร็จ"
- เทสต์ผ่านทั้งหมด ไม่มี type error
- ไม่มีไฟล์ที่ format ผิดจาก `npm run lint`
- ทุก PR ต้องมีคำอธิบาย "ทำไม" ไม่ใช่แค่ "ทำอะไร"
# ข้อห้าม
- ห้ามแก้ไฟล์ใน /migrations ที่ deploy ไปแล้ว
- ห้ามลบเทสต์เพื่อให้ผ่าน ต้องแก้โค้ดแทน
- ห้าม commit ไฟล์ .env หรือ secrets ใด ๆ
หลักการเขียนเหมือน CLAUDE.md ของ Claude Code — สั้น เจาะจง บอกคำสั่งจริงที่รันได้ ไม่ใช่พรรณนากว้าง ๆ อ่านหลักการเต็มได้ที่ ใช้ Claude Code ในงานพัฒนาจริง
ข้อดีของการใช้ AGENTS.md คือมันเป็นมาตรฐานข้ามเครื่องมือ — ทั้ง GitHub Copilot coding agent, Claude Code และ Codex อ่านไฟล์นี้ในรูปแบบใกล้เคียงกัน (บางเครื่องมือรองรับ CLAUDE.md หรือชื่อเฉพาะของตัวเองเพิ่มเติมด้วย) ถ้าทีมใช้ AI agent มากกว่าหนึ่งตัว การมี AGENTS.md ไฟล์เดียวที่ทุกตัวอ่านได้จะลดความซ้ำซ้อน
สิทธิ์ที่ควรให้ agent: หลักการที่ใช้ได้กับทุกเครื่องมือ#
ไม่ว่าจะใช้ agent ตัวไหน หลักที่ใช้ได้เสมอคือ ให้สิทธิ์แคบที่สุดเท่าที่งานต้องการ:
- Personal Access Token (PAT) ที่ใช้ผูกกับ agent ควรเป็น fine-grained token จำกัดเฉพาะ repo ที่จำเป็น ไม่ใช่ token ระดับบัญชีที่เข้าได้ทุก repo
- แยก branch สำหรับ agent เสมอ — อย่าให้ agent commit ตรงเข้า
main/masterโดยตรง ให้เปิด branch ใหม่แล้วส่งเป็น pull request ทุกครั้ง - เปิด branch protection บน branch หลัก — บังคับให้ต้องผ่าน PR review และ status checks ก่อน merge แม้แต่ agent เองก็ merge ตรงไม่ได้
- จำกัดว่า agent เขียนไฟล์ไหนได้บ้าง — เครื่องมืออย่าง Claude Code มีระบบ permission ที่ตั้ง deny list ได้ (เช่นห้ามแตะ
.github/workflows/,/secrets) ควรตั้งไว้ตั้งแต่แรก - ห้าม agent เข้าถึง GitHub Secrets โดยตรง ยกเว้นงานที่จำเป็นต้องใช้จริง เช่น รัน deployment — งานเขียนโค้ดทั่วไปไม่ควรมองเห็น secrets เลย
ความเสี่ยงที่มาพร้อม agent ที่ทั้งอ่านโค้ด/อีสชู/PR จากภายนอกได้ และ มีสิทธิ์เขียนหรือรันคำสั่งได้ด้วย คือ prompt injection ผ่านเนื้อหาที่ไม่น่าเชื่อถือ เช่น ข้อความใน issue หรือ PR comment ที่มีคำสั่งแฝงถึง agent โดยตรง หลักป้องกันคือแยกสิทธิ์ "อ่าน" กับ "เขียน/รันคำสั่ง" ให้ชัด และอย่าให้ agent ที่อ่านเนื้อหาจากคนนอกมีสิทธิ์เขียนหรือรันคำสั่งอัตโนมัติในคราวเดียวกัน
ตั้งให้ agent ทำงานอัตโนมัติผ่าน GitHub Actions#
เมื่อพร้อมให้ agent ทำงานแบบไม่ต้องเปิดเครื่องเอง มีสองแนวทางหลัก:
แนวทางที่ 1: Claude Code GitHub Actions#
ติดตั้งได้จากในเซสชัน Claude Code ด้วยคำสั่ง /install-github-app ซึ่งจะสร้าง GitHub App และไฟล์ workflow ให้อัตโนมัติ จากนั้น agent จะ:
- ตอบสนองเมื่อมีคนพิมพ์
@claudeใน pull request หรือ issue - รันตาม event ที่กำหนดเอง เช่น ทุกครั้งที่มี
pull_requestเปิดใหม่ หรือรันตามตารางเวลา (schedule) - ส่งค่า config ผ่าน
claude_argsในไฟล์ workflow เพื่อจำกัดเครื่องมือที่ agent เรียกใช้ได้ในรอบนั้น
# ตัวอย่างโครง (ปรับตามเวอร์ชันจริงที่ /install-github-app สร้างให้)
on:
pull_request:
types: [opened]
jobs:
claude-review:
runs-on: ubuntu-latest
steps:
- uses: anthropics/claude-code-action@v1
with:
claude_args: "--allowedTools Read,Grep --bare"
ใน CI ควรใช้ --bare เพื่อไม่ให้ผลลัพธ์ขึ้นกับ config ของเครื่องใดเครื่องหนึ่ง และจำกัด --allowedTools ให้แคบที่สุดเท่าที่งานต้องการ เช่น งานรีวิวโค้ดให้สิทธิ์แค่ Read/Grep ไม่ต้องให้ Bash หรือ Edit
แนวทางที่ 2: GitHub Copilot coding agent#
ทำงานต่างจากปลั๊กอินในเครื่องคือ รันแบบ asynchronous บนคลาวด์ของ GitHub เอง ไม่ใช่ในเครื่องคุณ:
- มอบหมาย issue หรือ task ให้ Copilot coding agent (เลือกจากเมนูใน GitHub)
- Agent เปิดสภาพแวดล้อมพัฒนาที่ปลอดภัยและปรับแต่งได้ ขับเคลื่อนด้วย GitHub Actions
- ระหว่างทำงาน มัน commit เข้า draft pull request ให้เรื่อย ๆ คุณติดตามผ่าน session log ได้
- เมื่อเสร็จ (หรือระหว่างทาง) คุณรีวิวและคุยกับมันต่อในหน้า PR ได้เหมือนคุยกับเพื่อนร่วมทีม
ฟีเจอร์ที่เพิ่มมาในปี 2026 คือ เลือกโมเดลแยกตามงานได้ ในแผง Agents — งานง่ายอย่างเติม docstring ใช้โมเดลเร็ว งาน refactor ซับซ้อนสลับไปใช้โมเดลที่แรงกว่า
นอกจาก coding agent ที่เปิด PR เองแล้ว GitHub ยังมี code review agent ที่คอยจับจุดในตัว pull request และ CLI agent ที่ทำงานจาก terminal ตรง — ทั้งสามตัวเป็นคนละโหมดของ Copilot agent ไม่ใช่ตัวเดียวกัน
สำหรับ Codex และ Cursor#
Codex เชื่อมกับ GitHub ผ่าน Codex Cloud ที่รันงานแบบ sandbox แล้วเปิด PR กลับมาให้เช่นกัน ส่วน Cursor เน้นทำงานในเครื่องผ่าน CLI/IDE เป็นหลักและใช้ git ปกติในการ push — ดูรายละเอียดเจาะลึกแต่ละตัวที่ OpenAI Codex สำหรับงานโค้ด และ เปรียบเทียบ AI Coding Agents
GitHub MCP Server: ให้ agent เรียก GitHub API แบบมาตรฐาน#
นอกจากให้ agent ทำงานผ่าน Actions แล้ว อีกวิธีคือให้ agent (ที่รันในเครื่องคุณ เช่น Claude Code, Claude Desktop, Cursor) เรียก GitHub ได้โดยตรงผ่าน MCP — GitHub MCP Server เป็นเซิร์ฟเวอร์ทางการที่ GitHub ดูแลเอง ใช้ได้กับหลาย host (Claude Code, Claude Desktop, VS Code, Cursor)
ความสามารถที่เปิดผ่าน MCP มีเป็นชุดเครื่องมือ (toolsets) แยกกัน เช่น:
- จัดการ repo, issue, pull request
secret_protection— สแกนหา secret ที่หลุดก่อน commitcopilot— สั่งงาน Copilot coding agent ผ่าน MCPcopilot_spaces,github_support_docs_search— ค้นเอกสารและพื้นที่ทำงานที่เกี่ยวข้อง
เมื่อผูก MCP Server เข้ากับ token จริง agent จะเรียก GitHub API ได้เท่าที่ token นั้นอนุญาต ไม่ใช่เท่าที่คุณตั้งใจ — ถ้า token เป็นแบบเข้าได้ทุก repo ในบัญชี agent ก็เข้าได้ทุก repo เช่นกัน กลับไปใช้หลัก fine-grained token ข้างต้นเสมอเมื่อผูก MCP
รีวิว Pull Request ที่ AI เขียน: checklist ก่อน merge#
PR ที่ agent เปิดให้ ควรผ่านการตรวจแบบเดียวกับ PR จากคนในทีม บวกจุดเพิ่มเฉพาะของงานที่มาจาก AI:
- อ่าน diff ทั้งหมด อย่าเชื่อแค่คำอธิบาย PR — agent อาจอธิบายว่าทำ A แต่โค้ดจริงทำ A บวก B ที่ไม่ได้ขอ
- ตรวจว่าเทสต์ที่เพิ่มมาทดสอบพฤติกรรมจริง ไม่ใช่แค่ทำให้ CI เขียว — agent มีแนวโน้มเขียนเทสต์ที่ผ่านง่ายเกินไปถ้าไม่ได้กำกับไว้ใน AGENTS.md
- มองหาการเปลี่ยนแปลงนอกขอบเขตงาน (scope creep) — ไฟล์ที่ถูกแก้โดยไม่เกี่ยวกับ task ที่มอบหมาย
- ตรวจ dependency ใหม่ที่เพิ่มเข้ามา — agent อาจติดตั้งไลบรารีเพื่อความสะดวกโดยไม่ได้ประเมินความปลอดภัยหรือใบอนุญาต
- รัน CI ให้ผ่านจริงก่อน merge เสมอ ไม่ merge เพราะ "ดูน่าจะโอเค"
- ถ้า repo มี branch protection + required reviewers ตั้งไว้แล้ว ให้คนจริงเป็นผู้กด approve ทุกครั้ง แม้แต่ PR ที่ agent อีกตัวรีวิวมาให้แล้วก็ตาม
ใช้ prompt ให้ agent ตรวจงานตัวเองก่อนส่ง PR ได้ เช่น "ก่อนเปิด PR ให้ตรวจซ้ำว่าเปลี่ยนไฟล์เกินขอบเขตงานหรือไม่" — ดูตัวอย่าง prompt ตรวจงานเพิ่มเติมที่ รวม Prompt ใช้งาน AI
ตัวอย่างเวิร์กโฟลว์ที่ใช้ได้จริง#
ทีมเล็กที่เริ่มใช้ agent ครั้งแรก:
- เขียน AGENTS.md สั้น ๆ ระบุคำสั่งเทสต์/build
- ใช้ agent ในเครื่อง (Claude Code/Copilot/Codex) ทำงานแบบ manual approval ทุกขั้นตอนก่อน
- ให้ agent เปิด PR เสมอ ไม่ push ตรงเข้า main
- รีวิวตาม checklist ข้างบนก่อน merge ทุกครั้ง
ทีมที่พร้อมให้ agent ทำงานอัตโนมัติในคลาวด์:
- ตั้ง branch protection บน main ให้บังคับ required reviewers และ status checks
- ติดตั้ง Claude Code GitHub Actions หรือเปิดใช้ Copilot coding agent
- จำกัดสิทธิ์ workflow ผ่าน fine-grained token และ
--allowedTools - มอบหมายงานเล็ก ชัดเจน มีเกณฑ์ "เสร็จ" ระบุใน AGENTS.md ก่อน ค่อยขยายไปงานใหญ่ขึ้นเมื่อมั่นใจ
ข้อผิดพลาดที่พบบ่อย#
- ให้ agent push ตรงเข้า main เพื่อความเร็ว — เสียหลักป้องกันสำคัญที่สุดไปเปล่า ๆ
- ใช้ PAT เดียวกันกับที่ใช้ล็อกอินส่วนตัวผูกกับ agent — ถ้า agent ทำพลาดหรือถูกโจมตี ความเสียหายลามไปทุก repo ที่บัญชีนั้นเข้าถึงได้
- ไม่เขียน AGENTS.md แล้วแปลกใจว่าทำไม agent เดาคำสั่งเทสต์ผิด — agent ไม่รู้ convention ของทีมถ้าไม่มีใครบอก
- เชื่อ PR ที่ agent เขียนโดยไม่อ่าน diff — เหมือนรับโค้ดจากคนที่ไม่เคยเจอมาก่อนโดยไม่ตรวจ
- เปิดให้ agent ที่อ่านเนื้อหาจากภายนอก (issue/PR จากคนนอก) มีสิทธิ์เขียนหรือรันคำสั่งในคราวเดียวกัน — ช่องโหว่ prompt injection ที่แก้ได้ด้วยการแยกสิทธิ์อ่าน/เขียน
FAQ#
AGENTS.md ต้องมีในทุก repo ที่ใช้ AI coding agent ไหม? ไม่บังคับ แต่แนะนำอย่างยิ่งสำหรับ repo ที่ใช้ agent ทำงานจริงเป็นประจำ เพราะช่วยลดการเดาคำสั่งผิดและลดรอบแก้ไข้ไปมา ยิ่ง repo มีข้อกำหนดเฉพาะทาง (เช่นห้ามแตะไฟล์บางส่วน) ยิ่งจำเป็น
ควรให้ agent มีสิทธิ์ merge PR เองไหม? โดยทั่วไปไม่แนะนำสำหรับงานส่วนใหญ่ ควรให้คนจริงเป็นผู้ตัดสินใจ merge เสมอ โดยเฉพาะช่วงแรกที่ยังไม่มั่นใจในคุณภาพงานของ agent ในทีมนั้น ๆ
GitHub Copilot coding agent กับ Claude Code GitHub Actions ต่างกันอย่างไร? Copilot coding agent เป็นฟีเจอร์ของ GitHub เอง ผูกกับระบบ Copilot โดยตรง ส่วน Claude Code GitHub Actions คือการติดตั้ง Claude Code เข้าไปทำงานผ่าน GitHub Actions ของ repo คุณเอง ทั้งสองแบบจบลงที่การเปิด pull request ให้รีวิว แต่ผู้ให้บริการและวิธีตั้งค่าต่างกัน
ใช้ personal access token แบบเดิมที่ล็อกอินอยู่แล้วผูกกับ agent ได้ไหม? ทำได้แต่ไม่แนะนำ ควรสร้าง fine-grained token แยกต่างหากที่จำกัดเฉพาะ repo และสิทธิ์ที่ agent ต้องใช้จริงเท่านั้น เพื่อจำกัดความเสียหายถ้า agent ทำพลาดหรือ token รั่วไหล
ต้องกลัว prompt injection จาก GitHub issue จริงไหม? เป็นความเสี่ยงจริง ไม่ใช่ทฤษฎี โดยเฉพาะ agent ที่อ่านเนื้อหาจาก issue/PR ของคนนอกได้และมีสิทธิ์เขียนหรือรันคำสั่งในเซสชันเดียวกัน หลักป้องกันคือแยกสิทธิ์อ่านกับเขียน/รันคำสั่งให้ชัดเจน และจำกัดเครื่องมือที่ agent เรียกใช้ได้เมื่อทำงานกับเนื้อหาจากภายนอก
อ่านต่อ#
- ใช้ Claude Code ในงานพัฒนาจริง
- OpenAI Codex สำหรับงานโค้ด
- เปรียบเทียบ AI Coding Agents
- AI Safety สำหรับคนทำงาน
- รวม Prompt ใช้งาน AI 50+ แบบ