release architecture security clawhub breaking-changes performance

OpenClaw 3.22: 아키텍처 대수술 — 12개 Breaking Changes, 30+ 보안 강화, 역대 최대 릴리스

OpenClaws.io Team

OpenClaws.io Team

@openclaws

March 22, 2026

15 분 소요

OpenClaw 3.22: 아키텍처 대수술 — 12개 Breaking Changes, 30+ 보안 강화, 역대 최대 릴리스

3.13 이후 9일. 최근 몇 달간 OpenClaw 릴리스 간격 중 가장 길었다. changelog가 나오자 그 이유가 한눈에 들어왔다 — 12개의 Breaking Changes, 30개 이상의 보안 강화, 100개 이상의 안정성 수정, 7개의 신규 모델 프로바이더, 그리고 플러그인 발견·설치 방식의 근본적 전환.

이번은 점진적 업데이트가 아니다. OpenClaw가 레거시 배관을 뜯어내고 기초부터 다시 쌓은 버전이다.

하나씩 풀어보자.

ClawHub: 플러그인 생태계 대이동

3.22의 핵심 변경은 겉보기엔 단순하다. openclaw plugins install 가 npm보다 ClawHub를 먼저 확인하게 됐다.

이 한 문장이 플러그인 경제를 다시 쓴다. ClawHub는 OpenClaw 전용 패키지 레지스트리 — 플러그인 발견, 버전 관리, 신뢰 검증을 위해 설계됐다. npm은 빌려 쓰던 집이었고, ClawHub는 OpenClaw가 처음으로 소유하게 된 집이다.

함께 출시된 것들:

  • 네이티브 install/search/update 흐름: openclaw skills search|install|updateopenclaw plugins install clawhub:, 업데이트 메타데이터 추적 포함
  • Claude/Codex/Cursor 번들 지원: 호환 번들 탐색·설치, 번들 스킬을 OpenClaw 스킬에 매핑, 번들 settings.json 기본값을 임베디드 Pi에 적용
  • Claude 마켓플레이스 레지스트리: plugin@marketplace 설치, 마켓플레이스 목록, 업데이트 지원
  • Plugin SDK 개편: 새로운 공개 서피스는 openclaw/plugin-sdk/* — 기존 모놀리식 openclaw/extension-api는 호환 심 없이 제거. 번들 플러그인은 호스트 측 작업에 주입된 런타임을 사용해야 함
  • Plugin SDK 테스팅 서피스: 플러그인 작성자용 테스트 헬퍼를 위한 공개 openclaw/plugin-sdk/testing 서피스
  • Memory 플러그인 system-prompt 지원: 활성 메모리 플러그인이 자체 system-prompt 섹션을 등록 가능

Plugin SDK 변경은 이후 모든 개선의 구조적 전제다. 모놀리식 루트 대신 좁은 openclaw/plugin-sdk/* 서브패스로 표준화함으로써, 각 플러그인은 더 작고 안정적인 API 계약을 갖게 된다. 테스팅 서피스 덕분에 플러그인 작성자가 프레임워크 내부를 건드리지 않고도 제대로 된 테스트를 작성할 수 있게 됐다.

12개의 Breaking Changes: 기술 부채 일괄 상환

한 릴리스에 12개의 Breaking Changes. 과격해 보인다. 하지만 연결해서 읽으면 하나의 이야기다 — OpenClaw가 pre-1.0 아키텍처로 향하는 마지막 다리들을 불태우고 있다.

플러그인 생태계 (4건)

  1. 1.ClawHub가 npm을 대체하여 기본 플러그인 설치 소스가 됨. npm 폴백은 유지되나, npm-safe 이름에 대해 ClawHub가 우선
  2. 2.Plugin SDK 서피스 변경: openclaw/plugin-sdk/*로 — 기존 openclaw/extension-api는 호환 심 없이 제거
  3. 3.Chrome MCP 확장 릴레이 제거 — 레거시 Chrome 확장 릴레이 경로, 번들 확장 에셋, driver: "extension" 모두 제거. openclaw doctor --fix로 마이그레이션
  4. 4.이미지 생성 표준화 — 기존 nano-banana-pro 문서/예제 제거. agents.defaults.imageGenerationModel 사용

레거시 정리 (3건)

  1. 5.레거시 환경 변수 제거: CLAWDBOT_MOLTBOT_ 호환명을 런타임, 설치기, 테스트 도구 전반에서 제거. OPENCLAW_* 사용
  2. 6.레거시 상태 디렉터리 제거: .moltbot 상태 디렉터리와 moltbot.json 자동 감지/마이그레이션 폴백 제거. ~/.openclaw로 이전하거나 OPENCLAW_STATE_DIR 설정
  3. 7.메시지 발견 어댑터 변경: ChannelMessageActionAdapter.describeMessageTool(...) 필요 — 레거시 listActions, getCapabilities, getToolSchema 메서드 제거

보안 및 샌드박스 (3건)

  1. 8.Exec 환경 샌드박스 확장: JVM 인젝션(MAVEN_OPTS, SBT_OPTS, GRADLE_OPTS, ANT_OPTS), glibc 튜너블 악용(GLIBC_TUNABLES), .NET 의존성 하이재킹(DOTNET_ADDITIONAL_DEPS) 차단
  2. 9.time 래퍼 투명화: allowlist 평가 시 time을 투명 디스패치 래퍼로 처리, 승인된 time ... 명령이 내부 실행 파일에 바인딩
  3. 10.음성 통화 웹훅 강화: body 읽기 전 프로바이더 서명 헤더 누락 거부, 사전 인증 body 예산을 64 KB / 5초로 축소

플랫폼 프로토콜 (2건)

  1. 11.Discord Carbon reconcile: 네이티브 명령 배포가 기본적으로 Carbon reconcile로 전환 — Discord 재시작 시 slash 명령 반복 갱신 해소
  2. 12.Matrix 플러그인 재작성: 공식 matrix-js-sdk 기반 신규 플러그인, 마이그레이션 가이드 제공

12개의 Breaking Changes를 한 버전에 완료. 과격해 보인다. 하지만 돌아보면, 끊어야 할 것들을 진작 끊었어야 했다.

보안: 30건 이상의 강화, SMB에서 SSRF에서 Hangul까지

3.22의 보안 섹션은 거대하다. 3.13의 3건이 아니라 — 30건 이상이다. 공격 면별로 정리한다.

네트워크 및 프로토콜 계층

  • Windows SMB 자격 증명 유출 차단: 로컬 파일 시스템 해석 전에 원격 호스트 file:// 미디어 URL과 UNC/네트워크 경로를 차단
  • SSRF 핀닝 강화: 명시적 프록시 SSRF 핀닝이 타겟 홉 전송 힌트를 HTTPS 프록시 터널로 변환, 핀 DNS 유지 불가한 평문 HTTP 보호 패치는 fail-closed
  • Gateway 인증 스코프 강화: 신뢰 전달 체인 내 위조 루프백 홉 무시, 호출자 세션 초과 스코프의 디바이스 승인 차단
  • Gateway 발견 fail-closed: CLI 발견의 미해석 Bonjour 및 DNS-SD 서비스 엔드포인트가 fail-closed
  • 미디어 오류 body 경계: 원격 미디어 오류 body 스니펫에 성공 다운로드와 동일한 스트리밍 상한 및 유휴 타임아웃 적용

샌드박스 및 실행 계층

  • 플러그인 마켓플레이스 매니페스트 샌드박싱: 복제된 마켓플레이스 저장소 외부로 설치를 확장하는 원격 매니페스트 항목 거부
  • jq를 safe-bin 화이트리스트에서 제거: 명시적 신뢰 경로 없이 jq -n env로 호스트 시크릿 덤프 불가
  • macOS exec HMAC 검증: exec-host 요청 HMAC에 timing-safe 비교 사용, 비정상 서명은 fail-closed
  • Exec 환경 샌드박스: 호스트 exec 환경의 JVM, glibc, .NET 인젝션 벡터 차단
  • 워크스페이스 hooks 게이팅: 저장소 로컬 hooks는 명시적 활성화 전까지 비활성 유지

아이덴티티 및 인증 계층

  • 디바이스 페어링 프로필 바인딩: iOS 설정 코드를 의도된 노드 프로필에 바인딩
  • Synology Chat user_id 바인딩: 응답 전달을 기본적으로 안정적인 숫자 user_id에 바인딩
  • 브라우저 노드 프록시 강제: nodeHost.browserProxy.allowProfiles를 쿼리 및 body 프로필 파라미터에 강제 적용
  • 디바이스 토큰 로테이션 강화: 공개 실패는 범용 유지, 내부 거부 사유 로깅
  • 신뢰 프록시 스코프 클리어: 디바이스 없는 신뢰 프록시 Control UI 세션의 자기 선언 스코프 클리어

인코딩 및 인젝션 계층

  • Hangul 필러 이스케이프: 빈 Hangul 필러 코드 포인트를 승인 프롬프트에서 이스케이프 — 시각적으로 빈 유니코드 패딩으로 명령 텍스트 은닉 불가
  • Nostr DM 사전 암호화 정책: 인바운드 DM 정책을 복호화 전 적용, 사전 암호화 속도 및 크기 가드 포함
  • OpenResponses 파일 컨텍스트 이스케이프 강화
  • LINE 웹훅 파싱: Express 웹훅 파싱에 검증된 원시 body 강제
  • 이메일 웹훅 메타데이터 새니타이즈: 발신자와 제목 메타데이터를 외부 콘텐츠 래핑 전 새니타이즈
공격 면수정 수
네트워크 및 프로토콜5
샌드박스 및 실행5
아이덴티티 및 인증5+
인코딩 및 인젝션5+
플랫폼 고유10+
합계30+

이런 수정들은 마케팅 포스터에 실리지 않는다. 하지만 누가 OpenClaw를 프로덕션에 투입할 용기를 갖느냐를 결정하는 건 바로 이것들이다. 믿고 쓸 수 있는 것은 편리한 것보다 어렵다.

성능: Gateway 콜드 스타트의 재탄생

사용자 체감상 가장 큰 성능 개선: Gateway 시작 시 번들 확장의 TypeScript를 매번 재컴파일하지 않게 됐다. WhatsApp급 콜드 스타트가 수십 초 이상에서 초 단위로 돌아왔다.

기타 변경:

  • 모델 프리웜: 채널 시작 전 설정된 프라이머리 모델을 프리웜, 1회 일시적 재시도 포함 — 부팅 후 첫 Telegram 또는 Discord 메시지가 Unknown model로 실패하지 않음
  • 스택 전체 지연 로딩: 채널 add와 루트 도움말 경로, 플러그인/프로바이더 폴백 해석, Discord 프로바이더/세션 런타임, 평문 메시지의 미디어·링크 이해 — 모두 지연 로딩
  • Agent 모델 카탈로그 캐싱: config 및 auth-file 상태로 캐싱, 임베디드 러너가 매 턴 카탈로그 시작 비용을 지불하지 않음
  • 세션 캐시 스위핑: 만료된 임베디드 러너 세션 캐시 항목을 후속 캐시 활동 시 기회적으로 스위핑

신규 기능 한눈에

검색 생태계

3개의 새로운 번들 웹 검색 플러그인:

  • Exa: 네이티브 날짜 필터, 검색 모드 선택, 선택적 콘텐츠 추출. plugins.entries.exa.config.webSearch.*로 설정
  • Tavily: 전용 tavily_searchtavily_extract 도구, 플러그인 소유 설정
  • Firecrawl: firecrawl_searchfirecrawl_scrape 도구, base-URL/env 폴백 포함

샌드박스 및 도구

  • 플러거블 샌드박스 백엔드: OpenShell(미러 및 원격 워크스페이스 모드)과 SSH 백엔드(시크릿 기반 키, 인증서, known_hosts 입력) 동봉
  • Chromium 브라우저 프로필 지원: browser.profiles..userDataDir로 Brave, Edge 등 Chromium 기반 브라우저 대응

인터랙션

  • /btw 사이드 질문: 현재 세션에 대한 빠른 도구 없는 답변. 이후 세션 컨텍스트 변경 없음
  • Control UI 캔버스 확장: 어시스턴트 채팅 버블에 캔버스 확장 버튼
  • 둥글기 슬라이더: 외관 설정에서 모서리 반경을 샤프부터 완전 라운드까지 조절
  • Agent별 thinking/reasoning/fast 기본값: 허용되지 않는 모델 오버라이드를 Agent의 기본 선택으로 자동 리버트

CLI 및 설정

  • CLI config set 확장: SecretRef와 provider builder 모드, JSON/배치 할당, --dry-run 검증(구조화 JSON 출력 포함)
  • Gateway 헬스 모니터: 설정 가능한 이벤트 임계값과 재시작 제한, 채널별·계정별 오버라이드 포함
  • GitHub main에서 설치: openclaw update --tag main 또는 installer --version main

모델 프로바이더: 군비 경쟁은 계속된다

프로바이더변경 사항
OpenAI기본 설정 모델을 openai/gpt-5.4로 전환. gpt-5.4-minigpt-5.4-nano 전방 호환 지원
Anthropic VertexGoogle Vertex AI를 통한 Claude용 코어 프로바이더 지원 신규 추가
Chutes플러그인 소유 OAuth/API키 인증과 동적 모델 발견을 갖춘 번들 프로바이더 신규 추가
MiniMaxM2.7과 M2.7-highspeed 추가, 기본값을 M2.5에서 M2.7로 업데이트. 단일 통합 플러그인 서피스로 통합
xAIGrok 카탈로그를 현행 Pi 지원 ID로 동기화. Grok 4.20을 GA ID로 리네임
Z.AIGLM 카탈로그를 4.5/4.6 모델 패밀리 포함하여 동기화, 가격 업데이트
Xiaomi/v1 OpenAI 호환 엔드포인트로 전환. MiMo V2 Pro와 MiMo V2 Omni 추가
Mistral기본 메타데이터를 현행 Pi 가격에 동기화 — 제로 코스트 표시 해소
GitHub Copilot코드 변경 없는 전방 호환 동적 모델 ID

플랫폼 전면 개선

Android

  • 시스템 연동 다크 테마: 온보딩부터 메인 화면까지
  • Talk 음성 마이그레이션: 음성 합성을 gateway talk.speak 뒤로 이동, Android는 최종 응답 오디오로 전환
  • 통화 기록 검색(callLog.search)과 SMS 검색(sms.search), 공유 권한 와이어링 포함
  • 연락처 검색 수정: 연락처 이름 쿼리의 리터럴 %_ 이스케이프, SQL LIKE 와일드카드 오매칭 방지
  • 카메라 메모리 수정: 중간·최종 스냅샷 비트맵 재활용, 네이티브 메모리 누수 방지

Telegram

  • 커스텀 Bot API 엔드포인트: 계정별 커스텀 엔드포인트 지원 — 셀프 호스팅 Telegram 배포가 엔드투엔드로 작동
  • DM 토픽 자동 리네임: 첫 메시지에 LLM 생성 레이블 부여, 계정별·DM별 오버라이드
  • 토픽 편집 액션: 포럼 토픽 리네임과 아이콘 업데이트
  • 사일런트 에러 응답: 기본 꺼짐의 channels.telegram.silentErrorReplies 설정
  • 네트워크 안정성: 스티키 IPv4 폴백을 폴링 재시작 간 유지

비서 (Lark)

  • 인터랙티브 승인 및 퀵 액션 카드, 콜백 컨텍스트 라우팅 포함
  • ACP 및 서브 Agent 세션 바인딩
  • 추론 스트림: thinking 토큰을 스트리밍 카드 내 markdown 인용 블록으로 렌더링
  • 아이덴티티 인식 카드 헤더 및 푸터
  • 확장 액션 서피스: 메시지 읽기/편집, 명시적 스레드 응답, 핀 설정

Matrix

  • 플러그인 완전 재작성: 공식 matrix-js-sdk 기반, 마이그레이션 가이드 제공
  • allowBots 룸 정책: 설정된 봇 간 통신 허용
  • 프라이빗 네트워크 opt-in: 계정별 allowPrivateNetwork
  • 영속적 이벤트 중복 제거: Gateway 재시작을 넘어
  • mention-gated 바인딩 수정: mention 필수 룸에서 유휴 ACP 및 세션 바인딩이 정상 만료

Discord

  • Carbon reconcile로 네이티브 명령 배포
  • 엄격한 DM 컴포넌트 화이트리스트 인증
  • ACP 어보트 전달: 타임아웃된 Discord 작업이 실행 중 턴을 취소

WhatsApp

  • 재연결 수정: inbox 모니터의 append 최근 필터 복원, protobuf Long 타임스탬프 올바르게 처리
  • 활성 리스너 싱글턴: globalThis 싱글턴으로 분할 번들 청크가 동일 리스너 맵 공유
  • 로그인 수정: Baileys 515 페어링 재시작 후 재오픈 전 자격 증명 쓰기 완료 대기

100개 이상의 안정성 수정: 테이블로 말한다

영역주요 수정
Agent 압축compact 후 고아 tool_result 복구, 임계값 초과 시 오버플로 복구, 빈 준비의 경계 요약, 상한 재시도 폴백, 옵트인 JSONL 잘라내기
Agent 런타임OpenAI 호환 백엔드 tool call ID 중복 제거, 비 OpenAI 엔드포인트 prompt_cache 필드 제거, 타임아웃 평문 에러 출력, 리플레이 블록 새니타이즈, bootstrap 경고를 system prompt 밖으로 이동
플러그인 런타임중복 모듈 그래프 간 싱글턴 상태 공유, 플러그인 바인드 승인 상태 공유, context engine 위임 시맨틱스, 번들러 TDZ 수정
GatewayWS 핸드셰이크 타임아웃 10초로 상향, 만료 채팅 버퍼 회수 수정, 재시작 시 고아 run 복구, 계정별 채널 시작 직렬화, 웹훅 경로를 시작 레지스트리에 핀
Control UI설정 키를 gateway 경로로 스코핑, 모델 전환 시 프로바이더 접두사 유지, 세션 라우팅의 외부 전달 경로 유지, locale 드롭다운 영속화
Telegram멈춘 getUpdates 강제 타임아웃, DM 토픽 세션 키 라우팅, 페어링 설정 기본 mention-gated 그룹
비서토픽 스레드 전체 컨텍스트 가져오기, 네이티브 미디어 핸들링 정렬, 서명 웹훅 constant-time 비교
macOS데스크톱 앱 시작 에이전트 KeepAlive 중지, openclaw node start/stop --json 전환
Windowsschtasks Last Result 출력 별칭 수용, WSL2 gateway 네트워크 발견 가드

데이터 한눈에

지표3.133.22
Breaking Changes012
보안 수정330+
안정성 패치70+100+
신규 모델 프로바이더07
신규 웹 검색 플러그인03
플러그인 소스npmClawHub
Gateway 콜드 스타트수십 초초 단위
기본 Agent 타임아웃600초48시간
감사 기여자~1080+

---

3.22는 화려한 신규 기능으로 헤드라인을 장식하는 릴리스가 아니다. 이것은 수술이다 — 가슴을 열고, 엔진을 교체하고, 봉합한 뒤, 이전보다 빠르게 달린다.

12개의 Breaking Changes는 혼란이 아니다. 낡은 지도를 태우는 것이다. ClawHub 가동, 보안 면 전면 강화, Gateway 콜드 스타트 재탄생 — 이 세 가지가 합쳐져, OpenClaw는 '빠르게 이터레이션하는 오픈소스 프로젝트'에서 '진지하게 의존할 수 있는 인프라'로 졸업했다.

랍스터가 다시 탈피했다. 이번엔 골격까지 바뀌었다.

소식 받기

새 기능과 연동 소식을 알려드려요. 스팸 없음, 언제든 구독 취소 가능.