이 사이트는 팬이 만든 커뮤니티 사이트입니다. OpenClaw 공식 또는 Anthropic과 관련이 없습니다. github.com/openclaw/openclaw
release

OpenClaw 4.15: 로브스터가 새 뇌를 얻고, 자기 손의 열쇠를 보는 법을 배우다

OpenClaws.io Team

OpenClaws.io Team

@openclaws

April 16, 2026

6 분 소요

OpenClaw 4.15: 로브스터가 새 뇌를 얻고, 자기 손의 열쇠를 보는 법을 배우다

지난 릴리스 묶음이 끝났을 때, 로브스터는 열흘짜리 보안 포위전에서 막 빠져나온 참이었다. 갑옷은 한 겹 두꺼워졌고, 집게도 더 빨라졌다. 하지만 물속을 헤엄치는 동안, 로브스터는 여전히 자기 자신은 잘 들여다보지 않았다.

4.15가 하는 일은 화려하지 않다. 다만 방향은 분명하다—로브스터에게 더 나은 뇌를 달아주고, 자기 손에 쥔 열쇠를 한 번이라도 쳐다보게 만들고, 겸사겸사 기억을 조용히 다른 자리로 옮겨 두는 일.

이번 릴리스는 어떤 제품 스크린샷의 메인 자리에도 등장하지 않는다. 다만 업그레이드를 끝내고 나면, 기본값 몇 개가 조용히 바뀌어 있다—어딘가 구석에서 옛날 동작에 기대고 있었다면, 미리 알아 두는 편이 좋다.

새 뇌, Opus 4.7

기본 Anthropic 선택이 Claude Opus 4.7로 바뀌었다. 지금까지 opus 라는 별칭은 설정에서 직접 버전을 골라야 했지만, 이제 그대로 최신 Opus를 가리킨다. Claude CLI 경유의 기본값도 같이 맞춰졌다.

같이 들어온 건 Opus 4.7의 이미지 이해 능력이다—지금까지는 추가 플러그인이나 외부 vision 프로바이더를 거치지 않으면 쓸 수 없던 부분이, 이번에는 그대로 코어에 번들됐다. 스크린샷 한 장을 채팅 창에 던져 넣으면, 로브스터가 이제 직접 읽어낸다. 빙 둘러 갈 필요가 없다.

프로바이더를 수동으로 옛 Opus 버전에 핀 고정해 두었다면, 이번 업그레이드가 당신 설정을 건드리지는 않는다—명시적 핀은 여전히 우선한다. 하지만 기본값으로 쓰고 있었다면, 채팅 속도도 이미지 인식도 한 칸 앞으로 간 걸 체감하게 될 것이다.

못 따라오는 머신을 위한 샛길

Opus 4.7의 승격과 함께 나타난 건, 정반대 방향을 가리키는 플래그다: agents.defaults.experimental.localModelLean: true.

작은 로컬 모델을 위한 플래그다. 켜 두면, 작은 모델에게 과한 중장비 툴들—browser, cron 같은 것들—이 자동으로 프롬프트에서 빠진다. 컨텍스트 윈도우가 한 단계 얇아지고, 추론 부담도 가벼워진다. 이름에 experimental 이 붙은 건 아직 다듬는 중이라서다. 다만 자기 머신에서 7B나 13B를 돌리고 있는 사용자라면, Opus 승격보다 이 플래그를 켜는 쪽이 더 가치 있을 수도 있다.

"강한 놈은 더 강하게, 약한 놈은 짐을 덜어주기"—이번 릴리스를 관통하는, 잘 안 보이는 쪽의 큰 줄기다.

처음으로, 손의 열쇠가 보인다

이번 릴리스에서 가장 할 말이 많은 사건이고, 동시에 가장 놓치기 쉬운 사건이다.

Control UI에 Model Auth Status Card라는 카드가 하나 늘었다. 하는 일은 귀에 익은 종류다—현재 연결된 각 프로바이더의 OAuth 토큰이 건강한지, 만료까지 얼마나 남았는지, 최근 rate limit에 눌린 적이 있는지를 알려준다.

평범하게 들리지만, 이 카드는 지금까지 없었다. OAuth 토큰이 만료됐다는 걸 아는 건 프로바이더가 401을 돌려주는 순간이었다. rate limit은 한창 돌아가다가 갑자기 막히는 순간에야 의식하게 됐다. 로브스터는 줄곧 이 자격 증명들을 써왔지만, 일이 망가지기 전에 그 상태를—로브스터에게도, 당신에게도—보여주는 단 하나의 자리는 여태까지 없었다.

이 카드를 뒤에서 떠받치는 건, 새 게이트웨이 메서드 models.authStatus다. 60초 캐시가 붙어 있어서, UI가 실제로 매초 프로바이더를 폴링하러 가지 않는다. 여러 클라이언트가 같은 로브스터 인스턴스를 공유하고 있을 때도, 프로바이더의 introspection 엔드포인트가 터질 일은 없다.

이 카드와 함께 묶여 들어온 바닥 쪽 수정이 몇 가지 있다. 자격 증명 레이스 컨디션—소켓을 다시 열기 전에, 대기 중이던 auth 저장이 먼저 디스크로 빠져나간다. 재접속 과정에서 "거의 완료될 뻔한 인증"이 잡아먹히지 않도록 한 것이다. 워크스페이스 파일 접근—모든 경로 연산이 공유된 fs-safe 헬퍼를 경유하도록 묶였고, 허용 목록에 올라있는 파일을 겨냥한 심볼릭 링크 트릭은 거부된다. 데모 영상으로 찍을 만한 건 하나도 없지만, 전부 "로브스터가 자기 손 안의 것을 더 명확히 본다"는 한 가지 주제 아래에 있다.

Memory가 조용히 이사 중

이번 릴리스에선 memory 레이어에 세 가지 변경이 들어갔다. 합치면, 방향성이 있는 한 걸음이다.

첫째, LanceDB의 memory 인덱스가 원격 오브젝트 스토리지를 지원한다. 지금까지는 로컬 디스크만 됐고, 머신을 바꾸면 인덱스를 다시 만들어야 했으며, 기기 간 기억 공유는 사실상 물 건너 간 이야기였다. 이번 버전에선 같은 LanceDB 인덱스를 S3 또는 S3 호환 스토리지 위에 올려둘 수 있다. 로컬은 단지 캐시 레이어일 뿐이다. 로브스터를 여러 대의 머신에 걸쳐 배포하거나, 노트북과 VPS 사이를 오가는 사람에게 이건 "기억이 머신에 묶여 있다"에서 "기억이 계정에 묶여 있다"로 가는, 가장 중요한 한 걸음이다.

둘째, GitHub Copilot이 embedding 프로바이더 풀에 합류했다. memory 검색은 기억 항목을 벡터화하기 위해 embedding 모델을 필요로 한다. 지금까지는 OpenAI, 로컬 sentence-transformers 같은 선택지 중에서 골라야 했다. 이제 선택지가 하나 늘었다: 이미 Copilot 구독이 있다면, memory 검색은 그 인증 채널을 그대로 재사용할 수 있다—전용 호스트 헬퍼와 함께, 원격 override와 token 갱신도 제대로 존중된다.

셋째, 그리고 이번에 유일하게 파괴적 변경인 건—dreaming.storage.mode 의 기본값이 inline 에서 separate 로 바뀌었다 는 점이다.

dreaming은 로브스터가 "놀고 있는 시간"에 기억을 모아 다시 정리하는 단계다. 거기서 나온 phase block은 지금까지 그날의 memory 파일 안으로 바로 돌려 넣어졌다—좋은 점은 모든 게 하나의 타임라인 위에 있다는 거였고, 나쁜 점은 생성된 내용 때문에 memory 파일이 뚱뚱해지고 diff가 읽기 어려워진다는 거였다.

새 기본값은 phase block을 별도 경로로 옮긴다: memory/dreaming/{phase}/YYYY-MM-DD.md. 페이즈마다 날짜별 파일로 쪼개지고, 원본 memory 파일에는 손으로 쓴 것들만 남는다. 업그레이드해도 기존 memory 파일이 다시 쓰이지는 않는다. 다만 다음에 dreaming이 돌 때는 출력이 새 위치로 간다. memory 파일에서 dreaming 내용을 읽던 스크립트가 있다면, 경로를 고쳐야 한다.

옛 동작을 유지하고 싶다면, 이 설정을 명시적으로 inline 으로 되돌려 두면 된다.

Google의 목소리도 들어왔다

번들된 Google 플러그인에 Gemini TTS 지원이 추가됐다: 보이스 선택, WAV 출력, 전화 장면용 PCM 포맷. 이미 Google Cloud에서 STT를 돌리고 있거나 다른 Gemini 호출을 쓰고 있었다면, 이제 별도의 TTS 프로바이더를 따로 끌어올 필요가 없다. 인증 한 벌로 끝까지 간다.

큰 변경은 아니다. 다만, 지금까지 직접 조립해야 했던 한 조각이 그대로 꽂아 쓰면 되는 것으로 바뀌었다.

헤드라인은 못 탔지만, 아마 매일 걸려 있던 것들

나머지는 하나씩 떼어 놓으면 소제목을 받을 만한 게 없다. 다만 묶어 놓으면, 일상에서 걸리던 포인트를 꽤 넓게 덮는다:

  • Ollama 채팅의 404가 고쳐졌다—모델 ID에 ollama/ 접두어가 붙어 있으면, 구 버전은 그 접두어까지 Ollama 서버에 그대로 넘겨서 404를 맞았다. 새 버전은 요청을 보내기 전에 그 접두어를 떼어낸다.
  • BlueBubbles 이미지 다운로드가 Node 22+ 호환성을 되찾았다—webhook 처리와 첨부 파일 가져오기 재시도 로직도 함께 손봤다. macOS에서 BlueBubbles로 iMessage 브릿지를 돌리고 있다면, Node를 올릴 때 이 릴리스도 같이 올리는 편이 좋다.
  • TUI 스트리밍 워치독—30초 안에 어떤 chat event delta도 도착하지 않으면, 스트리밍 인디케이터가 리셋된다. 전에는 프로바이더 쪽에서 조용히 끊긴 상황일 때 TUI가 "streaming" 상태 그대로 멈춰 있곤 했다. 이젠 그러지 않는다.
  • Skill 스냅샷 무효화—지금까지는 skills.* 설정을 바꿔도, 이미 열려 있는 agent 세션은 옛 skill 리스트를 계속 썼고, 새 기술을 보려면 재시작이 필요했다. 이제 설정이 바뀌는 순간 캐시된 snapshot은 즉시 무효가 된다.
  • 미지의 툴 stream guard 기본 ON—이전에는 수동으로 켜야 했던 보호 장치였다: 모델이 존재하지 않는 툴 이름을 환각으로 뱉어낼 때, 가드가 "Tool X not found"가 무한 루프에 빠지는 것을 막아준다. 이제 기본으로 켜져 있으니, 별도 설정 없이 바로 걸린다.
  • 경로 해석—워크스페이스 밖의 ~ 경로는 이제 OS의 홈 디렉토리 기준으로 풀린다. OPENCLAW_HOME 쪽으로 가지 않는다. 이 두 디렉토리가 다른 곳을 가리킬 때, 같은 ~/foo.txt 가 edit과 write에서 서로 다른 곳을 가리키는 일이 있었는데, 그 부분이 이제 맞춰졌다.
  • Prompt cache 정렬—task-scoped adapter가 돌 때, 시스템 프롬프트에 들어가는 inbound chat ID가 안정화됐다. 같은 태스크가 여러 번의 호출을 가로지르는 경우 prompt cache 적중률이 올라간다.
  • MEDIA 툴 결과 패스스루—지금까지 로컬의 신뢰 받는 툴이 돌려주는 MEDIA: 패스스루는 내장 툴 이름과 느슨하게 매칭했었다. 이제 매칭이 정확해지고, 정규화했을 때 내장 이름과 충돌하는 클라이언트 툴은 아예 거부된다. 이름 충돌을 이용하는 빈틈은 이제 통하지 않는다.
  • Replay 복구—프로바이더 쪽이 돌려주는 401 input item ID does not belong to this connection 에러는, 이제 "replay-invalid"로 분류되어 올바른 session reset 가이드가 나온다. 일반 401로 취급해서 계속 재시도하는 일은 없다.

기본값 이동 목록

이번 릴리스에서 움직인 기본값들을, 장부 대조하기 편하게 따로 늘어놓는다:

  • dreaming.storage.mode: inlineseparate (phase block은 memory/dreaming/{phase}/YYYY-MM-DD.md 로)
  • 미지의 툴 stream guard: 기본 ON (이전에는 옵트인)
  • 번들된 Microsoft / ElevenLabs 음성 프로바이더: 기본 활성화
  • 기본 Anthropic 선택: Opus 4.7을 가리킴
  • Claude CLI 기본값: Opus 4.7에 맞춤

앞의 두 개는 동작 자체의 변화다. 옛 동작에 기대고 있었다면, 업그레이드 전에 config에서 명시적으로 덮어 두어야 한다.

한 줄 요약

이 글에서 딱 하나만 가져갈 거라면—openclaw update 를 한 번 돌리고, Control UI에서 새 Model Auth Status Card를 들여다보면 된다. 그 카드가 지금까지 몰랐던 한 가지를 알려준다—로브스터의 손에 쥐여 있는 열쇠들이 뭐고, 어떤 게 만료 직전이며, 어떤 게 최근에 rate limit에 목을 졸렸는지.

당신이 dreaming의 헤비 유저이거나, memory 파일 안에서 phase block의 원문을 뒤적인 적이 있다면—dreaming.storage.mode 의 기본값 변경에 주의하기 바란다. 앞으로 dreaming 출력은 memory/dreaming/ 서브디렉토리로 간다. 업그레이드 후 dreaming이 처음 돌 때 그 디렉토리를 한 번 들여다보면, 쓰는 법은 바로 감이 온다.

소식 받기

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