Tutorial 4: Updating & Uninstalling Hermes
Tutorial 4: Updating & Uninstalling Hermes — easy-to-understand guide based on official docs
บทช่วยสอน 4: การอัปเดตและถอนการติดตั้ง Hermes
ยินดีต้อนรับกลับสู่ซีรีส์บทช่วยสอน Hermes Agent! ในตอนนี้ เราจะมาพูดถึงสิ่งที่ผู้ใช้ทุกคนต้องรู้ในสักวันหนึ่ง: วิธีทำให้ Hermes อัปเดตอยู่เสมอ และวิธีบอกลาเมื่อถึงเวลา ไม่ต้องกังวล — มันง่ายกว่าที่คิดมาก
อัปเดต Hermes: แค่คำสั่งเดียว
วิธีที่ง่ายที่สุดในการอัปเดต Hermes คือการใช้คำสั่งเดียว:
hermes update
แค่นั้นเอง คำสั่งนี้จัดการทุกอย่างให้คุณเอง มันดึงโค้ดล่าสุดจาก branch main อัปเดต dependencies ของคุณ และยังถามคุณเกี่ยวกับตัวเลือกการกำหนดค่าใหม่ๆ ที่เพิ่มเข้ามาตั้งแต่การอัปเดตครั้งล่าสุด เจ๋งใช่ไหมล่ะ?
เกิดอะไรขึ้นจริงๆ ระหว่างการอัปเดต?
คุณอาจสงสัยว่าเบื้องหลังเกิดอะไรขึ้น นี่คือรายละเอียด:
-
สแนปชอตก่อนอัปเดต — ก่อนที่จะเปลี่ยนแปลงอะไร Hermes จะบันทึกสแนปชอตน้ำหนักเบาของไฟล์สถานะสำคัญของคุณ (ข้อมูล pairing, cron jobs,
config.yaml,.envและอื่นๆ) ไฟล์ที่ใหญ่เกิน 1 GiB จะถูกข้ามไป เพื่อไม่ให้ฐานข้อมูลขนาดใหญ่ทำให้ช้าลง สแนปชอตนี้ถูกสร้างสำหรับทุกโปรไฟล์บนเครื่องของคุณ โดยแต่ละอันเก็บไว้ในไดเรกทอรีstate-snapshots/ของตัวเอง -
Git pull — Hermes ดึงโค้ดล่าสุดจาก branch
mainและอัปเดต submodules -
ตรวจสอบไวยากรณ์หลัง pull + ย้อนกลับอัตโนมัติ — หลังจาก pull แล้ว Hermes จะตรวจสอบไฟล์สำคัญ 9 ไฟล์ที่ทุกคำสั่งต้องใช้ตอนเริ่มต้น หากไฟล์ใด parse ไม่ได้ (เช่น เครื่องหมาย merge-conflict หลงเหลือ) Hermes จะย้อนกลับไปยังเวอร์ชันก่อนหน้าโดยอัตโนมัติ เพื่อให้ shell ของคุณยังใช้งานได้ คุณแค่รัน
hermes updateอีกครั้งเมื่อมีการแก้ไขจากฝั่งต้นทาง -
ติดตั้ง dependencies — รัน
uv pip install -e ".[all]"เพื่อดึง dependencies ใหม่หรือที่เปลี่ยนแปลง -
ย้ายการกำหนดค่า — ตรวจพบตัวเลือกการกำหนดค่าใหม่และให้คุณตั้งค่า
-
รีสตาร์ท gateway อัตโนมัติ — gateway ที่กำลังทำงานอยู่จะถูกรีเฟรชเพื่อให้โค้ดใหม่มีผลทันที gateway ที่จัดการโดย service (systemd บน Linux, launchd บน macOS) จะรีสตาร์ทผ่านตัวจัดการ service ในขณะที่ gateway ที่รันด้วยตนเองจะถูกรีสตาร์ทอัตโนมัติ
ข้ามหน้าต่างถามการกำหนดค่าไป? ไม่มีปัญหา!
หากคุณข้ามหน้าต่างถามการกำหนดค่าระหว่างการอัปเดต คุณสามารถกลับมาเพิ่มเติมได้ทีหลัง:
hermes config check # ดูว่าอะไรขาดหายไป
hermes config migrate # เพิ่มแบบโต้ตอบ
อัปเดตจาก branch อื่น
โดยค่าเริ่มต้น hermes update จะติดตาม origin/main แต่ถ้าคุณต้องการทดสอบ release candidate หรือ feature branch ล่ะ? ใช้ flag --branch:
hermes update --branch release-candidate
hermes update --check --branch experimental # แค่ดูตัวอย่างว่าคุณตามหลังอยู่เท่าไหร่
หาก checkout ในเครื่องของคุณอยู่บน branch อื่น Hermes จะ stash งานที่ยังไม่ได้ commit โดยอัตโนมัติ สลับไปยัง branch เป้าหมาย และ pull branch ที่ไม่มีอยู่ในเครื่องจะถูกติดตามจาก origin/<name> อัตโนมัติ หาก branch ไม่มีอยู่ที่ไหนเลย คำสั่งจะล้มเหลวอย่างสะอาดและกู้คืนการเปลี่ยนแปลงที่ stash ไว้
แล้ว branch ที่จอดอยู่ล่ะ?
หาก checkout ของคุณอยู่บน feature branch hermes update จัดการได้อย่างชาญฉลาด:
- branch ที่ merge เรียบร้อยแล้ว — Hermes บอกคุณว่ามัน merge เรียบร้อยแล้วและสลับกลับไปที่
main - มี commits ที่ยังไม่ merge, working tree สะอาด — Hermes ยังคงสลับไปที่
mainเพื่อให้การอัปเดตดำเนินต่อไป (สำคัญสำหรับผู้เรียกใช้แบบไม่โต้ตอบ เช่น desktop app หรือ cron jobs) commits ของคุณไม่ถูกแตะต้อง และ Hermes จะพิมพ์ประกาศเสียงดังพร้อมชื่อ branch และวิธีกลับไปที่ branch นั้น
หากคุณ ตั้งใจ จะดูแลรักษา custom patches บน branch ให้ตั้งค่าใน config.yaml:
updates:
parked_branch_strategy: update_in_place
วิธีนี้จะ merge origin/main เข้าไปใน branch ของคุณแทนที่จะสลับออกไป จะ fast-forward เมื่อเป็นไปได้; หากมีความแตกต่างกัน มันจะสร้าง safety tag และหยุดอย่างสะอาดเมื่อเกิด conflict
การเปลี่ยนแปลงในเครื่องระหว่างการอัปเดตแบบไม่โต้ตอบ
เมื่อคุณรัน hermes update ในเทอร์มินัล Hermes จะ stash การเปลี่ยนแปลงที่ยังไม่ได้ commit, pull จากนั้นถามว่าจะกู้คืนหรือไม่ แต่เมื่อการอัปเดตรันโดยไม่มีเทอร์มินัล (เช่น จาก desktop app) Hermes จะข้ามการอัปเดตหาก working tree สกปรก — พร้อมคำเตือนเสียงดังที่ระบุชื่อ branch และความห่างที่ตามหลัง ไม่มีการแกล้งทำเป็นว่าอัปเดตสำเร็จ!
ถอนการติดตั้ง Hermes
เมื่อถึงเวลาต้องแยกทาง การถอนการติดตั้งก็ตรงไปตรงมา อย่าลืมตรวจสอบเอกสารเฉพาะแพลตฟอร์มของคุณสำหรับขั้นตอนการลบที่แน่นอน แต่โดยทั่วไปคุณจะต้องลบไบนารีของ Hermes และทำความสะอาดไดเรกทอรีการกำหนดค่าที่มันสร้างขึ้น
สรุป
การทำให้ Hermes อัปเดตอยู่เสมอนั้นง่ายมากด้วย hermes update มาตรการความปลอดภัยในตัว — สแนปชอต, การย้อนกลับอัตโนมัติ, และการจัดการ branch — หมายความว่าคุณสามารถอัปเดตได้อย่างมั่นใจ และหากคุณต้องการแยกจากกัน การถอนการติดตั้งก็ง่ายพอๆ กัน
รอติดตามบทช่วยสอนถัดไปในซีรีส์ของเรานะ!
📖 เอกสารทางการ
この記事は Hermes Agent のเอกสารทางการに基づいています:เอกสารทางการ › getting-started/updating