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 รุ่น beta ก่อน แต่จะเปลี่ยนไปใช้ stable/latest เมื่อไม่มีแท็ก beta หรือเวอร์ชันของแท็กดังกล่าวเก่ากว่ารีลีส stable ล่าสุด ให้ใช้ --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 เปลี่ยนไปใช้รีลีส ค่าเริ่มต้น/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 ที่มี root เป็นเจ้าของ หาก openclaw update ล้มเหลวโดยมี EACCES ให้กู้คืนด้วย npm ของระบบ โดยหยุด Gateway ไว้ตลอด การแทนที่ด้วยตนเอง ใช้แฟล็กโปรไฟล์/สภาพแวดล้อมเดียวกับที่ใช้ตามปกติสำหรับ Gateway นั้น แทนที่ /usr/bin/npm ด้วย npm ของระบบที่เป็นเจ้าของ คำนำหน้าส่วนกลางที่ root เป็นเจ้าของบนโฮสต์:

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 บางแบบจะติดตั้งแพ็กเกจส่วนกลางไว้ในไดเรกทอรีที่ root เป็นเจ้าของ เช่น /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,    },  },}
ช่องทาง ลักษณะการทำงาน
stable ดำเนินการหลังจากการหน่วงเวลาในตัว พร้อมการกระจายเวลาแบบกำหนดซ้ำได้เพื่อทยอยเปิดตัว
extended-stable ตรวจหาคำแนะนำการอัปเดตแบบอ่านอย่างเดียวเมื่อเริ่มต้นและทุก 24 ชั่วโมงเมื่อเปิดใช้ checkOnStart และจะไม่ดำเนินการอัตโนมัติ
beta ตรวจสอบตามช่วงเวลาในตัวและดำเนินการทันที
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 และกู้คืน macOS LaunchAgent ที่ติดตั้งแล้วแต่ยังไม่ได้โหลด เมื่อทำได้ หาก 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 ที่ใหม่กว่า และจะไม่ลบล้างการปักหมุดช่องทาง 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