Maintenance

กำลังอัปเดต

อัปเดต OpenClaw ให้เป็นเวอร์ชันล่าสุดอยู่เสมอ

สำหรับการแทนที่อิมเมจ Docker, Podman และ Kubernetes โปรดดู การอัปเกรดอิมเมจคอนเทนเนอร์ Gateway จะทำงานอัปเกรดที่ปลอดภัยต่อการเริ่มต้นก่อนเข้าสู่สถานะพร้อมใช้งาน และจะออกหากสถานะที่เมานต์ไว้ ต้องได้รับการซ่อมแซมด้วยตนเอง

แนะนำ: openclaw update

ตรวจหาประเภทการติดตั้ง (npm, pnpm, Bun หรือ git) ดึงเวอร์ชันล่าสุด เรียกใช้ openclaw doctor และรีสตาร์ต Gateway

bash
openclaw update

สลับช่องทางหรือระบุเวอร์ชันเฉพาะ:

bash
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 ใช้เท่านั้น

bash
# การติดตั้งแพ็กเกจ npm -> เช็กเอาต์ git ที่แก้ไขได้openclaw update --channel dev # เช็กเอาต์ git -> การติดตั้งแพ็กเกจ npmopenclaw update --channel stable

แสดงตัวอย่างการสลับโหมดการติดตั้งก่อน:

bash
openclaw update --channel dev --dry-runopenclaw update --channel stable --dry-run

dev จะตรวจสอบให้มีเช็กเอาต์ git บิลด์เช็กเอาต์นั้น และติดตั้ง CLI ส่วนกลางจาก เช็กเอาต์ดังกล่าว ช่องทาง stable, extended-stable และ beta ใช้การติดตั้งแบบแพ็กเกจ ระบบจะปฏิเสธ extended-stable บนเช็กเอาต์ git โดยไม่แก้ไขหรือ แปลงเช็กเอาต์นั้น หากติดตั้ง Gateway ไว้แล้ว openclaw update จะรีเฟรช ข้อมูลเมตาของบริการและรีสตาร์ตบริการ เว้นแต่จะส่ง --no-restart

สำหรับการติดตั้งแบบแพ็กเกจที่มีบริการ Gateway ซึ่งมีการจัดการ openclaw update จะกำหนดเป้าหมาย ไปยังรูทแพ็กเกจที่บริการนั้นใช้ หากคำสั่ง openclaw ในเชลล์มาจาก การติดตั้งอื่น ตัวอัปเดตจะแสดงรูททั้งสองและพาธ Node ของบริการ ที่มีการจัดการ และตรวจสอบเวอร์ชัน Node นั้นกับข้อกำหนด engines.node ของรุ่นเป้าหมายก่อนแทนที่แพ็กเกจ

ทางเลือก: เรียกใช้ตัวติดตั้งอีกครั้ง

bash
curl -fsSL https://openclaw.ai/install.sh | bash

เพิ่ม --no-onboard เพื่อข้ามการเริ่มต้นใช้งาน หากต้องการบังคับประเภทการติดตั้งเฉพาะ ให้ส่ง --install-method git --no-onboard หรือ --install-method npm --no-onboard

หาก openclaw update ล้มเหลวหลังจากขั้นตอนติดตั้งแพ็กเกจ npm ให้เรียกใช้ ตัวติดตั้งอีกครั้งแทน ตัวติดตั้งจะไม่เรียกตัวอัปเดต แต่จะเรียกการติดตั้งแพ็กเกจ ส่วนกลางโดยตรง และสามารถกู้คืนการติดตั้ง npm ที่อัปเดตเพียงบางส่วนได้

bash
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method npm

ตรึงการกู้คืนไว้กับเวอร์ชันหรือ dist-tag ที่ระบุด้วย --version:

bash
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method npm --version <version-or-dist-tag>

ทางเลือก: ใช้ npm, pnpm หรือ bun ด้วยตนเอง

bash
npm i -g openclaw@latest

ควรใช้ openclaw update สำหรับการติดตั้งที่มีการควบคุมดูแล เนื่องจากสามารถประสาน การสลับแพ็กเกจกับบริการ Gateway ที่กำลังทำงานได้ หากอัปเดตด้วยตนเองบนการติดตั้ง ที่มีการควบคุมดูแล ให้หยุด Gateway ที่มีการจัดการก่อน ตัวจัดการแพ็กเกจจะแทนที่ไฟล์ ในตำแหน่งเดิม และ Gateway ที่กำลังทำงานอาจพยายามโหลดไฟล์คอร์หรือ Plugin ระหว่างการสลับได้ รีสตาร์ต Gateway หลังจากตัวจัดการแพ็กเกจทำงานเสร็จ เพื่อให้โหลด การติดตั้งใหม่

สำหรับการติดตั้งส่วนกลางระดับระบบ Linux ที่รูทเป็นเจ้าของ หาก openclaw update ล้มเหลวด้วย EACCES ให้กู้คืนด้วย npm ของระบบ โดยหยุด Gateway ไว้ระหว่าง การแทนที่ด้วยตนเอง ใช้แฟล็กโปรไฟล์/สภาพแวดล้อมเดียวกับที่ใช้ตามปกติสำหรับ Gateway นั้น แทนที่ /usr/bin/npm ด้วย npm ของระบบที่เป็นเจ้าของ คำนำหน้าส่วนกลางซึ่งรูทเป็นเจ้าของบนโฮสต์:

bash
openclaw gateway stopsudo /usr/bin/npm i -g openclaw@latestopenclaw gateway install --forceopenclaw gateway restart

จากนั้นตรวจสอบ:

bash
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 อย่างชัดเจนหมายถึง "ติดตั้งรุ่นที่เลือกทันที"

bash
pnpm add -g openclaw@latest

หาก pnpm 11 ติดตั้ง OpenClaw 2026.7.1 ให้เรียกใช้คำสั่งด้วยตนเองนั้นหนึ่งครั้ง รุ่นดังกล่าวออกก่อนเลย์เอาต์แพ็กเกจส่วนกลางแบบแยกของ pnpm 11 ดังนั้นตัวอัปเดต อาจเข้าใจผิดว่าการติดตั้ง npm อื่นเป็น CLI ที่กำลังทำงาน รุ่นหลังจากนั้นจะคง ความเป็นเจ้าของของ pnpm และติดตามรูทแพ็กเกจทดแทนระหว่างการอัปเดต นอกจากนี้ ยังใช้ไดเรกทอรี bin ส่วนกลางที่ตัวจัดการซึ่งเป็นเจ้าของรายงาน และหยุดก่อน แก้ไขเมื่อคำสั่ง pnpm ที่พร้อมใช้งานรายงานรูทส่วนกลางหรือเวอร์ชันหลักอื่น หรือเมื่อแพ็กเกจที่เรียกใช้งานไม่มีเจ้าของหรือไม่ได้เป็นการติดตั้ง OpenClaw เพียงรายการเดียวที่ทำงานอยู่ในตำแหน่งนั้น

หาก OpenClaw ใช้กลุ่มการติดตั้งส่วนกลางของ pnpm 11 ร่วมกับแพ็กเกจอื่น ตัวอัปเดตอัตโนมัติจะหยุดก่อนเปลี่ยนแปลงกลุ่ม ให้อัปเดตกลุ่มเดิม ที่คั่นด้วยจุลภาคด้วยตนเอง เพื่อให้แพ็กเกจข้างเคียงและนโยบายการบิลด์ยังคง ครบถ้วน

bash
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 สามารถบันทึกการเปลี่ยนแปลงได้:

ini
ReadWritePaths=/var/lib/openclaw /home/openclaw/.openclaw /tmp
การตรวจสอบพื้นที่ดิสก์ล่วงหน้า

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

ตัวอัปเดตอัตโนมัติ

ปิดใช้งานตามค่าเริ่มต้น เปิดใช้งานใน ~/.openclaw/openclaw.json:

json5
{  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

bash
openclaw doctor

ย้ายการกำหนดค่า ตรวจสอบนโยบาย DM และตรวจสอบสถานะการทำงานของ Gateway รายละเอียด: Doctor

เริ่ม Gateway ใหม่

bash
openclaw gateway restart

ตรวจสอบ

bash
openclaw health

การย้อนกลับ

การย้อนกลับมีสองระดับ:

  1. ติดตั้งโค้ด OpenClaw เวอร์ชันเก่าอีกครั้งโดยคงสถานะปัจจุบันไว้
  2. กู้คืนสถานะก่อนการอัปเดตเฉพาะเมื่อโค้ดเวอร์ชันเก่าไม่สามารถใช้การกำหนดค่า หรือฐานข้อมูลที่ย้ายแล้วได้

เริ่มจากการย้อนกลับเฉพาะโค้ด การกู้คืนสถานะจะละทิ้งการเปลี่ยนแปลงที่เกิดขึ้นหลังจาก การสำรองข้อมูล

ก่อนอัปเดต: สร้างข้อมูลสำรองที่ผ่านการตรวจสอบแล้ว

openclaw update จะเก็บสำเนาการกำหนดค่าก่อนอัปเดตโดยอัตโนมัติ แต่ไม่ได้ สร้างจุดกู้คืนสถานะทั้งหมด ก่อนการอัปเดตครั้งสำคัญ ให้สร้างจุดกู้คืน อย่างชัดเจน:

bash
mkdir -p ~/Backups/openclawopenclaw backup create --output ~/Backups/openclaw --verify

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

หากต้องการจุดกู้คืนแบบตรงกันทุกไบต์ซึ่งรวมอาร์ติแฟกต์ชั่วคราวที่ถูกละเว้นจาก ไฟล์เก็บถาวรแบบพกพา ให้หยุด Gateway แล้วใช้สแนปช็อตของระบบไฟล์ โวลุ่ม หรือ VM ที่แพลตฟอร์มของคุณมีให้

ย้อนกลับการติดตั้งแพ็กเกจ

แสดงรายการเวอร์ชันที่เผยแพร่แล้ว จากนั้นดูตัวอย่างและติดตั้งเวอร์ชันที่ทราบว่าใช้งานได้ดี:

bash
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 ปัจจุบัน:

bash
openclaw gateway stopnpm i -g openclaw@<known-good-version>openclaw gateway install --forceopenclaw gateway restart

แทนที่ npm ด้วย pnpm หรือ bun เมื่อตัวจัดการนั้นเป็นผู้ดูแลการติดตั้ง ระหว่าง การกู้คืนจากเหตุขัดข้อง ให้ป้องกันไม่ให้ตัวอัปเดตอัตโนมัติที่เปิดใช้งานอยู่ใช้ รุ่นที่ใหม่กว่าทันที โดยตั้งค่า OPENCLAW_NO_AUTO_UPDATE=1 ในสภาพแวดล้อมของ Gateway

ย้อนกลับซอร์สเช็กเอาต์

ใช้เช็กเอาต์ที่สะอาดและเลือกแท็กหรือคอมมิตที่ทราบว่าใช้งานได้ดี:

bash
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 ปัจจุบันเพื่อ กู้คืนอาร์ติแฟกต์บทสนทนาเดิมที่เก็บถาวรไว้:

bash
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 จะเขียนฐานข้อมูลที่ผ่านการตรวจสอบแล้ว ไปยังเป้าหมายใหม่ ส่วนการเปิดใช้งานเป้าหมายนั้นยังคงเป็นขั้นตอนแบบออฟไลน์ที่ผู้ปฏิบัติงาน ต้องดำเนินการอย่างชัดเจน

ตรวจสอบการย้อนกลับ

bash
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

ที่เกี่ยวข้อง

Was this useful?
On this page

On this page