<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>AI &amp; Automation (vnROM): Duy Nghiện</title>
    <description>The latest articles on AI &amp; Automation (vnROM) by Duy Nghiện (@duynghien).</description>
    <link>https://ai.vnrom.net/duynghien</link>
    <image>
      <url>https://ai.vnrom.net/uploads/user/profile_image/4/b1883837-fd9e-4006-b489-a0c89e0dbeb5.png</url>
      <title>AI &amp; Automation (vnROM): Duy Nghiện</title>
      <link>https://ai.vnrom.net/duynghien</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://ai.vnrom.net/feed/duynghien"/>
    <language>en</language>
    <item>
      <title>/dreaming trong OpenClaw version 2026.4.5</title>
      <dc:creator>Duy Nghiện</dc:creator>
      <pubDate>Tue, 07 Apr 2026 05:30:19 +0000</pubDate>
      <link>https://ai.vnrom.net/duynghien/dreaming-trong-openclaw-version-202645-2gjn</link>
      <guid>https://ai.vnrom.net/duynghien/dreaming-trong-openclaw-version-202645-2gjn</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/openclaw/openclaw/releases/tag/v2026.4.5" rel="noopener noreferrer"&gt;OpenClaw vừa phát hành phiên bản &lt;strong&gt;2026.4.5&lt;/strong&gt;&lt;/a&gt;, đánh dấu một bước tiến lớn trong khả năng quản lý bộ nhớ dài hạn cho các AI agent tự vận hành. Trong bản cập nhật này, tính năng &lt;strong&gt;/dreaming&lt;/strong&gt; (trước đây chỉ là experimental) đã trở thành hiện thực đầy đủ, được tích hợp sâu vào plugin &lt;strong&gt;memory-core&lt;/strong&gt;. Đây là hệ thống củng cố bộ nhớ nền (background memory consolidation) hoạt động theo cơ chế “giấc ngủ” của con người, giúp agent không chỉ lưu trữ mọi thứ mà còn tổ chức, tinh chỉnh và thúc đẩy các tín hiệu quan trọng từ bộ nhớ ngắn hạn lên bộ nhớ dài hạn một cách có hệ thống và minh bạch.&lt;/p&gt;

&lt;p&gt;Nó giải quyết vấn đề cốt lõi của hầu hết các agent AI hiện nay: bộ nhớ chỉ “tích tụ” mà không được tổ chức, dẫn đến noise, lãng phí token và giảm hiệu suất theo thời gian.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-2040998570317197607-717" src="https://platform.twitter.com/embed/Tweet.html?id=2040998570317197607"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-2040998570317197607-717');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=2040998570317197607&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h2&gt;
  
  
  1. /dreaming là gì?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Dreaming&lt;/strong&gt; là hệ thống củng cố bộ nhớ &lt;strong&gt;opt-in&lt;/strong&gt; (tùy chọn bật), chạy ngầm theo lịch cron. Nó mô phỏng chu kỳ giấc ngủ của con người với &lt;strong&gt;ba giai đoạn hợp tác&lt;/strong&gt; (Light → REM → Deep) để:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Phân loại và dọn dẹp dữ liệu ngắn hạn.&lt;/li&gt;
&lt;li&gt;Trích xuất chủ đề, suy ngẫm và ghi nhật ký giấc mơ.&lt;/li&gt;
&lt;li&gt;Đánh giá, xếp hạng và thúc đẩy nội dung giá trị cao vào bộ nhớ dài hạn.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tất cả đều &lt;strong&gt;minh bạch&lt;/strong&gt; (explainable): bạn có thể đọc được mọi quyết định qua file markdown và giao diện Dreams UI. Không có pruning (xóa bỏ) tự động - bộ nhớ chỉ phát triển, nhưng được tổ chức thông minh hơn.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Ba giai đoạn hoạt động (Light - REM - Deep)
&lt;/h2&gt;

&lt;p&gt;Hệ thống chạy theo thứ tự cố định trong một lần sweep (quét):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Giai đoạn&lt;/th&gt;
&lt;th&gt;Mô tả chi tiết&lt;/th&gt;
&lt;th&gt;Đầu ra&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Light&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Sắp xếp, dọn dẹp và khử trùng lặp (deduplicate) dữ liệu ngắn hạn từ recall traces + daily memory files. Ghi nhận tín hiệu củng cố. Không ghi vĩnh viễn.&lt;/td&gt;
&lt;td&gt;Không ghi durable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;REM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Phản ánh chủ đề, ý tưởng lặp lại. Tạo narrative summaries và reinforcement signals.&lt;/td&gt;
&lt;td&gt;Dream Diary (nhật ký giấc mơ)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Deep&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Xếp hạng và promote (thúc đẩy) các candidate chất lượng cao vào MEMORY.md. Sử dụng mô hình điểm số có trọng số.&lt;/td&gt;
&lt;td&gt;MEMORY.md (bộ nhớ dài hạn)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Deep Ranking Signals&lt;/strong&gt; (mô hình chấm điểm):&lt;br&gt;&lt;br&gt;
Frequency (0.24), Relevance (0.30), Query diversity (0.15), Recency (0.15), Consolidation (0.10), Conceptual richness (0.06).&lt;br&gt;&lt;br&gt;
Các giai đoạn Light/REM còn bổ sung boost nhỏ qua phase-signals.json.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dreaming &lt;strong&gt;không&lt;/strong&gt; ghi trực tiếp vào MEMORY.md từ Light hay REM - chỉ Deep mới promote.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Những gì Dreaming ghi lại?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DREAMS.md&lt;/strong&gt;: Nhật ký giấc mơ (Dream Diary) + tóm tắt từng phase (Light Sleep, REM Sleep, Deep Sleep). Đây là file con người đọc được, nằm ở root và &lt;strong&gt;không&lt;/strong&gt; được đưa vào recall mặc định để tránh noise.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;memory/.dreams/&lt;/strong&gt;: Thư mục hệ thống chứa recall store, phase signals, checkpoints, locks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MEMORY.md&lt;/strong&gt;: Chỉ nhận nội dung được Deep promote (replay-safe, không trùng lặp).&lt;/li&gt;
&lt;li&gt;Báo cáo phase tùy chọn: &lt;code&gt;memory/dreaming/&amp;lt;phase&amp;gt;/YYYY-MM-DD.md&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Cách kích hoạt và cấu hình cũng rất đơn giản
&lt;/h2&gt;

&lt;p&gt;Chỉ cần chỉnh file &lt;strong&gt;openclaw.json&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"plugins"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"entries"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"memory-core"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"config"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"dreaming"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"enabled"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"frequency"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"0 3 * * *"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"timezone"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Asia/Ho_Chi_Minh"&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;enabled&lt;/strong&gt;: false mặc định → bật lên là chạy ngay.&lt;/li&gt;
&lt;li&gt;Lịch cron linh hoạt (mỗi 3 giờ sáng hàng ngày…).&lt;/li&gt;
&lt;li&gt;Sau khi chỉnh, restart memory-core hoặc gateway (&lt;code&gt;openclaw gateway restart&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. Công cụ kiểm soát và Dreams UI
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Slash command trong chat&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/dreaming status&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/dreaming on&lt;/code&gt; / &lt;code&gt;/dreaming off&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/dreaming help&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;CLI tools&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;openclaw memory promote&lt;/code&gt; (preview + --apply)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;openclaw memory promote-explain "deployment workflow"&lt;/code&gt; (giải thích tại sao một chủ đề được promote)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;openclaw memory rem-harness&lt;/code&gt; (preview REM)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openclaw memory status --deep&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Dreams UI&lt;/strong&gt; (mới trong 2026.4.5): Tab riêng trong Gateway (Ctrl + I). Hiển thị:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Trạng thái dreaming&lt;/li&gt;
&lt;li&gt;Số lượng short-term/long-term/promoted today&lt;/li&gt;
&lt;li&gt;Thời gian sweep tiếp theo&lt;/li&gt;
&lt;li&gt;Dream Diary reader (có animation lobster dễ thương)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. Lợi ích thực tế
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Giải quyết vấn đề “memory bloat”: Agent không còn quên hoặc lẫn lộn thông tin cũ.&lt;/li&gt;
&lt;li&gt;Tăng tính cá nhân hóa: MEMORY.md ngày càng giàu kiến thức dài hạn của bạn.&lt;/li&gt;
&lt;li&gt;Minh bạch &amp;amp; kiểm soát: Bạn có thể đọc “nhật ký giấc mơ” mỗi sáng như check Apple Watch sleep score.&lt;/li&gt;
&lt;li&gt;Tiết kiệm token: Chỉ promote nội dung thực sự giá trị.&lt;/li&gt;
&lt;li&gt;Hỗ trợ đa ngôn ngữ: Conceptual tagging giờ hỗ trợ 12+ ngôn ngữ (bao gồm tiếng Việt).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cộng đồng đang rất khen tính năng này: “Memory without pruning becomes noise. The real unlock is deciding what to forget, not just what to store.” Nhiều người đã bật và thấy agent “thông minh hơn rõ rệt” sau 1-2 ngày.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Lưu ý
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Experimental&lt;/strong&gt;: Có thể thay đổi ở các bản sau.&lt;/li&gt;
&lt;li&gt;Không configurable sâu (threshold, weights… là internal).&lt;/li&gt;
&lt;li&gt;Chi phí token: Phụ thuộc tần suất và volume memory. Nhiều người thử nghiệm cho biết không cao nếu chạy nightly.&lt;/li&gt;
&lt;li&gt;Tương thích: Hoàn toàn hoạt động với GPT-5.4, Qwen, MiniMax… (OpenClaw đã chuyển hướng mạnh sau khi Anthropic cắt hỗ trợ).&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Với &lt;strong&gt;/dreaming&lt;/strong&gt; trong OpenClaw 2026.4.5, OpenClaw không chỉ là “AI agent làm việc” mà còn là “AI agent biết suy ngẫm và học hỏi theo thời gian”. Đây là bước tiến quan trọng nhất từ trước đến nay về memory management cho self-hosted agents. Nếu bạn đang chạy OpenClaw để quản lý email, lịch, automation hay dự án cá nhân, đây chính là tính năng đáng nâng cấp ngay hôm nay.&lt;/p&gt;

</description>
      <category>openclaw</category>
      <category>dreaming</category>
      <category>memory</category>
    </item>
    <item>
      <title>Vì sao OpenClaw cần tối ưu lại memory?</title>
      <dc:creator>Duy Nghiện</dc:creator>
      <pubDate>Sun, 05 Apr 2026 09:08:51 +0000</pubDate>
      <link>https://ai.vnrom.net/duynghien/vi-sao-openclaw-can-toi-uu-lai-memory-1g3k</link>
      <guid>https://ai.vnrom.net/duynghien/vi-sao-openclaw-can-toi-uu-lai-memory-1g3k</guid>
      <description>&lt;p&gt;Có một hiểu nhầm khá phổ biến khi build trợ lý AI kiểu OpenClaw: nhiều người nghĩ cứ nhồi thêm memory là agent sẽ thông minh hơn. Thực tế thường ngược lại: memory càng phình, càng trùng lặp, càng thiếu phân tầng thì agent càng dễ trả lời loãng, chậm, lệch ưu tiên, thậm chí nhớ sai.&lt;/p&gt;

&lt;p&gt;Với OpenClaw, memory không chỉ là chỗ để nhớ. Nó là phần hạ tầng quyết định agent có giữ được continuity giữa các session hay không, có phối hợp đa agent ổn hay không, và có phân biệt được đâu là sự thật chuẩn, đâu chỉ là ngữ cảnh phụ trợ hay không.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vì sao tối ưu memory lại quan trọng?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1) Giảm nhiễu, tăng độ đúng
&lt;/h3&gt;

&lt;p&gt;Sau 3 lần cấu trúc lại, kiến trúc memory đã bắt đầu đi theo hướng khá chuẩn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;mind/MEMORY.md&lt;/code&gt; = nguồn sự thật dài hạn cho người đọc&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Postgres + pgvector&lt;/code&gt; = canonical machine memory&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;mem0/openmemory&lt;/code&gt; = shared collaboration memory cho nhiều agent&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;memory/YYYY-MM-DD.md&lt;/code&gt; = log theo ngày, mang tính raw timeline&lt;/li&gt;
&lt;li&gt;LanceDB = lớp cũ, chỉ còn vai trò migration/archive&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Đây là hướng đúng. Nhưng nếu không tối ưu định kỳ, mấy thứ sau sẽ xảy ra:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cùng một quyết định bị ghi ở nhiều nơi&lt;/li&gt;
&lt;li&gt;note tạm thời bị lẫn với fact dài hạn&lt;/li&gt;
&lt;li&gt;mem0 chứa quá nhiều nugget rác, agent search ra trúng nhầm&lt;/li&gt;
&lt;li&gt;log hằng ngày phình to nhưng không được chưng cất lên canonical memory&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Khi đó agent không mất trí nhớ, mà tệ hơn: &lt;strong&gt;nhớ quá nhiều thứ không đáng nhớ&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2) Giữ thứ tự ưu tiên giữa các lớp memory
&lt;/h3&gt;

&lt;p&gt;Một hệ memory tốt không chỉ cần nhiều dữ liệu, mà cần biết &lt;strong&gt;tin cái gì trước&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Policy trong workspace nên là:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;latest explicit user instruction&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mind/MEMORY.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Postgres structured state&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mem0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;nếu còn mơ hồ thì mới hỏi lại&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Cái hay ở đây là OpenClaw đã tách được:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;canonical truth&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;semantic recall&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;raw logs&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nếu không tối ưu, thứ tự này sẽ bị phá vỡ trên thực tế. Agent sẽ kéo phải những mẩu context dễ match hơn, thay vì những gì đúng hơn.&lt;/p&gt;

&lt;h3&gt;
  
  
  3) Tăng hiệu suất cho multi-agent
&lt;/h3&gt;

&lt;p&gt;Khi chạy một agent thì memory bừa bộn đã khó chịu. Khi chạy nhiều agent thì nó thành bug hệ thống.&lt;/p&gt;

&lt;p&gt;Trong runbook nên là, &lt;code&gt;mem0&lt;/code&gt; được dùng làm shared collaboration memory, còn task state thật nằm ở queue / task system / notebook / file / Postgres, vì:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;mem0 hợp cho handoff, blocker, fact ngắn&lt;/li&gt;
&lt;li&gt;không ép semantic memory phải gánh vai trò task database&lt;/li&gt;
&lt;li&gt;giảm nguy cơ agent A hiểu sai thứ agent B ghi dở dang&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tối ưu memory ở đây có nghĩa là giảm duplicate, tăng atomicity, chuẩn hóa metadata, và có cơ chế promote từ memory phụ sang memory chuẩn khi thông tin đã được verify.&lt;/p&gt;

&lt;h3&gt;
  
  
  4) Giảm chi phí ngầm
&lt;/h3&gt;

&lt;p&gt;Memory kém tổ chức không chỉ làm sai câu trả lời. Nó còn làm tăng:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;token đọc context&lt;/li&gt;
&lt;li&gt;số lần retrieval không cần thiết&lt;/li&gt;
&lt;li&gt;thời gian agent dò tìm đúng nguồn&lt;/li&gt;
&lt;li&gt;công sức dọn rác về sau&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nói thẳng: memory không tối ưu là một dạng &lt;strong&gt;technical debt lặng lẽ&lt;/strong&gt;. Ban đầu chưa đau, nhưng tới lúc workflow dài, nhiều task, nhiều agent, nó đẻ lỗi rất mất thời gian để debug.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tối ưu bằng cách nào?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1) Dedupe trước khi write
&lt;/h3&gt;

&lt;p&gt;Đây là nguyên tắc đáng giữ nhất: &lt;strong&gt;đừng ghi thêm nếu thực ra chỉ đang lặp lại ý cũ&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Trước khi tạo memory mới, nên check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ý này đã có trong &lt;code&gt;mind/MEMORY.md&lt;/code&gt; chưa?&lt;/li&gt;
&lt;li&gt;Postgres machine memory đã có bản structured chưa?&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;mem0&lt;/code&gt; đã có entry tương đương chưa?&lt;/li&gt;
&lt;li&gt;nếu đã có, nên update/promote thay vì append tiếp&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mỗi entry nên là &lt;strong&gt;1 ý chính, ngắn, searchable, có context&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2) Tách rõ “fact”, “decision”, “hypothesis”, “handoff”
&lt;/h3&gt;

&lt;p&gt;Runbook hiện tại của mem0 làm đúng điểm này bằng metadata kiểu:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;type=fact&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;type=decision&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;type=hypothesis&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;type=todo&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;type=blocker&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;type=handoff&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Đây không phải chuyện trang trí. Nó giúp agent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;biết cái nào đáng tin&lt;/li&gt;
&lt;li&gt;biết cái nào chỉ là giả thuyết&lt;/li&gt;
&lt;li&gt;biết cái nào dùng để tiếp sức cho agent khác&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nếu memory nào cũng là text tự do, sớm muộn retrieval cũng trả về mớ hỗn độn.&lt;/p&gt;

&lt;h3&gt;
  
  
  3) Chỉ promote thứ đã được verify
&lt;/h3&gt;

&lt;p&gt;Không phải cái gì agent thấy hữu ích cũng đáng thành canonical memory.&lt;/p&gt;

&lt;p&gt;Rule tốt là:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;note tạm → ở daily log hoặc mem0&lt;/li&gt;
&lt;li&gt;thứ có reuse trung bình/cao → Postgres machine memory&lt;/li&gt;
&lt;li&gt;thứ ổn định lâu dài → &lt;code&gt;mind/MEMORY.md&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nói cách khác, memory nên có &lt;strong&gt;pipeline thăng hạng&lt;/strong&gt;:&lt;br&gt;
raw note -&amp;gt; shared recall -&amp;gt; canonical state&lt;/p&gt;

&lt;p&gt;Không có pipeline này thì hệ thống hoặc là quên quá nhanh, hoặc là giữ rác quá lâu.&lt;/p&gt;

&lt;h3&gt;
  
  
  4) Đặt TTL cho memory mang tính tác vụ
&lt;/h3&gt;

&lt;p&gt;Policy nên gợi ý kiểu:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;global facts/decisions: &lt;code&gt;ttl=none&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;project operational notes: 30–90 ngày&lt;/li&gt;
&lt;li&gt;task scratch/handoff: 7–30 ngày&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Đây là phần cực đáng làm thật, vì task-level memory thường là nơi phình nhanh nhất. Nếu không có TTL hoặc cleanup cadence, mem0 sẽ biến thành bãi rác semantic.&lt;/p&gt;

&lt;h3&gt;
  
  
  5) Có lịch vệ sinh memory định kỳ
&lt;/h3&gt;

&lt;p&gt;Một hệ memory khỏe cần maintenance, không chỉ architecture.&lt;/p&gt;

&lt;p&gt;Tối thiểu nên có:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;hàng tuần: prune duplicate trong mem0/Postgres machine memory&lt;/li&gt;
&lt;li&gt;hàng tuần: distill log ngày sang durable memory&lt;/li&gt;
&lt;li&gt;hàng tháng: xóa preferences hoặc constraint đã lỗi thời&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nói ngắn gọn: &lt;strong&gt;memory cũng cần garbage collection kiểu vận hành&lt;/strong&gt;, không phải chỉ ở tầng database.&lt;/p&gt;

&lt;h2&gt;
  
  
  Khi nào cần tối ưu lại memory?
&lt;/h2&gt;

&lt;p&gt;Có 6 dấu hiệu khá rõ:&lt;/p&gt;

&lt;h3&gt;
  
  
  1) Agent bắt đầu trả lời đúng kiểu na ná đúng
&lt;/h3&gt;

&lt;p&gt;Nó không sai hẳn, nhưng dùng context cũ, lẫn note tạm với rule thật, hoặc nhắc lại một quyết định đã bị thay thế.&lt;/p&gt;

&lt;h3&gt;
  
  
  2) Cùng một fact xuất hiện ở nhiều file/layer
&lt;/h3&gt;

&lt;p&gt;Ví dụ một rule vừa nằm ở daily log, vừa ở mem0, vừa ở Postgres, vừa bị copy sang docs khác — nhưng nội dung hơi lệch nhau.&lt;/p&gt;

&lt;h3&gt;
  
  
  3) Retrieval ra quá nhiều kết quả có vẻ liên quan nhưng ít cái thật sự hữu ích
&lt;/h3&gt;

&lt;p&gt;Đây là triệu chứng điển hình của memory noise.&lt;/p&gt;

&lt;h3&gt;
  
  
  4) Multi-agent handoff hay bị trượt
&lt;/h3&gt;

&lt;p&gt;Agent sau không biết đâu là outcome thật, đâu là note nháp, đâu là blocker cũ đã giải quyết.&lt;/p&gt;

&lt;h3&gt;
  
  
  5) Chi phí context tăng lên rõ rệt
&lt;/h3&gt;

&lt;p&gt;Muốn làm một việc nhỏ mà phải đọc quá nhiều file, quá nhiều log, quá nhiều note lặp.&lt;/p&gt;

&lt;h3&gt;
  
  
  6) Sau vài tuần hoặc vài tháng làm việc liên tục
&lt;/h3&gt;

&lt;p&gt;Dù chưa thấy lỗi lớn, vẫn nên tối ưu theo chu kỳ. Đừng chờ đến lúc hệ nhớ sai mới dọn.&lt;/p&gt;




&lt;p&gt;Nếu anh em đang build OpenClaw hoặc một hệ AI agent tương tự, đừng xem memory là phần phụ. Nó chính là phần backend của continuity.&lt;/p&gt;

</description>
      <category>memory</category>
      <category>openclaw</category>
      <category>chiase</category>
    </item>
    <item>
      <title>Hướng dẫn sử dụng ClawTask cho người mới</title>
      <dc:creator>Duy Nghiện</dc:creator>
      <pubDate>Sat, 28 Mar 2026 13:38:27 +0000</pubDate>
      <link>https://ai.vnrom.net/duynghien/huong-dan-su-dung-clawtask-cho-nguoi-moi-hj1</link>
      <guid>https://ai.vnrom.net/duynghien/huong-dan-su-dung-clawtask-cho-nguoi-moi-hj1</guid>
      <description>&lt;p&gt;&lt;a href="https://clawtask.app" rel="noopener noreferrer"&gt;ClawTask&lt;/a&gt; là một nền tảng để điều phối công việc giữa con người và AI agents (như OpenClaw). Thay vì chỉ chat với AI, bạn có một workspace có task, subtasks, notebook, clarification, recurring tasks, tài liệu và dashboard để theo dõi toàn bộ vòng đời công việc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai.vnrom.net/uploads/articles/1mk9ld6vzemdqvd6oeuw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://ai.vnrom.net/uploads/articles/1mk9ld6vzemdqvd6oeuw.png" alt=" " width="1920" height="1018"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tóm gọn lại thì nó là:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Con người tạo và quản lý task trong web dashboard&lt;/li&gt;
&lt;li&gt;Agent nhận và xử lý task qua MCP/API&lt;/li&gt;
&lt;li&gt;Khi bị thiếu dữ liệu, agent tạo clarification để hỏi lại người vận hành&lt;/li&gt;
&lt;li&gt;Output cuối, ghi chú trung gian và lịch sử cập nhật đều được lưu lại&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ClawTask phù hợp nhất khi bạn cần:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;giao việc cho nhiều AI agents song song&lt;/li&gt;
&lt;li&gt;theo dõi trạng thái công việc rõ ràng&lt;/li&gt;
&lt;li&gt;giữ lại notebook, note và report&lt;/li&gt;
&lt;li&gt;vẫn có human-in-the-loop thay vì để agent tự đoán&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Nhìn nhanh các khu vực chính
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://ai.vnrom.net/uploads/articles/zu0qdri3201cmkkfph68.png" class="article-body-image-wrapper"&gt;&lt;img src="https://ai.vnrom.net/uploads/articles/zu0qdri3201cmkkfph68.png" alt=" " width="4064" height="2154"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Trong dashboard hiện tại, bạn sẽ thấy các mục sau:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Tasks&lt;/code&gt;: bảng công việc chính, xem theo Kanban hoặc list, tạo task, mở task detail, quản lý recurring tasks&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Agents&lt;/code&gt;: tạo agent, xem trạng thái agent, lấy API key, mở onboarding bundle&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Notebooks&lt;/code&gt;: nơi lưu ghi chú Markdown, research, kết quả trung gian, tri thức liên quan task&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Documents&lt;/code&gt;: hướng dẫn cho agent&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Settings&lt;/code&gt;: cài đặt người dùng&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Luồng bắt đầu cho người mới
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Tạo tài khoản
&lt;/h3&gt;

&lt;p&gt;Vào trang &lt;a href="https://clawtask.app/auth/signup" rel="noopener noreferrer"&gt;Sign up&lt;/a&gt;, nhập họ tên, email, mật khẩu &amp;gt; sau đó mở email và bấm link verify&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai.vnrom.net/uploads/articles/533dt1x6ejkaauq2s6cx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://ai.vnrom.net/uploads/articles/533dt1x6ejkaauq2s6cx.png" alt=" " width="4064" height="2154"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nếu không thấy email:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;kiểm tra spam&lt;/li&gt;
&lt;li&gt;vào &lt;a href="https://clawtask.app/auth/verify-email" rel="noopener noreferrer"&gt;https://clawtask.app/auth/verify-email&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;nhập email để gửi lại verification link&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Đăng nhập
&lt;/h3&gt;

&lt;p&gt;Sau khi verify email, đăng nhập tại trang &lt;a href="https://clawtask.app/auth/login" rel="noopener noreferrer"&gt;Login&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Việc cần làm sau khi đăng nhập lần đầu
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Vào Settings và điền time zone đúng của bạn (mặc định là UTC), vì nó ảnh hưởng việc lên lịch task&lt;/li&gt;
&lt;li&gt;Thêm OpenClaw (hoặc các họ hàng nhà Claw đều được)&lt;/li&gt;
&lt;li&gt;Lưu lại API Key khi thêm OpenClaw&lt;/li&gt;
&lt;li&gt;Thêm API Key vào &lt;code&gt;.env&lt;/code&gt; runtime của OpenClaw với format: &lt;code&gt;CLAWTASK_API_KEY=ct_xxxxxxxxxxxxxxxx&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Gửi bundle cho OpenClaw theo thứ tự như hướng dẫn: SETUP &amp;gt; SKILL CORE &amp;gt; SKILL EXTENDED &amp;gt; CRON &amp;gt; POLICY&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://ai.vnrom.net/uploads/articles/vsltds2z6u9w7ktchza3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://ai.vnrom.net/uploads/articles/vsltds2z6u9w7ktchza3.png" alt=" " width="4064" height="2154"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;OpenClaw sẽ hỏi bạn thêm 1 vài thông tin để nó setup và xong thì có thể tạo task và chờ nó vào thực hiện.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cách dùng Tasks
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;Tasks&lt;/code&gt; là nơi bạn sẽ dùng nhiều nhất.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai.vnrom.net/uploads/articles/vb4yo2a025m0imzo4hsy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://ai.vnrom.net/uploads/articles/vb4yo2a025m0imzo4hsy.png" alt=" " width="4064" height="2154"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Chế độ xem
&lt;/h3&gt;

&lt;p&gt;Trang Tasks hiện hỗ trợ ít nhất 2 kiểu xem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;kanban&lt;/code&gt;: hợp khi theo dõi luồng công việc theo status&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;list&lt;/code&gt;: hợp khi cần tìm, lọc và đọc nhanh&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dashboard có các bộ lọc cơ bản:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;search theo title hoặc description&lt;/li&gt;
&lt;li&gt;lọc theo assigned agent&lt;/li&gt;
&lt;li&gt;lọc theo priority&lt;/li&gt;
&lt;li&gt;lọc theo tag&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Vòng đời task
&lt;/h3&gt;

&lt;p&gt;ClawTask sử dụng vòng đời có trạng thái rõ ràng:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;todo&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;in_progress&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;in_review&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;blocked&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;done&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Một vài điểm cần hiểu đúng:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;report&lt;/code&gt; là output cuối khi task đã done&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;statusReason&lt;/code&gt; là lý do hoặc trạng thái hiện tại&lt;/li&gt;
&lt;li&gt;nếu task bị blocked đúng nghĩa, luồng đúng là clarification, không phải sửa status tay cho có&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Tạo task tốt
&lt;/h3&gt;

&lt;p&gt;Một task tốt trong ClawTask nên có:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;title rõ ràng&lt;/li&gt;
&lt;li&gt;mô tả context&lt;/li&gt;
&lt;li&gt;expected output cụ thể&lt;/li&gt;
&lt;li&gt;assigned agent nếu đã biết ai sẽ xử lý&lt;/li&gt;
&lt;li&gt;tags nếu cần lọc hoặc tìm lại sau này&lt;/li&gt;
&lt;li&gt;due date nếu bạn chỉ cần deadline&lt;/li&gt;
&lt;li&gt;scheduled time nếu bạn muốn đặt lịch để agent thực hiện&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Phân biệt quan trọng:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;scheduledFor&lt;/code&gt;: cổng thực thi, agent chưa nhặt task nếu chưa đến giờ&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;dueDate&lt;/code&gt;: chỉ là deadline metadata&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Clarification là gì
&lt;/h3&gt;

&lt;p&gt;Khi agent không đủ dữ liệu để làm tiếp, nó sẽ tạo clarification thay vì đoán.&lt;/p&gt;

&lt;p&gt;Với người vận hành, điều này có nghĩa:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;task đang bị dừng có chủ đích&lt;/li&gt;
&lt;li&gt;bạn cần vào task và trả lời câu hỏi đó&lt;/li&gt;
&lt;li&gt;sau khi resolve clarification, agent mới tiếp tục từ checkpoint trước đó&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hãy xem clarification như primitive chính của human-in-the-loop, không phải tính năng phụ.&lt;/p&gt;

&lt;h3&gt;
  
  
  Notebook và task
&lt;/h3&gt;

&lt;p&gt;Một số task yêu cầu hoặc khuyến nghị có notebook.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai.vnrom.net/uploads/articles/2zadxv3nzh175i6a1tc9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://ai.vnrom.net/uploads/articles/2zadxv3nzh175i6a1tc9.png" alt=" " width="1920" height="1018"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Notebook được dùng để lưu:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;research notes&lt;/li&gt;
&lt;li&gt;phân tích trung gian&lt;/li&gt;
&lt;li&gt;draft outline&lt;/li&gt;
&lt;li&gt;cách agent xử lý vấn đề&lt;/li&gt;
&lt;li&gt;tri thức có thể tái sử dụng&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nếu task có  bật Requires Notebook hoặc ClawTask đánh giá dựa trên các tiêu chí như tiêu đề, mô tả, sub-task thì cũng sẽ gửi một gợi ý cho agent, agent có thể bị chặn complete task cho đến khi có notebook.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cách dùng Agents
&lt;/h2&gt;

&lt;p&gt;Khu &lt;code&gt;Agents&lt;/code&gt; dùng để quản lý workforce AI của bạn.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai.vnrom.net/uploads/articles/lpxefyswkyc0prbdes1p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://ai.vnrom.net/uploads/articles/lpxefyswkyc0prbdes1p.png" alt=" " width="4064" height="2154"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Bạn có thể làm gì ở đây
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;tạo agent mới&lt;/li&gt;
&lt;li&gt;xem online, offline, sleeping&lt;/li&gt;
&lt;li&gt;xem active tasks của từng agent&lt;/li&gt;
&lt;li&gt;tạo API key&lt;/li&gt;
&lt;li&gt;mở thông tin chi tiết từng agent&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Điều cần hiểu về API key
&lt;/h3&gt;

&lt;p&gt;Khi tạo agent hoặc tạo key mới:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API key chỉ hiển thị một lần&lt;/li&gt;
&lt;li&gt;hệ thống lưu hash và prefix, không lưu raw key để đọc lại sau&lt;/li&gt;
&lt;li&gt;key mặc định có hạn sử dụng 180 ngày&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vậy nên ngay lúc tạo key:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;lưu vào secret manager&lt;/li&gt;
&lt;li&gt;hoặc truyền vào môi trường runtime của worker (.env)&lt;/li&gt;
&lt;li&gt;đừng copy vào docs công khai hay git&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Agent kết nối vào đâu
&lt;/h3&gt;

&lt;p&gt;ClawTask hỗ trợ:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;REST base: &lt;a href="https://mcp.clawtask.app/mcp" rel="noopener noreferrer"&gt;https://mcp.clawtask.app/mcp&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agent docs runtime cần lấy từ:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;POST https://mcp.clawtask.app/mcp/get-docs&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Đây là source of truth cho contract hiện tại. Nếu worker có hành vi lạ, việc đầu tiên nên kiểm tra là bundle hoặc docs đã cũ hay chưa.&lt;/p&gt;

&lt;h3&gt;
  
  
  Luồng agent cơ bản
&lt;/h3&gt;

&lt;p&gt;Luồng chuẩn cho một agent bên ngoài:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;POST /mcp/register&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /mcp/heartbeat&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /mcp/list-tasks&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /mcp/get-task&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;đổi status sang &lt;code&gt;in_progress&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;thêm note, tạo notebook nếu cần&lt;/li&gt;
&lt;li&gt;tạo clarification nếu bị thiếu dữ liệu&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;POST /mcp/complete-task&lt;/code&gt; khi xong&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Nếu bạn là user mới chưa viết worker ngay, chỉ cần nhớ:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;dashboard là nơi giao việc và theo dõi&lt;/li&gt;
&lt;li&gt;agent là worker bên ngoài kết nối qua MCP/API&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Notebooks dùng khi nào
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;Notebooks&lt;/code&gt; không chỉ là chỗ ghi chú tay. Đây là workspace lưu tri thức và output trung gian.&lt;/p&gt;

&lt;p&gt;Nên dùng notebook khi:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;task có nghiên cứu&lt;/li&gt;
&lt;li&gt;cần lưu reasoning hoặc kết quả trung gian&lt;/li&gt;
&lt;li&gt;có tài liệu cần tham chiếu lại&lt;/li&gt;
&lt;li&gt;output cần dùng lại cho task khác&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Không nên spam notebook cho các task quá nhỏ, đổi tên file, fix formatting, hay việc thuần cơ học.&lt;/p&gt;

&lt;h2&gt;
  
  
  Những lỗi người mới hay gặp
&lt;/h2&gt;

&lt;h3&gt;
  
  
  "Đăng ký xong mà chưa vào được dashboard"
&lt;/h3&gt;

&lt;p&gt;Thường là chưa verify email. Vào &lt;code&gt;Verify Email&lt;/code&gt; và gửi lại link.&lt;/p&gt;

&lt;h3&gt;
  
  
  "Quên lưu API key"
&lt;/h3&gt;

&lt;p&gt;Nếu đã đóng popup rồi, bạn không đọc lại raw key được. Tạo key mới.&lt;/p&gt;

&lt;h3&gt;
  
  
  "Agent không nhận task"
&lt;/h3&gt;

&lt;p&gt;Kiểm tra:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;task đã được assign đúng agent chưa&lt;/li&gt;
&lt;li&gt;task có bị &lt;code&gt;scheduledFor&lt;/code&gt; ở tương lai không&lt;/li&gt;
&lt;li&gt;agent đã &lt;code&gt;register/heartbeat&lt;/code&gt; chưa&lt;/li&gt;
&lt;li&gt;agent đang gọi đúng &lt;code&gt;/mcp/*&lt;/code&gt; hoặc &lt;code&gt;/api/mcp&lt;/code&gt; chưa&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  "Task bị blocked mà không thấy output"
&lt;/h3&gt;

&lt;p&gt;Hãy mở clarification. Agent đang đợi trả lời, không phải đang tự fail.&lt;/p&gt;




&lt;p&gt;Nếu bạn mới vào ClawTask, hãy nhớ 4 ý chính:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;Tasks&lt;/code&gt; là trung tâm điều phối&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Agents&lt;/code&gt; là nơi cấp workforce và key&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Notebooks&lt;/code&gt; và &lt;code&gt;Clarifications&lt;/code&gt; là hai cơ chế giúp workflow AI không bị mù&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Documents&lt;/code&gt; là nguồn hướng dẫn chính cho workers và vận hành&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;ClawTask không cố gắng trở thành một chat app tốt hơn. Nó giải bài toán khác: biến AI agents thành một đội worker có trạng thái, có quy trình, có checkpoint và có thể vận hành nghiêm túc.&lt;/p&gt;

</description>
      <category>clawtask</category>
      <category>openclaw</category>
      <category>ai</category>
      <category>agent</category>
    </item>
    <item>
      <title>Build một workflow deep research thực tế với OpenClaw, Codex multi-agents và ACP</title>
      <dc:creator>Duy Nghiện</dc:creator>
      <pubDate>Thu, 19 Mar 2026 17:55:12 +0000</pubDate>
      <link>https://ai.vnrom.net/duynghien/build-mot-workflow-deep-research-thuc-te-voi-openclaw-codex-multi-agents-va-acp-1193</link>
      <guid>https://ai.vnrom.net/duynghien/build-mot-workflow-deep-research-thuc-te-voi-openclaw-codex-multi-agents-va-acp-1193</guid>
      <description>&lt;p&gt;Mấy hôm nay chắc mọi người đã từng thấy ít nhất một post hay thông tin đâu đó nói về việc Codex đã hỗ trợ multi agents trong coding. Việc một agent coding hỗ trợ multi agents không phải mới vì trước đó Claude Code, OpenCode đã hỗ trợ rồi.&lt;/p&gt;

&lt;p&gt;Tuy nhiên, việc nhiều anh em (trong đó có mình) đang sử dụng Codex làm nguồn sử dụng token cho OpenClaw, và vì giá tài khoản ChatGPT Plus người thị trường chợ đen đang rất rẻ, anh em bào rất nhiệt tình. Vậy thì đang sử dụng Codex, chi phí không còn là rào cản và nó lại hỗ trợ multi agents, thì ngoài coding ra còn dùng nó để làm gì? Mình nghĩ ngay đến việc áp dụng vào các công việc thường ngày của mình.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vì sao mình build skill này
&lt;/h3&gt;

&lt;p&gt;Thứ mình cần không đơn giản là một AI nghiên cứu sâu. Thứ mình cần là một &lt;strong&gt;workflow deep research có thể dùng đi dùng lại&lt;/strong&gt;, gắn được vào hệ thống giao việc (&lt;a href="https://www.facebook.com/share/p/18NzQBL8ww/" rel="noopener noreferrer"&gt;ClawTask&lt;/a&gt;), bớt copy-paste thủ công, và cuối cùng vẫn trả ra đúng thứ mình cần: bài blog, memo, outline hay report.&lt;/p&gt;

&lt;p&gt;Lý do rất đơn giản. Khi dùng deep research trên các web chat như Perplexity, ChatGPT, Gemini hay GenSpark, kết quả thường đủ tốt để dùng, nhưng quy trình lại rất tốn tay. Anh em phải:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;copy prompt qua lại giữa các nền tảng&lt;/li&gt;
&lt;li&gt;gom kết quả từ nhiều nơi&lt;/li&gt;
&lt;li&gt;bỏ bớt phần nội dung thừa hoặc các đoạn trích dẫn link nguồn.&lt;/li&gt;
&lt;li&gt;sửa lại định dạng markdown&lt;/li&gt;
&lt;li&gt;chỉnh heading, độ dài, giọng điệu&lt;/li&gt;
&lt;li&gt;rồi mới đưa về một artifact cuối có thể dùng được&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cái đau ở đây không nằm ở một câu trả lời đơn lẻ. Nó nằm ở việc &lt;strong&gt;không thể automation hoàn toàn&lt;/strong&gt; nếu cứ bám vào web chat UI.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vì sao thời điểm này mình mới làm nó?
&lt;/h3&gt;

&lt;p&gt;Có vài điều khiến chuyện này đáng build ngay bây giờ.&lt;/p&gt;

&lt;h4&gt;
  
  
  Codex vừa có multi-agents
&lt;/h4&gt;

&lt;p&gt;Ngày 16/03/2026, Codex bắt đầu hỗ trợ multi-agents/subagents. Đây là khác biệt lớn. Trước đó, dù Codex có sẵn tính năng research, anh em có thể dùng model để research, nhưng rất khó chia bài toán ra thành nhiều nhánh rồi gom lại một cách tử tế trong cùng một workflow.&lt;/p&gt;

&lt;p&gt;Khi multi-agents xuất hiện, cách nghĩ thay đổi hẳn. Bây giờ anh em có thể để một planner bẻ đề bài, một nhóm researcher đi tìm nguồn, một skeptic lật ngược lại luận điểm, rồi một writer tổng hợp ra artifact cuối. Nghĩa là deep research không còn là một model cố nhớ mọi thứ trong một lần chạy, mà thành một pipeline có vai trò rõ ràng hơn.&lt;/p&gt;

&lt;h4&gt;
  
  
  ChatGPT Plus đang là một lợi thế
&lt;/h4&gt;

&lt;p&gt;Một lý do khác rất thực tế: giá tài khoản ChatGPT Plus ở ngoài chợ đen hiện tại khá rẻ. Mình không bàn chuyện đạo đức mua bán tài khoản ở đây; cái mình đang nói là về động lực kinh tế của người dùng thật. Khi chi phí truy cập Codex đủ dễ chịu, nhiều người bắt đầu nghĩ tới việc tận dụng nó như một công cụ làm việc nặng, không chỉ là chat vui, hay coding, giống như cách nhiều anh em khác đang tận dụng Antigravity vào những việc rất hay, không chỉ còn là coding.&lt;/p&gt;

&lt;p&gt;Nếu anh em đã có đang dùng Codex, thì chuyện bào token để làm research, so sánh nguồn, chạy nhiều pass kiểm tra, hoặc dùng subagents song song trở nên hợp lý hơn rất nhiều so với trước.&lt;/p&gt;

&lt;h4&gt;
  
  
  OpenClaw đã có ACP (&lt;code&gt;acpx&lt;/code&gt;)
&lt;/h4&gt;

&lt;p&gt;Đây là mảnh ghép mà mình thấy nhiều người bỏ qua. Có model mạnh chưa đủ. Muốn biến nó thành workflow, anh em cần một lớp giao tiếp như người dùng thật giữa agent với agent hoặc giữa tool với agent.&lt;/p&gt;

&lt;p&gt;OpenClaw hỗ trợ &lt;a href="https://docs.openclaw.ai/cli/acp" rel="noopener noreferrer"&gt;ACP&lt;/a&gt; (hay &lt;a href="https://github.com/openclaw/acpx" rel="noopener noreferrer"&gt;acpx&lt;/a&gt;) cho phép gọi coding/research agents theo kiểu headless thay vì bới PTY hay scrape terminal output. Cái này quan trọng vì nó mở đường cho một workflow automation sạch hơn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tạo session&lt;/li&gt;
&lt;li&gt;chạy one-shot exec&lt;/li&gt;
&lt;li&gt;chia nhánh theo session/name&lt;/li&gt;
&lt;li&gt;queue follow-up&lt;/li&gt;
&lt;li&gt;kiểm tra trạng thái&lt;/li&gt;
&lt;li&gt;nối vào pipeline tasking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Khi có &lt;a href="https://vnrom.net/2026/03/openclaw-acp-giai-phap-cli-ket-noi-ai-agents-voi-ide-va-cong-cu-ngoai-vi/" rel="noopener noreferrer"&gt;ACP&lt;/a&gt;, deep research bắt đầu giống một hệ thống làm việc hơn là một tab chat.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vấn đề thật sự của deep research trên web chat
&lt;/h3&gt;

&lt;p&gt;Nhiều người nhìn vào mấy công cụ như Perplexity, ChatGPT Deep Research, Gemini hay GenSpark rồi nghĩ câu chuyện chỉ là “tool nào trả lời hay hơn”. Theo mình, đó là nhìn thiếu một nửa.&lt;/p&gt;

&lt;p&gt;Nửa còn lại là rào cản thao tác.&lt;/p&gt;

&lt;p&gt;Một ví dụ như này: anh em muốn viết một bài blog chuyên sâu. Anh em có thể research trên Perplexity để lấy nguồn, dùng Gemini để xem nó cấu trúc nội dung thế nào, dùng ChatGPT để viết lại câu chữ, rồi mang qua một chỗ khác để format markdown. Cách này vẫn ra kết quả, nhưng nó có mấy vấn đề:&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Không có single workflow rõ ràng
&lt;/h4&gt;

&lt;p&gt;Mỗi nền tảng là một hòn đảo. Anh em phải tự nối chúng lại bằng tay.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Khó tái sử dụng
&lt;/h4&gt;

&lt;p&gt;Hôm nay anh em làm được một bài. Mai muốn lặp lại với chủ đề khác, anh em lại phải lặp lại cả đống thao tác tương tự.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Citation và nội dung thừa
&lt;/h4&gt;

&lt;p&gt;Web chat hay nhả ra rất nhiều thứ “trông có vẻ hữu ích” nhưng không phải cái anh em cần cho output cuối. anh em lại phải lọc bằng tay.&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Khó automation
&lt;/h4&gt;

&lt;p&gt;Ngay cả khi kết quả tốt, việc nối các bước lại thành một pipeline gần như vẫn thủ công. Không dễ cắm nó vào dashboard giao việc, chia subtask hay build flow nhiều bước tử tế.&lt;/p&gt;

&lt;h3&gt;
  
  
  Skill &lt;code&gt;codex-deep-research&lt;/code&gt; giải bài toán gì
&lt;/h3&gt;

&lt;p&gt;Skill này được mình build trong OpenClaw không phải để cạnh tranh trực diện với Perplexity hay GenSpark về việc ai trả lời thông minh hơn. Nó giải một bài khác: &lt;strong&gt;biến deep research thành workflow có thể giao việc và tái sử dụng&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Cốt lõi của skill này là tách pipeline thành nhiều lớp.&lt;/p&gt;

&lt;h4&gt;
  
  
  Lớp 1: Research engine
&lt;/h4&gt;

&lt;p&gt;Phần này lo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;planner để bẻ đề bài thành streams&lt;/li&gt;
&lt;li&gt;researcher để gom facts và nguồn&lt;/li&gt;
&lt;li&gt;skeptic pass để tìm chỗ yếu&lt;/li&gt;
&lt;li&gt;source grading để chấm độ mạnh yếu của nguồn&lt;/li&gt;
&lt;li&gt;synthesis để hợp nhất findings&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nói ngắn, nó cố làm phần “nghiên cứu sâu” cho ra hình hài rõ ràng thay vì một đống notes rời rạc.&lt;/p&gt;

&lt;h4&gt;
  
  
  Lớp 2: Artifact-aware output
&lt;/h4&gt;

&lt;p&gt;Đây là phần mình thấy quan trọng nhất. Skill không mặc định coi deep research = research report. Nó biết rằng output cuối phải bám đúng yêu cầu của user.&lt;/p&gt;

&lt;p&gt;Nếu user muốn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;blog post -&amp;gt; trả blog post&lt;/li&gt;
&lt;li&gt;memo -&amp;gt; trả memo&lt;/li&gt;
&lt;li&gt;outline -&amp;gt; trả outline&lt;/li&gt;
&lt;li&gt;report -&amp;gt; trả report&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Research là động cơ, artifact mới là thứ được giao.&lt;/p&gt;

&lt;h4&gt;
  
  
  Lớp 3: Preset + compliance
&lt;/h4&gt;

&lt;p&gt;Sau vài vòng test, skill được nâng thêm preset theo loại output như:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;blog/article&lt;/li&gt;
&lt;li&gt;memo&lt;/li&gt;
&lt;li&gt;outline&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;và thêm final compliance/polish pass để soát:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;word count&lt;/li&gt;
&lt;li&gt;heading rules&lt;/li&gt;
&lt;li&gt;markdown hygiene&lt;/li&gt;
&lt;li&gt;prose smoothness&lt;/li&gt;
&lt;li&gt;việc research scaffolding có bị lộ ra không&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Đây là phần giúp giảm đáng kể chuyện kết quả research tốt nhưng thành phẩm cuối còn phải sửa tay quá nhiều.&lt;/p&gt;

&lt;p&gt;Sau khi chạy skill research này thì mình có đem bài viết qua cho Gemini, Grok và ChatGPT chấm điểm, thì bọn nó tự nâng bi nhau như này :))&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai.vnrom.net/uploads/articles/i7j2j1dkk6vyquqeqf61.png" class="article-body-image-wrapper"&gt;&lt;img src="https://ai.vnrom.net/uploads/articles/i7j2j1dkk6vyquqeqf61.png" alt=" " width="1620" height="684"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai.vnrom.net/uploads/articles/3dsbgdj6qj1l6gol8m4g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://ai.vnrom.net/uploads/articles/3dsbgdj6qj1l6gol8m4g.png" alt=" " width="1310" height="596"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai.vnrom.net/uploads/articles/96z39p3bdt6ivvxvacys.png" class="article-body-image-wrapper"&gt;&lt;img src="https://ai.vnrom.net/uploads/articles/96z39p3bdt6ivvxvacys.png" alt=" " width="1760" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Tại sao OpenClaw + ACP lại hợp bài này
&lt;/h3&gt;

&lt;p&gt;Nếu chỉ muốn một câu trả lời sâu hơn, anh em có thể ở lại web chat. Nhưng nếu muốn một hệ thống giao việc thực tế, OpenClaw có lợi thế riêng.&lt;/p&gt;

&lt;p&gt;Với ACP (&lt;code&gt;acpx&lt;/code&gt;), anh em có thể nghĩ về deep research như một task execution layer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;nhận task thô&lt;/li&gt;
&lt;li&gt;biến thành spec&lt;/li&gt;
&lt;li&gt;gọi agent research&lt;/li&gt;
&lt;li&gt;giữ context theo session&lt;/li&gt;
&lt;li&gt;tách các pass khác nhau&lt;/li&gt;
&lt;li&gt;trả artifact cuối&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Điều này cực hợp nếu anh em đang có một dashboard kiểu ClawTask. Khi đó, deep research không còn là một thứ “ngồi chat bằng tay”, mà là một node trong pipeline công việc.&lt;/p&gt;

&lt;h3&gt;
  
  
  Skill này có thay được web chat không?
&lt;/h3&gt;

&lt;p&gt;Không hoàn toàn. Mình không nghĩ nên thần thánh hóa skill hay agent workflow. Có những lúc mở Perplexity hay Gemini rồi hỏi nhanh một câu vẫn tiện hơn hẳn. Web chat vẫn có chỗ đứng, nhất là cho exploratory thinking và câu hỏi ngắn.&lt;/p&gt;

&lt;p&gt;Nhưng nếu anh em đang làm những thứ lặp lại như:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;viết bài blog kỹ thuật&lt;/li&gt;
&lt;li&gt;viết memo nghiên cứu&lt;/li&gt;
&lt;li&gt;gom nguồn cho quyết định sản phẩm&lt;/li&gt;
&lt;li&gt;tạo brief cho bài dài&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;thì skill riêng bắt đầu đáng giá hơn. Không phải vì nó thông minh hơn mọi web chat, mà vì nó phù hợp cho automation với agent như OpenClaw.&lt;/p&gt;

&lt;h3&gt;
  
  
  Câu chuyện thật sự đằng sau skill này
&lt;/h3&gt;

&lt;p&gt;Nếu nói ngắn gọn, mình build &lt;code&gt;codex-deep-research&lt;/code&gt; vì mình chán phải sống trong vòng lặp:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;research ở chỗ này&lt;/li&gt;
&lt;li&gt;copy qua chỗ khác&lt;/li&gt;
&lt;li&gt;lọc lại nội dung&lt;/li&gt;
&lt;li&gt;sửa format&lt;/li&gt;
&lt;li&gt;rồi mới ra được thành phẩm&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Khi Codex có multi-agents, khi ChatGPT Plus đủ dễ tiếp cận, và khi OpenClaw đã có ACP/acpx, việc system hóa thứ đó thành một workflow bắt đầu đáng làm hơn hẳn.&lt;/p&gt;

&lt;p&gt;Thứ mình muốn không phải “thêm một chat tool”. Mình muốn một pipeline mà khi có task mới, mình có thể ném nó vào, để hệ thống nghiên cứu, kiểm chứng, rồi trả ra đúng thứ cần giao. Đó là lý do skill này tồn tại.&lt;/p&gt;




&lt;p&gt;&lt;code&gt;codex-deep-research&lt;/code&gt; không phải một cái gì đấy mới. Nhưng nó giải một vấn đề rất thật: làm sao đưa deep research ra khỏi tình trạng chat thủ công và biến nó thành một workflow có thể tái sử dụng.&lt;/p&gt;

&lt;p&gt;Nếu anh em cũng đang “bào token” từ Codex, có nhu cầu research nhiều nguồn để viết bài, làm nghiên cứu, tạo knowledge cho agent,... và muốn gắn chuyện đó vào hệ thống giao việc kiểu ClawTask, thì đây là lúc hợp lý để làm nghiêm túc. Không phải vì công nghệ bỗng nhiên hoàn hảo, mà vì cuối cùng các mảnh ghép cần thiết đã bắt đầu đủ mặt trên bàn.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Anh em cần tham khảo skill thì tải ở đây nhé:&lt;br&gt;
&lt;a href="https://romhub.io/OpenClaw/skills/codex-deep-research" rel="noopener noreferrer"&gt;https://romhub.io/OpenClaw/skills/codex-deep-research&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>openclaw</category>
      <category>codex</category>
      <category>deepresearch</category>
      <category>acp</category>
    </item>
    <item>
      <title>ClawTask: bảng điều phối công việc cho đội OpenClaw</title>
      <dc:creator>Duy Nghiện</dc:creator>
      <pubDate>Wed, 18 Mar 2026 06:11:31 +0000</pubDate>
      <link>https://ai.vnrom.net/duynghien/clawtask-bang-dieu-phoi-cong-viec-cho-doi-openclaw-3495</link>
      <guid>https://ai.vnrom.net/duynghien/clawtask-bang-dieu-phoi-cong-viec-cho-doi-openclaw-3495</guid>
      <description>&lt;p&gt;Hello anh em&lt;/p&gt;

&lt;p&gt;Mình muốn giới thiệu &lt;a href="https://clawtask.app" rel="noopener noreferrer"&gt;ClawTask&lt;/a&gt;, một web app task management dành riêng cho workflow &lt;strong&gt;AI agent + automation&lt;/strong&gt;, không phải kiểu Kanban chung chung rồi gắn AI vào cho có.&lt;/p&gt;

&lt;p&gt;Ý tưởng của ClawTask khá đơn giản:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Con người tạo task, chia subtask, gán agent&lt;/li&gt;
&lt;li&gt;Agent nhận việc qua &lt;strong&gt;MCP/API&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Trong lúc chạy, agent có thể cập nhật tiến độ, ghi note, tạo notebook&lt;/li&gt;
&lt;li&gt;Nếu thiếu input, agent chủ động tạo &lt;strong&gt;clarification&lt;/strong&gt; để hỏi lại người vận hành&lt;/li&gt;
&lt;li&gt;Khi đủ dữ liệu thì tiếp tục chạy, thay vì fail im lặng hoặc đoán bừa&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nói ngắn: đây là một lớp điều phối nằm giữa &lt;strong&gt;dashboard của người vận hành&lt;/strong&gt; và &lt;strong&gt;đội agent tự động&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai.vnrom.net/uploads/articles/e36lq67306bbe4bvrtl9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://ai.vnrom.net/uploads/articles/e36lq67306bbe4bvrtl9.png" alt="clawtask dashboard" width="4064" height="2070"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Vấn đề mình thấy ở đa số workflow AI hiện tại
&lt;/h2&gt;

&lt;p&gt;Hiện giờ nhiều team đang chạy AI theo 3 kiểu:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Chat tay trong ChatGPT/Claude rồi copy-paste kết quả&lt;/li&gt;
&lt;li&gt;Dùng n8n/Make/Zapier cho automation, nhưng không quản lý được task loop phức tạp&lt;/li&gt;
&lt;li&gt;Tự build agent runner, nhưng phần dashboard và human-in-the-loop rất yếu&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Kết quả là:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agent chạy nhưng khó biết đang kẹt ở đâu&lt;/li&gt;
&lt;li&gt;Task dài dễ mất context&lt;/li&gt;
&lt;li&gt;Không có chỗ chuẩn để agent hỏi lại khi thiếu yêu cầu&lt;/li&gt;
&lt;li&gt;Khó giao nhiều việc song song cho nhiều agent khác nhau&lt;/li&gt;
&lt;li&gt;Lịch sử làm việc, notebook, tiến độ, subtasks bị tản ra nhiều nơi&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ClawTask được làm để xử lý đúng mấy điểm đó.&lt;/p&gt;

&lt;h2&gt;
  
  
  ClawTask là gì
&lt;/h2&gt;

&lt;p&gt;ClawTask là một nền tảng &lt;strong&gt;AI agent task orchestration&lt;/strong&gt; gồm:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Web dashboard&lt;/strong&gt; để con người theo dõi toàn bộ board&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP&lt;/strong&gt; để agent kết nối&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kanban UI&lt;/strong&gt; để kéo thả, gán việc, theo dõi trạng thái&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notebook layer&lt;/strong&gt; để agent lưu markdown, ghi chép, output trung gian&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clarification flow&lt;/strong&gt; để agent dừng đúng lúc và hỏi người dùng khi bị thiếu thông tin&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recurring tasks&lt;/strong&gt; cho các việc lặp như check server, báo cáo định kỳ, audit, spy, crawl&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart task suggestions&lt;/strong&gt; để gợi ý subtasks từ lịch sử/template, có thể nâng cấp bằng provider + pgvector&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Điểm mình thấy đáng giá nhất là ClawTask không xem agent như một chat box. Nó xem agent là một &lt;strong&gt;worker có trạng thái&lt;/strong&gt;, có vòng đời task rõ ràng.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai.vnrom.net/uploads/articles/kict650jktjt3ht7qoth.png" class="article-body-image-wrapper"&gt;&lt;img src="https://ai.vnrom.net/uploads/articles/kict650jktjt3ht7qoth.png" alt="clawtask agents" width="4064" height="1780"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Vì sao mình nghĩ nó hợp với cộng đồng AI &amp;amp; Automation
&lt;/h2&gt;

&lt;p&gt;Nếu anh em đang build:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;đội content agent&lt;/li&gt;
&lt;li&gt;team SEO tự động&lt;/li&gt;
&lt;li&gt;research agent&lt;/li&gt;
&lt;li&gt;coding agent nội bộ&lt;/li&gt;
&lt;li&gt;ops bot / monitoring bot&lt;/li&gt;
&lt;li&gt;quy trình review, báo cáo, audit lặp lại&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;thì ClawTask hợp hơn Trello/Notion/Jira ở chỗ nó có sẵn tư duy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;task do người tạo&lt;/li&gt;
&lt;li&gt;task do agent xử lý&lt;/li&gt;
&lt;li&gt;cần checkpoint rõ&lt;/li&gt;
&lt;li&gt;cần hỏi lại khi thiếu dữ liệu&lt;/li&gt;
&lt;li&gt;cần lưu output dạng notebook&lt;/li&gt;
&lt;li&gt;cần API contract sạch để worker ngoài hệ thống vẫn chạy được&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nó không cố thay hết stack automation. Nó đứng ở lớp điều phối task cho agent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Một vài điểm kỹ thuật đáng chú ý
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. MCP + REST đều có
&lt;/h3&gt;

&lt;p&gt;Agent có thể giao tiếp qua:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;POST /mcp/*&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;streamable RPC qua &lt;code&gt;/api/mcp&lt;/code&gt; hoặc &lt;code&gt;/mcp/rpc&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tức là có thể dùng worker tự viết, hoặc client theo chuẩn MCP.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Clarification là tính năng rất thực tế
&lt;/h3&gt;

&lt;p&gt;Đây là điểm mình thích nhất.&lt;/p&gt;

&lt;p&gt;Trong nhiều hệ thống AI, khi prompt thiếu dữ liệu thì agent hoặc đoán, hoặc fail. ClawTask cho agent tạo một clarification riêng, gắn với task, rồi dừng branch đó cho tới khi người dùng trả lời.&lt;/p&gt;

&lt;p&gt;Cách này làm workflow an toàn hơn nhiều cho các job:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cần quyết định nghiệp vụ&lt;/li&gt;
&lt;li&gt;thiếu file đầu vào&lt;/li&gt;
&lt;li&gt;thiếu yêu cầu brand/content/code&lt;/li&gt;
&lt;li&gt;cần user approve trước khi chạy tiếp&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Notebook không phải đồ trang trí
&lt;/h3&gt;

&lt;p&gt;Agent có thể tạo và cập nhật notebook theo task scope. Với các job dài như research, content outline, audit, code analysis, notebook giúp giữ lại reasoning và output trung gian thay vì chỉ còn một cục final result.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai.vnrom.net/uploads/articles/o5ozl6ke7ihnzg7ybyaz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://ai.vnrom.net/uploads/articles/o5ozl6ke7ihnzg7ybyaz.png" alt="clawtask notebooks" width="4064" height="2168"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Recurring task hữu ích cho ops
&lt;/h3&gt;

&lt;p&gt;Các job như:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;check server mỗi ngày&lt;/li&gt;
&lt;li&gt;tạo báo cáo 24h&lt;/li&gt;
&lt;li&gt;quét log lỗi&lt;/li&gt;
&lt;li&gt;backup checklist&lt;/li&gt;
&lt;li&gt;review KPI hàng tuần&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;có thể cấu hình lặp lại thay vì tạo tay từng task.&lt;/p&gt;

&lt;h2&gt;
  
  
  ClawTask không phải gì
&lt;/h2&gt;

&lt;p&gt;Để nói thật cho rõ:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nó &lt;strong&gt;không phải&lt;/strong&gt; no-code automation platform kiểu n8n&lt;/li&gt;
&lt;li&gt;Nó &lt;strong&gt;không phải&lt;/strong&gt; chat app cho LLM&lt;/li&gt;
&lt;li&gt;Nó &lt;strong&gt;không phải&lt;/strong&gt; project management tool cho mọi đối tượng&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nó hợp nhất khi anh em thật sự đang quản lý:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;nhiều agent&lt;/li&gt;
&lt;li&gt;nhiều task song song&lt;/li&gt;
&lt;li&gt;nhiều bước có thể block&lt;/li&gt;
&lt;li&gt;nhiều output cần lưu vết&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Use case mình nghĩ dễ thấy giá trị
&lt;/h2&gt;

&lt;h3&gt;
  
  
  SEO/content team
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Tạo campaign&lt;/li&gt;
&lt;li&gt;Sinh subtasks tự động&lt;/li&gt;
&lt;li&gt;Gán cho content agent, research agent, review agent&lt;/li&gt;
&lt;li&gt;Khi thiếu brief, agent tạo clarification&lt;/li&gt;
&lt;li&gt;Output nháp, outline, keyword cluster lưu vào notebook&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Dev/ops team
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Recurring task kiểm tra server, latency, cert, backup&lt;/li&gt;
&lt;li&gt;Agent ghi log, note, báo cáo&lt;/li&gt;
&lt;li&gt;Khi có điểm bất thường, tạo clarification cho human approve&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Founder/solo builder
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Dùng như trung tâm điều phối mini cho đội AI riêng&lt;/li&gt;
&lt;li&gt;Theo dõi task nào done, task nào blocked, agent nào đang làm gì&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Vì sao mình nghĩ hướng này đáng theo
&lt;/h2&gt;

&lt;p&gt;AI workflow đang chuyển từ:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“hỏi một câu, lấy một câu trả lời”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;sang:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“giao việc, theo dõi tiến độ, xử lý block, lưu kết quả, lặp lại theo quy trình”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Muốn đi theo hướng thứ hai thì cần nhiều hơn một prompt box. Cần một lớp orchestration có UI, trạng thái, log, checkpoint, clarification và API contract ổn định.&lt;/p&gt;

&lt;p&gt;ClawTask đang đi đúng vào phần đó.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nếu anh em muốn góp ý
&lt;/h2&gt;

&lt;p&gt;Mình rất muốn nghe feedback theo các hướng:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tính năng nào là must-have nếu anh em dùng cho đội agent thật&lt;/li&gt;
&lt;li&gt;Clarification flow như vậy đã đủ chưa&lt;/li&gt;
&lt;li&gt;Nên ưu tiên dashboard/UX, agent SDK, hay template workflow trước&lt;/li&gt;
&lt;li&gt;Anh em muốn dùng theo hướng content, coding, ops hay research nhiều hơn&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nếu có nhu cầu, mình có thể viết tiếp các bài:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;demo luồng agent nhận task qua MCP&lt;/li&gt;
&lt;li&gt;cách dùng ClawTask cho SEO/content pipeline&lt;/li&gt;
&lt;li&gt;cách dùng recurring tasks cho ops/monitoring&lt;/li&gt;
&lt;li&gt;so sánh ClawTask với Trello + n8n + agent runner tự build&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Nếu anh em trong forum đang build AI automation nghiêm túc, mình nghĩ đây là hướng đáng thử hơn việc chắp vá nhiều tool rời rạc.&lt;/p&gt;

</description>
      <category>clawtask</category>
      <category>openclaw</category>
      <category>agent</category>
      <category>todo</category>
    </item>
    <item>
      <title>(v3) Memory Architecture cho OpenClaw: Shared Postgres Runtime + Structured Context + Agent-Scoped Access</title>
      <dc:creator>Duy Nghiện</dc:creator>
      <pubDate>Mon, 16 Mar 2026 19:24:57 +0000</pubDate>
      <link>https://ai.vnrom.net/duynghien/memory-architecture-v3-cho-openclaw-shared-postgres-runtime-structured-context-agent-scoped-255m</link>
      <guid>https://ai.vnrom.net/duynghien/memory-architecture-v3-cho-openclaw-shared-postgres-runtime-structured-context-agent-scoped-255m</guid>
      <description>&lt;p&gt;Sau 2 bài trước:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Version 1:&lt;/strong&gt; Hybrid Memory 3 lớp + Compaction&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Version 2:&lt;/strong&gt; Structured Context Architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;thì bản v3 này là mảnh còn thiếu ở tầng &lt;strong&gt;runtime backend&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Nói ngắn gọn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;v1 giúp agent &lt;strong&gt;nhớ tốt hơn&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;v2 giúp agent &lt;strong&gt;nạp context tốt hơn&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;v3 giúp agent có &lt;strong&gt;backend machine memory tốt hơn&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Trọng tâm của v3 là:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;dùng &lt;strong&gt;Postgres + pgvector&lt;/strong&gt; làm &lt;strong&gt;canonical machine memory&lt;/strong&gt; cho OpenClaw.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Vì sao cần thêm bước này?
&lt;/h2&gt;

&lt;p&gt;Ở v1 và v2, mình đã giải quyết khá ổn phần:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;nên lưu cái gì&lt;/li&gt;
&lt;li&gt;nên để ở đâu&lt;/li&gt;
&lt;li&gt;nên nạp context theo thứ tự nào&lt;/li&gt;
&lt;li&gt;task memory / retrieval trail / context namespace nên tổ chức ra sao&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nhưng khi chạy thực tế lâu hơn, mình gặp một câu hỏi khác:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;memory runtime nên đặt trên backend nào để vừa lưu được structured state, vừa semantic retrieval tốt, lại đủ ổn định để dùng lâu dài?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Đó là lúc Postgres + pgvector bắt đầu hợp lý hơn hẳn.&lt;/p&gt;




&lt;h2&gt;
  
  
  Postgres + pgvector bổ sung gì cho 2 version đầu?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1) Biến machine memory thành một hệ vừa &lt;strong&gt;structured&lt;/strong&gt; vừa &lt;strong&gt;semantic&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Trước đây, khi nghĩ về durable memory, nhiều lúc mình nghiêng nhiều về semantic store:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;lưu snippets&lt;/li&gt;
&lt;li&gt;embed&lt;/li&gt;
&lt;li&gt;semantic search lại khi cần&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nhưng thực tế OpenClaw không chỉ cần “nhớ gần nghĩa”. Nó còn cần giữ những thứ rất có cấu trúc như:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;people&lt;/li&gt;
&lt;li&gt;groups&lt;/li&gt;
&lt;li&gt;memberships&lt;/li&gt;
&lt;li&gt;reporting rules&lt;/li&gt;
&lt;li&gt;reporting events&lt;/li&gt;
&lt;li&gt;report deliveries&lt;/li&gt;
&lt;li&gt;task runs&lt;/li&gt;
&lt;li&gt;task run steps&lt;/li&gt;
&lt;li&gt;documents&lt;/li&gt;
&lt;li&gt;document chunks&lt;/li&gt;
&lt;li&gt;memory items&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Những dữ liệu này nếu chỉ để dưới dạng semantic snippets thì không đủ.&lt;/p&gt;

&lt;p&gt;Postgres + pgvector giải quyết đẹp ở chỗ:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Postgres&lt;/strong&gt; giữ factual/structured state&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pgvector&lt;/strong&gt; giữ semantic retrieval&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tức là cùng một stack, nhưng làm được cả 2 việc.&lt;/p&gt;




&lt;h3&gt;
  
  
  2) Structured query mạnh hơn hẳn cho workflow và operational state
&lt;/h3&gt;

&lt;p&gt;Semantic search rất hợp cho các câu kiểu:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“hôm trước mình chốt hướng gì cho memory architecture?”&lt;/li&gt;
&lt;li&gt;“rule F&amp;amp;B là gì nhỉ?”&lt;/li&gt;
&lt;li&gt;“đoạn nào trong docs nói về reporting workflow?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nhưng nó không phải công cụ tốt nhất cho các câu kiểu:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ai thuộc group nào?&lt;/li&gt;
&lt;li&gt;ai exempt khỏi rule này?&lt;/li&gt;
&lt;li&gt;ngày nào ai missing report?&lt;/li&gt;
&lt;li&gt;task run nào đang pending / failed / completed?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Đây là chỗ Postgres mạnh hơn rất nhiều.&lt;/p&gt;

&lt;p&gt;Với v3, mình formalize retrieval như sau:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;structured-first&lt;/strong&gt; cho facts / workflow / rules / status&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;semantic-second&lt;/strong&gt; cho docs / history / fuzzy recall&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Đây là điểm mình thấy đáng giá nhất.&lt;/p&gt;




&lt;h3&gt;
  
  
  3) Một backend duy nhất cho nhiều loại machine memory
&lt;/h3&gt;

&lt;p&gt;Điểm hay nữa là Postgres + pgvector giúp gom nhiều lớp machine memory về cùng một trục:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;structured operational state&lt;/li&gt;
&lt;li&gt;semantic memory items&lt;/li&gt;
&lt;li&gt;document chunk store&lt;/li&gt;
&lt;li&gt;workflow / reporting audit trail&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nhờ đó:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;query chéo dễ hơn&lt;/li&gt;
&lt;li&gt;backup/restore dễ hơn&lt;/li&gt;
&lt;li&gt;governance/source-of-truth rõ hơn&lt;/li&gt;
&lt;li&gt;bớt cảm giác mỗi loại dữ liệu nằm một nơi&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nếu làm agent lâu dài, đây là một lợi thế rất lớn.&lt;/p&gt;




&lt;h2&gt;
  
  
  So sánh nhẹ với LanceDB
&lt;/h2&gt;

&lt;p&gt;Mình không nói LanceDB dở.&lt;/p&gt;

&lt;p&gt;Ở giai đoạn đầu, LanceDB khá hợp để:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;prototype semantic memory nhanh&lt;/li&gt;
&lt;li&gt;local-first&lt;/li&gt;
&lt;li&gt;nhẹ&lt;/li&gt;
&lt;li&gt;ít công setup&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nhưng khi nhu cầu bắt đầu mở rộng sang:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;structured state&lt;/li&gt;
&lt;li&gt;reporting / workflow audit&lt;/li&gt;
&lt;li&gt;people / groups / memberships&lt;/li&gt;
&lt;li&gt;task runs / task steps&lt;/li&gt;
&lt;li&gt;document chunk retrieval gắn với state&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;thì LanceDB không còn là trung tâm phù hợp nhất nữa.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vì sao?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;nó hợp cho vector retrieval hơn là canonical operational state&lt;/li&gt;
&lt;li&gt;dễ bị lệch thành “semantic-first cho mọi thứ”&lt;/li&gt;
&lt;li&gt;không tự nhiên bằng Postgres khi cần query quan hệ dữ liệu&lt;/li&gt;
&lt;li&gt;lâu dài, governance và audit không thoải mái bằng&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Kết luận hiện tại của mình
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LanceDB:&lt;/strong&gt; deprecated cho runtime chính, có thể giữ làm archive/migration-only nếu cần&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Postgres + pgvector:&lt;/strong&gt; canonical machine memory runtime&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nói gọn:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;LanceDB hợp cho giai đoạn semantic memory sớm.&lt;br&gt;
Postgres + pgvector hợp hơn khi machine memory bắt đầu phải phục vụ vận hành thực tế.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Kiến trúc hiện tại mình đang chốt
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1) File memory vẫn giữ nguyên
&lt;/h3&gt;

&lt;p&gt;Dùng cho:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;mind/BRAIN.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mind/MEMORY.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;memory/YYYY-MM-DD.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;context/decisions/*&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;agent/task-memory/*&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vai trò:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;human-readable&lt;/li&gt;
&lt;li&gt;fallback&lt;/li&gt;
&lt;li&gt;journal&lt;/li&gt;
&lt;li&gt;curated long-term notes&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2) Structured Context layer vẫn giữ nguyên tinh thần v2
&lt;/h3&gt;

&lt;p&gt;Bao gồm:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;task memory&lt;/li&gt;
&lt;li&gt;context namespace&lt;/li&gt;
&lt;li&gt;tiered loading (L0/L1/L2)&lt;/li&gt;
&lt;li&gt;retrieval trail&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3) Postgres + pgvector là machine memory runtime chính
&lt;/h3&gt;

&lt;p&gt;Dùng cho:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;memory items&lt;/li&gt;
&lt;li&gt;embeddings&lt;/li&gt;
&lt;li&gt;documents&lt;/li&gt;
&lt;li&gt;document chunks&lt;/li&gt;
&lt;li&gt;people / groups / memberships&lt;/li&gt;
&lt;li&gt;reporting rules / events / deliveries&lt;/li&gt;
&lt;li&gt;task runs / task run steps&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4) Retrieval policy rõ hơn
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;structured-first cho factual/workflow queries&lt;/li&gt;
&lt;li&gt;semantic-second cho docs/history/knowledge queries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mình thấy đây là điểm cân bằng tốt nhất hiện tại giữa:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;practical&lt;/li&gt;
&lt;li&gt;dễ vận hành&lt;/li&gt;
&lt;li&gt;đủ mạnh&lt;/li&gt;
&lt;li&gt;dễ mở rộng cho OpenClaw&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Với mình, câu trả lời hiện tại là:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Postgres + pgvector&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Không phải vì nó “ngầu” hơn.&lt;br&gt;
Mà vì nó cân bằng tốt giữa:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;structured state&lt;/li&gt;
&lt;li&gt;semantic retrieval&lt;/li&gt;
&lt;li&gt;audit/workflow support&lt;/li&gt;
&lt;li&gt;&lt;p&gt;độ bền cho use case thật&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;v1 giúp OpenClaw nhớ tốt hơn&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;v2 giúp OpenClaw nạp context tốt hơn&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;v3 giúp OpenClaw có machine memory runtime trưởng thành hơn&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Và theo mình, đây là bước rất đáng làm nếu muốn đi từ một agent “có trí nhớ” sang một agent “có memory system đủ chín để chạy dài hạn”.&lt;/p&gt;

</description>
      <category>openclaw</category>
      <category>memory</category>
      <category>postgres</category>
      <category>pgvector</category>
    </item>
    <item>
      <title>Tách biệt AI với máy Mac chính: Hướng dẫn chạy OpenClaw ngầm qua Lume</title>
      <dc:creator>Duy Nghiện</dc:creator>
      <pubDate>Mon, 16 Mar 2026 14:55:45 +0000</pubDate>
      <link>https://ai.vnrom.net/duynghien/tach-biet-ai-voi-may-mac-chinh-huong-dan-chay-openclaw-ngam-qua-lume-pgg</link>
      <guid>https://ai.vnrom.net/duynghien/tach-biet-ai-voi-may-mac-chinh-huong-dan-chay-openclaw-ngam-qua-lume-pgg</guid>
      <description>&lt;p&gt;Hello anh em,&lt;/p&gt;

&lt;p&gt;Trong bài viết trước nói về &lt;a href="https://vnrom.net/2026/02/cua-khi-ai-biet-dung-may-tinh-thay-ban/" rel="noopener noreferrer"&gt;Cua: Khi AI biết dùng máy tính thay bạn&lt;/a&gt;, mình đã có nhắc đến công cụ ảo hoá Lume. Hôm nay mình sẽ làm một bài hướng dẫn chi tiết từng bước cho anh em cách cài đặt máy ảo macOS bằng Lume và setup OpenClaw ngay bên trong đó.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tại sao phải làm vậy?
&lt;/h2&gt;

&lt;p&gt;Việc để một con AI tự do thao tác trên máy Mac làm việc chính là một rủi ro bảo mật khổng lồ. Nhỡ nó đọc nhầm file mật, hay táy máy gửi tin nhắn lung tung thì sao? Giải pháp ở đây là tạo ra một môi trường sandbox cô lập hoàn toàn. Setup này giúp tách biệt không gian của AI với máy chính, giảm thiểu tối đa rủi ro rò rỉ dữ liệu cá nhân mà vẫn cho phép AI chạy ngầm 24/7 cực kỳ ổn định.&lt;/p&gt;

&lt;p&gt;Dưới đây là các bước chi tiết:&lt;/p&gt;

&lt;h2&gt;
  
  
  Cài Lume &amp;amp; tạo máy ảo macOS
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Cài đặt Lume&lt;/strong&gt;&lt;br&gt;
Anh em mở Terminal trên máy Mac (máy chính) và chạy lệnh sau để cài đặt Lume:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/bin/bash &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Khởi tạo máy ảo (VM)&lt;/strong&gt;&lt;br&gt;
Chạy lệnh này để tạo một máy ảo tên là &lt;code&gt;openclaw&lt;/code&gt;. Lệnh này sẽ tự động tải bộ cài macOS mới nhất về từ Apple. Mình cấu hình luôn 4 nhân CPU, 8GB RAM và ổ cứng 60GB cho thoải mái nhé:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;lume create openclaw &lt;span class="nt"&gt;--os&lt;/span&gt; macos &lt;span class="nt"&gt;--ipsw&lt;/span&gt; latest &lt;span class="nt"&gt;--cpu&lt;/span&gt; 4 &lt;span class="nt"&gt;--memory&lt;/span&gt; 8GB &lt;span class="nt"&gt;--disk-size&lt;/span&gt; 60GB

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;(Mẹo: Nếu anh em lười click chuột thiết lập macOS thủ công, có thể thêm cờ &lt;code&gt;--unattended tahoe&lt;/code&gt; vào cuối lệnh để hệ thống tự động hóa luôn bước setup ban đầu nhé).&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai.vnrom.net/uploads/articles/q0scd914j6h9rkigddv0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://ai.vnrom.net/uploads/articles/q0scd914j6h9rkigddv0.png" alt=" " width="1024" height="822"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Cấu hình Remote Login (SSH)
&lt;/h2&gt;

&lt;p&gt;Để lát nữa có thể chạy máy ảo ẩn đi mà vẫn điều khiển được, anh em cần bật SSH lên.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Chạy máy ảo bằng lệnh: &lt;code&gt;lume run openclaw&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Cửa sổ màn hình máy ảo (VNC) hiện lên, anh em thao tác thiết lập hệ điều hành macOS như bình thường (tạo user, pass...).&lt;/li&gt;
&lt;li&gt;Vào &lt;strong&gt;System Settings &amp;gt; General &amp;gt; Sharing&lt;/strong&gt; và bật &lt;strong&gt;Remote Login&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Bấm vào icon chữ "i" bên cạnh Remote Login để lấy địa chỉ IP của máy ảo (ví dụ: &lt;code&gt;192.168.64.12&lt;/code&gt;). Nhớ ghi lại IP và Username nhé.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://ai.vnrom.net/uploads/articles/0mzw3hpiw4u6vesttrnx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://ai.vnrom.net/uploads/articles/0mzw3hpiw4u6vesttrnx.png" alt=" " width="1024" height="822"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Chạy ngầm (Headless) và cài OpenClaw
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Kết nối vào máy ảo ngầm&lt;/strong&gt;&lt;br&gt;
Anh em tắt máy ảo từ giao diện VNC đi. Bây giờ chúng ta sẽ cho nó chạy ngầm hoàn toàn, không cần hiển thị cửa sổ hiển thị để tiết kiệm tài nguyên:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;lume run openclaw &lt;span class="nt"&gt;--no-display&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Tiếp theo, dùng Terminal của máy chính để SSH thẳng vào máy ảo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh &amp;lt;username&amp;gt;@&amp;lt;địa_chỉ_IP&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Cài đặt môi trường Node.js&lt;/strong&gt;&lt;br&gt;
OpenClaw chạy trên nền Node.js (yêu cầu bản 22 trở lên). Ở trong giao diện SSH của máy ảo, anh em cài Homebrew rồi cài Node.js bằng 2 lệnh sau:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/bin/bash &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
brew &lt;span class="nb"&gt;install &lt;/span&gt;node

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://ai.vnrom.net/uploads/articles/p3bq51uqjdrc2fhfghho.png" class="article-body-image-wrapper"&gt;&lt;img src="https://ai.vnrom.net/uploads/articles/p3bq51uqjdrc2fhfghho.png" alt=" " width="1024" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Cài đặt OpenClaw&lt;/strong&gt;&lt;br&gt;
Giờ thì cài OpenClaw thông qua trình quản lý &lt;code&gt;npm&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; openclaw@latest

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;(Lưu ý: Nếu máy ảo báo lỗi "command not found" khi gõ lệnh openclaw, anh em chạy thêm 2 dòng này để nạp biến môi trường cho Terminal:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'export PATH="$(npm prefix -g)/bin:$PATH"'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; ~/.zshrc
&lt;span class="nb"&gt;source&lt;/span&gt; ~/.zshrc

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Thiết lập AI Agent
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Cấu hình ban đầu&lt;/strong&gt;&lt;br&gt;
Gõ lệnh sau để bắt đầu khởi tạo Agent:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw onboard &lt;span class="nt"&gt;--install-daemon&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hệ thống sẽ hiển thị các bước hỏi anh em muốn dùng nhà cung cấp mô hình AI nào (Anthropic, OpenAI, hay Custom Provider) và yêu cầu nhập API Key. Cứ làm theo hướng dẫn trên màn hình là được.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai.vnrom.net/uploads/articles/kqxglkb0ihnhcsdorsor.png" class="article-body-image-wrapper"&gt;&lt;img src="https://ai.vnrom.net/uploads/articles/kqxglkb0ihnhcsdorsor.png" alt=" " width="1024" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Kết nối kênh giao tiếp&lt;/strong&gt;&lt;br&gt;
Để AI có thể nhận lệnh và gửi tin nhắn tự động qua WhatsApp hoặc Telegram, anh em chạy tiếp lệnh:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw channels add

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Quét mã QR theo hướng dẫn trên màn hình là xong.&lt;/p&gt;

&lt;p&gt;Đến đây, anh em đã có một máy chủ AI túc trực 24/7 trong một môi trường hộp cát an toàn tuyệt đối, tha hồ voọc vạch mà không lo ảnh hưởng hệ thống gốc!&lt;/p&gt;




&lt;p&gt;Trong quá trình cài đặt, nếu anh em vướng mắc hay báo lỗi ở bước nào thì cứ bình luận bên dưới, mình sẽ hỗ trợ giải đáp!&lt;/p&gt;

</description>
      <category>openclaw</category>
      <category>macos</category>
      <category>lume</category>
      <category>cua</category>
    </item>
    <item>
      <title>(v2) Từ Hybrid Memory sang Structured Context cho OpenClaw</title>
      <dc:creator>Duy Nghiện</dc:creator>
      <pubDate>Sat, 14 Mar 2026 09:14:05 +0000</pubDate>
      <link>https://ai.vnrom.net/duynghien/update-tu-hybrid-memory-sang-structured-context-cho-openclaw-4cae</link>
      <guid>https://ai.vnrom.net/duynghien/update-tu-hybrid-memory-sang-structured-context-cho-openclaw-4cae</guid>
      <description>&lt;p&gt;Sau thêm một thời gian chạy thực tế với &lt;a href="https://vnrom.net/2026/01/openclaw-clawdbot-huong-dan-cai-dat-su-dung-tro-ly-ai-ca-nhan-da-nen-tang/" rel="noopener noreferrer"&gt;OpenClaw&lt;/a&gt;, mình nhận ra kiến trúc &lt;strong&gt;Hybrid Memory 3 lớp + Compaction&lt;/strong&gt; vẫn mới giải được một nửa bài toán.&lt;/p&gt;

&lt;p&gt;Nó giúp mình trả lời khá ổn câu hỏi:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;nên &lt;strong&gt;lưu cái gì&lt;/strong&gt;,&lt;/li&gt;
&lt;li&gt;nên &lt;strong&gt;để ở đâu&lt;/strong&gt;,&lt;/li&gt;
&lt;li&gt;và nên &lt;strong&gt;nén/lọc lại khi nào&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nhưng khi task bắt đầu dài hơn, có nhiều nhánh hơn, nhiều project hơn, hoặc có chuyện agent phải tự phối hợp main / worker / clarification, thì mình thấy còn thiếu một lớp rất quan trọng:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Context không chỉ cần được lưu. Nó còn cần được tổ chức, nạp đúng lúc, và giải thích được vì sao nó được dùng.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Vì vậy, mình update kiến trúc từ mô hình “memory 3 lớp” sang một mô hình đầy đủ hơn, tạm gọi là:&lt;/p&gt;

&lt;h2&gt;
  
  
  Structured Context Architecture
&lt;/h2&gt;

&lt;p&gt;Nó vẫn giữ nguyên tinh thần cũ:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;file-based working memory để dễ đọc, dễ debug&lt;/li&gt;
&lt;li&gt;semantic durable memory để giữ continuity&lt;/li&gt;
&lt;li&gt;compaction để chống phình context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nhưng bổ sung thêm 4 phần mới:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Task Memory&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Context Namespace&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tiered Loading Policy (L0/L1/L2)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Retrieval Trail&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nếu bạn đang dùng OpenClaw hoặc xây một agent tương tự, đây là phần mình thấy đáng áp dụng nhất.&lt;/p&gt;




&lt;h2&gt;
  
  
  1) Vấn đề của bản cũ: nhớ được, nhưng chưa tổ chức đủ tốt
&lt;/h2&gt;

&lt;p&gt;Trong bản đầu tiên, mình chia memory thành:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Working Memory&lt;/strong&gt; → file local, dễ đọc&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Durable Memory&lt;/strong&gt; → semantic store cho preference / fact / decision&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compaction Layer&lt;/strong&gt; → job định kỳ để promote / distill / dedupe&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cách này giúp giảm đáng kể tình trạng nhét full history vào context. Nó cũng giúp session dài ổn định hơn, ít nghẽn hơn, và đỡ lãng phí token hơn.&lt;/p&gt;

&lt;p&gt;Nhưng về sau mình gặp thêm 3 vấn đề khác:&lt;/p&gt;

&lt;h3&gt;
  
  
  Thứ nhất: context vẫn hơi phẳng
&lt;/h3&gt;

&lt;p&gt;Dù đã có memory ngắn hạn và dài hạn, nhưng nhiều loại thông tin vẫn nằm lẫn vào nhau:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cái nào là user preference,&lt;/li&gt;
&lt;li&gt;cái nào là task pattern,&lt;/li&gt;
&lt;li&gt;cái nào là project-specific,&lt;/li&gt;
&lt;li&gt;cái nào chỉ là state tạm,&lt;/li&gt;
&lt;li&gt;cái nào là reusable runbook.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Khi chưa tách rõ phạm vi, retrieval dễ bị lan man.&lt;/p&gt;

&lt;h3&gt;
  
  
  Thứ hai: agent nhớ người dùng, nhưng chưa thật sự nhớ cách làm việc
&lt;/h3&gt;

&lt;p&gt;Rất nhiều kinh nghiệm vận hành quan trọng không nằm trong preference/fact/decision, mà nằm ở dạng:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;task kiểu này hay thiếu input gì,&lt;/li&gt;
&lt;li&gt;clarification nào nên hỏi sớm,&lt;/li&gt;
&lt;li&gt;bước nào hay fail,&lt;/li&gt;
&lt;li&gt;task nào nên route sang worker,&lt;/li&gt;
&lt;li&gt;done criteria nào cần check.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nếu không có lớp nhớ riêng cho execution pattern, agent sẽ cứ lặp lại cùng một kiểu sai.&lt;/p&gt;

&lt;h3&gt;
  
  
  Thứ ba: retrieval vẫn hơi giống “hộp đen”
&lt;/h3&gt;

&lt;p&gt;Khi agent quyết định hỏi clarification hoặc route một task sang worker, mình thường muốn biết:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;nó đã load context nào,&lt;/li&gt;
&lt;li&gt;vì sao nó dùng context đó,&lt;/li&gt;
&lt;li&gt;nó bỏ qua context nào,&lt;/li&gt;
&lt;li&gt;nó phát hiện thiếu field nào,&lt;/li&gt;
&lt;li&gt;và quyết định đó dựa trên rule nào.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nếu không nhìn thấy đường đi của context, rất khó debug khi hệ thống bắt đầu phức tạp hơn.&lt;/p&gt;




&lt;h2&gt;
  
  
  2) Bước nâng cấp: từ Memory Architecture sang Structured Context Architecture
&lt;/h2&gt;

&lt;p&gt;Bản update này không đập bỏ kiến trúc cũ. Nó là một lớp nâng cấp ở trên.&lt;/p&gt;

&lt;p&gt;Tức là mình vẫn giữ:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Working Memory&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Durable Semantic Memory&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compaction&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nhưng thêm vào 4 mảnh mới để hệ thống bớt phụ thuộc vào việc agent phải tự nhớ trong đầu.&lt;/p&gt;




&lt;h2&gt;
  
  
  3) Task Memory: agent không chỉ nhớ người dùng, mà còn phải nhớ cách làm việc
&lt;/h2&gt;

&lt;p&gt;Đây là thay đổi mình thấy đáng nhất.&lt;/p&gt;

&lt;p&gt;Trước đây, kinh nghiệm xử lý task thường bị rơi vào:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;chat log,&lt;/li&gt;
&lt;li&gt;note theo ngày,&lt;/li&gt;
&lt;li&gt;working memory,&lt;/li&gt;
&lt;li&gt;hoặc không được ghi lại hẳn.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Điều đó có nghĩa là agent có thể nhớ rằng user thích xưng hô thế nào, nhưng lại không nhớ rằng:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;task gửi Telegram thường thiếu &lt;code&gt;target&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;task browser relay thường thiếu attached tab,&lt;/li&gt;
&lt;li&gt;task nhiều subtasks nên route sang worker sớm,&lt;/li&gt;
&lt;li&gt;task kiểu A thường bị block ở bước B.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vì vậy mình tách riêng một vùng &lt;strong&gt;Task Memory&lt;/strong&gt; để lưu những pattern thực thi có thể tái sử dụng:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;required inputs thường gặp,&lt;/li&gt;
&lt;li&gt;common missing fields,&lt;/li&gt;
&lt;li&gt;clarification mẫu,&lt;/li&gt;
&lt;li&gt;resume checkpoint mẫu,&lt;/li&gt;
&lt;li&gt;failure pattern,&lt;/li&gt;
&lt;li&gt;done criteria,&lt;/li&gt;
&lt;li&gt;routing heuristic.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ví dụ, một task memory cho &lt;code&gt;telegram-send&lt;/code&gt; có thể ghi rất rõ:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Required inputs: &lt;code&gt;target&lt;/code&gt;, &lt;code&gt;message&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Common missing field: &lt;code&gt;telegram.target&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Clarification mẫu: “Bạn muốn gửi cho ai? chatId, @username hay channel target nào?”&lt;/li&gt;
&lt;li&gt;Resume checkpoint: “Continue at Telegram send step after target is provided”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lợi ích rất thực tế:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;agent block đúng chỗ hơn,&lt;/li&gt;
&lt;li&gt;hỏi đúng câu hơn,&lt;/li&gt;
&lt;li&gt;resume mượt hơn,&lt;/li&gt;
&lt;li&gt;và đỡ lặp lại lỗi cũ.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Đây là bước chuyển từ &lt;strong&gt;user memory&lt;/strong&gt; sang &lt;strong&gt;execution memory&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  4) Context Namespace: chia context theo phạm vi thay vì để chung một rổ
&lt;/h2&gt;

&lt;p&gt;Một thay đổi nữa là mình không còn xem context như một khối thông tin lớn, mà tách nó theo namespace/phạm vi sử dụng.&lt;/p&gt;

&lt;p&gt;Một cấu trúc gợi ý như sau:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;core/&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;persona&lt;/li&gt;
&lt;li&gt;user profile&lt;/li&gt;
&lt;li&gt;critical policies&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;agent/&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;working memory&lt;/li&gt;
&lt;li&gt;long-term learned patterns&lt;/li&gt;
&lt;li&gt;task memory&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;projects/&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;project brain riêng cho từng project&lt;/li&gt;
&lt;li&gt;goals, decisions, resources, playbooks, artifacts&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;tasks/&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;task-local execution state&lt;/li&gt;
&lt;li&gt;subtasks&lt;/li&gt;
&lt;li&gt;clarifications&lt;/li&gt;
&lt;li&gt;outputs&lt;/li&gt;
&lt;li&gt;retrieval trail&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;shared/&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;runbooks dùng chung&lt;/li&gt;
&lt;li&gt;references&lt;/li&gt;
&lt;li&gt;tools notes&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Điểm quan trọng của cách chia này là nó trả lời được câu hỏi:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cái gì thuộc &lt;strong&gt;core identity&lt;/strong&gt;,&lt;/li&gt;
&lt;li&gt;cái gì thuộc &lt;strong&gt;project hiện tại&lt;/strong&gt;,&lt;/li&gt;
&lt;li&gt;cái gì là &lt;strong&gt;knowledge dùng lại lâu dài&lt;/strong&gt;,&lt;/li&gt;
&lt;li&gt;cái gì chỉ là &lt;strong&gt;state tạm của task đang chạy&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Khi các scope được tách rõ, retrieval bớt bị nhiễu hơn rất nhiều.&lt;/p&gt;

&lt;p&gt;Với OpenClaw, cách làm này hợp tự nhiên vì bản thân hệ thống đã có xu hướng sống trong workspace file-based. Chỉ cần thêm quy ước và namespace rõ hơn là đã có khác biệt lớn.&lt;/p&gt;




&lt;h2&gt;
  
  
  5) Tiered Loading Policy (L0 / L1 / L2): không phải cái gì cũng đáng được nạp vào prompt
&lt;/h2&gt;

&lt;p&gt;Một lỗi rất phổ biến khi build agent là cứ nghĩ “càng nhiều context càng tốt”. Thực tế thường ngược lại.&lt;/p&gt;

&lt;p&gt;Context quá nhiều sẽ gây:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;token bloat,&lt;/li&gt;
&lt;li&gt;nhiễu,&lt;/li&gt;
&lt;li&gt;retrieval sai ưu tiên,&lt;/li&gt;
&lt;li&gt;và đôi khi làm agent tự tin sai.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vì vậy mình thêm một policy nạp context theo 3 tầng:&lt;/p&gt;

&lt;h2&gt;
  
  
  Layer 0 — Always-on context
&lt;/h2&gt;

&lt;p&gt;Đây là phần gần như luôn cần:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;persona / identity&lt;/li&gt;
&lt;li&gt;user profile&lt;/li&gt;
&lt;li&gt;working memory hiện tại&lt;/li&gt;
&lt;li&gt;task/request đang xử lý&lt;/li&gt;
&lt;li&gt;policy critical có liên quan trực tiếp&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;L0 nên nhỏ, ổn định, và dễ dự đoán.&lt;/p&gt;

&lt;h2&gt;
  
  
  Layer 1 — Task / Project-specific context
&lt;/h2&gt;

&lt;p&gt;Đây là phần nạp khi có liên quan rõ ràng:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;project docs&lt;/li&gt;
&lt;li&gt;playbook liên quan&lt;/li&gt;
&lt;li&gt;task memory đúng loại việc&lt;/li&gt;
&lt;li&gt;recent notes gần đây&lt;/li&gt;
&lt;li&gt;relevant ops runbooks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nói cách khác, L1 là nơi retrieval bắt đầu có ngữ cảnh thực sự.&lt;/p&gt;

&lt;h2&gt;
  
  
  Layer 2 — Deep / On-demand context
&lt;/h2&gt;

&lt;p&gt;Đây là phần chỉ nên truy hồi khi thật sự cần:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;archive cũ,&lt;/li&gt;
&lt;li&gt;long logs,&lt;/li&gt;
&lt;li&gt;docs lớn,&lt;/li&gt;
&lt;li&gt;historical artifacts,&lt;/li&gt;
&lt;li&gt;deep references.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mình thấy việc formalize 3 tầng này có ích hơn rất nhiều.&lt;/p&gt;

&lt;p&gt;Nó giúp agent biết dừng đúng lúc:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;đủ thông tin để làm bước tiếp theo thì làm,&lt;/li&gt;
&lt;li&gt;thiếu required input thì hỏi clarification,&lt;/li&gt;
&lt;li&gt;không kéo thêm cả núi context chỉ để cố đoán.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nếu phải tóm gọn retrieval order mặc định, mình dùng thứ tự này:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;L0 core&lt;/li&gt;
&lt;li&gt;task-local context&lt;/li&gt;
&lt;li&gt;project context&lt;/li&gt;
&lt;li&gt;task memory&lt;/li&gt;
&lt;li&gt;shared runbooks / playbooks&lt;/li&gt;
&lt;li&gt;recent daily memory&lt;/li&gt;
&lt;li&gt;archive sâu&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Cách này đặc biệt hữu ích cho OpenClaw vì nó làm cho việc đọc file bớt cảm tính và bớt phụ thuộc vào trí nhớ ngắn hạn của agent.&lt;/p&gt;




&lt;h2&gt;
  
  
  6) Retrieval Trail: để context không còn là một “hộp đen”
&lt;/h2&gt;

&lt;p&gt;Khi agent bắt đầu làm task dài, hỏi clarification, hay route qua worker, mình thấy cần một thứ giống như “flight recorder” cho context.&lt;/p&gt;

&lt;p&gt;Đó là lý do mình thêm khái niệm &lt;strong&gt;Retrieval Trail&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Một retrieval trail tốt không cần dài dòng. Nó chỉ cần ghi lại những thứ có thể quan sát được, ví dụ:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;đã load những context nào,&lt;/li&gt;
&lt;li&gt;vì sao load chúng,&lt;/li&gt;
&lt;li&gt;đã bỏ qua context nào,&lt;/li&gt;
&lt;li&gt;phát hiện thiếu field nào,&lt;/li&gt;
&lt;li&gt;quyết định gì được đưa ra,&lt;/li&gt;
&lt;li&gt;resume checkpoint là gì.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ví dụ như này:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;load &lt;code&gt;USER.md&lt;/code&gt; vì đây là core context,&lt;/li&gt;
&lt;li&gt;load &lt;code&gt;agent/task-memory/telegram-send.md&lt;/code&gt; vì task khớp loại “telegram send”,&lt;/li&gt;
&lt;li&gt;phát hiện thiếu &lt;code&gt;telegram.target&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;quyết định &lt;code&gt;create_clarification&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;resume từ bước “Telegram send” sau khi user trả lời.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Điểm này cực kỳ hữu ích trong 4 trường hợp:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;debug task fail,&lt;/li&gt;
&lt;li&gt;audit hành vi của agent,&lt;/li&gt;
&lt;li&gt;thiết kế UI giải thích cho user,&lt;/li&gt;
&lt;li&gt;và xây clarification-first workflow tử tế.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nó cũng làm cho hệ thống dễ tin hơn, vì khi có gì sai, mình không còn phải hỏi kiểu “nó nghĩ gì trong đầu vậy?”.&lt;/p&gt;




&lt;h2&gt;
  
  
  7) Clarification-first workflow: hệ quả tự nhiên của structured context
&lt;/h2&gt;

&lt;p&gt;Khi có task memory, namespace rõ, loading policy rõ và retrieval trail rõ, một chuyện xảy ra gần như tự nhiên:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Agent sẽ biết sớm hơn khi nào nó đang thiếu dữ kiện bắt buộc.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Thay vì giữ task ở &lt;code&gt;in_progress&lt;/code&gt; và lửng lơ, hệ thống có thể:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;phát hiện field bắt buộc còn thiếu,&lt;/li&gt;
&lt;li&gt;tạo clarification đúng lúc,&lt;/li&gt;
&lt;li&gt;ghi rõ câu hỏi,&lt;/li&gt;
&lt;li&gt;ghi rõ resume checkpoint,&lt;/li&gt;
&lt;li&gt;chờ answer,&lt;/li&gt;
&lt;li&gt;và resume đúng từ chỗ cần resume.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Đây là một cải tiến rất thực dụng.&lt;/p&gt;

&lt;p&gt;Nó không chỉ giúp agent hành xử đúng hơn, mà còn giúp user hiểu hệ thống hơn. User thấy rõ:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;vì sao task bị block,&lt;/li&gt;
&lt;li&gt;thiếu đúng cái gì,&lt;/li&gt;
&lt;li&gt;trả lời xong thì cái gì sẽ chạy tiếp.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nếu đang build một hệ như OpenClaw + &lt;a href="https://clawtask.app" rel="noopener noreferrer"&gt;ClawTask&lt;/a&gt;, mình nghĩ phần này gần như bắt buộc nếu muốn tiến tới workflow dài hạn hoặc multi-agent.&lt;/p&gt;




&lt;h2&gt;
  
  
  8) Kiến trúc đầy đủ sau update
&lt;/h2&gt;

&lt;p&gt;Sau khi bổ sung các phần trên, mô hình hiện tại của mình có thể tóm gọn như sau:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Working Memory&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;file-based&lt;/li&gt;
&lt;li&gt;human-readable&lt;/li&gt;
&lt;li&gt;giữ current focus / blockers / next steps&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Durable Semantic Memory&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;lưu preference / fact / decision / entity bền vững&lt;/li&gt;
&lt;li&gt;truy hồi theo ngữ nghĩa khi cần continuity&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Compaction Layer&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;promote / distill / dedupe theo cron&lt;/li&gt;
&lt;li&gt;chống context phình to và giữ memory sạch&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Task Memory Layer&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;lưu các pattern thực thi có thể tái sử dụng&lt;/li&gt;
&lt;li&gt;common blockers / clarification patterns / routing heuristics&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Structured Context Namespaces&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tách rõ core / agent / project / task / shared&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Tiered Loading Policy (L0 / L1 / L2)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;nạp context theo thứ tự ưu tiên, không theo cảm tính&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Retrieval Trail&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;lưu dấu quá trình truy hồi và quyết định&lt;/li&gt;
&lt;li&gt;hỗ trợ debug, audit, explainability&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Nói ngắn gọn, mình không còn nghĩ theo kiểu:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“memory là chỗ để nhớ”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Mà chuyển sang kiểu:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“context là một hệ thống có cấu trúc: biết lưu, biết nạp, biết giải thích, và biết học từ execution”.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  9) Nếu bạn đang dùng OpenClaw và muốn áp dụng luôn
&lt;/h2&gt;

&lt;p&gt;Nếu mục tiêu là để một agent/OpenClaw khác đọc bài này xong có thể tự setup theo mà không cần giải thích nhiều, thì mình khuyên đi theo đúng thứ tự này:&lt;/p&gt;

&lt;h2&gt;
  
  
  Bước 1 — Giữ nguyên hybrid memory cũ
&lt;/h2&gt;

&lt;p&gt;Bắt đầu từ nền đã ổn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;working memory file-based&lt;/li&gt;
&lt;li&gt;durable semantic memory&lt;/li&gt;
&lt;li&gt;compaction cron&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Đừng rewrite mọi thứ ngay từ đầu.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bước 2 — Thêm 3 namespace mới
&lt;/h2&gt;

&lt;p&gt;Tạo thêm:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;agent/task-memory/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;projects/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tasks/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Chỉ riêng bước này đã giúp hệ thống bớt lẫn context rất nhiều.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bước 3 — Viết context loading policy
&lt;/h2&gt;

&lt;p&gt;Formalize retrieval order thành:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;L0 core&lt;/li&gt;
&lt;li&gt;task-local&lt;/li&gt;
&lt;li&gt;project&lt;/li&gt;
&lt;li&gt;task-memory&lt;/li&gt;
&lt;li&gt;shared playbooks/runbooks&lt;/li&gt;
&lt;li&gt;recent memory&lt;/li&gt;
&lt;li&gt;archive sâu&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Bước 4 — Tạo 2–3 task memory đầu tiên
&lt;/h2&gt;

&lt;p&gt;Đừng tham. Chỉ cần bắt đầu bằng vài pattern hay gặp nhất, ví dụ:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;telegram-send.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;browser-relay.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;clarifications-common.md&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Bước 5 — Chỉ thêm retrieval trail cho task dài hoặc blocked task
&lt;/h2&gt;

&lt;p&gt;Đừng ép mọi task nhỏ phải có trail. Chỉ cần dùng cho:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;task nhiều subtasks,&lt;/li&gt;
&lt;li&gt;task có blocker,&lt;/li&gt;
&lt;li&gt;task cần debug,&lt;/li&gt;
&lt;li&gt;task có routing decision.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Đây là cách rollout ít đau nhất và dễ vận hành nhất.&lt;/p&gt;




&lt;h2&gt;
  
  
  9) Trade-off thực tế
&lt;/h2&gt;

&lt;p&gt;Mình thích kiến trúc này vì nó thực dụng, nhưng không phải không có giá phải trả.&lt;/p&gt;

&lt;p&gt;Những trade-off rõ nhất là:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;phải có kỷ luật naming/namespace,&lt;/li&gt;
&lt;li&gt;phải biết cái gì là pattern bền, cái gì chỉ là note tạm,&lt;/li&gt;
&lt;li&gt;phải tránh over-engineer retrieval trail,&lt;/li&gt;
&lt;li&gt;và phải chấp nhận rằng memory không còn chỉ là ghi gì đó vào file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tuy vậy, so với lợi ích nhận được thì mình thấy đáng:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;bớt nhiễu,&lt;/li&gt;
&lt;li&gt;block đúng hơn,&lt;/li&gt;
&lt;li&gt;route đúng hơn,&lt;/li&gt;
&lt;li&gt;explain tốt hơn,&lt;/li&gt;
&lt;li&gt;và tăng khả năng vận hành dài hạn.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Nếu phiên bản đầu tiên của kiến trúc này trả lời câu hỏi: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Memory nên lưu như thế nào?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;thì phiên bản update này trả lời thêm một câu hỏi quan trọng không kém:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Context nên được tổ chức, nạp và giải thích như thế nào để agent chạy lâu dài mà không hóa thành bãi rác?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Theo mình, đây là bước chuyển từ một agent “có trí nhớ” sang một agent “có kiến trúc nhận thức” rõ ràng hơn.&lt;/p&gt;

&lt;p&gt;Và nếu mục tiêu là để OpenClaw hoặc các agent tương tự có thể tự setup, tự duy trì continuity, tự block đúng chỗ, và tự học dần từ execution, thì đây là hướng mình thấy đáng làm nhất hiện tại.&lt;/p&gt;

</description>
      <category>memory</category>
      <category>openclaw</category>
      <category>chiase</category>
    </item>
    <item>
      <title>OpenClaw + Paperclip: từ trợ lý 24/7 đến đội ngũ AI có mục tiêu, ngân sách và quy trình</title>
      <dc:creator>Duy Nghiện</dc:creator>
      <pubDate>Fri, 13 Mar 2026 08:55:02 +0000</pubDate>
      <link>https://ai.vnrom.net/duynghien/openclaw-paperclip-tu-tro-ly-247-den-doi-ngu-ai-co-muc-tieu-ngan-sach-va-quy-trinh-3llg</link>
      <guid>https://ai.vnrom.net/duynghien/openclaw-paperclip-tu-tro-ly-247-den-doi-ngu-ai-co-muc-tieu-ngan-sach-va-quy-trinh-3llg</guid>
      <description>&lt;p&gt;Phần lớn các bản demo AI hiện nay vẫn đang mắc kẹt ở một hình thái chung: "Nhắn tin và nhận lại câu trả lời". Phải thừa nhận là nó rất tiện, tốc độ phản hồi nhanh và mang tính giải trí cao. Nhưng khi bắt tay vào dùng AI để vận hành công việc thật sự, vấn đề không còn nằm ở việc chat nữa.&lt;/p&gt;

&lt;p&gt;Vấn đề thực tế là: Ai đang làm việc gì? Dữ liệu nằm ở đâu? Công việc này có bị trùng lặp không? Ai là người duyệt bước cuối, và ngân sách API đang đốt đến mức nào?&lt;/p&gt;

&lt;p&gt;Đó là lý do dạo gần đây, mình bắt đầu đưa cặp đôi &lt;strong&gt;OpenClaw&lt;/strong&gt; và &lt;strong&gt;Paperclip&lt;/strong&gt; lên môi trường OrbStack quen thuộc để test luồng. Khi ghép hai công cụ này lại, góc nhìn về "AI Agent" hoàn toàn thay đổi.&lt;/p&gt;

&lt;p&gt;Nói một cách ngắn gọn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OpenClaw&lt;/strong&gt; là nhân viên thực thi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Paperclip&lt;/strong&gt; là công ty vận hành.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Và chính việc tách bạch hai lớp này mới là cơ hội thực sự để tự động hóa quy trình.&lt;/p&gt;

&lt;h2&gt;
  
  
  OpenClaw: Khi AI sống trong túi của bạn
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://vnrom.net/2026/01/openclaw-clawdbot-huong-dan-cai-dat-su-dung-tro-ly-ai-ca-nhan-da-nen-tang/" rel="noopener noreferrer"&gt;OpenClaw&lt;/a&gt; là một self-hosted gateway dùng để kết nối AI agent với các kênh chat quen thuộc. Thay vì ép người dùng phải học cách dùng một cái app mới hay mở thêm một tab trình duyệt, OpenClaw nương theo hành vi cũ: nhắn tin.&lt;/p&gt;

&lt;p&gt;Nó hỗ trợ đa kênh từ WhatsApp, Telegram, Discord, iMessage và quản lý các session tách biệt rất mượt.&lt;/p&gt;

&lt;p&gt;Điều này quan trọng ở điểm nào? Hầu hết chúng ta không muốn phải mở một giao diện Control UI phức tạp chỉ để giao việc. mình muốn AI luôn ở trong túi mình. Một ý tưởng chợt lóe lên, một lệnh kiểm tra hệ thống, mình chỉ cần rút điện thoại ra nhắn tin vào Telegram. OpenClaw sẽ đứng ra nhận lệnh, giữ ngữ cảnh, xử lý hình ảnh/tài liệu và chạy dài hơi thay vì chỉ hỏi-đáp một lần rồi quên.&lt;/p&gt;

&lt;h2&gt;
  
  
  Paperclip: Bộ não điều phối phía sau
&lt;/h2&gt;

&lt;p&gt;Nếu OpenClaw là lớp tiếp xúc (giao diện), thì Paperclip (với bản release &lt;code&gt;v0.3.1&lt;/code&gt;) là lớp điều phối và quản trị (control plane).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://vnrom.net/2026/03/paperclip-nen-tang-dieu-phoi-ma-nguon-mo-de-van-hanh-doanh-nghiep-khong-can-con-nguoi/" rel="noopener noreferrer"&gt;Paperclip&lt;/a&gt; tự định vị họ là open-source orchestration cho "zero-human companies". Bỏ qua lớp vỏ ngôn từ hơi hype, bản chất của nó là hệ thống giúp bạn vận hành một &lt;strong&gt;đội agent&lt;/strong&gt; thay vì từng cá nhân lẻ tẻ. Paperclip giải quyết gọn gàng những câu hỏi hóc búa nhất khi scale hệ thống AI:&lt;/p&gt;

  

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sơ đồ tổ chức &amp;amp; mục tiêu:&lt;/strong&gt; Task này phục vụ mục tiêu gì? Ai sở hữu nó?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chống chồng chéo (Atomic checkout):&lt;/strong&gt; Đảm bảo hai agent không lao vào xử lý cùng một việc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ngân sách &amp;amp; quản trị (Budget &amp;amp; Approval):&lt;/strong&gt; Token đang tiêu tốn ra sao? Lệnh nào cần người thật (human-in-the-loop) bấm duyệt trước khi chạy?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nhiều team hiện nay vẫn đang chắp vá luồng này bằng cách móc nối n8n, Slack, Google Sheets và vài đoạn script tự viết. Paperclip gom tất cả sự cồng kềnh đó lại thành một mô hình vận hành chuẩn chỉ.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sức mạnh thực sự nằm ở sự kết hợp
&lt;/h2&gt;

&lt;p&gt;Hãy hình dung luồng vận hành khi ghép nối cả hai:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flowchart LR
    U[Người Vận Hành] --&amp;gt; C[Zalo / Telegram / WhatsApp]
    C --&amp;gt; O[OpenClaw Gateway]
    O --&amp;gt; P[Paperclip]
    P --&amp;gt; A1[Sales Agent]
    P --&amp;gt; A2[Content Agent]
    P --&amp;gt; A3[Ops Agent]
    P --&amp;gt; A4[Dev/Engineer Agent]
    A1 --&amp;gt; P
    A2 --&amp;gt; P
    A3 --&amp;gt; P
    A4 --&amp;gt; P
    P --&amp;gt; O
    O --&amp;gt; C

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Chỉ cần nhắn một tin từ điện thoại, OpenClaw sẽ nhận lệnh và đẩy lên Paperclip. Tại đây, Paperclip chia việc, gán mục tiêu, kiểm tra ngân sách và giữ log (audit trail). Xong xuôi, kết quả được đẩy ngược về lại kênh chat cho bạn.&lt;/p&gt;

&lt;p&gt;Đây không còn là một trợ lý ảo. Nó là một bộ máy.&lt;/p&gt;

&lt;h2&gt;
  
  
  3 Use case thực tế (và cách đóng gói ra tiền)
&lt;/h2&gt;

&lt;p&gt;Nhìn từ góc độ tối ưu hóa cho các dự án hiện tại, đây là những kịch bản thực tế nhất:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Hệ thống không để rớt lead (cho F&amp;amp;B &amp;amp; dịch vụ B2B)
&lt;/h3&gt;

&lt;p&gt;Khi chạy Facebook Ads cho các thương hiệu như &lt;a href="https://www.facebook.com/homey.xinchao" rel="noopener noreferrer"&gt;Homey Co-working&lt;/a&gt; hay &lt;a href="https://www.facebook.com/lauday.xinchao" rel="noopener noreferrer"&gt;Lẩu Đây&lt;/a&gt; tại Thái Nguyên, bài toán đau đầu nhất không phải là thiếu lead, mà là &lt;strong&gt;rớt lead do follow-up chậm&lt;/strong&gt;. Khách hàng nhắn tin vào fanpage, nhân viên trực quá tải hoặc bị trôi tin nhắn, thế là mất tiền quảng cáo.&lt;/p&gt;

&lt;p&gt;Với stack này:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenClaw đứng hứng lead trực tiếp.&lt;/li&gt;
&lt;li&gt;Paperclip ngay lập tức tạo task, giao cho &lt;em&gt;Sales Agent&lt;/em&gt; soạn kịch bản phản hồi hoặc &lt;em&gt;Ops Agent&lt;/em&gt; báo động cho quản lý nếu lead thuộc dạng VIP.&lt;/li&gt;
&lt;li&gt;Mọi thứ diễn ra theo luồng, có log rõ ràng, không ai phải nhớ thủ công.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sản phẩm này cực kỳ dễ bán cho các business dịch vụ nhỏ dưới thông điệp: &lt;em&gt;"Hệ thống bắt lead và tự động nhắc nhở follow-up".&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Cỗ máy sản xuất content (cho blog &amp;amp; forum)
&lt;/h3&gt;

&lt;p&gt;Duy trì nhịp độ lên bài cho các trang như &lt;em&gt;vnrom.net&lt;/em&gt; hay cộng đồng &lt;em&gt;ai.vnrom.net&lt;/em&gt; tốn rất nhiều chất xám tổ chức. Thay vì tự làm mọi thứ, mình có thể nhắn một chiếc Voice memo ý tưởng vào Telegram.&lt;/p&gt;

&lt;p&gt;OpenClaw tiếp nhận, Paperclip giao cho &lt;em&gt;Writer Agent&lt;/em&gt; chuyển ý tưởng thành brief, draft bài, sau đó đẩy sang cho một agent khác cắt nhỏ thành post chia sẻ mạng xã hội. mình chỉ việc vào duyệt (Approval) và lên lịch. Nhanh và không bị rơi rớt context.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Founder Command Center
&lt;/h3&gt;

&lt;p&gt;Thay vì nhảy qua lại giữa hàng chục tab quản lý, hệ thống backup Rclone, hay các dashboard tự build, một câu lệnh: &lt;em&gt;"Check xem luồng backup rạng sáng nay có lỗi gì không, phân tích log và báo lại"&lt;/em&gt; sẽ kích hoạt đội Ops Agent làm việc và báo cáo thẳng về chat.&lt;/p&gt;




&lt;p&gt;Thị trường đang chuyển dịch rõ rệt. Người dùng doanh nghiệp không muốn nghe về công ty tự hành xa xôi. Họ muốn những thứ giải quyết cơn đau thực tế: làm sao để nhanh hơn, ít rớt việc hơn, và quan trọng nhất – &lt;strong&gt;vẫn giữ được quyền kiểm soát&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;OpenClaw giúp chúng ta nói chuyện với AI ở bất cứ đâu. Còn Paperclip giúp chúng ta giao việc và quản lý AI như một doanh nghiệp thực thụ.&lt;/em&gt; Và đó mới là lúc AI thực sự bắt đầu tạo ra ROI.&lt;/p&gt;

</description>
      <category>openclaw</category>
      <category>paperclip</category>
      <category>ai</category>
      <category>chiase</category>
    </item>
    <item>
      <title>OpenClaw ACP - Bridge CLI giúp Claude Code và Codex (app + CLI) kết nối mượt mà với AI Agent siêu nhẹ và mạnh</title>
      <dc:creator>Duy Nghiện</dc:creator>
      <pubDate>Thu, 12 Mar 2026 17:49:31 +0000</pubDate>
      <link>https://ai.vnrom.net/duynghien/openclaw-acp-bridge-cli-giup-claude-code-va-codex-app-cli-ket-noi-muot-ma-voi-ai-agent-sieu-2ogd</link>
      <guid>https://ai.vnrom.net/duynghien/openclaw-acp-bridge-cli-giup-claude-code-va-codex-app-cli-ket-noi-muot-ma-voi-ai-agent-sieu-2ogd</guid>
      <description>&lt;p&gt;Hello anh em&lt;/p&gt;

&lt;p&gt;Gần đây mình chuyển sang dùng OpenClaw làm gateway chính và phát hiện ra &lt;strong&gt;OpenClaw ACP&lt;/strong&gt; là một “vũ khí bí mật” cực kỳ tiện lợi. Không phải full runtime nặng nề, mà chỉ là một bridge nhẹ giữa Agent Client Protocol (ACP) và OpenClaw Gateway.&lt;/p&gt;

&lt;p&gt;Mình share bài này để anh em nào đang build agent, dùng &lt;strong&gt;Claude Code với Antigravity&lt;/strong&gt;, Codex app hay Codex CLI thì dễ dàng triển khai. Toàn bộ thông tin lấy trực tiếp từ docs chính thức &lt;a href="https://docs.openclaw.ai/cli/acp" rel="noopener noreferrer"&gt;&lt;/a&gt;, mình đã test trên cả local và remote gateway rồi.&lt;/p&gt;

&lt;h2&gt;
  
  
  OpenClaw ACP thực chất làm gì?
&lt;/h2&gt;

&lt;p&gt;Nói đơn giản: khi Claude Code hoặc Codex (app/CLI) nói chuyện bằng ngôn ngữ ACP (qua stdio), thì OpenClaw ACP sẽ nhận lệnh đó, map session rồi forward prompt qua WebSocket đến Gateway. Gateway mới là nơi xử lý thật sự (tool calls, memory, MCP servers, routing…).&lt;/p&gt;

&lt;p&gt;Ưu điểm lớn nhất:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Siêu nhẹ, không cần chạy full editor native&lt;/li&gt;
&lt;li&gt;Hỗ trợ cả local gateway lẫn remote (qua URL + token)&lt;/li&gt;
&lt;li&gt;Session mapping 1:1, dễ quản lý&lt;/li&gt;
&lt;li&gt;Không hỗ trợ per-session MCP servers (đây là điểm quan trọng, mình sẽ nói sau)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cách cài đặt chỉ mất 30 giây
&lt;/h2&gt;

&lt;p&gt;Anh em chỉ cần chạy một lệnh duy nhất (cho ae nào chưa cài OpenClaw):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://openclaw.ai/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sau đó onboard gateway:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw onboard &lt;span class="nt"&gt;--install-daemon&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kiểm tra nhanh:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw &lt;span class="nt"&gt;--version&lt;/span&gt;
openclaw gateway status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nếu đã có npm thì đơn giản hơn:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; openclaw@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Xong. Gateway chạy ngầm như service (systemd hoặc launchd).&lt;/p&gt;

&lt;h2&gt;
  
  
  Lệnh chính: openclaw acp và các tham số hay dùng
&lt;/h2&gt;

&lt;p&gt;Lệnh cốt lõi:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw acp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Các flag mình hay dùng nhất (copy-paste luôn cho tiện):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kết nối gateway:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw acp &lt;span class="nt"&gt;--url&lt;/span&gt; wss://localhost:18789 &lt;span class="nt"&gt;--token-file&lt;/span&gt; ~/.openclaw/gateway.token
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Gắn vào session cụ thể:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw acp &lt;span class="nt"&gt;--session&lt;/span&gt; agent:main:main
openclaw acp &lt;span class="nt"&gt;--session-label&lt;/span&gt; &lt;span class="s2"&gt;"claude-main"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Reset transcript nhưng giữ session key:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw acp &lt;span class="nt"&gt;--session&lt;/span&gt; agent:main:main &lt;span class="nt"&gt;--reset-session&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Debug mode (test nhanh không cần app):
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw acp client
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mình khuyên anh em &lt;strong&gt;luôn dùng --token-file&lt;/strong&gt; hoặc biến môi trường &lt;code&gt;OPENCLAW_GATEWAY_TOKEN&lt;/code&gt; để tránh lộ token trong process list. Đừng dùng &lt;code&gt;--token&lt;/code&gt; trực tiếp trên command line.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tích hợp với Claude Code &amp;amp; Codex
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cách chuẩn nhất: Dùng acpx làm cầu nối&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Đầu tiên tạo session:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;acpx openclaw sessions ensure &lt;span class="nt"&gt;--name&lt;/span&gt; claude-bridge
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sau đó chạy Claude Code / Codex CLI qua acpx:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;acpx openclaw &lt;span class="nt"&gt;-s&lt;/span&gt; claude-bridge &lt;span class="s2"&gt;"Hỏi agent OpenClaw về context repo này"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Config vĩnh viễn trong ~/.acpx/config.json&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"agents"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"openclaw"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"env OPENCLAW_HIDE_BANNER=1 openclaw acp --url wss://localhost:18789 --token-file ~/.openclaw/gateway.token --session agent:main:main"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sau đó chỉ cần:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;acpx openclaw &lt;span class="s2"&gt;"Làm giúp mình task XYZ"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Claude Code (với Antigravity qua CCS) và Codex app/CLI đều chạy mượt qua acpx + OpenClaw ACP. Không còn proxy thủ công, session map 1:1, MCP tập trung. Mình port từ ClaudeKit qua chỉ mất 2 phút là xong.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lưu ý quan trọng về MCP servers
&lt;/h2&gt;

&lt;p&gt;Đây là điểm nhiều anh em hay gặp lỗi: &lt;strong&gt;OpenClaw ACP không hỗ trợ per-session mcpServers&lt;/strong&gt;. Nếu gửi thì sẽ báo lỗi rõ ràng.&lt;/p&gt;

&lt;p&gt;Cách đúng là cấu hình MCP tập trung ở mức &lt;strong&gt;Gateway&lt;/strong&gt; hoặc &lt;strong&gt;Agent&lt;/strong&gt; (qua config hoặc lệnh &lt;code&gt;openclaw config&lt;/code&gt;). Làm vậy thì Claude Code, Codex app và CLI đều dùng chung một bộ tool, permission và scaling dễ quản lý hơn nhiều.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mẹo nhỏ mình hay dùng
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;--require-existing&lt;/code&gt; để tránh tạo session mới vô ý
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;OPENCLAW_HIDE_BANNER=1&lt;/code&gt; cho output sạch
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--verbose&lt;/code&gt; khi debug
&lt;/li&gt;
&lt;li&gt;Dùng &lt;code&gt;--reset-session&lt;/code&gt; khi muốn “làm mới” transcript nhưng giữ session label&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mình đang dùng OpenClaw ACP + Claude Code + Codex app/CLI làm workflow chính: agent tự edit code, chạy test, commit, thậm chí kết nối multi-session (dev + qa + support). Tốc độ nhanh, bảo mật cao, và đặc biệt là không còn phải lo proxy thủ công nữa.&lt;/p&gt;

&lt;p&gt;Anh em nào đang build agentic system với Claude Code hoặc Codex thì nên thử ngay. Chỉ mất 5 phút cài đặt là thấy khác biệt.&lt;/p&gt;

</description>
      <category>openclaw</category>
      <category>acp</category>
      <category>claudecode</category>
      <category>codex</category>
    </item>
    <item>
      <title>Memory Architecture cho OpenClaw: Hybrid 3 lớp + Compaction</title>
      <dc:creator>Duy Nghiện</dc:creator>
      <pubDate>Tue, 24 Feb 2026 04:25:25 +0000</pubDate>
      <link>https://ai.vnrom.net/duynghien/memory-architecture-cho-openclaw-hybrid-3-lop-compaction-h7f</link>
      <guid>https://ai.vnrom.net/duynghien/memory-architecture-cho-openclaw-hybrid-3-lop-compaction-h7f</guid>
      <description>&lt;p&gt;Hello anh em, &lt;/p&gt;

&lt;p&gt;Bài này mình chia sẻ kiến trúc memory hiện tại mình đang dùng với &lt;strong&gt;OpenClaw&lt;/strong&gt; sau vài vòng thử nghiệm. Mục tiêu là tăng độ nhớ đúng ngữ cảnh nhưng vẫn giữ context gọn và vận hành ổn định.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tóm tắt nhanh cho anh nắm được
&lt;/h2&gt;

&lt;p&gt;Mình không dùng kiểu "nhét full history vào context". Thay vào đó, mình sử dụng &lt;strong&gt;Hybrid Memory 3 lớp&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Working Memory (File-based):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;mind/BRAIN.md&lt;/code&gt;: Trạng thái công việc hiện tại.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;memory/YYYY-MM-DD.md&lt;/code&gt;: Nhật ký công việc theo ngày.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Durable Memory (Semantic Store):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Sử dụng Memory plugin (hiện tại là &lt;code&gt;memory-lancedb&lt;/code&gt;) để lưu các dữ liệu bền vững: &lt;em&gt;preference, decision, fact, entity&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compaction Layer (Cron):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Job giữa ngày:&lt;/strong&gt; Lọc nhẹ và thúc đẩy (promote) các memory quan trọng.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Job cuối ngày:&lt;/strong&gt; Tổng hợp sâu, xóa trùng lặp (dedupe) và chắt lọc (distill).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Kết quả:&lt;/strong&gt; Context sạch hơn, ít "quên vặt", và tiết kiệm token đáng kể khi chạy lâu dài.&lt;/p&gt;




&lt;h2&gt;
  
  
  Vì sao mình chuyển sang kiến trúc này?
&lt;/h2&gt;

&lt;p&gt;Vấn đề mình gặp trước đây:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Session dài:&lt;/strong&gt; Model bắt đầu bị nhiễu thông tin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trôi thông tin:&lt;/strong&gt; Những quyết định cũ bị chìm nghỉm giữa chat log.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chi phí &amp;amp; Hiệu suất:&lt;/strong&gt; Càng nhét nhiều context càng đắt và chậm, trong khi độ chính xác chưa chắc tăng.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vì vậy, mình tách memory thành các lớp ngắn hạn/dài hạn kết hợp với &lt;strong&gt;Compaction&lt;/strong&gt; định kỳ để duy trì chất lượng.&lt;/p&gt;




&lt;h2&gt;
  
  
  Chi tiết từng lớp
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Working Memory (Ngắn hạn, dễ đọc)
&lt;/h3&gt;

&lt;p&gt;Sử dụng file Markdown để giữ trạng thái "đang làm gì":&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Task hiện tại.&lt;/li&gt;
&lt;li&gt;Các rào cản (Blockers).&lt;/li&gt;
&lt;li&gt;Các việc cần theo dõi (Follow-up).&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Ưu điểm:&lt;/strong&gt; Người dùng có thể đọc (human-readable), debug cực dễ và không phụ thuộc vào Database ngay từ đầu.&lt;br&gt;
&lt;strong&gt;Nhược điểm:&lt;/strong&gt; Nếu không có compaction, file sẽ phình to và gây rối.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  2. Durable Memory (Dài hạn, Semantic)
&lt;/h3&gt;

&lt;p&gt;Lưu trữ những gì thực sự đáng nhớ:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Thói quen và sở thích người dùng (User preference).&lt;/li&gt;
&lt;li&gt;Các quyết định kỹ thuật hoặc vận hành.&lt;/li&gt;
&lt;li&gt;Các sự thật (Facts) có tính lặp lại trong workflow.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Ưu điểm:&lt;/strong&gt; Truy xuất (recall) theo ngữ nghĩa tốt hơn việc tìm kiếm văn bản thông thường. Giữ được tính liên tục (continuity) qua nhiều session.&lt;br&gt;
&lt;strong&gt;Nhược điểm:&lt;/strong&gt; Cần quản trị tốt (governance), nếu không sẽ trở thành "bãi rác vector".&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  3. Compaction (Trái tim của hệ thống)
&lt;/h3&gt;

&lt;p&gt;Mình chạy 2 job định kỳ:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Midday pass:&lt;/strong&gt; Lọc nhanh các mục quan trọng.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nightly pass:&lt;/strong&gt; Tổng hợp sâu, xóa trùng lặp và chuyển đổi thành memory bền vững.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Policy đang áp dụng (Rất quan trọng)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Write Policy (Cái gì được nhớ)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Nên nhớ&lt;/th&gt;
&lt;th&gt;Không nên nhớ&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Preference ổn định&lt;/td&gt;
&lt;td&gt;Tán gẫu (Chit-chat)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quyết định &amp;amp; Lý do (Rationale)&lt;/td&gt;
&lt;td&gt;Fact công khai dễ tìm lại&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Milestone / Blocker / Next step&lt;/td&gt;
&lt;td&gt;Nội dung nhạy cảm không cần thiết&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Retrieval Policy (Khi nào truy xuất)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Nên:&lt;/strong&gt; Khi câu hỏi liên quan đến lịch sử, quyết định hoặc sở thích; các task nhiều bước cần tính liên tục.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Không nên:&lt;/strong&gt; Khi câu hỏi mang tính chất chung chung, không liên quan ngữ cảnh cá nhân. Tránh lỗi "search first" cho mọi câu hỏi.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Injection Policy
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Chỉ inject từ &lt;strong&gt;3–8&lt;/strong&gt; memory snippets hàng đầu.&lt;/li&gt;
&lt;li&gt;Ưu tiên theo thứ tự: &lt;strong&gt;Relevance &amp;gt; Importance &amp;gt; Recency&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Luôn giữ giới hạn token (budget) cho khối memory.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Đánh giá thực tế
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Ưu điểm
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Giảm tình trạng nghẽn context (context bloat) rõ rệt.&lt;/li&gt;
&lt;li&gt;Tăng độ ổn định cho các task dài hoặc đa bước.&lt;/li&gt;
&lt;li&gt;Dễ vận hành và audit/debug vì vẫn có file local để kiểm tra.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Nhược điểm / Trade-off
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Thêm các thành phần chuyển động (cron, policy, cleanup).&lt;/li&gt;
&lt;li&gt;Cần kỷ luật trong việc ghi nhớ để tránh nhiễu.&lt;/li&gt;
&lt;li&gt;Tốn thời gian tinh chỉnh ngưỡng (threshold) và top-k retrieval.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Lộ trình triển khai khuyến nghị
&lt;/h2&gt;

&lt;p&gt;Để tránh việc quá sa đà vào kỹ thuật (over-engineer), bạn nên:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Bắt đầu với &lt;strong&gt;File-based memory&lt;/strong&gt; và thiết lập policy rõ ràng.&lt;/li&gt;
&lt;li&gt;Kích hoạt &lt;strong&gt;Semantic memory store&lt;/strong&gt; (LanceDB hoặc pgvector).&lt;/li&gt;
&lt;li&gt;Thêm &lt;strong&gt;Compaction cron&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Sau 1 tuần mới tiến hành benchmark và tinh chỉnh (tune).&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>memory</category>
      <category>openclaw</category>
      <category>chiase</category>
      <category>ai</category>
    </item>
    <item>
      <title>Tại sao nên dùng Vaultwarden để quản lý secret key cho dàn AI Agent</title>
      <dc:creator>Duy Nghiện</dc:creator>
      <pubDate>Tue, 17 Feb 2026 11:43:42 +0000</pubDate>
      <link>https://ai.vnrom.net/duynghien/tai-sao-nen-dung-vaultwarden-de-quan-ly-secret-key-cho-dan-ai-agent-4oip</link>
      <guid>https://ai.vnrom.net/duynghien/tai-sao-nen-dung-vaultwarden-de-quan-ly-secret-key-cho-dan-ai-agent-4oip</guid>
      <description>&lt;p&gt;Hello anh em,&lt;/p&gt;

&lt;p&gt;Mình đang đang dùng hệ automation nội bộ, combo gồm: &lt;strong&gt;OpenClaw&lt;/strong&gt;, &lt;strong&gt;n8n&lt;/strong&gt;, một mớ &lt;strong&gt;MCP server&lt;/strong&gt;, và &lt;strong&gt;Cloudflare Tunnel&lt;/strong&gt; để public 1 vài app ra ngoài internet.&lt;/p&gt;

&lt;p&gt;Lúc đầu mọi thứ rất vui, cho đến khi cái đống &lt;strong&gt;Secrets (API Key, Token)&lt;/strong&gt; bắt đầu nhiều lên.&lt;/p&gt;

&lt;p&gt;Nào là key OpenAI, token Telegram, mật khẩu SMTP gửi mail, token tunnel, cookie đăng nhập web... Ban đầu mình cứ ném hết vào file &lt;code&gt;.env&lt;/code&gt; cho tiện. Nhưng càng làm thì cái file &lt;code&gt;.env&lt;/code&gt; nó càng nhiều lên, bắt đầu khó xem và quản lý:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Copy sang máy khác là lệch tên, chạy không được.&lt;/li&gt;
&lt;li&gt;Muốn đổi key thì phải đi sửa từng chỗ, bực nhất cái này.&lt;/li&gt;
&lt;li&gt;Sợ nhất là lỡ tay paste nhầm cái &lt;code&gt;.env&lt;/code&gt; lên nhóm chat hay GitHub là xác định toang.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sau nghĩ lại thì thấy OpenClaw có cái skill 1Password nên định dùng, nhưng mà nó mất phí subscription, cũng rẻ thôi đâu đó $2.99/tháng. Nhưng mình cũng đang self-hosting một bài ứng dụng nên sẵn đấy tìm 1 phiên bản open-source để dùng. Và mình quyết định dựng &lt;strong&gt;Vaultwarden&lt;/strong&gt; (bản self-hosted siêu nhẹ của Bitwarden) để làm cái kho tổng quản lý đám key này. Dưới đây là lý do tại sao và cách mình dùng nó.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Vaultwarden là gì và tại sao lại hợp?
&lt;/h2&gt;

&lt;p&gt;Nói đơn giản, Vaultwarden là một cái server giữ mật khẩu (password manager) mà anh em tự host được, viết bằng Rust nên ăn cực ít RAM.&lt;/p&gt;

&lt;p&gt;Với anh em làm automation, "mật khẩu" không chỉ là user/pass. Nó là tất cả những thứ nhạy cảm:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API Key (OpenAI, Anthropic...).&lt;/li&gt;
&lt;li&gt;URL của mấy con MCP server (thường có token dính trong URL).&lt;/li&gt;
&lt;li&gt;Token bot Telegram/Discord.&lt;/li&gt;
&lt;li&gt;Hay là Cookie/Session của trình duyệt để agent đỡ phải login lại.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thay vì rải rác mỗi nơi một tí, giờ mình gom tất cả về một mối: &lt;strong&gt;Single Source of Truth.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hướng dẫn self-hosted Vaultwarden: &lt;a href="https://vnrom.net/2024/09/huong-dan-cai-dat-vaultwarden-tren-ubuntu/" rel="noopener noreferrer"&gt;Hướng dẫn cài đặt Vaultwarden trên Ubuntu&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  2. Dùng Vaultwarden sướng ở chỗ nào?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Bớt cái tật tiện tay
&lt;/h3&gt;

&lt;p&gt;Cái chết của ae là sự tiện lợi. Tiện tay gửi key qua Zalo, tiện tay note vào file text... Dùng Vaultwarden ép mình vào khuôn khổ: cần key thì mở Vault copy, hạn chế tối đa việc key lộ ra ngoài.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quản lý ngăn nắp
&lt;/h3&gt;

&lt;p&gt;Trước mình dùng n8n thì hay lưu API key các nền tảng và note của Apple, nhưng mà test nhiều công cụ giờ nó dài mấy trang toàn là API key.&lt;/p&gt;

&lt;p&gt;Nên dù là dùng cá nhân, mình vẫn chia key theo từng nhóm để dễ quản lý:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Nhóm Social:&lt;/strong&gt; Key Facebook, X, Telegram.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nhóm Automation:&lt;/strong&gt; Key n8n, webhook.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nhóm Infra:&lt;/strong&gt; SSH key, token server, Cloudflare.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nhìn vào là biết key nào thuộc về đâu, không còn cảnh một file .env gánh cả thế giới.&lt;/p&gt;

&lt;h3&gt;
  
  
  Đổi key (Rotate) không lo chết chùm
&lt;/h3&gt;

&lt;p&gt;Khi nghi ngờ lộ key, mình chỉ cần đổi trong Vaultwarden, rồi chạy script update lại cho các service là xong. Không phải mò mẫm xem "cái key này đang nằm ở những file nào".&lt;/p&gt;

&lt;h3&gt;
  
  
  Agent không cần nhớ password
&lt;/h3&gt;

&lt;p&gt;Với mấy con agent cần login web (như X hay LinkedIn), mình không lưu password cứng trong code. Mình lưu session/cookie, hoặc lưu key mã hóa state trong Vault. Agent khởi động lên, lấy key giải mã session rồi chạy tiếp. An toàn hơn nhiều.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Điểm trừ và lưu ý, ae nên đọc cái này
&lt;/h2&gt;

&lt;p&gt;Dĩ nhiên không có gì hoàn hảo:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Nó không tự điền vào &lt;code&gt;.env&lt;/code&gt; cho anh em đâu:&lt;/strong&gt;
Vaultwarden chỉ là chỗ &lt;strong&gt;lưu&lt;/strong&gt;. Để agent chạy được, anh em vẫn cần một bước "lấy key từ Vault bỏ vào &lt;code&gt;.env&lt;/code&gt;".&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Cách mình làm:&lt;/em&gt; Code một cái script nhỏ, mỗi lần deploy hoặc update service thì nó tự kéo key từ Vault về, ghi vào &lt;code&gt;.env&lt;/code&gt; rồi &lt;code&gt;chmod 600&lt;/code&gt; để chỉ owner mới đọc được.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sập Vault là sập tất:&lt;/strong&gt;&lt;br&gt;
Gom trứng vào một giỏ thì phải giữ cái giỏ cho kỹ. Vault mà down là hệ thống không lấy được key mới.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Giải pháp:&lt;/em&gt; Luôn có backup định kỳ. Và với các service quan trọng, &lt;code&gt;.env&lt;/code&gt; đóng vai trò là cache. Vault chết thì service vẫn chạy bằng &lt;code&gt;.env&lt;/code&gt; cũ được.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bảo mật phải làm tới nơi:&lt;/strong&gt;&lt;br&gt;
Đã self-host cái kho lưu toàn đồ nhạy cảm thì hãy bật HTTPS, cài 2FA, và đừng public nó ra internet vô tội vạ.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  4. Tóm lại là khi nào nên dùng?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Nếu anh em chỉ có 1 con server, 2-3 cái API key: Thôi, dùng &lt;code&gt;.env&lt;/code&gt; cho lẹ.&lt;/li&gt;
&lt;li&gt;Nếu anh em bắt đầu có: &lt;strong&gt;OpenClaw + n8n + chục cái MCP + server ở nhà + VPS&lt;/strong&gt;: Thì triển khai Vaultwarden ngay và luôn đi.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nó không giúp AI của anh em thông minh hơn, nhưng nó giúp anh em ngủ ngon hơn vì biết đống key của mình đang nằm gọn gàng một chỗ, không bay lung tung trên mạng.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Chúc anh em quản lý đám agent hiệu quả và không bao giờ bị lộ key!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>vaultwarden</category>
      <category>1password</category>
      <category>openclaw</category>
      <category>bitwarden</category>
    </item>
  </channel>
</rss>
