Case Study: ติดตั้งและสร้างระบบ Autonomous AI Agent ด้วย Hermes บนเครื่องจริง
ผลลัพธ์
ติดตั้งและปรับแต่งระบบ Hermes Agent (Nous Research) บนเครื่อง Windows เพื่อใช้งานเป็น Local Autonomous Agent สำหรับงาน Pair Programming, DevOps และงานระบบอัตโนมัติ — ทำงานร่วมกับ OmniRoute Gateway, พัฒนา Custom MCP Server (edgebot-mcp) สำหรับควบคุมเบราว์เซอร์แยกโปรไฟล์, และเชื่อมต่อระบบหน่วยความจำ 3-Tier Memory Architecture โดยไม่ให้กระทบความเป็นส่วนตัวบนเครื่องหลัก
ปัญหา
การใช้งาน Web Chatbot (เช่น ChatGPT หรือ Claude Web) มีข้อจำกัดอย่างมากในการทำงานร่วมกับระบบจริงในเครื่อง (Hands-on Development):
- ไม่สามารถเข้าถึง Environment ท้องถิ่น: ไม่สามารถอ่าน/แก้ไฟล์ใน Repository, รันคำสั่ง Terminal, หรือทำ Automated Testing ได้โดยตรง
- ติดปัญหา Context Window & Loss of Memory: การคุยงานยาวๆ ทำให้บริบทหาย ต้องคอยป้อน System Prompt ซ้ำๆ ทุกวัน
- ขาดความยืดหยุ่นในการขยายเครื่องมือ (Tooling): ไม่สามารถเชื่อมต่อกับ Service ภายในบ้าน (Homelab, Private VPS, Local Scripts) ได้
- ความเสี่ยงด้าน Privacy & Security: การให้ Agent คุมเบราว์เซอร์หลักอาจทำให้ Session หรือรหัสผ่านส่วนตัวรั่วไหล
สถาปัตยกรรมระบบ (Architecture)
ที่สร้างและติดตั้งจริง
1. Model Routing ด้วย OmniRoute
- ใช้ OmniRoute Desktop รันเป็น Local Gateway ที่พอร์ต
127.0.0.1:20128ทำหน้าที่เป็นศูนย์กลางกระจาย Request และสลับโมเดล AI - ช่วยให้ Agent สามารถสลับใช้งานระหว่างโมเดลต่าง ๆ (เช่น Gemini 3.7 Flash, DeepSeek-V4, Claude) และรับมือกับปัญหา Upstream 429/502 ได้อย่างราบรื่นผ่าน Fallback Policy
2. พัฒนา Custom MCP Server (edgebot-mcp)
เพื่อแก้ปัญหาการดึงข้อมูลจากแพลตฟอร์มที่ต้องใช้ Session การเข้าสู่ระบบ โดยไม่ให้แตะต้องเบราว์เซอร์หลัก:
- Architecture: สร้างด้วย Python
mcp 2.0สื่อสารผ่าน Chrome DevTools Protocol (CDP) บน WebSocket โดยตรง - Strict Isolation: สั่งเปิด Edge ขึ้นมาเองบนพอร์ตเฉพาะ
9333พร้อม Profile แยก (~/.hermes-edge-profile) โดยเด็ดขาด ไม่แตะต้องพอร์ต9222ของ Brave/Chrome ส่วนตัว - Tools Included:
launch_browser,check_login,navigate,read_page,read_post,read_group_feed,expand_content
3. ระบบความจำแบบ 3 ชั้น และการย้ายสู่ Homelab Distributed Plane (3-Tier Memory Stack)
| ชั้นความจำ | ระบบที่ใช้ | หน้าที่และการทำงาน |
|---|---|---|
| Tier 1: Short-term | Hermes Context Buffer | เก็บประวัติบทสนทนาและผลลัพธ์ของ Tool ภายในเซสชัน |
| Tier 2: Semantic Memory | Hindsight Engine | ดึงข้อมูลความจำแบบอัตโนมัติ (Vector Search ด้วย bge-small-en-v1.5 + Re-ranking ด้วย ms-marco-MiniLM-L-6-v2) |
| Tier 3: Trusted Vault | 12oo (Obsidian Markdown) | ข้อมูลจริงที่ผ่านการตรวจสอบโดยมนุษย์ (Human-in-the-Loop) เพื่อป้องกันปัญหา AI Hallucination |
Distributed Architecture (Homelab Migration): เพื่อแก้ปัญหา Resource Contention บนเครื่องพัฒนาหลัก ได้ทำการย้าย Data Plane ของ Hindsight (PostgreSQL 18 + 4,100+ Facts) ไปรันบน Headless Homelab PC (
192.168.1.137) ผ่าน SSH Reverse Tunnel (-R 20128:127.0.0.1:20128) ช่วยคืน RAM บน Laptop ได้ ~1.3 GB พร้อมเชื่อมต่อด้วยโหมดlocal_externalข้ามเครือข่าย LAN
4. Voice-to-OS Subsystem (Fast System 1 Intent Routing)
เสริมระบบสั่งการด้วยเสียงภาษาไทยแบบ Sub-200ms:
- Dual-Backend STT: เลือกรัน Faster-Whisper (CUDA บน RTX 4050 กิน VRAM ~1.5GB) สลับกับ Groq Whisper Cloud (0 MB VRAM)
- Zero-Hallucination Intent Router: ใช้ Groq LPU (
gpt-oss-20b+ Strict JSON Schema) ทำ Latency เพียง ~120ms พร้อมสแกน 155 Desktop Apps จาก Start Menu มาแมปเป็น Discrete Target โดยตรง ทำให้การสั่งเปิดโปรแกรม/เบราว์เซอร์แม่นยำ 100% โดยเหลือ VRAM บนการ์ดจอมากกว่า 4.1GB สำหรับงานพัฒนาอื่น
ปัญหาทางเทคนิคและการแก้ไข (Technical Challenges)
1. MCP SDK 2.0 Breaking Changes & Schema Generation
- ปัญหา: SDK เวอร์ชันใหม่ยกเลิก
FastMCPและการใช้ decorator ครอบฟังก์ชันที่มี**kwargsทำให้ตัวตรวจ Schema สร้างพารามิเตอร์ผิดพลาด (Field required: kwargs) - การแก้ไข: ปรับมาใช้
MCPServerระดับล่างร่วมกับfunctools.wrapsเพื่อให้ Server สามารถอนุมาน JSON Schema ของ Function signature ได้ถูกต้อง
2. Edge CDP WebSocket Origin Rejection
- ปัญหา: Edge เวอร์ชัน 111 ขึ้นไปปฏิเสธการเชื่อมต่อ WebSocket จาก Localhost โดยตอบกลับเป็น
WebSocketBadStatusException 403 - การแก้ไข: เพิ่ม Flag
--remote-allow-origins=*และ--user-data-dirในคำสั่งเปิด Browser Instance ภายใน Server
3. Path Resolution & Line-Ending บนสภาพแวดล้อม Windows
- ปัญหา: Hermes ทำงานบนสภาพแวดล้อมจำลอง Git Bash (MSYS) ทำให้เกิดความไม่สอดคล้องระหว่าง Native Windows Paths (
C:\...) กับ POSIX Paths (/c/...) รวมถึงการแปลง Line Endings (CRLF vs LF) ส่งผลให้ Tool ตรวจสอบความถูกต้องของข้อความล้มเหลว - การแก้ไข: กำหนดข้อบังคับในระบบ Tool ให้ส่ง Path เป็น Native Windows Absolute Path เสมอเมื่อเรียกโปรแกรมภายนอก และ Normalize Line Ending ก่อนตรวจสอบ Payload
สิ่งที่ได้เรียนรู้ (Key Learnings)
- Agent ที่ดีขึ้นอยู่กับ Guardrails และ Tooling: ความฉลาดของโมเดลเป็นเพียงครึ่งเดียว แต่ความเสถียรมาจากการออกแบบ Tool, การจัดการ Error, และการจำกัดสิทธิ์ (Sandboxing)
- แยก Environment ให้ขาดจากระบบส่วนตัว: การสร้างโปรไฟล์เบราว์เซอร์แยกและพอร์ตเฉพาะช่วยให้ทดสอบระบบอัตโนมัติได้อย่างปลอดภัย 100%
- อย่าเชื่อ Memory ของ AI เพียงอย่างเดียว: การมี Trusted Layer อย่าง Obsidian Markdown (12oo) ที่มนุษย์ตรวจสอบได้ ช่วยป้องกันการสะสมความจำที่ผิดพลาดข้ามวัน
Tech Stack
Hermes Agent Core, Python 3.11, Model Context Protocol (MCP 2.0),OmniRoute Gateway, Chrome DevTools Protocol (CDP), WebSocket,Hindsight Memory Engine (PostgreSQL + BGE Embeddings), Git Bash, Windows 11คำถามที่พบบ่อย (FAQ)
ทำไมเลือก Hermes Agent แทน AI Coding Tool อื่นๆ? Hermes มีความยืดหยุ่นสูงในระดับ Gateway & Desktop สามารถเขียน Skills ปรับแต่ง Workflow ควบคุม MCP หลายสิบตัว และสลับโมเดลหลังบ้านได้อิสระ
ระบบรักษาความปลอดภัยของไฟล์และ Credentials ทำงานอย่างไร? กำหนดกติกาการทำงานแบบ Human-in-the-loop: ไม่บันทึก Secrets ใน Prompt, ใช้ Masked Input ในการกรอก Token และมีระบบขออนุญาตก่อนรันคำสั่งที่ส่งผลกระทบต่อระบบหลัก