Case Study: ติดตั้งและสร้างระบบ Autonomous AI Agent ด้วย Hermes บนเครื่องจริง

2026-09-16
2026-09-21
--
--

ผลลัพธ์#

ติดตั้งและปรับแต่งระบบ 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):

  1. ไม่สามารถเข้าถึง Environment ท้องถิ่น: ไม่สามารถอ่าน/แก้ไฟล์ใน Repository, รันคำสั่ง Terminal, หรือทำ Automated Testing ได้โดยตรง
  2. ติดปัญหา Context Window & Loss of Memory: การคุยงานยาวๆ ทำให้บริบทหาย ต้องคอยป้อน System Prompt ซ้ำๆ ทุกวัน
  3. ขาดความยืดหยุ่นในการขยายเครื่องมือ (Tooling): ไม่สามารถเชื่อมต่อกับ Service ภายในบ้าน (Homelab, Private VPS, Local Scripts) ได้
  4. ความเสี่ยงด้าน Privacy & Security: การให้ Agent คุมเบราว์เซอร์หลักอาจทำให้ Session หรือรหัสผ่านส่วนตัวรั่วไหล

สถาปัตยกรรมระบบ (Architecture)#

Hermes Agent Local Runtime 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-termHermes Context Bufferเก็บประวัติบทสนทนาและผลลัพธ์ของ Tool ภายในเซสชัน
Tier 2: Semantic MemoryHindsight Engineดึงข้อมูลความจำแบบอัตโนมัติ (Vector Search ด้วย bge-small-en-v1.5 + Re-ranking ด้วย ms-marco-MiniLM-L-6-v2)
Tier 3: Trusted Vault12oo (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)#

  1. Agent ที่ดีขึ้นอยู่กับ Guardrails และ Tooling: ความฉลาดของโมเดลเป็นเพียงครึ่งเดียว แต่ความเสถียรมาจากการออกแบบ Tool, การจัดการ Error, และการจำกัดสิทธิ์ (Sandboxing)
  2. แยก Environment ให้ขาดจากระบบส่วนตัว: การสร้างโปรไฟล์เบราว์เซอร์แยกและพอร์ตเฉพาะช่วยให้ทดสอบระบบอัตโนมัติได้อย่างปลอดภัย 100%
  3. อย่าเชื่อ 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 และมีระบบขออนุญาตก่อนรันคำสั่งที่ส่งผลกระทบต่อระบบหลัก

Case Study: ติดตั้งและสร้างระบบ Autonomous AI Agent ด้วย Hermes บนเครื่องจริง
https://www.chinnakrit.dev/th/posts/hermes-agent-setup/
ผู้เขียน
chinnakrit
เผยแพร่
2026-09-16
สัญญาอนุญาต
CC BY-NC-SA 4.0
ภาพรวมการเขียน
5 โพสต์
โพสต์
4,418
จำนวนตัวอักษร
23min
เวลาอ่าน
884
ตัวอักษรเฉลี่ย
โพสต์รายปี
2026
11
2024
1
โพสต์ที่ยาวที่สุด
© 2026 chinnakrit
RSS / Sitemap
Powered by Astro & Fuwari
© 2026 chinnakrit
RSS / Sitemap
Powered by Astro & Fuwari