บทช่วยสอน 7: ไฟล์คอนฟิก
Tutorial 7: Configuration Files — easy-to-understand guide based on official docs
บทช่วยสอน 7: ไฟล์คอนฟิก
ยินดีต้อนรับกลับนะนักจัดการเอเจนต์ทุกคน! ในบทช่วยสอนนี้ เราจะดำดิ่งสู่หัวใจของ Hermes: ไฟล์คอนฟิก ถ้าคุณเคยรู้สึกหลงทางในทะเลของ YAML และ environment variables ไม่ต้องกลัว—เราจะทำให้เรื่องนี้ง่ายที่สุดเท่าที่จะทำได้
ฐานบ้านของ Hermes
ทุกอย่างอยู่ใน ~/.hermes/ ลองนึกถึงมันว่าเป็นอพาร์ตเมนต์ของเอเจนต์คุณ นี่คือสิ่งที่อยู่ข้างใน:
~/.hermes/
├── config.yaml # การตั้งค่า (model, terminal, TTS, compression, ฯลฯ)
├── .env # API keys และ secrets
├── auth.json # OAuth provider credentials (Nous Portal, ฯลฯ)
├── SOUL.md # ตัวตนหลักของเอเจนต์ (slot #1 ใน system prompt)
├── memories/ # หน่วยความจำถาวร (MEMORY.md, USER.md)
├── skills/ # สกิลที่เอเจนต์สร้างขึ้น (จัดการผ่าน skill_manage tool)
├── cron/ # งานตามกำหนดเวลา
├── sessions/ # Gateway sessions
└── logs/ # บันทึก (errors.log, gateway.log — secrets ถูกปกปิดอัตโนมัติ)
เส้นทางที่ง่ายที่สุด: ติดตั้งด้วยคำสั่งเดียว
ก่อนที่เราจะลงลึกในรายละเอียด ขอบอกเคล็ดลับมือโปร: รัน hermes setup --portal การ OAuth ครั้งเดียวจะได้ทั้ง model provider และเครื่องมือ Tool Gateway ทั้งสี่อย่างโดยไม่ต้องแตะไฟล์ YAML เลยแม้แต่บรรทัดเดียว สมาชิก Portal ยังได้ส่วนลด 10% สำหรับ token-billed providers อีกด้วย มันเป็นวิธีเริ่มต้นแบบขี้เกียจ และเราชอบมันมาก
การจัดการคอนฟิกของคุณ
Hermes ให้ชุดเครื่องมือครบครันสำหรับจัดการการตั้งค่า นี่คือคำสั่งที่คุณจะใช้เป็นประจำทุกวัน:
hermes config # ดูคอนฟิกปัจจุบัน
hermes config edit # เปิด config.yaml ในโปรแกรมแก้ไขของคุณ
hermes config get KEY # แสดงค่าที่ถูก resolve แล้ว
hermes config set KEY VAL # ตั้งค่าเฉพาะ
hermes config unset KEY # ลบค่าที่ผู้ใช้ตั้งไว้
hermes config check # ตรวจสอบตัวเลือกที่ขาดหายไป (หลังอัปเดต)
hermes config migrate # เพิ่มตัวเลือกที่ขาดหายไปแบบโต้ตอบ
นี่คือตัวอย่างการใช้งานจริง:
hermes config get model
hermes config set model anthropic/claude-opus-4
hermes config set terminal.backend docker
hermes config unset terminal.backend
hermes config set OPENROUTER_API_KEY sk-or-... # บันทึกลงใน .env
เคล็ดลับมหัศจรรย์: hermes config set จะจัดเส้นทางค่าไปยังไฟล์ที่ถูกต้องโดยอัตโนมัติ API keys ไปที่ .env ส่วนอย่างอื่นไปที่ config.yaml ไม่ต้องเดาอีกต่อไป!
จะเกิดอะไรขึ้นเมื่อมีความขัดแย้ง?
Hermes จัดการการตั้งค่าตามลำดับนี้ (สำคัญที่สุดมาก่อน):
- CLI arguments — เช่น
hermes chat --model anthropic/claude-sonnet-4 ~/.hermes/config.yaml— ไฟล์คอนฟิกหลักของคุณ~/.hermes/.env— สำหรับความลับ (API keys, tokens, passwords)- Built-in defaults — ค่าฮาร์ดโค้ดที่ปลอดภัย
หลักสังเขป: ความลับใส่ใน .env อย่างอื่นใส่ใน config.yaml เมื่อทั้งสองถูกตั้งค่า config.yaml จะชนะสำหรับการตั้งค่าที่ไม่ใช่ความลับ
การแทนที่ Environment Variables
คุณสามารถอ้างอิง environment variables ใน config.yaml ได้โดยใช้ไวยากรณ์ ${VAR_NAME}:
auxiliary:
vision:
api_key: ${GOOGLE_API_KEY}
base_url: ${CUSTOM_VISION_URL}
delegation:
api_key: ${DELEGATION_KEY}
การอ้างอิงหลายตัวก็ใช้ได้เช่นกัน: url: "${HOST}:${PORT}" ถ้าตัวแปรไม่ได้ถูกตั้งค่า placeholder จะคงอยู่เหมือนเดิมและมีการบันทึกคำเตือนใน log ไวยากรณ์แบบ Cursor คือ ${env:VAR_NAME} ก็ใช้ได้เช่นกัน คุณจึงคัดลอก snippet จากคอนฟิกของ Cursor หรือ Claude ได้โดยไม่ต้องแก้ไขอะไร
Provider Timeouts
คุณสามารถตั้งค่า timeout แยกตาม provider และตาม model ได้:
providers:
some-provider:
request_timeout_seconds: 600
models:
some-model:
timeout_seconds: 300
นอกจากนี้ยังมี stale_timeout_seconds สำหรับตรวจจับ non-streaming calls ที่ค้างอยู่ การตั้งค่าเหล่านี้จะแทนที่ env vars เดิมอย่าง HERMES_API_TIMEOUT และ HERMES_API_CALL_STALE_TIMEOUT
ขีดจำกัด Runtime
สำหรับ server surfaces ที่รันยาวนาน (gateway, hermes serve --isolated) คุณสามารถตั้งค่าขีดจำกัด file descriptor ได้:
runtime:
nofile_soft_limit: 4096
ค่าเริ่มต้นคือ 4096 ตั้งเป็น 0, false หรือ null เพื่อปิดการปรับแต่งนี้
พฤติกรรมการอัปเดต
การตั้งค่าการอัปเดตอยู่ภายใต้ updates ใน config.yaml:
updates:
pre_update_backup: quick
สรุป
นี่คือทัวร์คอนฟิกทั้งหมด! จำไว้: hermes setup --portal สำหรับเส้นทางง่ายๆ hermes config set สำหรับการเปลี่ยนแปลงที่รวดเร็ว และเก็บความลับไว้ใน .env เอเจนต์ของคุณจะขอบคุณคุณเอง
ต่อไป: เราจะสำรวจ AI providers และวิธีเชื่อมต่อโมเดลโปรดของคุณ โปรดติดตาม!
📖 เอกสารทางการ
この記事は Hermes Agent のเอกสารทางการに基づいています:เอกสารทางการ › user-guide/configuration