Release and CI
릴리스 성능 점검
이 페이지는 2026년 5월 OpenClaw의 성능, 패키지 크기, 의존성 및 shrinkwrap 정리 작업을 뒷받침하는 근거를 담고 있습니다. 공개 블로그 게시물의 기술적 보충 자료입니다.
여기에는 두 가지 감사 결과가 통합되어 있습니다.
- 릴리스 성능 점검:
v2026.5.28부터 안정 버전v2026.4.23까지의 GitHub Releases를 대상으로OpenClaw Performance워크플로,profile=smoke, 모의 공급자 경로를 사용했습니다. 대부분의 태그 행은 단일 샘플이며,v2026.5.27및v2026.5.28행에는 최신 3회 반복 릴리스 브랜치 아티팩트를 사용했습니다. - 이전 4월 맥락:
v2026.4.1부터v2026.5.2까지 공개된clawgrit-reports모의 공급자 기준선을 사용했으며, 문제가 있었던 4월 말 릴리스를 공개 성능 기준선으로 취급하지 않기 위한 용도로만 활용했습니다. - 설치 용량 점검: 임시 패키지에서 새로운
npm install --ignore-scripts설치를 수행하고, 크기는du -sk node_modules로, 패키지 인스턴스 수는node_modules순회로 측정했습니다. - npm 패키지 크기 점검: 공개된 릴리스에 대해
npm pack openclaw@<version> --dry-run --json을 실행하여 압축된 tarball 크기, 압축 해제 크기 및 파일 수를 기록했습니다.
스냅샷
성능 측정 범위: 요청된 릴리스 77개, 아티팩트가 뒷받침하는 지점 74개, 사용할 수 없는 CI 실행 3개입니다. 측정된 최신 안정 버전 지점은 v2026.5.28입니다.
콜드 턴 5.1배 단축
v2026.4.14: 9.8초v2026.5.28: 1.9초
17.9MB tarball
최신 안정 버전 패키지이며, 3월 패키지 크기 최고점인 43.3MB보다 줄었습니다.
새 설치 시 361.7MiB
2026.5.22의 shrinkwrap 도입 최고점보다 중첩된 OpenClaw 의존성 트리를 크게 줄였지만, 로컬 설치 감사에서는 여전히 더 작은 259.7MiB의 중첩 트리가 남아 있습니다.
설치된 패키지 300개
스크립트를 비활성화한 새 설치에서 고유한 패키지 이름/버전 루트로 측정했으며, 이전 안정 버전보다 루트가 71개 적습니다.
5.28에서 변경된 사항
v2026.5.27과 v2026.5.28 사이의 정리 작업은 기능 자체를 제거하는 대신 기본 설치 그래프를 줄였습니다.
고유한 패키지 이름/버전 루트는 371개에서 300개로 줄었습니다. 패키지 인스턴스는 372개에서 301개로 줄었습니다.
동일한 로컬 설치 감사에서 중첩된 openclaw/node_modules는 656.1MiB에서 259.7MiB로 줄었습니다.
모든 플랫폼용 @napi-rs/canvas 네이티브 패키지 의존성 집합이 더 이상 기본 설치에 포함되지 않습니다.
기본 패키지가 적다는 것은 기본적으로 신뢰해야 하는 tarball, 유지관리자, 네이티브 바이너리, 설치 시 동작 및 전이적 업데이트 경로가 적다는 의미입니다.
주요 수치
문제가 있었던 4월 말 행을 공개 성능 기준선으로 사용하지 마십시오. v2026.4.23과 v2026.4.29는 회귀 근거로 유용하지만, 14x 수준의 큰 차이는 대부분 문제가 있었던 릴리스 계열에서 회복된 정도를 나타냅니다.
블로그 서술에는 이전 4월 공개 기준선을 규모 비교에 사용하십시오. 기준선은 공개된 clawgrit-reports 모의 공급자 실행의 v2026.4.14입니다(3회 반복. 해당 실행은 진단 타임라인이 생성되지 않았다는 이유로만 실패했으므로 콜드, 웜 및 RSS 중앙값은 대략적인 규모를 파악하는 데 여전히 유용합니다). 이는 릴리스 게이트 통계가 아니라 서술을 위한 맥락으로 간주하십시오.
| 지표 | 이전 4월 기준선 | v2026.5.28 |
변화량 |
|---|---|---|---|
| 콜드 에이전트 턴 | 9,819ms | 1,908ms | 80.6% 감소, 5.1배 단축 |
| 웜 에이전트 턴 | 7,458ms | 1,870ms | 74.9% 감소, 4.0배 단축 |
| 에이전트 최대 RSS | 686.2MB | 581.0MB | 15.3% 감소 |
5월 점검 내에서 최신 릴리스 브랜치 행은 v2026.5.2보다 크게 개선되었습니다.
| 지표 | v2026.5.2 |
v2026.5.28 |
변화량 |
|---|---|---|---|
| 콜드 에이전트 턴 | 3,897ms | 1,908ms | 51.0% 감소 |
| 웜 에이전트 턴 | 3,610ms | 1,870ms | 48.2% 감소 |
| 에이전트 최대 RSS | 613.7MB | 581.0MB | 5.3% 감소 |
이전 안정 버전과 비교하면 다음과 같습니다.
| 지표 | v2026.5.27 |
v2026.5.28 |
변화량 |
|---|---|---|---|
| 콜드 에이전트 턴 | 2,231ms | 1,908ms | 14.5% 감소 |
| 웜 에이전트 턴 | 2,226ms | 1,870ms | 16.0% 감소 |
| 에이전트 최대 RSS | 649.0MB | 581.0MB | 10.5% 감소 |
설치 용량
| 지표 | 기준선 | v2026.5.28 |
변화량 |
|---|---|---|---|
2026.5.22 최고점 대비 설치 크기 |
1,020.6MB | 361.7MiB | 64.6% 감소 |
최신 릴리스 2026.5.27 대비 설치 크기 |
767.1MiB | 361.7MiB | 52.8% 감소 |
월간 최고점 2026.2.26 대비 의존성 수 |
645 | 300 | 53.5% 감소 |
최신 릴리스 2026.5.27 대비 의존성 수 |
371 | 300 | 19.1% 감소 |
2026.5.22 대비 중첩된 openclaw/node_modules |
911.8MB | 259.7MiB | 71.5% 감소 |
2026.5.27 대비 중첩된 openclaw/node_modules |
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 | 이전 안정 버전 패키지 |
2026.5.28 |
17.9MB | 81.0MB | 9,082 | 최신 안정 버전 패키지 |
2026.5.12는 변경 로그에서 확인할 수 있는 Plugin 추출 이정표입니다. Amazon Bedrock, Bedrock Mantle, Slack, OpenShell sandbox, Anthropic Vertex, Matrix 및 WhatsApp이 핵심 의존성 경로에서 분리되어, 해당 의존성 집합은 모든 핵심 설치가 아니라 그 Plugin들과 함께 설치됩니다.
Kova 에이전트 턴 요약
4월 안정 버전 계열에는 서로 다른 두 가지 양상이 있습니다. 4월 초는 느렸지만 일반적인 범위였습니다. 4월 말에는 회귀가 급격히 심화되었습니다. v2026.5.2부터 모의 공급자 경로가 처음으로 3~5초 범위로 내려가고 제공된 점검에서 일관되게 통과하기 시작합니다.
이전에 공개된 맥락:
| 릴리스 | Kova | 콜드 턴 | 웜 턴 | 에이전트 최대 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 |
제공된 점검:
| 릴리스 | Kova | 콜드 턴 | 웜 턴 | 에이전트 최대 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 |
소스 프로브
이전 참조 17개는 해당 소스 트리에 필요한 프로브 진입점이 아직 없었으므로 소스 프로브를 건너뛰었습니다. 이러한 참조에도 에이전트 턴 지표는 존재합니다.
대표적인 소스 프로브 지점:
| 릴리스 | 기본 readyz p50 |
Plugin 50개 readyz p50 |
CLI 상태 p50 | Plugin 최대 RSS |
|---|---|---|---|---|
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 |
에이전트 턴 경로가 여전히 통과했지만, v2026.5.22의 CLI 상태 급증은 이 표에서 확인할 수 있습니다. 특정 CLI 또는 Gateway 회귀를 조사할 때는 소스 프로브를 유지하십시오.
설치 용량 감사
의존성 샘플에는 월별 안정 버전 하나씩과 2026.5.22 shrinkwrap 도입 이벤트 및 최신 2026.5.28 릴리스를 사용합니다.
| 시점 | 설치된 의존성 | 신규 설치 | OpenClaw 패키지 | 중첩된 openclaw/node_modules |
루트 shrinkwrap | Canvas 설치 동작 |
|---|---|---|---|---|---|---|
1월 2026.1.30 |
605 | 438.4MB | 45.8MB | 2.4MB | 아니요 | 최상위 래퍼 + darwin-arm64 |
2월 2026.2.26 |
645 | 575.7MB | 110.1MB | 3.5MB | 아니요 | 최상위 래퍼 + darwin-arm64 |
3월 2026.3.31 |
438 | 584.1MB | 234.8MB | 0MB | 아니요 | 최상위 래퍼 + darwin-arm64 |
4월 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개 모두 |
5월 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 경계
2026.5.20은 루트 shrinkwrap과 대규모 중첩 OpenClaw 의존성 트리 없이
출시되었습니다. 2026.5.22에서는 루트 shrinkwrap이 도입되었으며 중첩된
openclaw/node_modules 아래에 911.8MB가 설치되었습니다. 2026.5.28은
shrinkwrap을 유지하며 중첩된 openclaw/node_modules 아래에 여전히
259.7MiB를 설치하지만, 로컬 신규 설치 감사에서는 더 이상
@napi-rs/canvas 패키지를 설치하지 않습니다.
게시된 tarball 검사를 통해 이 경계를 확인할 수 있습니다.
| 버전 | 안정 버전으로 게시됨? | 루트 npm-shrinkwrap.json |
참고 |
|---|---|---|---|
2026.5.20 |
예 | 아니요 | shrinkwrap 이전의 마지막 안정 릴리스 |
2026.5.21 |
아니요 | 해당 없음 | 안정 npm 릴리스 없음 |
2026.5.22 |
예 | 예 | shrinkwrap 도입 |
2026.5.23 |
아니요 | 해당 없음 | 안정 npm 릴리스 없음 |
2026.5.24 |
아니요 | 해당 없음 | 안정 npm 릴리스 없음 |
2026.5.25 |
아니요 | 해당 없음 | 안정 npm 릴리스 없음 |
2026.5.26 |
예 | 예 | 중첩된 의존성 트리가 여전히 존재함 |
2026.5.27 |
예 | 예 | 중첩된 의존성 트리가 여전히 존재함 |
2026.5.28 |
예 | 예 | 중첩된 의존성 트리가 훨씬 작아짐 |
중요한 차이점은 shrinkwrap 자체가 문제는 아니라는 것입니다.
v2026.5.28에도 루트 shrinkwrap이 포함되어 출시됩니다. 문제는 npm이
대규모 중첩 OpenClaw 의존성 트리와 12개의 모든 @napi-rs/canvas 플랫폼
패키지를 실제로 배치하게 만든 패키지 구조였습니다. v2026.5.28에서는
중첩 트리가 더 작아졌으며, 로컬 감사에서 더 이상 Canvas 플랫폼 패키지가
대량으로 설치되지 않습니다.
shrinkwrap에 대한 일반적인 설명과 유지관리자 수준의 패키지 검사에 관해서는 npm shrinkwrap을 참조하세요.
공급망 관점의 해석
의존성 수는 설치 크기 지표일 뿐만 아니라 운영 보안 지표이기도 합니다. 각 패키지는 운영자가 신뢰해야 하는 유지관리자, tarball, 전이적 업데이트, 선택적 네이티브 바이너리, 설치 시 동작의 범위를 넓힙니다.
정리 방향은 다음과 같습니다.
- 무겁고 선택적인 기능은 기본 코어 설치 외부에 유지
- Plugin 패키지가 자체 런타임 의존성 그래프를 소유하도록 구성
- Gateway 시작 중 런타임 패키지 관리자 복구 방지
- 모든 플랫폼의 네이티브 패키지가 실제로 설치되지 않도록 하면서 결정론적 설치 유지
- 패키지 승인 및 측정 경로에서 설치 스크립트 비활성화 유지
- 게시 전에 중첩된 의존성 트리와 선택적 네이티브 의존성의 폭증 감지
관련 문서: