Maintenance
กำลังอัปเดต
อัปเดต OpenClaw ให้เป็นเวอร์ชันล่าสุดอยู่เสมอ
สำหรับการแทนที่อิมเมจ Docker, Podman และ Kubernetes โปรดดู การอัปเกรดอิมเมจคอนเทนเนอร์ Gateway จะทำงานอัปเกรดที่ปลอดภัยต่อการเริ่มต้นก่อนเข้าสู่สถานะพร้อมใช้งาน และจะออกหากสถานะที่เมานต์ไว้ ต้องได้รับการซ่อมแซมด้วยตนเอง
แนะนำ: openclaw update
ตรวจหาประเภทการติดตั้ง (npm, pnpm, Bun หรือ git) ดึงเวอร์ชันล่าสุด เรียกใช้ openclaw doctor และรีสตาร์ต Gateway
openclaw updateสลับช่องทางหรือระบุเวอร์ชันเฉพาะ:
openclaw update --channel betaopenclaw update --channel extended-stableopenclaw update --channel devopenclaw update --dry-run # แสดงตัวอย่างโดยไม่ใช้การเปลี่ยนแปลงopenclaw update ไม่มีแฟล็ก --verbose (แต่ตัวติดตั้งมี) สำหรับการวินิจฉัย ให้ใช้
--dry-run เพื่อแสดงตัวอย่างการดำเนินการที่วางแผนไว้, --json สำหรับผลลัพธ์แบบมีโครงสร้าง หรือ
openclaw update status --json เพื่อตรวจสอบสถานะช่องทางและความพร้อมใช้งาน
--channel beta จะเลือก npm dist-tag รุ่นเบต้าก่อน แต่จะถอยกลับไปใช้ stable/latest
เมื่อไม่มีแท็ก beta หรือเวอร์ชันของแท็กดังกล่าวเก่ากว่ารุ่นเสถียรล่าสุด
ให้ใช้ --tag beta แทนสำหรับการอัปเดตแพ็กเกจครั้งเดียวที่ตรึงไว้กับ npm
beta dist-tag โดยตรง
--channel extended-stable ใช้กับแพ็กเกจเท่านั้น และการติดตั้งยังคงทำงาน
ในโฟร์กราวด์เท่านั้น OpenClaw อ่านตัวเลือก extended-stable ของ npm สาธารณะ
ตรวจสอบแพ็กเกจแบบระบุเวอร์ชันที่เลือก และติดตั้งเวอร์ชันนั้นโดยตรง ข้อมูลรีจิสทรีที่ขาดหาย
หรือไม่สอดคล้องกันจะทำให้ระบบปฏิเสธอย่างปลอดภัย โดยจะไม่ถอยกลับไปใช้ latest
หากเวอร์ชันที่เลือกเก่ากว่าเวอร์ชันที่ติดตั้งไว้ ระบบยังคงใช้การยืนยัน
การดาวน์เกรดตามปกติ CLI จะบันทึกช่องทางหลังจาก
อัปเดตคอร์สำเร็จ ส่วนการเรียก npm install -g openclaw@extended-stable โดยตรง
จะไม่อัปเดต update.channel
หลังจากสลับคอร์แล้ว Plugin npm ทางการที่เข้าเกณฑ์ซึ่งมีเจตนาแบบค่าเปล่า/ค่าเริ่มต้น หรือ
latest จะปรับให้ตรงกับเวอร์ชันคอร์นั้นทุกประการ การตรึงเวอร์ชันแบบเจาะจงและแท็กที่ไม่ใช่
latest ซึ่งระบุไว้อย่างชัดเจน รวมถึง Plugin ของบุคคลที่สามและแหล่งที่ไม่ใช่ npm จะไม่มีการเปลี่ยนแปลง
การติดตั้งจากแค็ตตาล็อกที่สร้างโดย OpenClaw เวอร์ชันปัจจุบันจะคงเจตนาเริ่มต้นนั้นไว้
ระเบียนเก่าที่มีเพียงเวอร์ชันแบบเจาะจงจะยังคงถูกตรึงไว้ เนื่องจาก
OpenClaw ไม่สามารถแยกแยะการตรึงอัตโนมัติแบบเก่าจากการตรึงโดยผู้ใช้ได้อย่างปลอดภัย ให้เรียกใช้
openclaw plugins update @openclaw/name หนึ่งครั้งบนช่องทาง extended-stable
เพื่อให้ Plugin นั้นกลับมาติดตามเวอร์ชันคอร์แบบตรงกันทุกประการ
--channel dev มอบเช็กเอาต์ GitHub main แบบเคลื่อนที่และคงอยู่ สำหรับการอัปเดต
แพ็กเกจครั้งเดียว --tag main จะแมปไปยังข้อกำหนดแพ็กเกจ
github:openclaw/openclaw#main และติดตั้งโดยตรงผ่านตัวจัดการแพ็กเกจเป้าหมาย (npm/pnpm/bun)
สำหรับ Plugin ที่มีการจัดการ การไม่มีรุ่น beta เป็นเพียงคำเตือน ไม่ใช่ความล้มเหลว: การอัปเดตคอร์ยังคงสำเร็จได้ ขณะที่ Plugin จะถอยกลับไปใช้ รุ่น default/latest ที่บันทึกไว้
โปรดดูความหมายของช่องทางที่ ช่องทางการเผยแพร่
สลับระหว่างการติดตั้งด้วย npm และ git
ใช้ช่องทางเพื่อเปลี่ยนประเภทการติดตั้ง ตัวอัปเดตจะเก็บสถานะ การกำหนดค่า
ข้อมูลประจำตัว และเวิร์กสเปซไว้ใน ~/.openclaw โดยจะเปลี่ยนเฉพาะการติดตั้งโค้ด OpenClaw
ที่ CLI และ Gateway ใช้เท่านั้น
# การติดตั้งแพ็กเกจ npm -> เช็กเอาต์ git ที่แก้ไขได้openclaw update --channel dev # เช็กเอาต์ git -> การติดตั้งแพ็กเกจ npmopenclaw update --channel stableแสดงตัวอย่างการสลับโหมดการติดตั้งก่อน:
openclaw update --channel dev --dry-runopenclaw update --channel stable --dry-rundev จะตรวจสอบให้มีเช็กเอาต์ git บิลด์เช็กเอาต์นั้น และติดตั้ง CLI ส่วนกลางจาก
เช็กเอาต์ดังกล่าว ช่องทาง stable, extended-stable และ beta ใช้การติดตั้งแบบแพ็กเกจ
ระบบจะปฏิเสธ extended-stable บนเช็กเอาต์ git โดยไม่แก้ไขหรือ
แปลงเช็กเอาต์นั้น หากติดตั้ง Gateway ไว้แล้ว openclaw update จะรีเฟรช
ข้อมูลเมตาของบริการและรีสตาร์ตบริการ เว้นแต่จะส่ง --no-restart
สำหรับการติดตั้งแบบแพ็กเกจที่มีบริการ Gateway ซึ่งมีการจัดการ openclaw update จะกำหนดเป้าหมาย
ไปยังรูทแพ็กเกจที่บริการนั้นใช้ หากคำสั่ง openclaw ในเชลล์มาจาก
การติดตั้งอื่น ตัวอัปเดตจะแสดงรูททั้งสองและพาธ Node ของบริการ
ที่มีการจัดการ และตรวจสอบเวอร์ชัน Node นั้นกับข้อกำหนด
engines.node ของรุ่นเป้าหมายก่อนแทนที่แพ็กเกจ
ทางเลือก: เรียกใช้ตัวติดตั้งอีกครั้ง
curl -fsSL https://openclaw.ai/install.sh | bashเพิ่ม --no-onboard เพื่อข้ามการเริ่มต้นใช้งาน หากต้องการบังคับประเภทการติดตั้งเฉพาะ ให้ส่ง
--install-method git --no-onboard หรือ --install-method npm --no-onboard
หาก openclaw update ล้มเหลวหลังจากขั้นตอนติดตั้งแพ็กเกจ npm ให้เรียกใช้
ตัวติดตั้งอีกครั้งแทน ตัวติดตั้งจะไม่เรียกตัวอัปเดต แต่จะเรียกการติดตั้งแพ็กเกจ
ส่วนกลางโดยตรง และสามารถกู้คืนการติดตั้ง npm ที่อัปเดตเพียงบางส่วนได้
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method npmตรึงการกู้คืนไว้กับเวอร์ชันหรือ dist-tag ที่ระบุด้วย --version:
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method npm --version <version-or-dist-tag>ทางเลือก: ใช้ npm, pnpm หรือ bun ด้วยตนเอง
npm i -g openclaw@latestควรใช้ openclaw update สำหรับการติดตั้งที่มีการควบคุมดูแล เนื่องจากสามารถประสาน
การสลับแพ็กเกจกับบริการ Gateway ที่กำลังทำงานได้ หากอัปเดตด้วยตนเองบนการติดตั้ง
ที่มีการควบคุมดูแล ให้หยุด Gateway ที่มีการจัดการก่อน ตัวจัดการแพ็กเกจจะแทนที่ไฟล์
ในตำแหน่งเดิม และ Gateway ที่กำลังทำงานอาจพยายามโหลดไฟล์คอร์หรือ Plugin
ระหว่างการสลับได้ รีสตาร์ต Gateway หลังจากตัวจัดการแพ็กเกจทำงานเสร็จ เพื่อให้โหลด
การติดตั้งใหม่
สำหรับการติดตั้งส่วนกลางระดับระบบ Linux ที่รูทเป็นเจ้าของ หาก openclaw update ล้มเหลวด้วย
EACCES ให้กู้คืนด้วย npm ของระบบ โดยหยุด Gateway ไว้ระหว่าง
การแทนที่ด้วยตนเอง ใช้แฟล็กโปรไฟล์/สภาพแวดล้อมเดียวกับที่ใช้ตามปกติสำหรับ
Gateway นั้น แทนที่ /usr/bin/npm ด้วย npm ของระบบที่เป็นเจ้าของ
คำนำหน้าส่วนกลางซึ่งรูทเป็นเจ้าของบนโฮสต์:
openclaw gateway stopsudo /usr/bin/npm i -g openclaw@latestopenclaw gateway install --forceopenclaw gateway restartจากนั้นตรวจสอบ:
openclaw --versioncurl -fsS http://127.0.0.1:18789/readyzopenclaw plugins list --jsonopenclaw gateway status --deep --jsonopenclaw doctor --lint --jsonเมื่อ openclaw update จัดการการติดตั้ง npm ส่วนกลาง ระบบจะติดตั้งเป้าหมาย
ลงในคำนำหน้า npm ชั่วคราวก่อน แพ็กเกจตัวเลือกจะตรวจสอบเวอร์ชัน Node
ของโฮสต์ระหว่าง preinstall จากนั้น OpenClaw จึงจะตรวจสอบรายการ
dist ที่รวมอยู่ในแพ็กเกจ และสลับโครงสร้างแพ็กเกจที่สะอาดเข้าไปในคำนำหน้าส่วนกลางจริง ระบบจะไม่นำ
ตัวป้องกันการเสร็จสมบูรณ์ที่แพ็กไว้ไปรวมในรายการที่คาดหวัง และจะนำออกหลังจาก
preinstall สำเร็จเท่านั้น ดังนั้นการข้ามสคริปต์วงจรชีวิตจะทำให้ล้มเหลวก่อน
การสลับเช่นกัน สำหรับ npm 12 และใหม่กว่า ตัวอัปเดตจะอนุมัติเฉพาะวงจรชีวิตของ
OpenClaw ตัวเลือกเท่านั้น ส่วนสคริปต์ของทรานซิทีฟดีเพนเดนซีจะยังคงถูกบล็อก วิธีนี้ป้องกันไม่ให้ npm
วางแพ็กเกจใหม่ทับไฟล์เก่าที่ค้างอยู่ หากคำสั่งติดตั้ง
ล้มเหลว OpenClaw จะลองอีกครั้งหนึ่งด้วย --omit=optional ซึ่งช่วยสำหรับโฮสต์
ที่ไม่สามารถคอมไพล์เนทีฟออปชันนัลดีเพนเดนซีได้
คำสั่งอัปเดต npm และอัปเดต Plugin ที่ OpenClaw จัดการจะล้าง
การกักกันซัพพลายเชน min-release-age ของ npm (หรือคีย์การกำหนดค่าเก่า before)
สำหรับโปรเซส npm ลูกด้วย นโยบายดังกล่าวมีไว้เพื่อการป้องกันทั่วไป แต่การอัปเดต
OpenClaw อย่างชัดเจนหมายถึง "ติดตั้งรุ่นที่เลือกทันที"
pnpm add -g openclaw@latestหาก pnpm 11 ติดตั้ง OpenClaw 2026.7.1 ให้เรียกใช้คำสั่งด้วยตนเองนั้นหนึ่งครั้ง รุ่นดังกล่าวออกก่อนเลย์เอาต์แพ็กเกจส่วนกลางแบบแยกของ pnpm 11 ดังนั้นตัวอัปเดต อาจเข้าใจผิดว่าการติดตั้ง npm อื่นเป็น CLI ที่กำลังทำงาน รุ่นหลังจากนั้นจะคง ความเป็นเจ้าของของ pnpm และติดตามรูทแพ็กเกจทดแทนระหว่างการอัปเดต นอกจากนี้ ยังใช้ไดเรกทอรี bin ส่วนกลางที่ตัวจัดการซึ่งเป็นเจ้าของรายงาน และหยุดก่อน แก้ไขเมื่อคำสั่ง pnpm ที่พร้อมใช้งานรายงานรูทส่วนกลางหรือเวอร์ชันหลักอื่น หรือเมื่อแพ็กเกจที่เรียกใช้งานไม่มีเจ้าของหรือไม่ได้เป็นการติดตั้ง OpenClaw เพียงรายการเดียวที่ทำงานอยู่ในตำแหน่งนั้น
หาก OpenClaw ใช้กลุ่มการติดตั้งส่วนกลางของ pnpm 11 ร่วมกับแพ็กเกจอื่น ตัวอัปเดตอัตโนมัติจะหยุดก่อนเปลี่ยนแปลงกลุ่ม ให้อัปเดตกลุ่มเดิม ที่คั่นด้วยจุลภาคด้วยตนเอง เพื่อให้แพ็กเกจข้างเคียงและนโยบายการบิลด์ยังคง ครบถ้วน
bun add -g openclaw@latestหัวข้อขั้นสูงสำหรับการติดตั้ง npm
โครงสร้างแพ็กเกจแบบอ่านอย่างเดียว
OpenClaw ถือว่าการติดตั้งส่วนกลางแบบแพ็กเกจเป็นแบบอ่านอย่างเดียวในขณะรันไทม์ แม้ผู้ใช้ปัจจุบันจะเขียนลงในไดเรกทอรีแพ็กเกจส่วนกลางได้ก็ตาม การติดตั้งแพ็กเกจ Plugin จะอยู่ในรูท npm/git ที่ OpenClaw เป็นเจ้าของภายใต้ไดเรกทอรีการกำหนดค่าของผู้ใช้ และการเริ่มต้น Gateway จะไม่แก้ไขโครงสร้างแพ็กเกจ OpenClaw
การตั้งค่า npm บน Linux บางแบบจะติดตั้งแพ็กเกจส่วนกลางไว้ใต้ไดเรกทอรีที่รูทเป็นเจ้าของ เช่น /usr/lib/node_modules/openclaw OpenClaw รองรับเลย์เอาต์ดังกล่าว เนื่องจากคำสั่งติดตั้ง/อัปเดต Plugin จะเขียนข้อมูลนอกไดเรกทอรีแพ็กเกจส่วนกลางนั้น
ยูนิต systemd ที่เสริมความปลอดภัย
ให้สิทธิ์ OpenClaw เขียนลงในรูทการกำหนดค่า/สถานะ เพื่อให้การติดตั้ง Plugin อย่างชัดเจน การอัปเดต Plugin และการล้างข้อมูลโดย doctor สามารถบันทึกการเปลี่ยนแปลงได้:
ReadWritePaths=/var/lib/openclaw /home/openclaw/.openclaw /tmpการตรวจสอบพื้นที่ดิสก์ล่วงหน้า
ก่อนการอัปเดตแพ็กเกจและการติดตั้ง Plugin อย่างชัดเจน OpenClaw จะพยายามตรวจสอบพื้นที่ดิสก์ของวอลุ่มเป้าหมายแบบพยายามอย่างดีที่สุด พื้นที่ต่ำจะทำให้เกิดคำเตือนพร้อมพาธที่ตรวจสอบ แต่จะไม่บล็อกการอัปเดต เนื่องจากโควตาระบบไฟล์ สแนปช็อต และวอลุ่มเครือข่ายอาจเปลี่ยนแปลงหลังการตรวจสอบ การติดตั้งจริงโดยตัวจัดการแพ็กเกจและการตรวจสอบหลังการติดตั้งยังคงเป็นผลชี้ขาด
ตัวอัปเดตอัตโนมัติ
ปิดใช้งานตามค่าเริ่มต้น เปิดใช้งานใน ~/.openclaw/openclaw.json:
{ update: { channel: "stable", auto: { enabled: true, stableDelayHours: 6, stableJitterHours: 12, betaCheckIntervalHours: 1, }, },}| ช่องทาง | ลักษณะการทำงาน |
|---|---|
stable |
รอ stableDelayHours (ค่าเริ่มต้น: 6) จากนั้นนำไปใช้โดยมีค่าความคลาดเคลื่อนแบบกำหนดได้แน่นอนตลอดช่วง stableJitterHours (ค่าเริ่มต้น: 12) เพื่อกระจายการทยอยเผยแพร่ |
extended-stable |
ตรวจสอบคำแนะนำการอัปเดตแบบอ่านอย่างเดียวเมื่อเริ่มต้นและทุก 24 ชั่วโมงเมื่อเปิดใช้ checkOnStart โดยจะไม่นำไปใช้โดยอัตโนมัติ |
beta |
ตรวจสอบทุก betaCheckIntervalHours (ค่าเริ่มต้น: 1) และนำไปใช้ทันที |
dev |
ไม่มีการนำไปใช้โดยอัตโนมัติ ให้ใช้ openclaw update ด้วยตนเอง |
Gateway จะบันทึกคำแนะนำการอัปเดตเมื่อเริ่มต้นด้วย (ปิดใช้งานด้วย
update.checkOnStart: false) การเลือก extended-stable ที่บันทึกไว้จะใช้
เส้นทางคำแนะนำแบบอ่านอย่างเดียวนี้และช่วงเวลาคำแนะนำเดิม 24 ชั่วโมง แต่จะไม่เรียกใช้
การติดตั้งอัตโนมัติ การส่งต่องาน การรีสตาร์ต การหน่วงเวลา/ค่าความคลาดเคลื่อนของ stable หรือการสำรวจ beta
สำหรับการดาวน์เกรดหรือการกู้คืนจากเหตุขัดข้อง ให้ตั้งค่า OPENCLAW_NO_AUTO_UPDATE=1 ในสภาพแวดล้อม Gateway เพื่อบล็อกการนำไปใช้อัตโนมัติ แม้จะกำหนดค่า update.auto.enabled ไว้ก็ตาม คำแนะนำการอัปเดตเมื่อเริ่มต้นยังคงทำงานได้ เว้นแต่จะปิดใช้ update.checkOnStart ด้วย
การอัปเดตตัวจัดการแพ็กเกจที่ร้องขอผ่านระนาบควบคุม Gateway ที่ทำงานอยู่
(update.run) จะไม่แทนที่โครงสร้างแพ็กเกจภายในโปรเซส Gateway
ที่กำลังทำงาน บนการติดตั้งบริการที่มีการจัดการ Gateway จะเริ่มการส่งต่องานแบบแยกออก
จากนั้นออก และปล่อยให้เส้นทาง CLI openclaw update --yes --json ตามปกติหยุด
บริการ แทนที่แพ็กเกจ รีเฟรชข้อมูลเมตาของบริการ รีสตาร์ต ตรวจสอบ
เวอร์ชันและการเข้าถึง Gateway และกู้คืน LaunchAgent บน macOS
ที่ติดตั้งแต่ไม่ได้โหลดเมื่อทำได้ หาก Gateway ไม่สามารถส่งต่องานดังกล่าวได้อย่างปลอดภัย
update.run จะรายงานคำสั่งเชลล์ที่ปลอดภัยแทนการเรียกใช้ตัวจัดการ
แพ็กเกจภายในโปรเซส
การ์ดอัปเดตในแถบด้านข้างของ Control UI จะแสดง อัปเดต Gateway เมื่อการดำเนินการดังกล่าวจะเริ่มโฟลว์
update.run นี้โดยตรง ซึ่งครอบคลุม Control UI ที่โฮสต์ในเบราว์เซอร์, Gateway
ระยะไกล และ Gateway ภายในเครื่องที่จัดการด้วยตนเอง
ในแอป macOS ที่มีลายเซ็น Gateway ภายในเครื่องที่แอปเป็นผู้ดูแลจะเปลี่ยนการ์ดดังกล่าวเป็น
อัปเดตแอป Mac + Gateway โดย Sparkle จะอัปเดตแอปก่อน หลังจากเปิดแอปอีกครั้ง
แอปจะเรียกใช้ openclaw update --tag <app-version> --json, เริ่ม Gateway ใหม่
และตรวจสอบสถานะการทำงานในหน้าต่างความคืบหน้าแบบการตั้งค่า หน้าต่างนี้จะปรากฏเฉพาะ
เมื่อ Gateway ที่จัดการอยู่นั้นต้องได้รับการอัปเดต ซ่อมแซม หรือติดตั้ง ส่วนการอัปเดตเฉพาะแอป
จะเปิดกลับเข้าสู่แอปโดยตรง รายละเอียดข้อผิดพลาดจะยังคงแสดงพร้อมการดำเนินการ Retry, คู่มือการอัปเดต และ
Discord แอปจะไม่ใช้เส้นทางที่ประสานงานนี้
กับ Gateway ระยะไกลหรือ Gateway ที่จัดการจากภายนอก จะไม่ดาวน์เกรด Gateway
ที่ใหม่กว่า และจะไม่แทนที่การตรึงช่องทาง extended-stable
เมื่ออัปเดตสำเร็จ แอปจะจัดคิวเหตุการณ์ต้อนรับแบบครั้งเดียวสำหรับเซสชันโดยตรงระดับบนสุด ล่าสุดที่มีการโต้ตอบจริงกับผู้ใช้/ช่องทาง การทำงานของ Cron, Heartbeat และการอัปเดตเซสชันเบื้องหลังเท่านั้นจะไม่เปลี่ยนการเลือกดังกล่าว ใน โหมดระยะไกล แอปจะอัปเดตเฉพาะรันไทม์ Node ของ Mac ภายในเครื่อง และส่งเหตุการณ์ เฉพาะเมื่อ Gateway ระยะไกลที่เชื่อมต่อมีเวอร์ชันใหม่อย่างน้อยเท่ากับแอป
หลังการอัปเดต
เรียกใช้ doctor
openclaw doctorย้ายการกำหนดค่า ตรวจสอบนโยบาย DM และตรวจสอบสถานะการทำงานของ Gateway รายละเอียด: Doctor
เริ่ม Gateway ใหม่
openclaw gateway restartตรวจสอบ
openclaw healthการย้อนกลับ
การย้อนกลับมีสองระดับ:
- ติดตั้งโค้ด OpenClaw เวอร์ชันเก่าอีกครั้งโดยคงสถานะปัจจุบันไว้
- กู้คืนสถานะก่อนการอัปเดตเฉพาะเมื่อโค้ดเวอร์ชันเก่าไม่สามารถใช้การกำหนดค่า หรือฐานข้อมูลที่ย้ายแล้วได้
เริ่มจากการย้อนกลับเฉพาะโค้ด การกู้คืนสถานะจะละทิ้งการเปลี่ยนแปลงที่เกิดขึ้นหลังจาก การสำรองข้อมูล
ก่อนอัปเดต: สร้างข้อมูลสำรองที่ผ่านการตรวจสอบแล้ว
openclaw update จะเก็บสำเนาการกำหนดค่าก่อนอัปเดตโดยอัตโนมัติ แต่ไม่ได้
สร้างจุดกู้คืนสถานะทั้งหมด ก่อนการอัปเดตครั้งสำคัญ ให้สร้างจุดกู้คืน
อย่างชัดเจน:
mkdir -p ~/Backups/openclawopenclaw backup create --output ~/Backups/openclaw --verifyไฟล์กำกับของไฟล์เก็บถาวรจะบันทึกเวอร์ชัน OpenClaw และพาธต้นทางที่รวมอยู่ ในการสำรองข้อมูล ไฟล์เก็บถาวรอาจมีข้อมูลประจำตัว โปรไฟล์การยืนยันตัวตน และสถานะ ช่องทาง ดังนั้นให้จัดเก็บโดยใช้สิทธิ์เฉพาะเจ้าของและมีการป้องกันระดับเดียวกับ ไดเรกทอรีสถานะที่ใช้งานอยู่ ดูไฟล์ที่รวมและไฟล์ที่ตั้งใจละเว้นได้ที่ การสำรองข้อมูล
หากต้องการจุดกู้คืนแบบตรงกันทุกไบต์ซึ่งรวมอาร์ติแฟกต์ชั่วคราวที่ถูกละเว้นจาก ไฟล์เก็บถาวรแบบพกพา ให้หยุด Gateway แล้วใช้สแนปช็อตของระบบไฟล์ โวลุ่ม หรือ VM ที่แพลตฟอร์มของคุณมีให้
ย้อนกลับการติดตั้งแพ็กเกจ
แสดงรายการเวอร์ชันที่เผยแพร่แล้ว จากนั้นดูตัวอย่างและติดตั้งเวอร์ชันที่ทราบว่าใช้งานได้ดี:
npm view openclaw versions --jsonopenclaw update --tag <known-good-version> --dry-runopenclaw update --tag <known-good-version>ควรใช้ openclaw update --tag แทนการติดตั้งโดยตรงผ่านตัวจัดการแพ็กเกจ เนื่องจากคำสั่งนี้
จะตรวจพบการดาวน์เกรด ขอการยืนยัน เรียกใช้การปรับ Plugin ที่จัดการอยู่ให้สอดคล้องกัน
และตรวจสอบความเข้ากันได้กับเป้าหมายที่ติดตั้ง รีเฟรชข้อมูลเมตาของบริการ
เริ่ม Gateway ใหม่ และตรวจสอบเวอร์ชันที่กำลังทำงาน หากช่องทางที่จัดเก็บไว้คือ
extended-stable ให้ใช้
--channel stable --tag <known-good-version> เนื่องจากไม่สามารถใช้แท็กเฉพาะกิจแบบเจาะจง
ร่วมกับตัวเลือก extended-stable ได้
การอัปเดตแพ็กเกจจะจัดเตรียมและตรวจสอบแพ็กเกจเป้าหมายก่อนเปิดใช้งาน หากการ สลับระบบไฟล์หรือการแทนที่ชิมคำสั่งล้มเหลว OpenClaw จะกู้คืนแพ็กเกจเดิม โดยอัตโนมัติ หลังจากสลับสำเร็จ หาก Gateway ไม่ผ่านการตรวจสอบสถานะในภายหลัง ระบบจะรายงานเวอร์ชันก่อนหน้าและคำแนะนำการย้อนกลับด้วยตนเอง แทนที่จะ แทนที่แพ็กเกจอีกครั้งโดยอัตโนมัติ
หากไม่สามารถใช้เส้นทางการอัปเดตผ่าน CLI ได้ ให้ใช้ตัวจัดการแพ็กเกจและขอบเขต การติดตั้งเดียวกับที่ดูแล Gateway ปัจจุบัน:
openclaw gateway stopnpm i -g openclaw@<known-good-version>openclaw gateway install --forceopenclaw gateway restartแทนที่ npm ด้วย pnpm หรือ bun เมื่อตัวจัดการนั้นเป็นผู้ดูแลการติดตั้ง ระหว่าง
การกู้คืนจากเหตุขัดข้อง ให้ป้องกันไม่ให้ตัวอัปเดตอัตโนมัติที่เปิดใช้งานอยู่ใช้
รุ่นที่ใหม่กว่าทันที โดยตั้งค่า OPENCLAW_NO_AUTO_UPDATE=1 ในสภาพแวดล้อมของ Gateway
ย้อนกลับซอร์สเช็กเอาต์
ใช้เช็กเอาต์ที่สะอาดและเลือกแท็กหรือคอมมิตที่ทราบว่าใช้งานได้ดี:
git fetch --all --tagsgit checkout --detach <known-good-tag-or-commit>pnpm install && pnpm buildopenclaw gateway restartหากต้องการกลับไปยังเวอร์ชันล่าสุด: git checkout main && git pull
ตัวอัปเดตจะนำ git checkout กลับไปยังสาขาและ SHA ก่อนหน้าโดยอัตโนมัติ เมื่อการติดตั้งการขึ้นต่อกัน การบิลด์ การบิลด์ UI หรือ doctor ล้มเหลวหลังจากเริ่ม การอัปเดต git แล้วยังคงต้องเช็กเอาต์ด้วยตนเองเมื่อจงใจเลือก คอมมิตที่เก่ากว่า
การดาวน์เกรดข้ามการย้ายเซสชันไปยัง SQLite
ก่อนเริ่ม OpenClaw รุ่นเก่าที่ใช้ไฟล์ ให้ใช้ CLI ปัจจุบันเพื่อ กู้คืนอาร์ติแฟกต์บทสนทนาเดิมที่เก็บถาวรไว้:
openclaw gateway stopopenclaw doctor --session-sqlite restore --session-sqlite-all-agentsคำสั่งนี้จะไม่ลบข้อมูล SQLite เซสชันที่สร้างขึ้นหลังจากการย้ายไปยัง SQLite จะมีอยู่เฉพาะใน SQLite และจะไม่ปรากฏในรันไทม์รุ่นเก่า ดู การดาวน์เกรดหลังการย้ายเซสชันไปยัง SQLite
กู้คืนสถานะเฉพาะเมื่อจำเป็น
หากโค้ดเวอร์ชันเก่าไม่สามารถอ่านการกำหนดค่าหรือสคีมาฐานข้อมูลที่ใหม่กว่าได้ ให้หยุด Gateway และกู้คืนสแนปช็อตระบบไฟล์ โวลุ่ม หรือ VM ก่อนการอัปเดตที่ผ่านการตรวจสอบแล้ว เก็บรักษาสถานะปัจจุบันแยกต่างหากก่อนกู้คืน เนื่องจากการดำเนินการนี้จะลบ การเปลี่ยนแปลงที่เกิดขึ้นหลังสแนปช็อต
ไฟล์เก็บถาวร openclaw backup create แบบกว้างรองรับการสร้างและการตรวจสอบ แต่
ไม่รองรับการเปิดใช้งานไฟล์เก็บถาวรทั้งชุดแทนที่ของเดิม ให้แตกไฟล์เก็บถาวรแบบกว้างลงในไดเรกทอรี
จัดเตรียม และใช้การแมปจากต้นทางไปยังไฟล์เก็บถาวรใน manifest.json สำหรับการกู้คืน
แบบออฟไลน์ ในทำนองเดียวกัน openclaw backup sqlite restore จะเขียนฐานข้อมูลที่ผ่านการตรวจสอบแล้ว
ไปยังเป้าหมายใหม่ ส่วนการเปิดใช้งานเป้าหมายนั้นยังคงเป็นขั้นตอนแบบออฟไลน์ที่ผู้ปฏิบัติงาน
ต้องดำเนินการอย่างชัดเจน
ตรวจสอบการย้อนกลับ
openclaw --versionopenclaw healthopenclaw plugins list --jsonopenclaw gateway status --deep --jsonopenclaw doctor --lint --jsonหากติดขัด
- เรียกใช้
openclaw doctorอีกครั้งและอ่านผลลัพธ์อย่างละเอียด - สำหรับ
openclaw update --channel devในซอร์สเช็กเอาต์ ตัวอัปเดตจะเริ่มต้นระบบpnpmโดยอัตโนมัติเมื่อจำเป็น หากพบข้อผิดพลาดในการเริ่มต้นระบบ pnpm/corepack ให้ติดตั้งpnpmด้วยตนเอง (หรือเปิดใช้งานcorepackอีกครั้ง) แล้วเรียกใช้การอัปเดตอีกครั้ง - ตรวจสอบ: การแก้ไขปัญหา
- สอบถามใน Discord: https://discord.gg/clawd
ที่เกี่ยวข้อง
- ภาพรวมการติดตั้ง: วิธีการติดตั้งทั้งหมด
- Doctor: การตรวจสอบสถานะหลังการอัปเดต
- การย้ายระบบ: คู่มือการย้ายเวอร์ชันหลัก