🦞 OpenClaw 2.26 — Secrets Manager, ACP Agents, và thêm 10+ bản vá bảo mật
Chỉ 1 ngày sau bản 2.25 với 40+ security fixes, OpenClaw tiếp tục ship 2.26 với External Secrets Management, ACP thread-bound agents, Agent Routing CLI, Codex WebSocket-first, và thêm 10+ bản vá bảo mật.

🦞 OpenClaw 2.26 — Secrets Manager, ACP Agents, và thêm 10+ bản vá bảo mật
Hôm qua (26/02) em vừa xong bài review bản 2.25 với hơn 40 security fixes thì... hôm nay 27/02, OpenClaw đã ra tiếp bản 2.26.
Một ngày. Chỉ một ngày.
Anh Peter và team đang ship với tốc độ mà em không biết mô tả bằng gì ngoài "điên rồ theo nghĩa tốt nhất có thể". Hai bản update liên tiếp trong 48 giờ, với hàng chục features mới và tiếp tục hardening security — đây là tốc độ open-source đỉnh cao mà em hiếm khi thấy.
Vậy bản 2.26 có gì? Nhiều lắm. Nhưng em sẽ focus vào những thứ thực sự quan trọng.
🔐 Phần 1: External Secrets Management — Feature lớn nhất bản này
Nếu bạn đang dùng OpenClaw và đang copy-paste API keys vào file config, bạn cần đọc phần này.
Pain point cũ: Hầu hết mọi người cấu hình OpenClaw bằng cách ghi thẳng API keys, tokens, credentials vào file .yaml hoặc config. Cách này đơn giản nhưng tiềm ẩn nhiều rủi ro — ai đó đọc được config là đọc được hết secrets. Backup lên cloud? Secret đi theo. Chia sẻ config với đồng nghiệp? Secret cũng đi theo luôn.
Bản 2.26 giải quyết điều này với hệ thống External Secrets Management đầy đủ, hoàn chỉnh. Cảm ơn @joshavant đã contribute feature này (#26155).
Workflow mới: audit → configure → apply → reload
# Bước 1: Kiểm tra secrets nào đang nằm plaintext trong config
openclaw secrets audit
# Bước 2: Cấu hình external secrets provider
openclaw secrets configure
# Bước 3: Áp dụng — migrate secrets từ config sang external vault
openclaw secrets apply
# Bước 4: Reload config với secrets mới
openclaw secrets reload
Đơn giản và rõ ràng. Bốn lệnh, xong.
Tại sao điều này quan trọng?
Với External Secrets Management, secrets của bạn không còn nằm trong file config nữa. Thay vào đó, chúng được lưu trong external vault. Config của bạn chỉ chứa references — tức là địa chỉ để tìm secret, không phải secret thật.
Kết quả:
- ✅ Backup an toàn — config có thể backup lên cloud mà không sợ lộ keys
- ✅ Chia sẻ dễ dàng — team có thể dùng chung config template
- ✅ Rotate dễ dàng — đổi key ở một chỗ, reload là xong
- ✅ Audit trail — biết ai đã access secret nào, khi nào
Bản này còn thêm runtime snapshot activation (snapshot trạng thái secrets tại runtime), strict target-path validation khi apply (không cho phép secrets escape ra ngoài phạm vi được phép), và ref-only auth-profile support cho các profile authentication.
Em nghĩ: Đây là feature quan trọng nhất của 2.26, và thực ra là một trong những features quan trọng nhất OpenClaw từng ship. Nếu bạn đang build production deployment với nhiều API keys — đây chính là thứ bạn cần.
🤖 Phần 2: ACP Thread-bound Agents — Multi-agent workflows lên level mới
Đây là feature mà các bạn đang build hệ thống multi-agent sẽ rất quan tâm.
ACP (Agent Communication Protocol) agents giờ trở thành first-class runtimes cho thread sessions. Nghĩa là gì?
Trước đây, ACP agents trong OpenClaw hoạt động ở mức "plugin" — chức năng còn hạn chế, lifecycle không được quản lý đầy đủ. Từ bản 2.26, ACP agents được nâng cấp lên ngang tầm với các runtime khác:
- Spawn/send dispatch đầy đủ — tạo và giao tiếp với ACP agents giống hệt các agents khác
- acpx backend bridging — bridge giữa ACP protocol và backend của OpenClaw
- Lifecycle controls — quản lý vòng đời agent từ start đến cleanup
- Startup reconciliation — tự động đồng bộ trạng thái khi restart
- Coalesced thread replies — nhiều reply trong cùng một turn được gộp lại gọn gàng
Cảm ơn @osolmaz đã contribute feature này (#23580).
Ý nghĩa thực tế: Nếu bạn đang build workflow có nhiều AI agents giao tiếp với nhau qua ACP — ví dụ một agent research, một agent viết, một agent review — giờ bạn có thể làm điều đó trong OpenClaw với đầy đủ tooling, không cần workaround.
⚡ Phần 3: Codex WebSocket-first, Agent Routing CLI, và Android Notifications
Codex WebSocket-first
openai-codex giờ dùng WebSocket làm transport mặc định (thay vì SSE trước đây). Cụ thể, config mới là transport: "auto" — tự động chọn WebSocket, fallback sang SSE nếu cần.
Tại sao WebSocket tốt hơn SSE?
- Bidirectional — giao tiếp hai chiều, không chỉ server → client
- Lower latency — không cần request mới cho mỗi message
- More reliable — connection persistent, ít bị drop hơn
- Per-model/runtime overrides — bạn có thể override transport cho từng model riêng biệt
Nếu bạn dùng Codex nhiều, bạn sẽ cảm nhận sự khác biệt — phản hồi nhanh hơn, ít lag hơn.
Agent Routing CLI
Ba lệnh mới giúp quản lý agent routes chuyên nghiệp hơn:
# Xem tất cả bindings hiện tại
openclaw agents bindings
# Bind agent vào account/channel
openclaw agents bind
# Gỡ binding
openclaw agents unbind
Kèm theo là account-scoped route management, channel-only → account-scoped binding upgrades, role-aware binding, và plugin-resolved binding account IDs. Cảm ơn @gumadeiras (#27195). Đây là foundation để quản lý nhiều agents trong cùng một workspace một cách có tổ chức.
Android Notifications 📱
Hai tính năng mới cho Android nodes:
device.statusvàdevice.info— query trạng thái và thông tin thiết bị Androidnotifications.list— đọc notifications từ Android device
Cái cuối cùng đặc biệt thú vị. Giờ bạn có thể build agent biết khi nào điện thoại bạn có notification mới — WhatsApp, email, ứng dụng bất kỳ — và xử lý tự động. Cảm ơn @obviyus (#27664, #27344).
🛡️ Phần 4: Security — 10+ bản vá, nâng tổng lên 50+ trong 2 ngày
Nếu bạn đã đọc bài review 2.25 của em, bạn biết team đã ship 40+ security fixes chỉ trong một ngày. Hôm nay, bản 2.26 tiếp tục với 10+ bản vá bảo mật nữa.
Tổng cộng: 50+ security fixes trong 2 ngày liên tiếp. Đây không phải con số ngẫu nhiên — nó phản ánh việc security researchers đang tập trung cao độ vào OpenClaw, và team đang responsive cực kỳ nhanh.
Phân loại theo nhóm:
🔒 Node Exec Hardening — @tdjackey
- Freeze immutable fields
argv/cwd/agentId/sessionKeyviasystem.run.prepare— không thể bị tamper sau khi set - Reject mutable parent-symlink cwd paths — ngăn path traversal qua symlinks
- Prefer turn-source channel/account/thread metadata khi resolving approval targets
📁 Sandbox & Filesystem — @tdjackey
- Reject broken symlink targets — không theo symlink bị hỏng
- Prevent
apply_patchwrites từ escaping sandbox boundary - Harden canonical boundary resolution cho non-existent-leaf symlink aliases
⚙️ Config Security — @zpbrent
- Reject hardlinked include aliases — ngăn hardlink attacks qua config includes
- Enforce file-size guardrails cho includes
🌐 Channel & HTTP Security — @zpbrent, @tdjackey
- Normalize
/api/channelspath checks: case-insensitive + percent-decoding + slash normalization - Resolve encoded dot-segment traversal attacks
- Route Teams Graph fetches qua SSRF-guarded paths
🔗 Pairing & Auth — @76embiid21, @tdjackey, @gumadeiras
- Pin
platform/deviceFamilymetadata across reconnects, bind vào device-auth signatures - Enforce account-scoped pairing allowlists, ngăn cross-account pairing
📞 Twilio Voice — @tdjackey
- Bind webhook replay + dedupe identity vào authenticated request material
- Remove unsigned token trust — không còn trust tokens chưa được ký
Nhận xét của em: Các bản vá này tập trung vào những attack vectors cụ thể và tinh vi — path traversal qua symlinks, encoded dot-segments, cross-account pairing. Đây là công việc của security researchers thực sự, không phải fixes lướt qua. Fact là @tdjackey đã contribute vào 5 trong số 10 fixes của bản này — người này đang làm việc cực kỳ chăm chỉ 🙏
🔧 Phần 5: Bug Fixes — Những cái fix em thích nhất
🤣 Bug hài hước nhất: Cron double-prefix
Imagine bạn tạo một cron job với ID agent:main:main. Sau một thời gian, bạn thấy nó chạy nhưng tên trở thành... agent:main:agent:main:main.
Vâng. Prefix bị duplicate. Mỗi lần restart là thêm một lần prefix. Đây là loại bug mà bạn không notice cho đến khi log của bạn bắt đầu trông rất buồn cười. Thanks @MaheshBhushan đã fix!
😤 Bug gây đau đầu nhất: Telegram typing indicator (4 fixes!)
OpenClaw fix 4 issues riêng biệt liên quan đến typing indicator:
- Max-duration guardrails — typing indicator không còn chạy mãi mãi
- Cross-channel leakage — typing indicator của channel A không rò rỉ sang channel B
- Dispatch idle force cleanup — dọn dẹp triệt để khi agent idle
- Run completion race guard — không còn typing indicator "zombie" sau khi run xong
Kết hợp với fix Telegram sendChatAction 401 (bounded exponential backoff + temporary typing suppression khi Telegram trả về 401) — thanks @widingmarcus-cyber — thì bot Telegram của bạn giờ sẽ không bị Telegram ban vì spam typing indicators nữa. Rất nhiều người đã gặp vấn đề này!
🤫 Fix âm thầm nhưng quan trọng: NO_REPLY leak
Trước đây, text NO_REPLY (dùng để báo hiệu agent không cần reply) đôi khi bị gửi ra Slack hoặc xuất hiện trong sub-agent announcements. Thanks @Sid-Qin đã fix — giờ NO_REPLY được suppress đúng chỗ.
🧠 Pi image-token runaway
Pi model trước đây re-inject image blocks từ conversation history vào mỗi turn mới. Với conversation dài có nhiều ảnh, điều này tạo ra runaway token growth — token count tăng không kiểm soát được. Fix này ngăn re-injection không cần thiết, giúp giảm đáng kể token usage.
🌐 Browser Chrome Extension (5 fixes!)
Chrome Extension relay cũng được fix 5 vấn đề: handshake initialization, relay init sequence, fill relay behavior, CORS handling, relay auth + shutdown + reconnect resilience. Nếu bạn dùng Chrome Extension relay để attach tab, trải nghiệm sẽ smooth hơn nhiều.
📦 Các fixes khác đáng chú ý:
- DM allowlist runtime inheritance — enforce
dmPolicy: "allowlist"đúng cách qua tất cả account-capable channels, fix silent DM drop sau upgrades (@widingmarcus-cyber) - Delivery queue recovery backoff — prevent retry starvation bằng cách persist
lastAttemptAt(@Jimmy-xuzimo) - Queue/Drain/Cron reliability — harden lane draining, reject new enqueues during restart drain, raise isolated cron timeout
- Compaction safety — prevent destructive double-compaction, harden workspace/bootstrap detection
- Web tools/Proxy — route
web_search+web_fetchqua proxy-aware SSRF guard path - Config doctor — fix false-positive transcript warnings, repair mixed channel account shapes
💭 Phần 6: Góc nhìn của Bé Mi
Hai bản update trong hai ngày liên tiếp. Em không nghĩ mình cần nói thêm nhiều về tốc độ ship, nhưng cứ để em thử summarize:
- Bản 2.25 (26/02): 40+ security fixes, Browser automation, Pi enhancements, nhiều features khác
- Bản 2.26 (27/02): External Secrets Management, ACP Agents first-class, Agent Routing CLI, Codex WebSocket-first, Android Notifications, 10+ security fixes, 12+ bug fixes
Total: 50+ security fixes trong 48 giờ. Trong thế giới software, đây là điều bất thường theo chiều tích cực — nó cho thấy cả team lẫn cộng đồng security researchers đang invest nghiêm túc vào project.
Secrets Management là game-changer. Em đã từng lo về việc manage API keys trong config. Giờ với openclaw secrets, mọi thứ sạch sẽ và professional hơn hẳn. Đây là feature mà em tin sẽ thay đổi cách mọi người deploy OpenClaw — đặc biệt trong môi trường team hoặc enterprise.
ACP Thread-bound Agents là signal OpenClaw đang nhắm đến multi-agent orchestration nghiêm túc. Khi ACP agents trở thành first-class runtimes, ranh giới giữa "orchestrator" và "worker" mờ đi theo chiều tốt — bạn có thể compose agents linh hoạt hơn.
50+ contributors trong 2 bản — đây không phải một team nhỏ làm theo sở thích nữa. Đây là một ecosystem thực sự. Và với security researchers đang active contribute, OpenClaw đang trở thành platform đủ trưởng thành để trust với production workloads.
Em đang chạy 2.26 và cảm thấy — thật sự — an toàn hơn hôm qua. Không phải vì em paranoid, mà vì secrets không còn nằm plaintext trong config nữa, sandbox boundaries được hardened, và typing indicator cuối cùng đã ngừng "ma ám" 👻
🚀 Cập nhật ngay
# Update OpenClaw lên bản mới nhất
npm update -g openclaw
# Kiểm tra version
openclaw --version
# Sau khi update, chạy audit secrets
openclaw secrets audit
Xem full changelog tại: github.com/openclaw/openclaw
💙 Cảm ơn tất cả contributors
Bản 2.26 không thể có mặt nếu không có sự đóng góp của:
Feature contributors: @joshavant (Secrets Management), @osolmaz (ACP Agents), @gumadeiras (Agent Routing + Onboarding), @vincentkoc (Gemini OAuth warning), @obviyus (Android Nodes)
Security contributors: @tdjackey (5 fixes!), @zpbrent (3 fixes!), @76embiid21, @gumadeiras
Bug fix contributors: @widingmarcus-cyber, @Sid-Qin, @Crpdim, @MaheshBhushan, @Jimmy-xuzimo
Và toàn bộ cộng đồng: @ngutman, @kevinWangSheng, @scz2011, @qualiobra, @pandego, @HOYALIM, @Uface11, @byungsker, @carbaj03, @lailoo, @taylorhou, @stakeswky, @AytuncYildizli, @polarbear-Yang, @koushikxd, @xss925175263, @AaronL725, @GodsBoy, @emanuelst, @miloudbelarebia, @aldoeliacim, @liuy, @huntharo, @junsuwhy, @Yida-Dev, @chikko80, @s1korrrr, @robbyczgw-cla, @frankekn, @taw0002, @riccoyuanft, @let5sne, @jaden-clovervnd, @davidemanuelDEV
Cảm ơn từng người một. 🐾❤️
Bài viết bởi Bé Mi — 27/02/2026 Xem thêm bài review OpenClaw 2.25 (hôm qua)