บทความเดิมวาง SOUL.md, USER.md และ HEARTBEAT.md เป็น config ระดับเดียวกัน แต่หนึ่งส่วนเปลี่ยนแล้ว: SOUL.md และ USER.md ยังเป็น context ของ workspace ส่วน HEARTBEAT.md แบบเดิมถูกแทนด้วย monitor scratch ที่ระบบดูแล ถ้าเป็น installation เก่า ให้ตรวจการย้ายก่อนรวมตัวอย่างจากหลายรุ่น
บทความนี้เหมาะกับใคร
เหมาะกับคนที่รัน OpenClaw แบบอ่านอย่างเดียวได้แล้ว และอยากให้ผลลัพธ์นิ่งและดูแลง่ายในระยะยาว ถ้าผลลัพธ์ของคุณบางวันดีบางวันเพี้ยน ปัญหามักไม่ได้อยู่ที่โมเดล แต่อยู่ที่ไฟล์ตั้งค่าที่ปนกฎ ความชอบ และตารางเวลาไว้ในที่เดียว
ไม่เหมาะกับคนที่อยากได้ไฟล์ตั้งค่าสำเร็จรูปสำหรับเทรดอัตโนมัติหรือก๊อปสัญญาณ ChainSentry ย้ำว่าช่วงเริ่มต้นไม่เขียน API Key สำหรับสั่งซื้อขายลงไฟล์ ไม่มอบสิทธิ์ถอนเงิน และไม่เก็บ seed phrase ไว้ในเครื่องเดียวกับ Agent
เลือกตำแหน่งตามหน้าที่ของข้อมูล
| เนื้อหา | ตำแหน่งปัจจุบัน | สิ่งที่ควรเขียน |
|---|---|---|
SOUL.md | Context ของ workspace | บุคลิก น้ำเสียง และขอบเขต |
USER.md | Context ของ workspace | ความชอบที่คงที่และคำเรียกผู้ใช้ |
AGENTS.md | คำสั่ง workspace | กฎการทำงาน โปรเจกต์ และเครื่องมือ |
| Monitor scratch | Cron job ที่ระบบดูแล | ตรวจเป็นช่วง เงื่อนไขแจ้งเตือน และเงียบเมื่อไม่เปลี่ยน |
SOUL.md: เขียนเส้นห้ามข้ามก่อน แล้วค่อยเขียนงาน
SOUL คือ "บุคลิกและกฎหมาย" ของ Agent สิ่งสำคัญที่สุดสำหรับผู้ใช้ทั่วไปไม่ใช่ทำให้ AI พูดเก่งขึ้น แต่คือทำให้ AI รู้ว่าทำอะไรไม่ได้ แนะนำให้วางเส้นห้ามข้ามไว้ต้นไฟล์ และใช้ประโยคห้ามที่ชัดเจน
คุณคือ Agent จัดข้อมูลแบบอ่านอย่างเดียวของ ChainSentry
ห้าม: ออกคำแนะนำซื้อขาย คำแนะนำขนาดสถานะ การรับประกันผลตอบแทน หรือข้อสรุปว่าปลอดภัยแน่นอน
ห้าม: ขอ seed phrase, รหัส OTP, การควบคุมระยะไกล หรือ API Key ที่มีสิทธิ์ซื้อขาย
ต้อง: แนบแหล่งที่มา เวลา และข้อความเตือนให้คนตรวจซ้ำในทุกข้อสรุปสำคัญ
USER.md: เขียนความชอบส่วนตัวเป็นฟิลด์
USER ไม่ใช่ไดอารี แต่เป็นตารางความชอบ แนะนำให้เขียนสินทรัพย์ที่ติดตาม ภาษา เวลารับแจ้งเตือน คำสำคัญด้านความเสี่ยง รายการที่ต้องการให้ข้าม และความยาวของผลลัพธ์ แบบนี้เวลาปรับภายหลังคุณไม่ต้องไปแก้ขอบเขตพื้นฐานใน SOUL
HEARTBEAT.md เดิม: ย้ายก่อน ไม่เพิ่มเนื้อหาต่อ
หน้าการย้ายปัจจุบันระบุว่า workspace ใหม่ไม่สร้างหรืออ่าน HEARTBEAT.md แล้ว หากยังมีไฟล์เดิม ใช้ openclaw doctor --fix เพื่อนำเข้าและเก็บไฟล์ อย่าเก็บงานเดียวกันทั้งในไฟล์และ monitor
จากนั้นใช้ openclaw automations list --all หา monitor job และอ่านคำสั่งด้วย openclaw automations scratch <jobId> แก้ไขเมื่อยืนยัน job ID แล้วเท่านั้น ส่วน openclaw cron … ที่เห็นในบทความเก่าเป็นชื่อแทน (alias) ของคำสั่งชุดเดียวกัน เอกสาร Automations ทางการระบุว่า cron ยังใช้ได้ ผลลัพธ์จึงเหมือนกัน
ตารางฟิลด์ที่แนะนำ
| ฟิลด์ | วิธีเขียนที่แนะนำ | จุดตรวจ |
|---|---|---|
| sources | ลงประกาศทางการ, API ราคา, explorer บนเชน | เปิดต้นฉบับได้จริงไหม |
| output_format | กำหนดตายตัวเป็น ภาพรวม / ผิดปกติ / รอตรวจ / ข้อห้าม | ลดน้ำท่วมทุ่งได้ไหม |
| red_lines | ห้ามรับประกันผลตอบแทนและห้ามสั่งซื้อขาย | อยู่ใน 20 บรรทัดแรกไหม |
| failure_policy | เมื่อ API ล้มเหลว ให้แสดง "ข้อมูลขาดหาย" | เลี่ยงการแต่งข้อมูลได้ไหม |
เก็บเวอร์ชันที่ย้อนกลับได้
ก่อนแก้ให้เก็บไฟล์ปัจจุบัน พร้อมวันที่ เป้าหมาย และผลที่คาด แก้ตัวแปรเดียวต่อการทดสอบ หากผลแย่ลงให้ย้อนเวอร์ชัน แทนการซ้อน patch เพิ่ม
ถ้าพฤติกรรมผิด ให้หาไฟล์ที่รับผิดชอบก่อน
- น้ำเสียงเปลี่ยนไปมา: หากฎที่ขัดกันใน SOUL.md
- จำความชอบผิด: ตรวจ rule เก่าและใหม่ที่ยัง active ใน USER.md
- เตือนซ้ำ: ตรวจ cron job และ monitor scratch ไม่ใช่ค้นแค่ HEARTBEAT.md
- แก้แล้วไม่เห็นผล: ยืนยันว่า Gateway ใช้ agent workspace เดียวกัน และดู context ที่ถูก inject จริง
ทดสอบด้วยคำขอปกติ ข้อมูลไม่ครบ และคำขอที่ข้ามขอบเขต ดูเอกสาร Agent workspace, Agent runtime และประกาศย้าย HEARTBEAT.md
ตรวจข้อเท็จจริงเมื่อ 2026-09-26 ไม่คัดลอกข้อจำกัดตัวอักษรหรือรอบเวลาเริ่มต้นที่เปลี่ยนง่าย