release teams developer-experience control-ui channels docker

OpenClaw 3.24: 재활 훈련 — Microsoft Teams 전면 재작성, 18개 Breaking Changes, 개발자 경험 도약

OpenClaws.io Team

OpenClaws.io Team

@openclaws

March 24, 2026

12 분 소요

OpenClaw 3.24: 재활 훈련 — Microsoft Teams 전면 재작성, 18개 Breaking Changes, 개발자 경험 도약

3.22는 낡은 아키텍처를 뜯어내고 기반을 다시 쌓았다. 3.23은 봉합선이 버티는지 확인했다. 랍스터는 수술에서 살아남았다——간신히. 40건 이상의 수정, 8개의 auth 패치, 2건의 브라우저 회귀 해결. 환자는 안정됐다.

이제 환자가 일어섰다.

3.24는 3.23 다음 날 출시됐다. 343개 커밋. 18개 Breaking Changes. 15개 수정. 하지만 이번 Breaking Changes는 추가 수술이 아니다——재활 훈련이다. 통제된, 목적 있는 동작 연습으로, 재건된 몸에 이전의 몸으로는 할 수 없던 것들을 가르치는 것이다.

늘 그렇듯 한마디: 프로덕션 환경의 주력 랍스터는 신중하게 업그레이드하자.

Breaking Changes

18개의 Breaking Changes. 하지만 3.22의 뼈를 부수는 구조 변경과는 다르다. 이번에는 재활 동작 훈련——새 골격으로 새 동작을 배우는 과정이다.

Microsoft Teams: 플랫폼 수준 재작성

Teams는 패치가 아니다. 재작성이다.

Microsoft Teams 통합 전체가 공식 Teams SDK로 마이그레이션됐고, AI 에이전트 UX 모범 사례가 밑바닥부터 내장됐다. (#51808) 스트리밍 1:1 답장. 프롬프트 스타터가 포함된 웰컴 카드. 피드백과 성찰 플로우. 실시간 상태 업데이트. 타이핑 표시기. 네이티브 AI 라벨링. 채팅 어댑터에 AI 기능을 볼트로 붙이는 게 아니라——SDK 레이어에서부터 제대로 된 AI 에이전트 경험을 구축하는 것이다. @vincentkoc 감사.

여기에 더해, 전송된 메시지의 편집과 삭제 기능이 추가됐다. 명시적 대상이 없을 때의 스레드 내 폴백도 포함. (#49925) 봇이 말한 내용을 수정하거나 철회할 수 있게 됐다——첫날부터 있어야 했던 기능이다.

Teams는 이번 릴리스에서 가장 큰 단일 투자였다. 이전 통합은 동작했다. 새로운 통합은 제대로 동작한다.

개발자 도구 및 Skill 생태계

일곱 가지 변경이 하나의 주제에 집중한다: 개발자와 운영자에게 어떤 도구가 있는지, 뭐가 부족한지, 어떻게 설치하는지 알려주는 것.

도구 가시성: /tools가 이론적 카탈로그가 아닌, 현재 에이전트가 지금 당장 실제로 사용할 수 있는 도구를 보여준다. 기본 컴팩트 뷰와 선택적 상세 모드. Control UI에 "Available Right Now" 섹션이 라이브 추가돼 질문하기 전에 뭐가 되는지 확인할 수 있다.

Skill 설치 UX: 번들 Skill——coding-agent, gh-issues, openai-whisper-api, session-logs, tmux, trello, weather——에 원클릭 설치 레시피가 추가됐다. (#53411) CLI와 Control UI가 의존성 누락 시 설치 안내를 제공할 수 있게 됐다. Skill 관리 UI에 상태 필터 탭(All / Ready / Needs Setup / Disabled)이 카운트와 함께 추가. 클릭하면 상세 다이얼로그가 열리며 요구사항, 토글, 설치 버튼, API Key 입력, 소스 메타데이터, 홈페이지 링크가 표시된다. CLI의 의존성 누락 라벨이 "missing"에서 "needs setup"으로 변경되고 API Key 설정 가이드가 출력된다. macOS 앱의 API Key 편집기에 "Get your key" 링크와 저장 경로 힌트가 추가됐다. @BunsDev, Skill UX 전체 리뉴얼 감사.

Node 버전 하한선: Node 22 지원 하한이 22.14+로 낮아졌고, Node 24 권장은 유지. 22.14 사용자가 npm 설치와 셀프 업데이트에서 뒤처지지 않게 됐다. CLI가 openclaw update 실행 전 대상 npm 패키지의 engines.node를 프리플라이트 체크해서, Node 버전이 오래됐으면 지원되지 않는 릴리스 설치를 시도하는 대신 명확한 업그레이드 메시지를 출력한다.

Control UI 진화

Control UI를 "쓸 수 있는 대시보드"에서 "실제로 쓰고 싶은 제품"으로 밀어올리는 네 가지 변경.

에이전트 워크스페이스 파일 행이 펼칠 수 있는 <details>로 변환되고, 지연 로딩 인라인 마크다운 프리뷰가 달렸다. 제목, 리스트, 코드 블록, 테이블, 인용, details/summary 요소의 .sidebar-markdown 스타일도 완비. (#53411)

파일 프리뷰 다이얼로그에 프로스트 글래스 배경, 크기 조정 패널, 스타일드 헤더가 적용됐다. @create-markdown/preview v2 테마 시스템으로 제목, 테이블, 코드 블록, 콜아웃, 인용의 리치 렌더링이 앱의 라이트/다크 디자인 토큰에 자동 적응. (#53411)

macOS 앱의 가로 필 네비게이션이 접기 화살표와 들여쓰기 하위 항목이 있는 트리 사이드바로 교체됐다. 에이전트 모델 셀렉터 드롭다운에 "Not set" 플레이스홀더가 추가돼 빈 상태가 명시적이 됐다. (#53411) 모두 @BunsDev 감사.

채널 기능 확장

각 채널을 더 스마트하게 만드는 세 가지 변경.

Slack: 다이렉트 딜리버리의 리치 리플라이 패리티가 복원됐고, 후행 Options: 줄이 버튼과 셀렉트로 자동 렌더링된다. Slack 인터랙티브 설정 기본값이 개선되고, 리플라이 컨트롤이 플러그인 인터랙티브 핸들러에서 분리됐다. (#53389) @vincentkoc 감사.

Discord: 선택적 autoThreadName: "generated" 명명이 추가됐다. 자동 생성된 새 스레드가 LLM이 생성한 간결한 제목으로 비동기 리네임되며, 기존 메시지 기반 명명은 기본값으로 유지. (#43366) @davidguttman 감사.

플러그인/훅: 정규화된 인바운드 메타데이터를 가진 before_dispatch가 추가됐다. 처리된 리플라이가 일반 최종 전달 경로로 라우팅되고, TTS 및 라우팅 전달 시맨틱스가 보존된다. (#50444) @gfzhx 감사.

인프라 및 호환성

OpenClaw이 더 많은 곳에서 실행되고, 더 많은 것과 대화할 수 있게 하는 두 가지 변경.

Gateway/OpenAI 호환: /v1/models/v1/embeddings 엔드포인트 추가. 명시적 모델 오버라이드가 /v1/chat/completions/v1/responses를 통해 포워딩돼 더 넓은 클라이언트 및 RAG 시나리오 호환성 향상. @vincentkoc 감사.

CLI 컨테이너: --containerOPENCLAW_CONTAINER로 실행 중인 Docker 또는 Podman OpenClaw 컨테이너 내부에서 openclaw 명령을 실행할 수 있다. (#52651) 컨테이너에 exec해서 CLI가 설치돼 있길 기도할 필요가 없다. @sallyom 감사.

보안

미디어 샌드박스의 빈틈을 메우는 두 가지 수정.

mediaUrl/fileUrl 별칭 우회가 차단돼 아웃바운드 도구 및 메시지 액션이 media-root 제한을 탈출할 수 없게 됐다. (#54034) 실제 탈출이었다——구조화된 페이로드가 별칭을 사용해 샌드박스 경계를 우회할 수 있었다. 수정됨.

아웃바운드 미디어 접근이 설정된 fs 정책에 맞춰졌다. workspaceOnly가 꺼져 있으면 호스트 로컬 파일과 인바운드 미디어 경로가 계속 전송되고, 엄격한 워크스페이스 전용 에이전트는 샌드박스 내에 유지된다. 이전에는 정책이 불일치했다——일부 경로는 샌드박스를 존중했고, 일부는 아니었다. 이제 통일됐다.

수정

Gateway

리스타트 센티넬 (#53940): 중단된 에이전트 세션이 최선의 리스타트 노트 전송 대신 하트비트로 깨워진다. 아웃바운드 전달이 일시적 실패 시 1회 재시도. 명시적 thread/topic 라우팅이 웨이크 경로에서 보존돼 리플라이가 올바른 Telegram 토픽이나 Slack 스레드에 도착한다. @VACInc 감사.

채널 시작 격리 (#54215): 채널 시작은 순차적이지만, 채널별 부팅 실패가 격리된다. 하나의 고장난 채널이 이후 채널을 블로킹하지 않는다. @JonathanJing 감사.

Docker

설정 루프 (#53385): 새로운 Docker 설치가 게이트웨이 시작 전에 실패하지 않게 됐다. 설정 시 onboard/config 쓰기를 openclaw-gateway를 통해 라우팅해서 openclaw-cli의 공유 네트워크 네임스페이스 루프를 회피. @amsminn 감사.

WhatsApp

그룹 에코 (#53624): 게이트웨이가 전송한 메시지 ID를 추적하고, 일치하는 그룹 에코만 억제. 연결 계정의 fromMe 트래픽에서 /status, /new, /activation 명령은 보존. @w-sss 감사.

Reply-to-bot 감지: botInvokeMessage 페이로드 언래핑과 creds.json에서 selfLid 읽기로 암묵적 그룹 리플라이 감지가 복원. 연결 계정 그룹 채팅에서 리플라이 기반 멘션이 다시 봇에 도달한다.

Telegram

포럼 토픽 (#53699): Telegram이 포럼 메타데이터를 생략할 때 #General 토픽 1 라우팅이 복구. 네이티브 명령, 인터랙티브 콜백, 인바운드 메시지 컨텍스트, 폴백 에러 리플라이 포함. @huntharo 감사.

아웃바운드 에러 (#53635): 조치 가능한 403 멤버십/차단/추방 상세가 보존된다. 봇이 멤버가 아닌 경우 영구 전달 실패로 처리돼 Telegram 전송이 실패가 확정된 채팅에 재시도를 중단한다. @w-sss 감사.

사진 (#52545): Telegram 사진 크기 및 종횡비 규칙이 프리플라이트 체크되고, 이미지 메타데이터가 유효하지 않거나 사용 불가능할 때 문서 전송으로 폴백. 사진 업로드가 PHOTO_INVALID_DIMENSIONS로 실패하지 않게 됐다. @hnshah 감사.

Discord

Gateway 감독: 게이트웨이 에러 핸들링이 라이프타임 소유 슈퍼바이저 뒤로 집중됐다. 초기, 활성, 레이트 티어다운 단계의 Carbon 게이트웨이 에러가 일관되게 분류되고, 프로세스 킬 티어다운 크래시로 표면화되지 않는다.

타임아웃 (#53823): 인바운드 Discord 워커가 최종 리플라이 시작 전에 타임아웃되면 가시적인 타임아웃 리플라이가 전송된다. 생성된 자동 스레드 타겟과 큐 실행 순서 포함. @Kimbo7870 감사.

Slack

런타임 기본값 (#53957): Slack DM 리플라이 오버헤드 감소. Codex 자동 트랜스포트 복원. Slack/web-search 런타임 기본값 강화——DM 프리뷰 스레딩, 캐시 스코핑, 경고 중복 제거, 명시적 web-search opt-in. @vincentkoc 감사.

기타

임베디드 실행/시크릿: 미해결 SecretRef 설정이 임베디드 에이전트 실행을 크래시시키지 않게 됐다——시스템이 필요 시 해결된 런타임 스냅샷으로 폴백한다. #45838 수정.

ACP/다이렉트 채팅 (#53692): 최종 TTS가 오디오를 생성하지 않을 때, 블록 텍스트가 이전에 스트리밍됐더라도 항상 터미널 ACP 결과가 전달된다. 불필요한 빈 텍스트 최종 합성은 건너뛴다. @w-sss 감사.

기여자

18명의 기여자가 3.24에 변경을 착지시켰다. 특히 @BunsDev——약 10개 항목이 Skill 설치 UX, Control UI 워크스페이스, 마크다운 프리뷰, macOS 네비게이션, 모델 셀렉터를 아우른다. "동작한다"를 "쓰고 싶다"로 바꾸는 디자인 감각 있는 기여.

@vincentkoc는 Microsoft Teams SDK 재작성, Slack 인터랙티브 리플라이 복원, Gateway OpenAI 호환, Slack 런타임 기본값을 전달했다——하나의 릴리스에서 네 가지 주요 영역.

@w-sss는 WhatsApp 그룹 에코, Telegram 아웃바운드 에러 처리, ACP 다이렉트 채팅 전달 세 영역에서 수정을 착지시켰다.

@sallyom(CLI 컨테이너), @davidguttman(Discord 자동 스레드), @gfzhx(플러그인 훅), @VACInc(게이트웨이 리스타트 센티넬), @amsminn(Docker 설정), @JonathanJing(게이트웨이 채널 격리), @huntharo(Telegram 포럼 토픽), @Kimbo7870(Discord 타임아웃), @hnshah(Telegram 사진) 감사.

업그레이드 참고

  • Teams 사용자: 완전한 SDK 마이그레이션이다. Teams 채널 설정을 검토하라——통합 인터페이스가 크게 바뀌었다.
  • Docker 사용자: 새로운 --container 플래그로 실행 중인 컨테이너 내부에서 CLI 명령을 실행할 수 있다. 신규 설치가 설정 단계에서 실패하지 않게 됐다.
  • Node 버전: 하한이 Node 22.14+로 낮아졌지만 Node 24 권장은 유지. openclaw update를 실행하면——CLI가 설치 전에 Node 버전이 충분한지 알려준다.
  • 플러그인/훅 작성자: before_dispatch는 정규화된 인바운드 메타데이터를 가진 새 훅 포인트다. 인바운드 메시지를 가로채는 플러그인을 유지보수하고 있다면 새 디스패치 플로우를 확인하라.
  • 프로덕션 랍스터: 언제나 그렇듯 신중하게 업그레이드. staging에서 먼저 테스트.

---

3.22는 가슴을 열고 엔진을 교체했다. 3.23은 봉합하고 모니터를 지켜봤다. 3.24, 랍스터가 일어섰다——걷기만 하는 게 아니다. 뛰고 있다.

18개의 Breaking Changes, 하지만 뭔가를 부수는 게 아니라——재건된 아키텍처 위에 새로운 능력을 쌓고 있다. 완전한 Teams 플랫폼 재작성. 뭐가 부족한지 드디어 말해주는 Skill 생태계. 관리 패널이 아니라 제품처럼 느껴지기 시작한 Control UI. 그리고 모든 채널에서 볼트를 계속 조이는 15개의 수정.

재활의 목표는 원래 수준으로 돌아가는 것이 아니었다. 수술 전보다 더 강해지는 것이었다.

랍스터가 달리고 있다. 그 어느 때보다 빠르게.

소식 받기

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