Dạo một vòng vault làm việc của tôi với Obsidian Agent Workspace
Vault MyMind của tôi đang chứa khoảng 6–7 dự án và trang web, công việc của hai cộng tác viên, cùng các AI agent hỗ trợ hằng ngày. Template Obsidian Agent Workspace thực ra được rút ra từ chính vault này: chỗ nào giữ kế hoạch, chỗ nào ghi luật, chỗ nào chờ tôi duyệt. Cây thư mục trong bài là thứ tôi đang dùng hằng ngày, không phải bản dựng để chụp hình.
Thêm một dự án, giao việc cho người khác hay nhờ AI làm hộ đều kéo theo cùng một câu hỏi: bối cảnh nằm ở đâu? Tôi dùng folder để trả lời câu đó, đồng thời tránh chia sẻ cả vault khi người nhận chỉ cần vài tài liệu. Nhưng tên folder không quyết định agent đọc được gì. Chuyện ấy còn phụ thuộc quyền truy cập, cấu hình và người duyệt.
Ảnh dưới đặt vault MyMind cạnh template công khai để thấy bộ khung ban đầu và phần tôi đã đổi, nhất là ngăn runtime. Các project và vùng cộng tác nằm sâu hơn trong 03-Workspace/.

Đầu tiên là nơi tôi đặt luật cho agent: AGENTS.md và .agents/.
Mỗi folder có thể có luật riêng với AGENTS.md và .agents/
Ở gốc vault, AGENTS.md ghi những điều tôi không muốn nhắc lại trong mỗi phiên chat. Agent ưu tiên chỉ thị trong chat, kiểm tra hệ thống đang chạy, rồi mới tra Knowledges/ và trí nhớ (Memory). Muốn xóa dữ liệu, gửi email, đăng bài hay gọi webhook/API làm thay đổi dịch vụ bên ngoài thì phải hỏi tôi trước.
Project và vùng làm việc của cộng tác viên có thể có AGENTS.md riêng. Khi mở một thư mục, agent đọc luật áp dụng từ gốc tới đó; file gần nơi làm việc hơn bổ sung hoặc thay thế phần liên quan của luật cha. Một task trong 03-Workspace/{project}/, chẳng hạn, nhận cả luật gốc, luật project ở 03-Workspace/{project}/AGENTS.md và luật của chính task. Đó là quy ước tôi cấu hình cho agent của mình, không phải điều mọi ứng dụng tự làm sẵn.
Thư mục .agents/ giữ hai thứ khác nhau:
skills/{slug}/SKILL.mdghi cách làm một việc. Skill giao việc của tôi đi theo Cần nắm → Cần làm → Bàn giao → Cần duyệt, để người nhận biết cần gì và phải dừng ở đâu chờ tôi.sources/{slug}/kết nối Airtable, Gmail hay API. Source giúp lấy dữ liệu; kết quả cần giữ lâu thì lưu về đúng project, không để lạc trong lịch sử chat.
Agent chuẩn bị và soạn; tôi duyệt. Một bản phân tích hay câu trả lời khách hàng chỉ nằm trong chat thì chưa phải bàn giao. Và file luật không phải sandbox bảo mật. Nó chỉ hướng dẫn agent hành xử, không giới hạn quyền truy cập ở cấp hệ điều hành. Công cụ đã được cấp quyền rộng thì một câu “đừng đọc chỗ khác” trong AGENTS.md không khóa được nó. Template công khai cũng không kèm skill, source hay thông tin đăng nhập của tôi; mỗi máy cần cấu hình xác thực riêng.
Luật bảo agent làm thế nào. Còn để agent biết thông tin nào đúng, tôi dùng Knowledges/.
Knowledges/: Nơi tôi lưu sự thật nền về mình và sản phẩm
Knowledges/ là nơi tôi ghi sự thật nền về bản thân và công việc: tôi đã làm gì, dự án đang ở đâu, thông số và số liệu thực tế, sản phẩm nào có tính năng gì. Agent tra kho này trước khi trả lời, thay vì đoán từ vài dòng chat.

Khi tôi hỏi có nên làm một tính năng mới không, câu trả lời phải tính tới thứ tôi đang có: vốn, quỹ thời gian trong tuần, kinh nghiệm và hạ tầng. Nếu tuần đó không còn thời gian, tôi cần một phương án gọn, không phải kế hoạch đồ sộ. Có bối cảnh thật, agent mới gợi ý vừa sức thay vì vẽ ra việc tôi không thể nhận.
Kho này còn giúp kiểm claim sản phẩm. SmailPro là dịch vụ email tạm thời chỉ nhận thư, không gửi hay trả lời thư. Agent có tài liệu để đối chiếu khi soạn nội dung hoặc trả lời hỗ trợ, nhưng tôi vẫn kiểm trước khi gửi. Có nguồn để tra không có nghĩa AI sẽ luôn đọc đúng hoặc không bao giờ bịa.
Tôi giữ kho gốc trên máy mình, không chia sẻ cả kho cho cộng tác viên. Ai cần tài liệu cho một việc thì nhận bản tóm tắt đã bỏ thông tin nhạy cảm trong vùng làm việc của họ. Cách này cũng có việc phải nhớ: tài liệu gốc đổi thì bản chia sẻ cần cập nhật, nếu không người nhận vẫn làm theo thông tin cũ. Mật khẩu, API key và token xác thực không nằm trong Markdown; chúng ở công cụ quản lý bí mật riêng.
Đó là phần bối cảnh tương đối ổn định. Việc phát sinh mỗi ngày tôi để ở những ngăn khác.
Những thư mục giữ nhịp làm việc hằng ngày
00-SonjjBot/: OpenClaw chạy việc nền, tôi giao việc qua Telegram
Template gọi ngăn này là 00-Agent-Runtime/. Trong vault thật, tôi đổi thành 00-SonjjBot/ vì nó dành cho OpenClaw. Không dùng OpenClaw thì cứ chọn agent khác, hoặc để ngăn này trống tới khi có việc chạy nền. Template công khai chỉ có folder và README, không kèm bot hay lịch tự động.
Ngồi trước máy, tôi dùng Craft Agent để đọc tài liệu, lên kế hoạch, viết bài và sửa code. OpenClaw trên Mac mini ở nhà chủ yếu chạy automation; với những việc ấy, theo trải nghiệm của tôi, nó chạy mượt hơn agent tôi dùng tương tác trên máy. Tôi nối OpenClaw với Telegram để khi ra ngoài vẫn giao được việc mà không phải quay về ngồi trước máy.
Tôi thiết kế để hai agent dùng được skill của nhau khi phù hợp. Quét thư hỗ trợ thành thẻ, gom bài đọc, ghi mục cần duyệt vào Daily là những việc nền tôi giao cho bot. Gặp bước cần tôi quyết, bot bàn giao rồi dừng.
01-Daily/: xem hôm nay đã chạy gì, còn gì chờ tôi
Buổi sáng tôi mở 01-Daily/YYYY-MM-DD.md để xem bot đã chạy gì và mục nào còn chờ tôi quyết. Bot quét thư hỗ trợ rồi ghi việc cần xử lý vào Daily, nhờ vậy tôi mở lại được thay vì tìm trong chat hoặc hộp thư. Nhưng bot ghi một mục vào đây không có nghĩa việc ấy đã xong.
Tôi cũng ghi nhanh chuyện phát sinh trong ngày. Cuối tuần nhìn lại các file Daily, tôi thấy việc nào cứ lặp lại để cân nhắc tự động hóa, việc nào chờ duyệt quá lâu. Ngày tháng trong file còn giúp tôi tìm lại một quyết định hoặc lần bot chạy việc, khỏi phải đoán “hình như đã làm rồi”.

Daily là nhật ký, không phải chỗ lưu kết quả lâu dài. Kết quả cần giữ thì về project trong 03-Workspace/; dữ liệu gốc vẫn ở Airtable hoặc dịch vụ sở hữu nó. Tôi xem Daily để biết bước tiếp theo, rồi quay lại đúng nơi của công việc.
02-Inbox/: Gom ý tưởng thô và những cuộc chat dở dang
Ý vừa nảy ra, hoặc gợi ý bài bot gom về, tôi để ở 02-Inbox/. Khi trò chuyện với agent mà câu chuyện đi dài quá, chưa đâu vào đâu, tôi cũng thường bảo nó tóm tắt lại rồi ném vào Inbox. Nằm trong Inbox chưa có nghĩa tôi sẽ làm. Chỉ khi chọn triển khai, tôi mới đưa nó vào project để ý mới không chen ngang việc đang chạy.
04-Notes/: Sổ tay kinh nghiệm thực tế để lần sau gặp lỗi cứ thế mở ra
04-Notes/ giữ những kinh nghiệm thực tế, cách xử lý vấn đề nếu còn gặp lại, và những thông tin cần lưu trữ lâu dài. Ví dụ như ghi chú về cấu hình hai máy hay runbook dựng lại hệ thống. Có vấn đề gì từng giải quyết xong, tôi ghi lại vào đây để lần sau gặp lại cứ thế mở ra xử lý.
99-Meta/: Kho template, hình ảnh và script dùng chung
99-Meta/ là nơi tôi chứa image, file và template để các project dùng chung: template daily note, khuôn thẻ việc, bảng Kanban, cấu trúc task folder, cùng những file code nhỏ phục vụ cho các tác vụ đơn giản. Tôi gom tài nguyên mẫu về đây để các project không phải tạo đi tạo lại từ đầu.
Còn công việc cụ thể của từng dự án, tôi đặt trong 03-Workspace/.
03-Workspace/: Nơi chứa dự án thật và chia việc cho cộng tác viên
Mỗi dự án là một folder độc lập có luật riêng
Mỗi dự án trong 03-Workspace/ có thư mục và AGENTS.md riêng. Brief và dàn ý của bài bạn đang đọc nằm ở 03-Workspace/sonjj.com-strategy/, cạnh kế hoạch nội dung. Khi cần nhớ bài viết cho ai, phạm vi đến đâu, tôi mở project đó chứ không đào lại các cuộc chat. 03-Workspace/airtable-manage-accounts/ thì giữ quy tắc, kế hoạch bảo trì và cách vận hành; dữ liệu tài khoản gốc vẫn ở Airtable, không chép cả kho vào vault.
Việc nhỏ tôi xử lý ngay trong project. Có dự án mới thì thêm thư mục và luật cho nó, không cần xếp lại mọi dự án cũ.
Tách việc phức tạp thành task folder để dễ bàn giao
Trong một project, khi gặp việc cần nhiều bối cảnh hoặc đầu ra riêng, tôi tách thành một task folder. Template gợi ý request.md cho yêu cầu, AGENTS.md cho luật của việc, data/ cho đầu vào và results/ cho kết quả. Folder thật có thể đặt tên khác, miễn là mở ra biết đâu là yêu cầu, dữ liệu và phần bàn giao.
Ví dụ, task đối chiếu 236 dòng từ khóa SmailPro với trang đích ở 03-Workspace/airtable-manage-seo/260924-smailpro_com-strategy-keyword-mapping/ dùng AGENTS.md để khoanh phạm vi, artifacts/ cho tệp xử lý và review/ cho báo cáo. Cần sửa kết quả thì tôi tìm đúng phần báo cáo, không lục chat. Khi duyệt xong, phần cần giữ quay về project cha; task có thể giữ lại để truy vết. Folder giúp biết nên đọc đâu, nhưng tên folder không chặn được quyền truy cập của agent.
Chia việc cho 2 cộng tác viên: Đồng bộ đúng folder cần làm
Tôi có hai vùng @hieu và @ledat trong 03-Workspace/, theo mẫu @tên. Mỗi folder 03-Workspace/@tên/ được Syncthing đưa tới đúng máy người nhận. Trong đó có AGENTS.md ghi vai trò và ranh giới, phần .agents/ cần dùng, tài liệu đã làm sạch, thẻ việc theo ngày trong tasks/ và bảng TODO.md. Người làm có tài liệu cạnh đầu việc mà không phải nhận cả vault. Hai vùng này do tôi thêm vào, không có sẵn khi tải template.

Tôi giao việc qua thẻ trong tasks/YYYY-MM-DD.md; bot chuẩn bị bối cảnh, giới hạn và bước kiểm. Người làm xem TODO.md, có thể nhờ AI soạn rồi tự thao tác trong phạm vi được giao. Việc chưa làm mang dấu - [ ]; xong thì họ đánh dấu [x]. Syncthing đưa thay đổi về máy tôi, nơi Management.md hiển thị trạng thái. Bảng cho tôi thấy tiến độ, không tự nghiệm thu chất lượng. Việc nhạy cảm như hoàn tiền vẫn phải qua tôi.

Việc lớn có task folder; người mới có vùng chia sẻ riêng. Máy cộng tác viên chỉ đồng bộ folder tôi chọn, không nhận các project khác hoặc Knowledges/ gốc. Đó là phạm vi tôi chọn để chia sẻ, không phải lớp bảo mật do tên folder hay file luật tạo ra.
Tôi không để secret trong folder chia sẻ. Ngắt Syncthing cũng không thu hồi những bản file đã đến máy người nhận, nên trước khi bật sync phải nghĩ xem thứ gì có thể nằm ở đó. AI giúp soạn bản nháp; hành động public vẫn thuộc người có thẩm quyền. Folder cộng tác, Kanban và bảng điều hành là phần tôi tự thêm hoặc cấu hình, không phải hệ thống giao việc có sẵn trong template.
Khi file đi qua nhiều máy, chuyện đồng bộ và chuyện giữ bản an toàn rất dễ bị lẫn với nhau.
Dữ liệu nằm trong tay tôi, kể cả khi làm việc trên nhiều máy
Điều tôi thích ở cách làm này là vault nằm trên máy mình. Quy tắc, ghi chú và kết quả là file Markdown UTF-8 dùng đường dẫn tương đối; tôi có thể mở, sửa và mang chúng sang máy khác mà không phải gửi cả bối cảnh công việc vào một ứng dụng quản lý dự án để nó giữ hộ. Tôi viết và duyệt trên máy chính; Mac mini M4 HomeServer ở nhà chạy agent, bot và việc nền 24/7. Syncthing đồng bộ vault giữa hai máy.
Hai người hỗ trợ chỉ nhận hai folder @hieu và @ledat qua Syncthing, không nhận toàn bộ vault. Các folder ấy vẫn nằm trong 03-Workspace/ trên máy tôi, nên tài liệu và kết quả họ đồng bộ về có thể được đưa vào lịch sử Git private cùng phần vault còn lại. Khi đã commit và đẩy bản thay đổi lên remote, tôi có thể xem lại hoặc khôi phục phiên bản cũ nếu cần. Git không tự lưu phần chưa commit, cũng không thay một bản backup độc lập. Và file đã gửi tới máy cộng tác viên thì vẫn ở đó dù tôi ngừng chia sẻ.
Vault giữ bối cảnh, luật, kế hoạch và kết quả; code gốc ở repo riêng, dữ liệu tài khoản ở Airtable, bài đã đăng ở CMS. Tôi chủ động chọn thứ gì ở máy mình, thứ gì đưa cho người khác và thứ gì đẩy lên Git private. Nếu remote Git do dịch vụ bên ngoài lưu trữ thì vẫn có bên thứ ba giữ bản sao; “tự chủ” ở đây là quyền giữ file gốc và quyết định phạm vi chia sẻ, không phải lời hứa dữ liệu chưa từng rời máy. Sơ đồ dưới cho thấy các bản file đi đâu:

Bắt đầu bằng một người và một project thật
Vault của tôi không có đủ mọi ngăn ngay từ đầu. Tôi bắt đầu với một người và một project; project đầu chạy được rồi mới thêm dự án, thêm người, thêm bot và bảng việc khi cần.
Nếu làm một mình, người nhận việc có khi là chính bạn vào ngày mai. Một task folder giữ yêu cầu, đầu vào, luật và kết quả để ngày mai mở ra làm tiếp, thay vì chỉ thấy một dòng nhắc việc không có bối cảnh. Agent có thể giúp đọc tài liệu, chuẩn bị bản nháp hoặc theo dõi phần việc trong giới hạn bạn đặt; quyết định và bước duyệt vẫn thuộc về bạn. Đến lúc có người hỗ trợ, tạo vùng riêng và chỉ đưa vào đó những tài liệu họ cần.
Cách tổ chức này không đòi bạn biết viết code hay làm nghề công nghệ. Bạn làm nghề nào có project, tài liệu và việc cần theo dõi thì đều có thể bắt đầu từ một folder của mình. Freelancer thiết kế có thể tách project theo khách hàng và đưa phần việc cho trợ lý vào folder riêng. Nhiếp ảnh gia cưới có thể dùng project cho một mùa, task cho từng buổi chụp, folder bàn giao cho người hậu kỳ. Giáo viên có thể tách từng lớp và chia sẻ tài liệu cần chấm hoặc soạn cho trợ giảng trong vùng được chọn. Đó là gợi ý áp dụng, không phải những dự án tôi đã vận hành.
AI càng dễ tham gia vào công việc thì việc đặt bối cảnh và ranh giới cho nó càng đáng làm: nó cần biết đọc gì, làm tới đâu và để kết quả ở đâu. Giữ tài liệu trong các file mình quản lý giúp bạn kiểm tra và chuyển sang công cụ khác khi cần. Nhưng tự lưu trữ không tự động làm dữ liệu an toàn; vẫn phải chọn quyền truy cập, lọc thông tin trước khi chia sẻ và giữ bản sao lưu phù hợp.
Nếu bạn cần xem lại cách thiết lập ban đầu và góc nhìn tổng quan khi kết hợp hai công cụ này, xem bài viết về Obsidian và Sonjj Agents. Còn khi muốn thử ngay trên máy mình, hãy mở repo template Obsidian Agent Workspace, đọc AGENTS.md và chọn một project thật của mình. Chưa cần bot, Kanban hay vùng cộng tác. Có việc cần làm rồi hãy thêm folder tương ứng.
No spam, no sharing to third party. Only you and me.