Bài chia sẻ này làm mình thích ở chỗ nó không nói về “AI nhớ tất cả” theo kiểu mơ hồ. Thay vào đó, tác giả vẽ rất rõ một kiến trúc thực dụng: để AI assistant chỉ giữ phần ngữ cảnh ngắn hạn cần cho phiên hiện tại, còn những gì đáng giữ lâu thì đẩy vào một kho Markdown bền vững trong Obsidian.
Nếu anh em đang dùng OpenClaw, Claude, hoặc bất kỳ agent nào có tool calling, đây là một hướng rất đáng tham khảo vì nó giải quyết đúng một vấn đề quen thuộc: agent giỏi xử lý trong ngắn hạn, nhưng nếu không có lớp lưu trữ tốt thì mọi thứ nhanh chóng rơi vào tình trạng “biết lúc này, quên lúc sau”.
Kiến trúc cốt lõi của mô hình này là gì?
Nhìn từ sơ đồ, hệ thống được chia thành ba lớp rõ ràng.
1. Lớp nguồn dữ liệu bên ngoài
Agent không tự nghĩ ra dữ liệu. Nó hút dữ liệu từ các nguồn cụ thể như:
- Google Calendar
- Todoist
- Gmail
- Yahoo Finance
- OpenWeather
Điểm hay ở đây là mỗi nguồn đều có vai trò rõ ràng. Calendar và Todoist phục vụ điều phối công việc. Gmail phục vụ tổng hợp thông tin. Yahoo Finance phục vụ cập nhật thị trường. Weather bổ sung ngữ cảnh đời sống hoặc lịch trình. Khi agent đứng giữa các nguồn như vậy, nó không còn là chatbot đơn thuần mà bắt đầu giống một lớp điều phối cá nhân.
2. Lớp AI assistant ở giữa
Trong sơ đồ, phần này gồm bốn mảnh ghép rất thực tế:
- cron jobs để chạy việc định kỳ
- thư viện skill để tái sử dụng workflow
- memory tool cho ngữ cảnh ngắn hạn theo phiên
- chat interface để nhận lệnh qua Telegram hoặc CLI
Nói ngắn gọn, agent làm hai việc:
- xử lý theo lịch, ví dụ 6:50 sáng lấy Todoist + Calendar rồi tạo daily note
- xử lý theo yêu cầu, ví dụ khi người dùng hỏi thì đọc vault hoặc gọi API để trả lời
Đây là điểm mình thấy nhiều anh em làm agent hay bị thiếu. Mọi người thường tập trung vào prompt hoặc model, nhưng phần quyết định hệ thống có sống được lâu không lại là cách chia việc giữa automation, skills và storage.
3. Lớp Obsidian vault làm bộ nhớ bền vững
Toàn bộ dữ liệu quan trọng cuối cùng được ghi về vault dưới dạng Markdown. Trong sơ đồ, vault được chia thành các vùng như:
-
System/cho tài liệu nền, context, môi trường -
Daily/cho ghi chú theo ngày -
Work/cho báo cáo, log, tài liệu công việc -
Personal/cho tài chính, sức khỏe, dự án cá nhân
Đây là quyết định rất đúng nếu mục tiêu là long-term memory.
Vì sao? Vì Markdown có ba ưu điểm lớn:
- dễ đọc với người thật, không bị khóa trong một hệ thống đen hộp
- dễ version, dễ backup, dễ search
- có thể cho agent đọc lại đúng lúc cần, thay vì cố nhét mọi thứ vào context window
Bài học lớn nhất: đừng bắt agent nhớ mọi thứ trong phiên chat
Trong sơ đồ có một ý rất đáng tiền: hot memory chỉ nên là vùng nhớ nhỏ, dùng cho từng lượt hoặc từng phiên; khi gần đầy thì các dữ kiện ổn định được chuyển sang vault.
Đây chính là cách nghĩ đúng về memory cho agent.
Nếu anh em để mọi thứ nằm trong “memory tool” hoặc context của phiên chat, sớm muộn cũng gặp các vấn đề sau:
- chi phí context tăng dần
- chất lượng suy luận giảm vì nhiễu
- dữ kiện cũ bị ghi đè hoặc mất ưu tiên
- không có timeline để kiểm tra lại lịch sử
Ngược lại, khi tách ra thành hai lớp, hệ thống sẽ dễ kiểm soát hơn:
- memory nóng để giữ mạch hội thoại hiện tại
- memory bền vững để lưu những gì đã ổn định, có thể tra cứu lại
Đây không chỉ là vấn đề kỹ thuật. Nó còn là vấn đề vận hành. Một hệ thống AI dùng lâu phải cho phép mình kiểm tra lại nó đã biết gì, biết từ đâu, lưu ở đâu và cập nhật lúc nào.
Những workflow thực tế anh em có thể triển khai ngay
Từ sơ đồ gốc, mình thấy có ít nhất ba use case rất dễ đem về áp dụng.
Morning briefing tự động
Flow được mô tả khá rõ:
- Cron lấy dữ liệu từ Todoist và Calendar
- Agent tạo daily note trong vault
- Một job khác đọc lại ghi chú đó vào khoảng 7:00 sáng
- Hệ thống gửi bản briefing đã định dạng qua Telegram
Nếu triển khai với OpenClaw, anh em có thể biến nó thành một quy trình rất hữu ích:
- gom lịch họp hôm nay
- gom task quan trọng
- nhắc các deadline gần nhất
- lấy thêm thời tiết hoặc thời gian di chuyển nếu cần
- gửi thành một brief ngắn gọn trước giờ làm
Điểm quan trọng là brief này không chỉ được gửi đi rồi mất. Nó còn nằm lại trong Daily/, tạo thành timeline có thể tra cứu sau này.
Financial briefing theo ticker
Sơ đồ cũng mô tả một flow tài chính:
- cron đọc dữ liệu Yahoo Finance
- trích giá, biến động, headline
- phân loại sentiment
- gửi bảng tổng hợp qua Telegram
Cách làm này rất hợp cho các ngữ cảnh cần tổng hợp dữ liệu định kỳ nhưng không muốn ngồi tự xem từng nguồn. Điều anh em nên học ở đây không phải là “dùng Yahoo Finance”, mà là mẫu thiết kế:
- nguồn dữ liệu chuyên biệt
- lớp transform/tóm tắt
- lớp lưu trữ có thể truy vết
- lớp delivery theo đúng kênh người dùng đang dùng
Bộ nhớ theo ngày để tạo lịch sử có thể truy vết
Khi mọi sự kiện, ghi chú, brief, log hoặc quyết định được ghi về daily note, anh em sẽ có một thứ rất mạnh: searchable timeline.
Sau vài tuần hoặc vài tháng, agent không chỉ “trả lời được” mà còn có thể:
- dựng lại diễn biến một dự án
- tìm lại quyết định đã chốt trong tuần trước
- xem một thói quen có thực sự được duy trì không
- tổng hợp bài học từ chuỗi log cũ
Đó mới là thứ khiến memory layer có giá trị thật sự.
Nếu áp dụng với OpenClaw, nên tách hệ thống như thế nào?
Mình nghĩ anh em có thể lấy đúng tinh thần của sơ đồ và triển khai tối giản theo checklist này.
A. Tách input, processing, storage, delivery
Đừng để mọi thứ dồn vào một prompt dài.
Hãy chia thành bốn phần:
- Input: Calendar, task manager, email, tài liệu, API ngoài
- Processing: skill, cron, summarizer, classifier
- Storage: Obsidian vault hoặc kho Markdown tương tự
- Delivery: Telegram, Discord, email, dashboard
Khi chia như vậy, mỗi phần đều dễ debug hơn.
B. Chỉ đẩy vào long-term memory những gì đủ ổn định
Không phải mọi đoạn chat đều đáng lưu. Một số thứ chỉ là nhiễu tạm thời.
Mình sẽ ưu tiên lưu các loại sau:
- preference ổn định của người dùng
- cấu hình hệ thống
- quyết định đã chốt
- workflow đã dùng nhiều lần
- daily summary, weekly summary, incident log
- liên kết giữa dự án, file, người, deadline
Còn các câu hỏi ngắn hạn hoặc dữ liệu chưa xác minh thì cứ để ở memory nóng.
C. Lưu dưới dạng con người cũng đọc được
Rất nhiều hệ thống memory thất bại vì chỉ tối ưu cho retrieval của model mà quên rằng con người cũng phải audit được.
Markdown trong Obsidian giải quyết việc này khá tốt. Anh em có thể mở file ra đọc ngay, chỉnh tay được, grep được, sync được, và khi cần vẫn để agent đọc lại được.
D. Thiết kế rule migration rõ ràng
Sơ đồ gốc có nhắc chuyện “đến ngưỡng thì migrate”. Đây là chỗ nên có nguyên tắc cụ thể, ví dụ:
- sau mỗi phiên dài, chốt stable facts vào note tương ứng
- cuối ngày, tổng hợp vào daily note
- cuối tuần, đẩy các mục quan trọng sang note dự án hoặc note hệ thống
- với preference hoặc policy ổn định, cập nhật vào file chuẩn thay vì rải rác nhiều nơi
Nếu không có rule migrate, memory layer sẽ nhanh chóng biến thành một bãi chứa lộn xộn.
Điểm mình đánh giá cao ở hướng này
Có ba lý do khiến mình nghĩ đây là một pattern tốt.
1. Bền vững hơn việc phụ thuộc hoàn toàn vào context window
Model có thể mạnh hơn theo thời gian, nhưng nguyên tắc tách bộ nhớ nóng và bộ nhớ dài hạn vẫn đúng. Đây là kiến trúc bền hơn chuyện cố ép model nhớ nhiều hơn trong một lần chạy.
2. Dễ audit và dễ sửa
Khi tri thức nằm trong vault Markdown, anh em biết chính xác hệ thống đang dựa vào cái gì. Nếu có lỗi, chỉ cần sửa file hoặc quy trình sinh file.
3. Dễ mở rộng thành assistant thật sự hữu dụng
Một assistant chỉ chat thì khó bám vào công việc thật. Nhưng một assistant biết đọc nguồn ngoài, ghi chú có cấu trúc, chạy lịch và gửi briefing đúng lúc thì bắt đầu tạo ra giá trị vận hành rõ ràng.
Kết luận
Từ một sơ đồ khá ngắn trên Reddit, bài học mình rút ra là thế này: muốn AI assistant hữu ích trong dài hạn, anh em đừng chỉ nghĩ đến model hay prompt. Hãy nghĩ đến kiến trúc bộ nhớ.
Một thiết kế tốt thường có đủ bốn lớp:
- lấy dữ liệu từ nguồn thật
- xử lý bằng skill và automation
- lưu về một kho bền vững, con người đọc được
- chỉ kéo lại đúng phần cần thiết khi truy vấn
Obsidian không phải lựa chọn duy nhất, nhưng cách dùng Obsidian như một lớp long-term memory cho agent là một hướng rất thực dụng. Nó giúp hệ thống vừa linh hoạt khi chat, vừa có trí nhớ bền khi vận hành lâu dài.
Nếu anh em đang xây agent với OpenClaw, đây là pattern mình nghĩ nên thử sớm: để daily notes, project notes và system notes trở thành nơi agent quay lại học từ chính lịch sử vận hành của mình.
Top comments (0)