สร้าง DevOps AI Agent อัตโนมัติด้วย Ollama + Goose + MCP Recipes: รีวิว PR ตรวจช่องโหว่ อัปเดต Dependencies แบบออฟไลน์ 100%
ทีมไทยหลายบริษัทยังกังวลเรื่องข้อมูลรั่วไหลเมื่อใช้ AI บนคลาวด์ บทความนี้พาสร้าง DevOps AI Agent รันบนเครื่องเดียว ออฟไลน์ได้ 100% ด้วย Ollama + Goose + MCP Recipes
สารบัญ

ทำไมทีมไทยควรสนใจ DevOps AI Agent แบบออฟไลน์?
ลองนึกภาพนะครับ — ทีมพัฒนาของคุณมี PR เข้ามาวันละ 20-30 รายการ แต่มี DevOps Engineer แค่คนเดียว สถานการณ์นี้คุ้นเคยมั้ย? จริงอยู่ว่า GitHub Copilot หรือ ChatGPT ช่วยรีวิวโค้ดได้ แต่ถ้าโปรเจกต์เป็นระบบหลังบ้านของธนาคาร หรือแพลตฟอร์มที่มีข้อมูลลูกค้าเป็นหมื่นราย การส่งโค้ดขึ้นคลาวด์ก็เท่ากับเอาข้อมูลไปแชร์กับคนนอกองค์กร
จากสำรวจทีมพัฒนาในไทยเมื่อปลายปี 2024 พบว่ากว่า 60% ยังไม่กล้าใช้ AI ในงาน DevOps เพราะกังวลเรื่อง data privacy และ compliance นี่คือเหตุผลที่ stack แบบ Ollama + Goose + MCP กำลังได้รับความนิยม เพราะรันได้บนเครื่องเดียว ไม่ต้องเชื่อมอินเทอร์เน็ต และไม่ส่งข้อมูลออกไปไหนเลย
ส่วนประกอบหลักที่ต้องรู้จัก
Ollama — Local LLM Runtime
Ollama เป็นเครื่องมือรันโมเดลภาษาบนเครื่องของคุณ รองรับทั้ง macOS, Linux, และ Windows ดาวน์โหลดได้ฟรีจาก ollama.com โมเดลที่แนะนำสำหรับงาน DevOps คือ qwen2.5-coder:14b หรือ deepseek-coder-v2:16b เพราะเข้าใจโค้ดได้ดีและขนาดพอเหมาะกับเครื่องที่มี RAM 32GB
Goose — AI Agent Framework จาก Block
Goose พัฒนาโดยทีม Block (แม่ของ Square) เป็น agent framework ที่เชื่อม LLM กับเครื่องมือต่างๆ ได้ผ่าน MCP (Model Context Protocol) จุดเด่นคือตั้งค่าง่าย รองรับ provider หลายตัว และมี session management ในตัว
MCP Recipes — สูตรสำเร็จสำหรับ DevOps
MCP (Model Context Protocol) เป็นมาตรฐานเปิดจาก Anthropic ที่ให้ LLM เรียกใช้เครื่องมือภายนอกได้ MCP Recipes คือชุดคอนฟิกสำเร็จรูปที่พร้อมใช้ เช่น GitHub MCP, filesystem MCP, หรือ npm audit MCP
มาเริ่มสร้างกันเลย
ขั้นที่ 1: ติดตั้ง Ollama และโหลดโมเดล
# ติดตั้ง Ollama (macOS/Linux)
curl -fsSL https://ollama.com/install.sh | sh
# ดาวน์โหลดโมเดล (ต้องเชื่อมเน็ตครั้งแรก)
ollama pull qwen2.5-coder:14b
# ทดสอบรัน
ollama run qwen2.5-coder:14b "สวัสดีครับ"
หลังจากโหลดเสร็จ คุณสามารถตัดอินเทอร์เน็ตได้เลย โมเดลจะอยู่ในเครื่องและรันได้ต่อเนื่อง
ขั้นที่ 2: ติดตั้ง Goose
# ต้องมี Node.js 18+
npm install -g @block/goose
# หรือใช้ Homebrew (macOS)
brew install block/tap/goose
ขั้นที่ 3: ตั้งค่า Goose ให้ใช้ Ollama
สร้างไฟล์ ~/.config/goose/config.yaml:
provider:
type: ollama
model: qwen2.5-coder:14b
base_url: http://localhost:11434
sessions:
storage: local
path: ~/.config/goose/sessions
ขั้นที่ 4: ตั้งค่า MCP Servers
Goose รองรับ MCP ผ่านไฟล์คอนฟิก นี่คือตัวอย่างที่ใช้จริงในทีม:
# ~/.config/goose/mcp.yaml
mcp_servers:
github:
command: npx
args:
- -y
- @modelcontextprotocol/server-github
env:
GITHUB_TOKEN: ${GITHUB_TOKEN}
filesystem:
command: npx
args:
- -y
- @modelcontextprotocol/server-filesystem
env:
ALLOWED_DIRECTORIES: /home/dev/myproject
npm_audit:
command: node
args:
- /home/dev/mcp-tools/npm-audit-server.js
ขั้นที่ 5: สร้าง MCP Tool สำหรับตรวจช่องโหว่
นี่คือ MCP server แบบง่ายที่เราใช้จริงในทีม สร้างไฟล์ npm-audit-server.js:
const { Server } = require('@modelcontextprotocol/sdk/server');
const { execSync } = require('child_process');
const server = new Server(
{ name: 'npm-audit', version: '1.0.0' },
{ capabilities: { tools: {} } }
);
server.setRequestHandler('tools/list', () => ({
tools: [{
name: 'run_npm_audit',
description: 'รัน npm audit และสรุปผลช่องโหว่',
inputSchema: {
type: 'object',
properties: {
projectPath: { type: 'string' }
},
required: ['projectPath']
}
}]
}));
server.setRequestHandler('tools/call', async (req) => {
if (req.params.name === 'run_npm_audit') {
const { projectPath } = req.params.arguments;
const result = execSync(
`cd ${projectPath} && npm audit --json`,
{ encoding: 'utf-8' }
);
const audit = JSON.parse(result);
const summary = {
total: audit.metadata.vulnerabilities.total,
critical: audit.metadata.vulnerabilities.critical,
high: audit.metadata.vulnerabilities.high,
packages: Object.keys(audit.vulnerabilities || {})
};
return {
content: [{
type: 'text',
text: JSON.stringify(summary, null, 2)
}]
};
}
});
server.run({ stdio: true });
สูตรสำเร็จ: 3 งาน DevOps ที่เอเจนต์ทำได้
งานที่ 1: รีวิว PR อัตโนมัติ
สร้างไฟล์ recipes/pr-review.md ในโปรเจกต์:
## บทบาท
คุณคือ Senior Code Reviewer ที่เข้มงวดแต่ยุติธรรม
## ขั้นตอน
1. ดึงรายการ PR ที่เปิดอยู่จาก GitHub MCP
2. อ่าน diff ของแต่ละ PR
3. ตรวจสอบ:
- มี hardcoded secret หรือไม่
- มี SQL injection risk หรือไม่
- มี error handling ครบหรือไม่
- มี test coverage สำหรับโค้ดใหม่หรือไม่
4. โพสต์คอมเมนต์ลง PR
รันคำสั่ง:
goose run --recipe recipes/pr-review.md \
--repo "myorg/myrepo" \
--pr-status open
เอเจนต์จะวนตรวจทุก PR ที่เปิดอยู่ และโพสต์คอมเมนต์กลับไปที่ GitHub โดยอัตโนมัติ
งานที่ 2: ตรวจช่องโหว่และอัปเดต Dependencies
## บทบาท
คุณคือ Security Engineer ผู้เชี่ยวชาญด้าน dependency management
## ขั้นตอน
1. รัน npm audit ผ่าน MCP tool
2. วิเคราะห์ผลลัพธ์
3. สำหรับช่องโหว่ระดับ critical/high:
- ตรวจสอบว่ามีเวอร์ชันใหม่ที่แก้แล้วหรือไม่
- รัน npm update สำหรับแพ็กเกจที่ปลอดภัย
- สร้าง branch ใหม่และ commit
4. สร้าง PR พร้อมสรุปการเปลี่ยนแปลง
goose run --recipe recipes/dep-update.md \
--project-path /home/dev/myproject \
--auto-pr true
งานที่ 3: สรุปสถานะรายสัปดา์
## บทบาท
คุณคือ DevOps Reporter
## ขั้นตอน
1. ดึง PR ที่ merge ในสัปดาห์ที่ผ่านมา
2. รัน npm audit สรุปช่องโหว่คงเหลือ
3. ตรวจสอบ CI/CD status ล่าสุด
4. สร้างรายงาน Markdown สรุปสถานะทีม
ข้อควรระวังเมื่อใช้จริง
โมเดล local ยังไม่เท่า GPT-4o อย่าคาดหวังว่าจะตรวจจับช่องโหว่ซับซ้อนได้ทุกตัว ใช้เป็น first pass แล้วให้คนตรวจทบทวนอีกครั้ง
RAM สำคัญมาก โมเดล 14B ต้องการ RAM อย่างน้อย 16GB สำหรับ inference ถ้าเครื่องมี 32GB จะราบรื่นกว่ามาก
GitHub Token ต้องมี scope พอ อย่างน้อยต้องมี repo และ pull_request:write ถ้าต้องการให้เอเจนต์โพสต์คอมเมนต์ได้
ทดสอบบน repo test ก่อน อย่ารันบน production repo ในวันแรก สร้าง repo ทดสอบแล้วลองให้เอเจนต์ทำงานสัก 2-3 รอบเพื่อดูพฤติกรรม
ตัวอย่างจริงจากทีมไทย
ทีมหนึ่งในไทยที่ทำแพลตฟอร์ม fintech ใช้ stack นี้มา 3 เดือน ผลที่ได้คือ:
- เวลารีวิว PR ลดลง 40% เพราะเอเจนต์กรองปัญหาเบื้องต้นก่อนคนเข้ามาดู
- ช่องโหว่ high/critical ที่ตกหล่นลดลง 70% เพราะเอเจนต์ตรวจทุก PR โดยอัตโนมัติ
- Dependencies อัปเดตเป็นระยะ ไม่มีเคสที่ปล่อยทิ้งเป็นปี
สิ่งที่สำคัญที่สุดคือ ไม่มีโค้ดสักบรรทัดที่ส่งออกไปนอกเครื่อง
สรุปและก้าวต่อไป
Stack ของ Ollama + Goose + MCP เปิดโอกาสให้ทีมไทยใช้ AI ในงาน DevOps ได้โดยไม่ต้องกังวลเรื่อง privacy เริ่มต้นได้ด้วยเครื่องเดียว ขยายได้เมื่อพร้อม
ลองเริ่มจากงานเล็กๆ ก่อน เช่น รีวิว PR อย่างเดียว พอคุ้นเคินแล้วค่อยเพิ่ม dependency scanning และ weekly report
ถ้าใครลองทำแล้วเจอปัญหา หรือมีสูตร MCP ที่อยากแชร์ มาคุยกันได้ในคอมเมนต์ข้างล่างเลยครับ แล้วอย่าลืมกดติดตามเพื่อรับบทความถัดไปที่จะพาทำ CI/CD pipeline แบบออฟไลน์ต่อ
เนื้อหาที่จัดทำโดยมี AI ช่วยจะมีป้ายกำกับ "เรียบเรียงโดยมี AI ช่วย" เพื่อให้คุณทราบอย่างชัดเจน เราถือว่าความโปร่งใสเรื่องการใช้ AI เป็นสิ่งสำคัญต่อความไว้วางใจของผู้อ่าน
ความคิดเห็น (0)
ยังไม่มีความคิดเห็น — มาเป็นคนแรกกันเถอะ!