INTROVERTLOGIC · LAB LEDGER

ENTRY LOG

ลง Hermes Agent ตามเว็บ ใช้ไม่ได้ — เจอ bug 2 ชั้น แก้ยังไง

ลองนึกภาพว่าคุณมี AI ผู้ช่วยที่รันอยู่ในเครื่องตัวเอง ไม่ต้องเสียเงิน ไม่ต้องเขียน code
สั่งงานได้ตั้งแต่ค้นเว็บ เขียนไฟล์ รันคำสั่ง จนถึงตั้ง cron job ให้ทำงานซ้ำอัตโนมัติ
ฟังดูดีใช่ไหม? นั่นคือสิ่งที่ Hermes Agent สัญญาไว้ แต่พอผมลงจริง
มันไม่ได้ง่ายอย่างที่เขียนในเว็บ

Hermes Agent คืออะไร

Hermes Agent เป็น AI agent framework แบบ open-source จาก Nous Research
บริษัทที่ทำ AI model ชื่อดังอย่าง Hermes series ตัว framework นี้ให้คุณรัน AI agent
ในเครื่องตัวเองผ่าน terminal โดยมี tools พร้อมใช้มากกว่า 55 ตัว ตั้งแต่อ่านเขียนไฟล์
รันคำสั่ง ค้นเว็บ สร้างรูป จนถึงส่งข้อความผ่าน Discord, Telegram หรือ Slack

สิ่งที่ทำให้มันน่าสนใจคือมันเชื่อมต่อกับ AI ได้หลายค่าย ไม่ว่าจะเป็น OpenRouter,
Claude, Gemini หรือแม้แต่ Ollama ที่รันในเครื่อง ถ้าเลือกใช้ model ฟรีอย่าง
minimax-m2.5 ผ่าน OpenRouter ค่าใช้จ่ายจะเป็นศูนย์บาทเลย

วิธีติดตั้ง Hermes Agent

ขั้นตอนมีแค่ 2 อย่าง

อย่างแรก รันคำสั่งนี้ใน terminal เพื่อติดตั้ง

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

อย่างที่สอง รัน hermes setup เพื่อเลือก AI provider แล้วใส่ API
key

แค่นี้เอง สองขั้นตอน แต่พอผมทำตามแล้วพิมพ์ hermes มันค้าง ไม่ขยับ ไม่มี
error ไม่มีอะไรเลย

Bug ชั้นที่ 1 — script วนลูปตัวเอง

หลังจากขุดหาสาเหตุ พบว่าตัว installer สร้างไฟล์ wrapper
(ไฟล์ตัวกลางที่เรียกโปรแกรมจริง) ไว้ที่ venv/bin/hermes
แต่ไฟล์นี้กลับชี้กลับมาที่ตัวมันเอง เหมือนคนเปิดประตูแล้วเจอห้องเดิม เปิดอีกก็เจอห้องเดิม
วนไปเรื่อยๆ จนเครื่องค้าง

วิธีแก้คือเปิดไฟล์ ~/.hermes/hermes-agent/venv/bin/hermes
แล้วเปลี่ยนบรรทัดสุดท้ายจาก exec .../hermes ให้เป็น
exec .../hermes-agent แค่นี้ก็หาย hang แล้ว

Bug ชั้นที่ 2 — ชี้ผิดประตู

แก้ Bug 1 แล้ว Hermes รันได้ แต่พอสั่งงาน มันตอบกลับมาว่า “No models provided”
คือมันไม่รู้ว่าจะใช้ AI model ตัวไหน ทั้งที่ตั้งค่าไว้ในไฟล์ config แล้ว

สาเหตุคือ hermes-agent ที่เราชี้ไปในขั้นแรกเป็นตัวรันแบบย่อ
(simplified runner) มันไม่อ่านไฟล์ config เลย ตัวจริงที่ควรใช้คือ
hermes_cli.main ซึ่งเป็น CLI เต็มรูปแบบที่อ่าน config อ่าน model อ่าน
subcommands ได้ทุกอย่าง

วิธีแก้คือเปลี่ยนไฟล์ wrapper อีกครั้ง จากเดิมที่เป็น shell script ให้กลายเป็น Python
script ที่เรียก hermes_cli.main โดยตรง

#!/path/to/venv/bin/python3
import sys
from hermes_cli.main import main
if __name__ == "__main__":
    sys.exit(main())

บันทึก เปลี่ยน permission ให้รันได้ (chmod +x) แล้วลอง
hermes -z "say hello" อีกที คราวนี้ได้คำตอบกลับมาทันที

เมื่อ Hermes ทำงานได้แล้ว

พอแก้ bug ทั้ง 2 ชั้นเสร็จ Hermes Agent ทำงานได้ตามที่สัญญาไว้จริงๆ สั่งงานผ่าน
terminal ได้ ตั้ง cron ได้ delegate งานให้ sub-agent ได้ มี memory ข้าม session
ได้ และที่สำคัญคือมันเรียนรู้จากการใช้งานเพื่อสร้าง skills ใหม่ขึ้นมาเอง ไม่ต้อง code
อะไรเพิ่ม


ผมลองแล้ว

ผมลองติดตั้งตามเว็บเป๊ะๆ ใช้ไม่ได้ตั้งแต่แรก ค้าง ไม่มี error ไม่มี log
ไม่มีอะไรบอกเลยว่าผิดตรงไหน ใช้เวลาหาสาเหตุ 2 วันกว่าจะรู้ว่าเป็น bug ของตัว
installer เอง ไม่ใช่ที่ผมทำอะไรผิด

แก้แล้ว ทำงานได้จริง สั่ง hermes -z "say hello in Thai"
ได้คำตอบ “สวัสดีครับ! 👋” กลับมาทันที ค่าใช้จ่ายตอนนี้ 0 บาท เพราะใช้ model ฟรีผ่าน
OpenRouter

แผนต่อไปคือจะลองใช้ Hermes รับงาน shell แทน Claude Code ในงานที่ไม่ซับซ้อน เช่น
ffprobe, sed, file operations เพื่อประหยัด token ของ Claude
ไว้ใช้กับงานที่ต้องคิดจริงๆ ถ้าได้ผลยังไงจะมาเล่าต่อ