Security — Eight Layers of Protection
Plugin System — Endless Extensions — easy-to-understand guide based on official docs (updated 2026-08-09)
ความปลอดภัย — การป้องกันแปดชั้น
เมื่อคุณปล่อยให้ AI agent รันคำสั่งบนเครื่องของคุณ คุณย่อมอยากรู้ว่ามันปลอดภัย Hermes Agent ให้ความสำคัญกับเรื่องนี้ด้วย โมเดลความปลอดภัยแบบหลายชั้น (defense-in-depth) — การป้องกันแปดชั้นที่ทำงานร่วมกันเพื่อให้คุณควบคุมได้เสมอ
ลองนึกภาพเหมือนห้องนิรภัยของธนาคาร: แค่แม่กุญแจตัวเดียวมันไม่พอ คุณต้องมีบอดี้การ์ดที่ประตู ประตูห้องนิรภัย ระบบสัญญาณกันขโมย และกล้องวงจรปิด Hermes ก็ใช้ปรัชญาเดียวกัน
นี่คือหน้าตาของการป้องกันทั้งแปดชั้น:
- การอนุญาตผู้ใช้ (User authorization) — เฉพาะคนที่ได้รับอนุญาตเท่านั้นที่คุยกับ agent ได้
- การอนุมัติคำสั่งอันตราย (Dangerous command approval) — คุณเป็นคนอนุมัติการกระทำที่ทำลายล้าง
- ความปลอดภัยในการเขียนไฟล์ (File write safety) — ปกป้องไฟล์ของคุณจากการเขียนที่ไม่พึงประสงค์
- การแยกสภาพแวดล้อมด้วยคอนเทนเนอร์ (Container isolation) — รันงานเสี่ยงในแซนด์บ็อกซ์ (Docker, Singularity, Modal)
- การกรองข้อมูลรับรอง MCP (MCP credential filtering) — เก็บความลับไม่ให้ซับโปรเซสเห็น
- การสแกนไฟล์บริบท (Context file scanning) — ตรวจจับ prompt injection ในไฟล์โปรเจกต์
- การแยกเซสชัน (Cross-session isolation) — เซสชันไม่สามารถสอดส่องข้อมูลของกันและกันได้
- การทำความสะอาดอินพุต (Input sanitization) — บล็อก shell injection ผ่านเทคนิคหลอกลวงด้วย working directory
เยอะไปหมดเลยใช่ไหม? มาดูชั้นที่คุณจะได้เจอบ่อยที่สุดกันดีกว่า: การอนุมัติคำสั่งอันตราย
การอนุมัติอัจฉริยะ: มนุษย์อยู่ในวงจร
ก่อนที่ Hermes จะรันคำสั่งใดๆ มันจะเช็คกับรายการแพตเทิร์นอันตรายก่อน ถ้าเจออะไรที่ดูเสี่ยง คุณจะถูกถามให้อนุมัติ
แต่จุดที่ฉลาดคือ ระบบอนุมัตินี้มี สามโหมด ตั้งค่าได้ที่ ~/.hermes/config.yaml:
approvals:
mode: smart # smart | manual | off
timeout: 300 # seconds to wait for user response
cron_mode: deny # deny | approve — for cron jobs
single_query_mode: deny # deny | approve — for -q sessions
mcp_reload_confirm: true # /reload-mcp asks before rebuilding tools
destructive_slash_confirm: true # /clear, /new, /reset, /undo prompt first
แต่ละโหมดทำอะไรบ้าง:
| โหมด | พฤติกรรม |
|---|---|
| smart (ค่าเริ่มต้น) | ใช้ LLM เสริมช่วยตัดสินความเสี่ยง คำสั่งปลอดภัยอย่าง python -c "print('hello')" จะถูกอนุมัติอัตโนมัติ คำสั่งอันตรายจริงๆ จะถูกปฏิเสธอัตโนมัติ กรณีที่ไม่แน่ใจจะถามคุณ |
| manual | ถามคุณเสมอสำหรับคำสั่งอันตราย ไม่มีระบบอัตโนมัติ |
| off | ปิดการตรวจสอบทั้งหมด — เทียบเท่ากับ --yolo ใช้เฉพาะในสภาพแวดล้อมที่เชื่อถือได้เท่านั้น |
โหมด smart คือจุดที่ลงตัวที่สุด มันเหมือนมีบอดี้การ์ดที่รู้ความแตกต่างระหว่าง “ไปเช็คจดหมาย” กับ “เปิดห้องนิรภัย”
โหมด YOLO: ระวังไว้ด้วย
บางครั้งคุณก็แค่อยากให้ agent ทำงานเร็วๆ โดยไม่ต้องมากวนคุณ นั่นคือหน้าที่ของโหมด YOLO — มันข้ามการอนุมัติคำสั่งอันตรายทั้งหมดสำหรับเซสชันปัจจุบัน
คุณสามารถเปิดใช้งานได้สามวิธี:
- แฟล็ก CLI:
hermes --yoloหรือhermes chat --yolo - คำสั่งสแลช: พิมพ์
/yoloระหว่างเซสชัน - ตัวแปรสภาพแวดล้อม: ตั้งค่า
HERMES_YOLO_MODE=1
คำสั่ง /yolo เป็นสวิตช์สลับ — ใช้แต่ละครั้งจะเปิดหรือปิด:
> /yolo
⚡ YOLO mode ON — all commands auto-approved. Use with caution.
> /yolo
⚠ YOLO mode OFF — dangerous commands will require approval.
เมื่อ YOLO ทำงานอยู่ Hermes จะทำให้คุณไม่ลืมแน่นอน คุณจะเห็นแบนเนอร์สีแดงตอนเริ่มเซสชันและตัวบ่งชี้ ⚠ YOLO ในแถบสถานะ ซึ่งอัปเดตสดๆ ขณะที่คุณสลับ
⚠️ คำเตือน: โหมด YOLO ปิดการตรวจสอบความปลอดภัยของคำสั่งอันตรายทั้งหมด — ยกเว้นบล็อกลิสต์ที่เด็ดขาด ใช้เฉพาะเมื่อคุณเชื่อถือสิ่งที่ถูกสร้างขึ้นอย่างเต็มที่ เช่น สคริปต์อัตโนมัติที่ทดสอบแล้วในสภาพแวดล้อมที่ใช้แล้วทิ้ง
คีย์คอนฟิกใหม่ที่คุณควรรู้
อัปเดตล่าสุดเพิ่มคีย์สำคัญสองตัวในคอนฟิก approvals:
mcp_reload_confirm (ค่าเริ่มต้น: true) — เมื่อคุณรัน /reload-mcp Hermes จะถามก่อนสร้างชุดเครื่องมือ MCP ใหม่ ทำไมน่ะเหรอ? เพราะการสร้างใหม่จะทำให้ provider prompt cache ใช้งานไม่ได้ หมายความว่าเมสเสจถัดไปจะส่ง input tokens เต็มรูปแบบ (เสียค่าใช้จ่ายมากขึ้น) ถ้าคุณคลิก Always Approve ค่านี้จะเปลี่ยนเป็น false
destructive_slash_confirm (ค่าเริ่มต้น: true) — คำสั่งเซสชันที่ทำลายล้างอย่าง /clear, /new, /reset และ /undo ตอนนี้จะถามก่อนทิ้งสถานะการสนทนา คุณจะเห็นไดอะล็อกสามตัวเลือก: Approve Once / Always Approve / Cancel บน Telegram, Discord และ Slack จะใช้ปุ่มใช่/ไม่ใช่แบบเนทีฟ ส่วนที่อื่นๆ จะใช้ข้อความแทน TUI ก็รองรับเช่นกัน — และคุณสามารถบังคับข้ามโมดัลได้ด้วย HERMES_TUI_NO_CONFIRM=1
เซสชันแบบไม่มีคนดูแล: Cron และ Single-Query
การตั้งค่าใหม่สองตัวจัดการกรณีที่ไม่มีใครอยู่คอยตอบคำถาม:
cron_mode(ค่าเริ่มต้น:deny) — เมื่อ cron job เจอคำสั่งอันตรายdenyจะบล็อกมัน (agent ต้องหาทางอื่น) ส่วนapproveจะอนุมัติทุกอย่างอัตโนมัติในบริบท cronsingle_query_mode(ค่าเริ่มต้น:deny) — แนวคิดเดียวกันสำหรับเซสชันแบบครั้งเดียวhermes chat -qเซสชัน-qรันเทิร์นเดียวแล้วจบ — ไม่มีผู้ใช้คอยตอบdenyจะบล็อกคำสั่ง ส่วนapproveจะอนุมัติอัตโนมัติ
ทั้งคู่ตั้งค่าเริ่มต้นเป็น deny ด้วยเหตุผลที่ดี: เมื่อไม่มีมนุษย์อยู่ในวงจร การบล็อกปลอดภัยกว่าการเดา
สรุป
โมเดลความปลอดภัยของ Hermes Agent ถูกสร้างมาเพื่อการใช้งานจริง โหมด smart approval ให้ระบบอัตโนมัติโดยไม่ประมาท โหมด YOLO ให้ความเร็วเมื่อคุณต้องการ — พร้อมการแจ้งเตือนด้วยภาพเพื่อให้คุณไม่ลืม และคีย์คอนฟิกใหม่ๆ ให้คุณควบคุมเซสชันแบบไม่มีคนดูแลและคำสั่งที่ทำลายล้างได้อย่างละเอียด
ปรัชญานั้นง่ายมาก: คุณยังคงควบคุมได้เสมอ แม้ตอนที่ agent ทำงานอัตโนมัติ
📖 เอกสารทางการ
この記事は Hermes Agent のเอกสารทางการに基づいています:เอกสารทางการ › user-guide/features/plugins