Release and CI

การกวาดตรวจประสิทธิภาพของรีลีส

หน้านี้บันทึกหลักฐานเบื้องหลังการล้างข้อมูลด้านประสิทธิภาพของ OpenClaw เดือนพฤษภาคม 2026, ขนาดแพ็กเกจ, dependency และ shrinkwrap เป็นคู่มือเชิงเทคนิคประกอบ บทความบล็อกสาธารณะ

มีการรวมการตรวจสอบสองชุดไว้ที่นี่:

  • การกวาดตรวจประสิทธิภาพของรีลีส: GitHub Releases ตั้งแต่ v2026.5.28 ย้อนกลับไปถึง stable v2026.4.23 โดยใช้เวิร์กโฟลว์ OpenClaw Performance, profile=smoke, เลน mock-provider แถวของแท็กส่วนใหญ่เป็นตัวอย่างหนึ่งชุด; แถว v2026.5.27 และ v2026.5.28 ใช้อาร์ติแฟกต์ release-branch แบบ repeat-3 ล่าสุด
  • บริบทช่วงต้นเดือนเมษายน: baseline mock-provider จาก clawgrit-reports ที่เผยแพร่แล้วตั้งแต่ v2026.4.1 ถึง v2026.5.2 ใช้เฉพาะเพื่อหลีกเลี่ยงการถือว่า รีลีสปลายเดือนเมษายนที่เสียเป็น baseline ประสิทธิภาพสาธารณะ
  • การกวาดตรวจพื้นที่ติดตั้ง: การติดตั้งใหม่ด้วย npm install --ignore-scripts ลงในแพ็กเกจชั่วคราว โดยใช้ du -sk node_modules สำหรับขนาด และเดินสำรวจ node_modules เพื่อนับจำนวนอินสแตนซ์แพ็กเกจ
  • การกวาดตรวจขนาดแพ็กเกจ npm: npm pack openclaw@<version> --dry-run --json สำหรับรีลีสที่เผยแพร่แล้ว โดยบันทึกขนาด tarball ที่บีบอัดแล้ว, ขนาดเมื่อแตกไฟล์ และ จำนวนไฟล์

ภาพรวม

ความครอบคลุมด้านประสิทธิภาพ: 77 รีลีสที่ขอ, 74 จุดที่มีอาร์ติแฟกต์รองรับ, และ 3 งาน CI ที่ไม่พร้อมใช้งาน จุดวัด stable ล่าสุด: v2026.5.28

ไทม์ไลน์พื้นที่ติดตั้ง

สิ่งที่เปลี่ยนใน 5.28

การเก็บกวาดระหว่าง v2026.5.27 และ v2026.5.28 ลดกราฟการติดตั้งค่าเริ่มต้น แทนที่จะลบความสามารถต่างๆ ออกไปเอง

ตัวเลขสำคัญ

อย่าใช้แถวที่เสียในช่วงปลายเดือนเมษายนเป็น baseline ประสิทธิภาพสาธารณะ v2026.4.23 และ v2026.4.29 เป็นหลักฐาน regression ที่มีประโยชน์ แต่ส่วนต่างขนาดใหญ่แบบ 14x ส่วนใหญ่อธิบายการฟื้นตัวจากสาย release ที่ไม่ดี

สำหรับ narrative ในบล็อก ให้ใช้ baseline ที่เผยแพร่ก่อนหน้าในเดือนเมษายนเป็นสเกล:

เมตริก baseline ต้นเดือนเมษายน v2026.5.28 ส่วนต่าง
เทิร์นเอเจนต์แบบ cold 9,819ms 1,908ms ต่ำลง 80.6%, เร็วขึ้น 5.1x
เทิร์นเอเจนต์แบบ warm 7,458ms 1,870ms ต่ำลง 74.9%, เร็วขึ้น 4.0x
RSS สูงสุดของเอเจนต์ 686.2MB 581.0MB ต่ำลง 15.3%

baseline ต้นเดือนเมษายนคือ v2026.4.14 จากการรัน mock-provider ของ clawgrit-reports ที่เผยแพร่แล้ว การรันนั้นใช้ repeat 3 และล้มเหลวเฉพาะเพราะ ไม่ได้ปล่อย diagnostic timeline ออกมา ค่ามัธยฐานของ cold, warm และ RSS ยังมีประโยชน์ในฐานะสเกลคร่าวๆ ให้ถือสิ่งนี้เป็นบริบท narrative ไม่ใช่ สถิติสำหรับ release gate

ภายใน sweep เดือนพฤษภาคม แถว release branch ล่าสุดขยับอย่างมีนัยสำคัญจาก v2026.5.2:

เมตริก v2026.5.2 v2026.5.28 ส่วนต่าง
เทิร์นเอเจนต์แบบ cold 3,897ms 1,908ms ต่ำลง 51.0%
เทิร์นเอเจนต์แบบ warm 3,610ms 1,870ms ต่ำลง 48.2%
RSS สูงสุดของเอเจนต์ 613.7MB 581.0MB ต่ำลง 5.3%

เทียบกับ stable release ก่อนหน้า:

เมตริก v2026.5.27 v2026.5.28 ส่วนต่าง
เทิร์นเอเจนต์แบบ cold 2,231ms 1,908ms ต่ำลง 14.5%
เทิร์นเอเจนต์แบบ warm 2,226ms 1,870ms ต่ำลง 16.0%
RSS สูงสุดของเอเจนต์ 649.0MB 581.0MB ต่ำลง 10.5%

ขนาดพื้นที่ติดตั้ง

เมตริก Baseline v2026.5.28 ส่วนต่าง
ขนาดติดตั้งจากจุดสูงสุด 2026.5.22 1,020.6MB 361.7MiB ต่ำลง 64.6%
ขนาดติดตั้งจาก release ล่าสุด 2026.5.27 767.1MiB 361.7MiB ต่ำลง 52.8%
dependencies จากค่าสูงสุดรายเดือน 2026.2.26 645 300 ต่ำลง 53.5%
dependencies จาก release ล่าสุด 2026.5.27 371 300 ต่ำลง 19.1%
openclaw/node_modules ที่ซ้อนอยู่จาก 2026.5.22 911.8MB 259.7MiB ต่ำลง 71.5%
openclaw/node_modules ที่ซ้อนอยู่จาก 2026.5.27 656.1MiB 259.7MiB ต่ำลง 60.4%

ขนาดแพ็กเกจ npm

เวอร์ชัน tarball ที่บีบอัด แพ็กเกจที่แตกไฟล์แล้ว ไฟล์ หมายเหตุ
2026.1.30 12.8MB 33.5MB 4,607 แพ็กเกจช่วงแรกหลังรีแบรนด์
2026.2.26 23.6MB 82.9MB 10,125 การเติบโตของฟีเจอร์
2026.3.31 43.3MB 182.6MB 21,037 จุดสูงสุดของขนาดแพ็กเกจ
2026.4.29 22.9MB 74.6MB 9,309 เห็นการตัดทอนแพ็กเกจชัดเจน
2026.5.12 23.4MB 80.1MB 12,035 การแยก Plugin ภายนอกครั้งใหญ่
2026.5.22 17.2MB 76.9MB 12,386 ตัด docs/assets ออกจากแพ็กเกจ
2026.5.27 17.8MB 79.0MB 12,509 แพ็กเกจ stable ก่อนหน้า
2026.5.28 17.9MB 81.0MB 9,082 แพ็กเกจ stable ล่าสุด

2026.5.12 คือหมุดหมายการแยก Plugin ที่เห็นได้ใน changelog: Amazon Bedrock, Bedrock Mantle, Slack, OpenShell sandbox, Anthropic Vertex, Matrix และ WhatsApp ถูกย้ายออกจากเส้นทาง dependency หลัก เพื่อให้กรวย dependency ของสิ่งเหล่านั้นติดตั้งพร้อมกับ Plugin เหล่านั้น แทนที่จะติดตั้งกับทุกการติดตั้ง core

สรุปเทิร์นเอเจนต์ Kova

สาย stable เดือนเมษายนมีเรื่องราวสองแบบที่ต่างกัน ช่วงต้นเมษายนช้าแต่ยังพอจำแนกได้ ช่วงปลายเมษายนกลายเป็นหน้าผา regression v2026.5.2 คือจุดที่ lane ของ mock-provider ลดลงเข้าสู่ช่วง 3-5 วินาทีเป็นครั้งแรก และเริ่มผ่านอย่างสม่ำเสมอ ใน sweep ที่ให้มา

บริบทที่เผยแพร่ก่อนหน้า:

Release Kova เทิร์น cold เทิร์น warm RSS สูงสุดของเอเจนต์
v2026.4.10 ไม่ผ่าน 11,031ms 7,962ms 679.0MB
v2026.4.12 ไม่ผ่าน 11,965ms 8,289ms 713.5MB
v2026.4.14 ไม่ผ่าน 9,819ms 7,458ms 686.2MB
v2026.4.20 ไม่ผ่าน 22,314ms 18,811ms 810.8MB
v2026.4.22 ไม่ผ่าน 9,630ms 7,459ms 743.0MB

sweep ที่ให้มา:

Release Kova เทิร์น cold เทิร์น warm RSS สูงสุดของเอเจนต์
v2026.4.23 ไม่ผ่าน 47,847ms 8,010ms 1,082.7MB
v2026.4.24 ไม่ผ่าน 48,264ms 25,483ms 996.0MB
v2026.4.25 ไม่ผ่าน 81,080ms 59,172ms 1,113.9MB
v2026.4.26 ไม่ผ่าน 76,771ms 54,941ms 1,140.8MB
v2026.4.27 ไม่ผ่าน 60,902ms 33,699ms 1,156.0MB
v2026.4.29 ไม่ผ่าน 94,031ms 57,334ms 3,613.7MB
v2026.5.2 ผ่าน 3,897ms 3,610ms 613.7MB
v2026.5.7 ผ่าน 3,923ms 3,693ms 654.1MB
v2026.5.12 ผ่าน 7,248ms 6,629ms 834.8MB
v2026.5.18 ผ่าน 3,301ms 2,913ms 630.3MB
v2026.5.20 ผ่าน 3,413ms 2,952ms 643.2MB
v2026.5.22 ผ่าน 4,494ms 4,093ms 654.3MB
v2026.5.26 ผ่าน 2,626ms 2,282ms 660.4MB
v2026.5.27-beta.1 ผ่าน 2,575ms 2,217ms 635.3MB
v2026.5.27 ผ่าน 2,231ms 2,226ms 649.0MB
v2026.5.28 ผ่าน 1,908ms 1,870ms 581.0MB

source probe

source probe ถูกข้ามสำหรับ ref เก่าที่สำเร็จ 17 รายการ เพราะ source tree เหล่านั้น ยังไม่มี entry point ของ probe ที่จำเป็น เมตริกเทิร์นเอเจนต์ยังคงมีอยู่สำหรับ ref เหล่านั้น

จุด source-probe ที่เป็นตัวแทน:

Release Default readyz p50 50 Plugin readyz p50 CLI health p50 RSS สูงสุดของ Plugin
v2026.4.29 2,819ms 2,618ms 1,679ms 389.0MB
v2026.5.2 2,324ms 2,013ms 1,384ms 377.2MB
v2026.5.7 1,649ms 1,540ms 1,175ms 387.6MB
v2026.5.18 1,942ms 1,927ms 607ms 426.5MB
v2026.5.20 1,966ms 1,987ms 621ms 455.0MB
v2026.5.22 2,081ms 1,884ms 5,095ms 444.2MB
v2026.5.26 1,546ms 1,634ms 656ms 400.4MB
v2026.5.27-beta.1 1,462ms 1,548ms 548ms 394.0MB
v2026.5.27 1,491ms 1,571ms 553ms 401.5MB
v2026.5.28 1,457ms 1,474ms 623ms 386.1MB

ค่า spike ด้านสุขภาพของ CLI ใน v2026.5.22 มองเห็นได้ในตารางนี้ แม้ว่า lane agent-turn จะยังผ่านอยู่ก็ตาม ให้เก็บ source probes ไว้เมื่อสืบสวน regression เฉพาะจุดของ CLI หรือ gateway

การตรวจสอบ install footprint

ตัวอย่าง dependency ใช้ stable release หนึ่งรายการต่อเดือน รวมถึงเหตุการณ์ เริ่มนำ shrinkwrap มาใช้ใน 2026.5.22 และ release ล่าสุด 2026.5.28

จุด dependency ที่ติดตั้ง fresh install แพ็กเกจ OpenClaw openclaw/node_modules แบบซ้อน shrinkwrap ระดับรูท พฤติกรรมการติดตั้ง Canvas
ม.ค. 2026.1.30 605 438.4MB 45.8MB 2.4MB ไม่ใช่ wrapper ระดับบนสุด + darwin-arm64
ก.พ. 2026.2.26 645 575.7MB 110.1MB 3.5MB ไม่ใช่ wrapper ระดับบนสุด + darwin-arm64
มี.ค. 2026.3.31 438 584.1MB 234.8MB 0MB ไม่ใช่ wrapper ระดับบนสุด + darwin-arm64
เม.ย. 2026.4.29 392 335.0MB 97.4MB 0MB ไม่ใช่ ไม่ได้ติดตั้งอะไร
2026.5.22 401 1,020.6MB 1,020.4MB 911.8MB ใช่ แบบซ้อน: แพ็กเกจ @napi-rs/canvas ทั้ง 12 รายการ
พ.ค. 2026.5.26 371 767.5MB 767.4MB 656.4MB ใช่ แบบซ้อน: แพ็กเกจ @napi-rs/canvas ทั้ง 12 รายการ
2026.5.27 371 767.1MiB 766.9MiB 656.1MiB ใช่ แบบซ้อน: แพ็กเกจ @napi-rs/canvas ทั้ง 12 รายการ
ล่าสุด 2026.5.28 300 361.7MiB 361.6MiB 259.7MiB ใช่ ไม่ได้ติดตั้งอะไร

ขอบเขตของ shrinkwrap

การตรวจสอบ tarball ที่เผยแพร่ยืนยันขอบเขตดังกล่าว:

เวอร์ชัน เผยแพร่เป็น stable? npm-shrinkwrap.json ระดับรูท หมายเหตุ
2026.5.20 ใช่ ไม่ใช่ stable release สุดท้ายก่อนมี shrinkwrap
2026.5.21 ไม่ใช่ n/a ไม่มี stable npm release
2026.5.22 ใช่ ใช่ เริ่มนำ shrinkwrap มาใช้
2026.5.23 ไม่ใช่ n/a ไม่มี stable npm release
2026.5.24 ไม่ใช่ n/a ไม่มี stable npm release
2026.5.25 ไม่ใช่ n/a ไม่มี stable npm release
2026.5.26 ใช่ ใช่ dependency tree แบบซ้อนยังคงมีอยู่
2026.5.27 ใช่ ใช่ dependency tree แบบซ้อนยังคงมีอยู่
2026.5.28 ใช่ ใช่ dependency tree แบบซ้อนเล็กลงมาก

ความแตกต่างสำคัญคือ: ตัว shrinkwrap เองไม่ใช่ปัญหา v2026.5.28 ยังคงส่งมาพร้อม shrinkwrap ระดับรูท ปัญหาคือรูปทรงของแพ็กเกจ ที่ทำให้ npm materialize dependency tree ของ OpenClaw แบบซ้อนขนาดใหญ่ และแพ็กเกจ แพลตฟอร์ม @napi-rs/canvas ทั้ง 12 รายการ tree แบบซ้อนเล็กลงใน v2026.5.28 และ fanout ของแพลตฟอร์ม canvas ไม่ปรากฏในการตรวจสอบในเครื่องอีกต่อไป

สำหรับคำอธิบาย shrinkwrap แบบภาษาทั่วไปและการตรวจสอบแพ็กเกจระดับ maintainer ดู npm shrinkwrap

การตีความด้าน supply-chain

จำนวน dependency เป็น metric ด้านความปลอดภัยเชิงปฏิบัติการ ไม่ใช่แค่ metric ด้านขนาดการติดตั้งเท่านั้น ทุกแพ็กเกจขยายชุดของ maintainer, tarball, transitive update, optional native binary และพฤติกรรมระหว่างการติดตั้งที่ operator ต้องไว้วางใจ

ทิศทางการ cleanup คือ:

  • เก็บ capability ที่หนักและเป็น optional ไว้นอกการติดตั้ง core เริ่มต้น
  • ให้แพ็กเกจ Plugin เป็นเจ้าของ runtime dependency graph ของตัวเอง
  • หลีกเลี่ยงการซ่อมแซม package-manager ระหว่างการเริ่มต้น Gateway
  • รักษาการติดตั้งแบบ deterministic โดยไม่ทำให้เกิดการ materialize แพ็กเกจ native ทุกแพลตฟอร์ม
  • ปิดใช้งาน install script ในเส้นทาง package acceptance และ measurement
  • ตรวจจับ dependency tree แบบซ้อนและการเพิ่มขึ้นอย่างมากของ native optional dependency ก่อนเผยแพร่

เอกสารที่เกี่ยวข้อง:

Was this useful?
On this page

On this page