Đây là trang fan, không liên kết với dự án OpenClaw chính thức hay Anthropic. github.com/openclaw/openclaw
release

OpenClaw 4.15: tôm hùm đổi não và bắt đầu học cách nhìn chùm chìa khóa của chính mình

OpenClaws.io Team

OpenClaws.io Team

@openclaws

April 16, 2026

6 phút đọc

OpenClaw 4.15: tôm hùm đổi não và bắt đầu học cách nhìn chùm chìa khóa của chính mình

Khi đợt phát hành trước khép lại, tôm hùm vừa mới bò ra khỏi một đợt bao vây bảo mật mười ngày. Vỏ dày thêm một lớp. Càng nhanh hơn một chút. Nhưng khi bơi trong nước, nó vẫn chưa thực sự nhìn lại chính mình.

Việc 4.15 làm không nổi bật, nhưng hướng đi thì rõ: cho tôm hùm một bộ não tốt hơn, dạy nó liếc qua những chùm chìa khóa đang cầm, và nhân tiện chuyển trí nhớ sang một chỗ khác, không ồn ào.

Phiên bản này sẽ không xuất hiện ở vị trí hero trên bất kỳ screenshot sản phẩm nào. Nhưng sau khi upgrade xong, vài giá trị mặc định đã lặng lẽ xê dịch—và nếu trước đây bạn dựa vào hành vi cũ ở một góc nào đó, tốt nhất là biết trước.

Bộ não mới: Opus 4.7

Lựa chọn Anthropic mặc định giờ trỏ vào Claude Opus 4.7. Trước đây alias opus buộc bạn phải tự ghim một phiên bản cụ thể trong config; giờ nó trỏ thẳng vào Opus mới nhất. Mặc định qua Claude CLI cũng đi theo.

Kèm theo là khả năng hiểu ảnh của Opus 4.7—phần này trước đây cần plugin thêm hoặc một vision provider bên ngoài, lần này đã được đóng gói thẳng vào core. Bạn thả một screenshot vào cửa sổ chat, và tôm hùm giờ tự đọc được. Không còn phải đi đường vòng.

Nếu bạn đã tự tay ghim provider vào một Opus cũ hơn, bản upgrade này sẽ không động vào config—ghim rõ ràng vẫn thắng. Nhưng nếu bạn chạy trên mặc định, bạn sẽ nhận ra cả tốc độ chat lẫn khả năng đọc ảnh đều tiến lên một bước.

Một lối thoát cho những máy không kham nổi

Cùng lúc với việc Opus 4.7 được đôn lên, có một flag trỏ ngược chiều: agents.defaults.experimental.localModelLean: true.

Nó dành cho mấy mô hình local nhỏ. Khi bật, prompt tự động rụng bớt những công cụ nặng làm nghẹt model nhỏ—browser, cron và đồng đội—khiến cửa sổ ngữ cảnh hẹp đi một chút, tải inference nhẹ hơn chút. Chữ experimental trong tên là thật: còn đang mài. Nhưng nếu bạn đang chạy 7B hay 13B trên máy của mình, flag này có khi còn thú vị hơn việc đôn Opus.

"Đã mạnh thì mạnh hơn, đã yếu thì nhẹ gánh"—đó là sợi chỉ xuyên suốt nhưng kín đáo hơn của release này.

Lần đầu thấy được chùm chìa khóa

Đây là thứ đáng kể nhất trong phiên bản này, và cũng là thứ dễ bị bỏ qua nhất.

Control UI có thêm một thẻ mới, Model Auth Status Card. Việc nó làm nghe khá bình thường: cho bạn biết OAuth token của từng provider đang buộc vào có khỏe không, còn bao lâu nữa thì hết hạn, và gần đây có bị rate limit siết không.

Nghe bình thường, nhưng thẻ này trước đây không có. Bạn chỉ biết OAuth token đã hết hạn đúng lúc provider trả về 401; rate limit chỉ thành hiện thực khi bạn bị kẹt giữa chừng. Tôm hùm vẫn dùng những credential này suốt, nhưng chưa từng có một chỗ duy nhất để nó—hay bạn—nhìn thấy trạng thái đó trước khi có gì đó vỡ.

Đằng sau thẻ là một method mới trên gateway: models.authStatus. Nó mang theo cache 60 giây, nên UI không thật sự poll provider mỗi giây. Khi nhiều client cùng dùng chung một instance tôm hùm, endpoint introspection của provider cũng không bị nện xuống đất.

Đi kèm thẻ là vài fix ở lớp thấp hơn. Race điều kiện credential—trước khi mở lại socket, các lần lưu auth đang chờ được đẩy xuống đĩa trước. Nhờ vậy quá trình reconnect không còn nuốt mất một phiên xác thực sắp hoàn tất. Truy cập file trong workspace—mọi thao tác đường dẫn giờ đi qua helper chung fs-safe, và symlink nhắm vào file trong allowlist sẽ bị từ chối. Không cái nào dựng được video demo, nhưng cả hai đều ở trong cùng một chủ đề: tôm hùm nhìn rõ hơn thứ mình đang cầm.

Memory âm thầm chuyển nhà

Release này thay đổi ba thứ trong lớp memory. Gộp lại, đó là một bước có định hướng.

Thứ nhất, index memory của LanceDB giờ chấp nhận object storage từ xa. Tới lúc này chúng chỉ sống trên đĩa local, nghĩa là đổi máy là phải dựng lại index, và chuyện chia sẻ trí nhớ giữa các thiết bị về cơ bản là không xong. Trong bản này, cùng một LanceDB index có thể nằm trên S3 (hoặc một store tương thích S3), còn đĩa local chỉ còn là một lớp cache. Với ai triển khai tôm hùm trên nhiều máy, hoặc đi qua đi lại giữa laptop và VPS, đây là bước then chốt từ "trí nhớ gắn vào máy" sang "trí nhớ gắn vào tài khoản".

Thứ hai, GitHub Copilot bước vào pool embedding provider. Tìm kiếm trong memory cần một model embedding để vector hóa các entry, và tới giờ bạn chọn giữa OpenAI, sentence-transformers local, và một nhúm khác. Giờ có thêm một lựa chọn: nếu bạn đã có subscription Copilot, tìm kiếm trong memory có thể dùng lại chính kênh xác thực đó—kèm host helper riêng, tôn trọng override từ xa và refresh token.

Thứ ba—và là cái duy nhất có cạnh gây gãy—dreaming.storage.mode đổi giá trị mặc định từ inline sang separate.

Dreaming là giai đoạn mà tôm hùm, trong "thời gian rảnh", dồn nén và sắp xếp lại trí nhớ. Những phase block mà quá trình này sinh ra, tới giờ đều đi thẳng vào file memory trong ngày. Ưu điểm: mọi thứ nằm trên cùng một trục thời gian. Nhược điểm: file memory phình ra vì nội dung sinh ra, diff đọc không nổi.

Mặc định mới đẩy phase block sang một đường riêng: memory/dreaming/{phase}/YYYY-MM-DD.md—một file cho mỗi phase mỗi ngày, để file memory gốc chỉ còn thứ bạn viết tay. Việc upgrade không viết lại các file memory hiện có, nhưng lần tới khi dreaming chạy, output sẽ đi đến chỗ mới. Nếu bạn có script đang đọc nội dung dreaming từ file memory, những script đó cần đổi đường dẫn.

Muốn giữ hành vi cũ thì đặt lại setting này về inline một cách rõ ràng.

Giọng Google cũng bước vào

Plugin Google được đóng gói có thêm hỗ trợ Gemini TTS: chọn giọng, output WAV, và định dạng PCM cho điện thoại. Nếu bạn đã dùng Google Cloud để làm STT hoặc các call Gemini khác, không cần ghép thêm TTS provider riêng—cùng một auth đi xuyên từ đầu đến cuối.

Không phải thay đổi lớn. Nhưng một mảnh bạn phải tự lắp trước đây giờ đã đến sẵn sàng để dùng.

Những thứ không lên tít nhưng chắc bạn đạp vào mỗi ngày

Phần còn lại không đáng một section riêng. Nhưng gộp lại thì bao luôn một mảng khá rộng những va vấp hàng ngày:

  • 404 trong chat Ollama đã sửa xong. Nếu ID model của bạn mang prefix ollama/, bản cũ chuyển cả prefix đó thẳng tới server Ollama và ăn 404. Bản mới gỡ prefix ra trước khi request đi.
  • Tải ảnh trong BlueBubbles chạy lại được với Node 22+—nhân tiện, logic retry của webhook và việc kéo attachment cũng được làm lại. Nếu bạn dùng BlueBubbles trên macOS để bắc cầu iMessage, khi nâng Node thì kéo luôn release này lên cùng.
  • Streaming watchdog trong TUI—nếu trong 30 giây không có bất kỳ delta chat event nào đến, indicator streaming sẽ được reset. Trước đây, khi provider im lặng cắt stream, TUI kẹt ở trạng thái "streaming". Giờ thì không.
  • Vô hiệu snapshot skill—đổi skills.* trước đây khiến những agent session đang mở vẫn chạy với danh sách skill cũ; phải restart mới thấy skill mới. Giờ bất cứ thay đổi config nào cũng vô hiệu snapshot đang cache.
  • Stream guard cho tool không rõ, bật mặc định—trước đây đây là một lớp bảo vệ opt-in: khi model ảo ra tên tool không tồn tại, guard ngăn "Tool X not found" rơi vào vòng lặp vô hạn. Giờ bật mặc định, không cần cấu hình.
  • Giải đường dẫn—đường dẫn ~ ngoài workspace giờ được giải theo home của OS, không theo OPENCLAW_HOME nữa. Khi hai thư mục này khác nhau, cùng một ~/foo.txt có thể trỏ sang hai nơi giữa edit và write; fix này kéo chúng về cùng một đích.
  • Căn chỉnh prompt cache—trong các run của task-scoped adapter, chat ID đi vào trong system prompt giờ đã ổn định, nên nhiều call trong cùng một task có tỷ lệ trúng prompt cache cao hơn.
  • Passthrough kết quả MEDIA—trước đây passthrough MEDIA: đến từ tool local tin cậy match lỏng với tên các tool built-in. Giờ match là chính xác, và tool client có tên chuẩn hóa đụng với built-in sẽ bị từ chối ngay. Trùng tên không còn là cửa hậu.
  • Hồi phục replay—lỗi 401 input item ID does not belong to this connection do provider trả về giờ được phân loại là "replay-invalid", kèm chỉ dẫn session reset đúng, thay vì bị xử lý như 401 thường và retry không ngừng.

Những mặc định đã xê dịch

Release này đã dời một vài giá trị mặc định; đáng kê ra cạnh nhau cho gọn:

  • dreaming.storage.mode: inlineseparate (phase block hạ cánh ở memory/dreaming/{phase}/YYYY-MM-DD.md)
  • Stream guard cho tool không rõ: bật mặc định (trước là opt-in)
  • Các provider giọng nói Microsoft / ElevenLabs được đóng gói: bật mặc định
  • Lựa chọn Anthropic mặc định: trỏ Opus 4.7
  • Mặc định của Claude CLI: căn theo Opus 4.7

Hai dòng đầu là thay đổi hành vi. Nếu bạn đang dựa vào hành vi cũ, hãy ghi đè rõ ràng trong config trước khi upgrade.

Trong một câu

Nếu bạn chỉ lấy một điều từ bài này: chạy openclaw update, rồi mở Control UI để nhìn vào Model Auth Status Card mới. Thẻ đó sẽ kể cho bạn nghe một điều trước đây bạn không biết—chính xác những chùm chìa khóa tôm hùm đang cầm, cái nào sắp hết hạn, cái nào gần đây đang bị rate limit bóp cổ.

Nếu bạn là user nặng của dreaming, hoặc đã từng lật qua nội dung thô của phase block trong các file memory—để ý sự đổi mặc định ở dreaming.storage.mode. Output dreaming mới sẽ đi vào thư mục con memory/dreaming/. Lần đầu dreaming chạy sau khi upgrade, nhìn vào thư mục đó là biết cách dùng mới trông ra sao.

Theo dõi tin mới

Nhận thông báo về tính năng mới và tích hợp. Không spam, hủy đăng ký bất cứ lúc nào.