AI และเอเจนต์9 นาทีในการอ่าน

สกิลสำหรับข้อผิดพลาดและแพตช์ของ Hermes Agent ในแคตตาล็อกปลั๊กอิน: hermes-field-notes

hermes-field-notes คือสกิลสำหรับ Hermes Agent จากแคตตาล็อกทางการ: ฐานข้อมูลข้อผิดพลาดที่รู้จักพร้อมวิธีแก้ และการตรวจแพตช์ในแกนหลักหลัง hermes update

สกิลสำหรับข้อผิดพลาดและแพตช์ของ Hermes Agent ในแคตตาล็อกปลั๊กอิน: hermes-field-notes
สารบัญ

hermes-field-notes คือสกิลฟรีสำหรับ Hermes Agent: ฐานข้อมูลข้อผิดพลาดของ Hermes ที่รู้จักแล้วพร้อมวิธีแก้ และการตรวจว่าแพตช์ที่คุณแก้ไว้ในแกนหลัก (core) รอดจากการอัปเดตหรือเปล่า เอเจนต์จะค้นข้อความ error ในฐานข้อมูลก่อน แล้วค่อยซ่อม และบันทึกสิ่งที่เจอไว้ จะได้ไม่ต้องดีบักเรื่องเดิมเป็นรอบที่สอง หลัง hermes update การตรวจแพตช์สั่งได้ด้วยคำสั่งเดียวหรือขอเอเจนต์ให้ทำ และถ้าเปิดการเฝ้าดูไว้ มันจะรันเองชั่วโมงละครั้ง

เมื่อ 7 ตุลาคม สกิลนี้เข้าแคตตาล็อกปลั๊กอินทางการของ Hermes Agent แล้ว เป็นสกิลตัวที่สามของผมในนั้น ต่อจาก hermes-cron และ hermes-dreaming Teknium จากทีม Nous Research กด merge pull request และสกิลก็มีหน้าในแคตตาล็อก: หมวด Tools ระดับ Community เวอร์ชัน 1.2.1 ไลเซนส์ MIT

ทำไมหลัง hermes update แพตช์ถึงหาย และข้อผิดพลาดเดิมถึงกลับมา

ถ้าคุณใช้ Hermes มาไม่ใช่แค่สัปดาห์เดียว แต่เป็นเดือน ๆ จะมีของสองอย่างสะสมอยู่ในนั้นโดยไม่มีใครจดไว้ให้เป็นเรื่องเป็นราว: ข้อผิดพลาดที่เคยเจอ และแพตช์ในแกนหลัก

อย่างแรกคือหลุมพราง งานตามกำหนดเวลาเงียบไปเฉย ๆ เพราะยังไม่ได้เปิด linger ให้ผู้ใช้ที่ใช้รันเซอร์วิส โคลอนที่ไม่มีเครื่องหมายคำพูดในคำอธิบายของสกิล ทำให้ตัวโหลดปลั๊กอินทิ้งสกิลไปเงียบ ๆ โดยไม่บอกสักคำ ครั้งแรกเสียเวลากับเรื่องแบบนี้ไปชั่วโมงหนึ่ง อีกเดือนต่อมาอาการเดิมกลับมาในอีกหน้าตาหนึ่ง และเสียไปอีกชั่วโมง ถ้าไม่มีใครจดไว้ว่าครั้งก่อนจบลงยังไง

อย่างที่สองคือแพตช์ในเครื่อง ไม่ช้าก็เร็วคุณจะไปแก้อะไรบางอย่างในแกนหลักของ hermes-agent โดยตรง: ซ่อมบั๊กที่ใน branch หลักยังไม่ได้แก้ หรือปรับพฤติกรรมให้เข้ากับตัวเอง hermes update จะลบแพตช์พวกนี้ทิ้งเงียบ ๆ คุณจะรู้ก็ตอนบั๊กกลับมา บางทีก็หลายวันต่อมา ตอนที่จำไม่ได้แล้วด้วยซ้ำว่าเคยมีบั๊กนี้

hermes-field-notes เก็บทั้งสองอย่างไว้ในที่เดียว และตรวจว่าแพตช์ยังอยู่ครบด้วยสัญญาณที่กำหนดไว้ ไม่ใช่ด้วยความจำ

แผนภาพการทำงานของ hermes-field-notes สำหรับ Hermes Agent: ค้นข้อผิดพลาดที่รู้จักก่อนดีบัก ตรวจแพตช์ในแกนหลักหลัง hermes update และแดชบอร์ดใน Telegram ผ่าน cron โดยไม่เรียกโมเดล (ข้อความในภาพเป็นภาษาอังกฤษ)

ข้อผิดพลาดที่รู้จักของ Hermes Agent: ค้นก่อน แล้วค่อยดีบัก

เมื่อมีอะไรพัง ไม่ว่าจะเป็น error ของ Gateway, cron ที่เงียบไป หรือของที่พังหลังอัปเดต เอเจนต์จะค้นข้อความ error ด้วยคำสั่ง search ก่อน การค้นหาจะไล่ทั้งโน้ตของคุณและรายการหลุมพรางของ Hermes ที่มากับสกิล ในรายการมี 41 รายการ กลไกของแต่ละรายการเทียบกับซอร์สโค้ดของ Hermes 0.21.5 แล้ว: กระทบการติดตั้งแบบไหน อาการแบบคำต่อคำ กลไกอยู่ตรงไหนในโค้ดของแกนหลัก เลี่ยงยังไง และมี issue ใน tracker ของ Hermes หรือยัง สิบรายการเป็นปัญหาที่ Hermes แก้ไปแล้ว แต่ละรายการระบุว่าแก้ในเวอร์ชันไหน และเก็บไว้สำหรับคนที่ยังใช้เวอร์ชันเก่าอยู่

ตัวอย่างบางส่วนจากรายการ:

  • เอเจนต์ไม่เลือกใช้สกิล ทั้งที่ติดตั้งและเปิดไว้แล้ว ในรายการสกิลที่โมเดลมองเห็น มีแค่ 57 ตัวอักษรแรกของคำอธิบายที่เข้าไป คำที่เอเจนต์ต้องใช้จับว่าเป็นงานนี้ จึงต้องวางไว้ต้นสุด
  • ข้อความเสียงภาษารัสเซียถอดออกมาเป็นข้อความมั่ว ๆ ภาษาของการรู้จำเสียงพูดตั้งต้นเป็นภาษาอังกฤษสำหรับ provider ทุกตัว จนกว่าจะตั้ง stt.language ในการตั้งค่า
  • หลังอัปเดต ปลั๊กอินโหลดไม่ขึ้นแต่ไม่มีข้อความ error หรือสคริปต์ล้มด้วย ModuleNotFoundError hermes update จัด virtual environment ให้ตรงกับรายการ dependency ของ Hermes และลบทุกอย่างที่คุณลงเพิ่มเองด้วยมือ
  • การติดตั้งผ่าน Git แสดงเวอร์ชัน 0.0.0 หรือหางยาว ๆ ที่มี hash หลังอัปเดต โดยค่าเริ่มต้น การอัปเดตจะพามันไปที่โค้ดล่าสุดของ branch main ไม่ใช่รีลีสล่าสุด
  • สกิลใหม่ไม่โผล่ในแชทเก่า บทสนทนาที่ยังเปิดอยู่ทำงานกับ system prompt ตัวเก่าต่อไป และการรีสตาร์ต Gateway ไม่ได้เปลี่ยนอะไร ในแชทแบบนี้ต้องส่ง /new
  • ID หัวข้อ (topic) ของ Telegram ในการตั้งค่ากลายเป็นตัวเลขแปลก ๆ ค่าแบบ -1001234567890:2 ที่ไม่มีเครื่องหมายคำพูด YAML จะอ่านเป็นตัวเลขฐานหกสิบ

ถ้าค้นไม่เจอ เอเจนต์จะดีบัก แล้วบันทึกสิ่งที่เจอไว้ โน้ตเป็นไฟล์ Markdown ธรรมดาที่มีส่วนหัวเล็ก ๆ สารบัญ INDEX.md สร้างขึ้นอัตโนมัติ ไม่ต้องแก้ด้วยมือ การตรวจ lint จับฟิลด์ที่เสีย โน้ตที่ล้าสมัย และทุกอย่างที่ดูเหมือนคีย์หรือรหัสผ่าน: บันทึกนี้ไม่ใช่ที่เก็บ secret พอหาสาเหตุเจอและจดไว้แล้ว คำสั่ง issue-draft จะเตรียมร่าง issue จากโน้ตให้ทีมพัฒนา Hermes โดยปิดบังข้อมูลส่วนตัวไว้ จะส่งหรือไม่ส่ง คนเป็นคนตัดสินใจ

ในหลุมพรางที่มากับสกิล มีเรื่องจากบทความเกี่ยวกับ hermes-cron ด้วย ตอนที่บนเซิร์ฟเวอร์ไม่มีงานตามกำหนดเวลาไหนทำงานเลยติดกันหลายวัน ถ้า Hermes ติดตั้งเป็น system service และผู้ใช้ของเซอร์วิสเข้าเซิร์ฟเวอร์ผ่าน SSH เท่านั้น พอออกจากเซสชันสุดท้าย user manager ของ systemd ที่ Hermes ใช้รันงานก็จะหายไปด้วย ก่อนเวอร์ชัน 0.21.4 เรื่องนี้ทำให้การรันทั้งหมดล้ม ส่วนเวอร์ชันใหม่ ๆ มีโหมดสำรอง วิธีแก้คือเปิด linger ให้ผู้ใช้ของเซอร์วิสแล้วรีสตาร์ต Gateway ใช้คำสั่งเดียวด้วยสิทธิ์ root ถ้ารู้ว่าต้องหาตรงไหน ตอนนี้สาเหตุนี้ค้นเจอในฐานข้อมูลได้จากข้อความ error

ตรวจแพตช์ในแกนหลักหลังอัปเดต Hermes

แพตช์แต่ละตัวในแกนหลักถูกบันทึกเป็นโน้ตแพตช์ และข้าง ๆ มีไฟล์สำหรับตรวจ: ในไฟล์ไหนของแกนหลักต้องมีบรรทัดอะไร ใช้กับ Hermes เวอร์ชันไหน และดูจากสัญญาณอะไรถึงจะรู้ว่าทีมพัฒนาแก้เรื่องนี้ฝั่งตัวเองแล้ว หลังอัปเดต คำสั่ง doctor จะดูแกนหลักที่อยู่บนดิสก์ แค่อ่านอย่างเดียว ไม่เปลี่ยนอะไร แล้วแยกแพตช์ตามสถานะ

OK สัญญาณครบทุกอย่าง ไม่ต้องทำอะไร MISSING ไม่มีสัญญาณของแพตช์ในไฟล์: ส่วนใหญ่ถูกการอัปเดตลบไป และต้องตัดสินใจว่าจะใส่แพตช์คืนไหม UPSTREAMED ทีมพัฒนาแก้ปัญหานี้ในแกนหลักแล้ว ปลดระวางแพตช์ได้ N/A แพตช์ไม่มีรายการตรวจสำหรับแกนหลักเวอร์ชันนี้ UNKNOWN ตัดสินไม่ได้ และ doctor จะบอกเหตุผล นอกจากนี้มันยังแยกแสดงไฟล์ในแกนหลักที่มีคนแก้โดยไม่ผ่านทะเบียน และโน้ตที่ตรวจไว้กับ Hermes คนละเวอร์ชัน

วงจรชีวิตของแพตช์ Hermes Agent: แพตช์แก้บั๊กอยู่จนกว่าแกนหลักจะแก้ให้ ส่วนการปรับแต่งของตัวเองยังอยู่ในเครื่อง และต้องใส่กลับหลัง hermes update ทุกครั้ง (ข้อความในภาพเป็นภาษาอังกฤษ)

การตรวจเป็นแบบ static: มันหาบรรทัดในไฟล์ OK หมายความว่ามีบรรทัดที่ต้องการอยู่ในไฟล์ ไม่ได้แปลว่าโค้ดทำงานได้แน่นอน ถ้าป้ายของแพตช์ยังอยู่แต่โค้ดข้างใต้เปลี่ยนไป doctor จะแสดง UNKNOWN ไม่ใช่สถานะเขียวหลอก ๆ

และข้อจำกัดที่ตั้งใจไว้: สคริปต์ของสกิลแค่อ่านแกนหลัก และไม่ลงแพตช์เอง มันบันทึก ตรวจ และเตือน เอเจนต์จะเสนอให้ใส่แพตช์ที่ถูกลบกลับคืน แต่จะทำก็ต่อเมื่อเจ้าของบอก “ได้” เท่านั้น

เพื่อให้มีจุดเริ่มต้น ในชุดมีสูตรแพตช์สิบแบบจากการติดตั้งที่ใช้งานจริงตัวหนึ่ง: แก้บั๊กห้าแบบ และปรับแต่งให้เข้ากับตัวเองอีกห้าแบบ ตัวอย่างเช่นการตีความ error ของผู้ให้บริการผิด: เมื่อก่อนพอโควตาหมด Hermes จะแจ้งในแชทว่าเป็น error เรื่องการยืนยันตัวตน (แก้แล้วใน 0.21.4) ส่วนการถูกระงับตามนโยบายของผู้ให้บริการ จนถึงตอนนี้ Hermes ก็ยังอาจเข้าใจผิดว่าเป็นลิมิตชั่วคราว หรือข้อความว่าง ๆ ใน Telegram ที่มีแต่อักขระที่มองไม่เห็น แต่ละสูตรระบุตำแหน่งในแกนหลัก ตัวแพตช์เอง สิ่งที่ต้องใส่ในไฟล์ตรวจ และสถานะฝั่งทีมพัฒนา นี่คือจุดตั้งต้น ไม่ใช่สคริปต์ที่จะแพตช์ทุกอย่างให้คุณ

แดชบอร์ดใน Telegram ที่ไม่เปลือง token

ส่วนสุดท้ายจะใช้หรือไม่ใช้ก็ได้ ทุกชั่วโมงจะมีงานตามกำหนดเวลารันในโหมด no_agent โดยไม่เรียกโมเดลและไม่ใช้ token เลยสักตัว มันรัน doctor เทียบเวอร์ชันแกนหลักของคุณกับรีลีสล่าสุดของ Hermes และอัปเดตข้อความปักหมุดหนึ่งข้อความใน Telegram ข้อความถูกแก้ในที่เดิม แชทไม่รก และจะมีแจ้งเตือนสั้น ๆ เฉพาะตอนสถานะเปลี่ยน เช่น การอัปเดตลบแพตช์ไปตัวหนึ่ง

ความปลอดภัย: สกิลแตะอะไร และติดต่อไปที่ไหน

โน้ตเก็บอยู่ในเครื่องของคุณเท่านั้น ที่ ~/.hermes/field-notes/ และไม่ถูกอัปโหลดไปไหน สกิลออกเน็ตแค่สองกรณี: ไปที่ Telegram Bot API ถ้าเปิดแดชบอร์ดไว้ และไปเฉพาะแชทที่คุณระบุ และไปที่ API สาธารณะของ GitHub โดยไม่ล็อกอิน แค่ไม่กี่คำขอทุก 12 ชั่วโมง เพื่อเทียบแกนหลักของคุณกับรีลีสล่าสุด อย่างหลังปิดได้ในการตั้งค่า แฟล็ก --read-only รับประกันว่าคำสั่งจะไม่เขียนอะไรและไม่ออกเน็ต ไม่มี dependency ภายนอก ใช้แค่ standard library ของ Python

วิธีติดตั้ง hermes-field-notes

ต้องใช้ Hermes Agent 0.21 ขึ้นไป และ Python 3.11+ ถ้าจะตรวจแพตช์ แกนหลักต้องอยู่บนดิสก์เป็นโฟลเดอร์ และถ้าจะเห็นการแก้ที่ไม่ผ่านทะเบียน ต้องเป็น git checkout วิธีปกติคือติดตั้งเป็นสกิล แล้วเอเจนต์จะหยิบมาใช้เองจากคำอธิบาย:

hermes skills install itpartypattaya/hermes-field-notes/skills/hermes-field-notes

หรือติดตั้งเป็นปลั๊กอินจากแคตตาล็อก จะได้เวอร์ชันเดียวกับที่ผ่านการตรวจตอนรับเข้าแคตตาล็อกพอดี:

hermes plugins install hermes-field-notes
hermes plugins enable hermes-field-notes

จากนั้นสร้างที่เก็บโน้ตและการตั้งค่าครั้งเดียว แล้วเช็กว่าทุกอย่างพร้อม คำสั่งด้านล่างสำหรับการติดตั้งแบบสกิล ถ้าติดตั้งเป็นปลั๊กอิน สคริปต์จะอยู่ที่ ~/.hermes/plugins/hermes-field-notes/skills/hermes-field-notes/scripts/:

python3 ~/.hermes/skills/hermes-field-notes/scripts/install.py
python3 ~/.hermes/skills/hermes-field-notes/scripts/install.py --check

แดชบอร์ดเปิดได้ใน ~/.hermes/field-notes.json ในนั้นระบุแชท หัวข้อ (topic) ภาษา และเขตเวลา ส่วนงานตามกำหนดเวลาตั้งด้วย install_cron.py จากโฟลเดอร์เดียวกัน ควรรันมันด้วย --dry-run ก่อน เพื่อดูว่ามันจะทำอะไรบ้าง

จากนั้นคุยกับเอเจนต์ด้วยภาษาธรรมดา: “เรารู้อะไรเกี่ยวกับ error นี้บ้าง?” “จดไว้หน่อย” “แพตช์รอดจากการอัปเดตไหม?” “เปิดแดชบอร์ดให้ดู”

คำถามที่พบบ่อย

hermes-field-notes ราคาเท่าไหร่? ไม่มีค่าใช้จ่าย: สกิลเป็นโอเพนซอร์ส ไลเซนส์ MIT การตรวจรายชั่วโมงและแดชบอร์ดทำงานด้วยสคริปต์โดยไม่เรียกโมเดล จึงไม่ใช้ token ส่วนตอนที่เอเจนต์ทำงานกับโน้ตและไล่หาสาเหตุของ error ไม่ว่าจะตามที่คุณขอหรือทำเอง token จะถูกใช้เหมือนบทสนทนาปกติ

สกิลจะซ่อมแกนหลักเองหลังอัปเดตไหม? ไม่ มันจะบอกว่าขาดแพตช์ไหน และแนะนำวิธีใส่คืน แต่คนแก้โค้ดของแกนหลักคือคุณหรือเอเจนต์ และต้องได้รับความยินยอมจากคุณก่อนเท่านั้น

ต้องมีแพตช์ของตัวเองไหม สกิลถึงจะมีประโยชน์? ไม่ต้อง ฐานข้อมูลข้อผิดพลาดที่รู้จักและการบันทึกสิ่งที่เจอเองใช้ได้ตั้งแต่การติดตั้งเปล่า ๆ การตรวจแพตช์จะเริ่มทำงานเมื่อมีแพตช์ในแกนหลักตัวแรก

ต้องเชื่อม Telegram ไหม? ไม่ต้อง แดชบอร์ดและการแจ้งเตือนเป็นส่วนเสริม ถ้าไม่ใช้ ก็รัน doctor ด้วยมือหรือขอให้เอเจนต์รันได้

ถ้ายังไม่ได้ติดตั้ง Hermes ให้เริ่มจากการติดตั้งและเชื่อมต่อกับ Telegram แล้วต่อด้วยการตั้งค่าหลังติดตั้ง โค้ดและเอกสารอยู่ในรีโพบน GitHub ถ้าเจอหลุมพรางของ Hermes ที่ไม่ได้เกิดแค่กับการติดตั้งของคุณ ส่ง pull request เข้ารายการหลุมพรางในรูปแบบเดียวกันมาได้เลย ส่วนจะหาสกิลและปลั๊กอินอื่นของ Hermes ได้ที่ไหน และควรตรวจของคนอื่นอย่างไรก่อนติดตั้ง ผมรวบรวมไว้ในบทความรีวิวแยก

ถ้าคุณไม่ได้ใช้ Hermes แต่ใช้ Claude Code หรือ Codex เรามีสกิลนี้อีกเวอร์ชันหนึ่ง คือ field-notes เป็นบันทึกหลุมพรางแบบเดียวกัน: เอเจนต์ค้นในนั้นก่อนซ่อมอาการที่คุ้นเคย บันทึกสิ่งที่เจอหลังดีบัก และเตรียมร่าง issue ให้ทีมพัฒนาโดยปิดบังคีย์และพาธไว้ เวอร์ชันนี้ไม่มีทะเบียนแพตช์ของแกนหลักและแดชบอร์ดใน Telegram แต่ที่เก็บโน้ตมีที่เดียวต่อเครื่องและใช้ร่วมกันทั้งสองเอเจนต์: อะไรที่ Claude Code จดไว้ Codex ก็หาเจอ และกลับกัน ต้องใช้ Python 3.9+ ตัวติดตั้งจากรีโพจะเชื่อมสกิลเข้ากับทั้งสองเอเจนต์บน Windows, Linux และ macOS ถ้าในคำแนะนำ global ของเอเจนต์ระบุโฟลเดอร์โน้ตไว้คนละที่ ควรตั้งพาธให้ตรงกัน ไม่อย่างนั้นจะเกิดที่เก็บโน้ตที่สอง ตัวโน้ตเองอยู่กับคุณและไม่เข้า git

แหล่งข้อมูล

  1. Hermes Agent: หน้า hermes-field-notes ในแคตตาล็อกปลั๊กอิน
  2. NousResearch/hermes-agent: PR #134068 เพิ่ม hermes-field-notes เข้าแคตตาล็อก
  3. itpartypattaya/hermes-field-notes: รีโพและ README
คนกันเองอยู่ใกล้ ๆถามคนกันเอง แชทตอบเร็วกว่าค้นหาเองแชทหลักของไอที ปาร์ตี้ พัทยา: คนสาย IT สายดิจิทัล และผู้ประกอบการ ที่เคยผ่านเรื่องเดียวกันมาแล้ว เริ่มตั้งแต่กรกฎาคม 2566 แชทใช้ภาษารัสเซีย ชาวต่างชาติและคนไทยเข้ามาได้เสมอเข้าแชท (ภาษารัสเซีย)

อ่านเรื่องที่เกี่ยวข้อง