2 điểm bởi jylkim 16 giờ trước | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

Xin chào. Tại Dnotitia, nơi tôi đang làm việc, chúng tôi đang xây dựng AKB (Agent Knowledge Base), một kho tri thức nhóm mà các AI agent có thể trực tiếp đọc và ghi trong quá trình làm việc.

Vì sao chúng tôi tạo ra nó?

Đã có rất nhiều wiki dành cho con người như Confluence và Notion. Phía agent cũng có các công cụ tương tự. mem0 tích lũy nội dung rút ra từ hội thoại thành bộ nhớ cá nhân, còn LLM Wiki tạo ra kho tri thức cá nhân mà agent có thể đọc và ghi. Tuy nhiên, phần lớn vẫn dừng ở cấp độ cá nhân, nên khó có thể nói là chúng được thiết kế như một nền tảng chung để nhiều người cùng đọc và cùng viết.

Open Knowledge Format (OKF) của Google cũng chỉ ra vấn đề tương tự. Tri thức bị phân tán khắp wiki, catalog và mã nguồn, khiến agent mỗi lần lại phải gom bối cảnh từ đầu; vì vậy điều cần thiết không phải là thêm một dịch vụ khép kín nữa, mà là một định dạng chung để nhiều công cụ có thể cùng đọc và cùng viết. Định dạng mà OKF đề xuất rất đơn giản: gom các file Markdown vào một thư mục, rồi thêm vài dòng YAML ở đầu mỗi file. Còn việc ai sẽ tạo định dạng này, đọc nó ra sao và mở rộng nó thế nào thì được để ngỏ cho từng triển khai tự quyết.

AKB làm gì?

AKB là hạ tầng hiện thực hóa định dạng đó thành nền tảng tri thức chung cho cả nhóm. vault là một tập hợp Markdown tương thích với OKF, nhưng không phải chỉ là một chỉ mục để tìm kiếm và đọc; đó là kho lưu trữ dùng chung nơi con người và agent cùng đọc và cùng viết trên cùng một nguồn gốc dữ liệu. Con người truy cập qua web UI, còn agent truy cập qua MCP. Dù vậy, nguồn gốc mà cả hai tác động vào vẫn chỉ là một. Khi agent bắt đầu ghi dữ liệu, câu hỏi “điều gì đã thay đổi và thay đổi như thế nào” cũng trở nên quan trọng. Vì vault là một kho Git, mọi thay đổi đều được lưu lại dưới dạng commit và diff.

Thứ được lưu trữ không chỉ là tài liệu. Nếu OKF là định dạng để viết tri thức bằng Markdown, thì AKB bổ sung thêm vào cùng một vault các bảng có thể truy vấn và kho lưu trữ tệp, đồng thời nối các tài liệu với nhau bằng đồ thị tri thức. Tài liệu được giữ như tri thức để con người đọc và agent tham chiếu, còn dữ liệu cần xử lý theo dạng có cấu trúc như danh sách, trạng thái hay thống kê thì có thể được lưu trong các bảng riêng và truy vấn. Vì vậy, những việc khó thực hiện chỉ với wiki cho con người hay công cụ tìm kiếm, chẳng hạn dùng AKB như một lớp dữ liệu và lịch sử thay đổi để phát triển rồi vận hành các ứng dụng nghiệp vụ phía trên, cũng trở nên khả thi.

Tuy nhiên, để trở thành nền tảng tri thức chung cho cả nhóm, chỉ dữ liệu và lịch sử là chưa đủ. Các định dạng như OKF không quy định ai được xem cái gì. Phần mà AKB đầu tư công sức nhất chính là quyền truy cập. Agent được xác thực với tư cách người đã cấp token cho nó, và kế thừa nguyên vẹn quyền trên vault của người đó. Ranh giới truy cập vốn áp dụng cho con người cũng được áp dụng y hệt cho agent. Ranh giới này được cưỡng chế ở hai lớp. Với truy cập thông thường như tài liệu, tệp và tìm kiếm, quyền được kiểm tra ở lớp ứng dụng. Còn với đường chạy SQL tổng hợp hoặc phân tích trên bảng, lớp DB sẽ chặn thêm một lần nữa. Truy vấn được thực thi theo PostgreSQL role của chính người dùng đó theo cơ chế PG ACL, nên nếu tham chiếu tới vault nằm ngoài quyền, chính PostgreSQL sẽ từ chối trực tiếp chứ không phải ứng dụng.

Nhóm chúng tôi đang triển khai và sử dụng issue tracker reef trên hạ tầng AKB. Mỗi issue vừa là một tài liệu Markdown trong vault, vừa là một hàng trong bảng có thể truy vấn. Developer làm việc với các coding agent như Claude Code hay Codex, còn PM làm việc với agent chuyên dụng của reef; cả hai cùng nhìn vào một tài liệu trong vault. PM không cần biết cú pháp đặc tả dành cho developer vẫn có thể tạo issue dựa trên bối cảnh đã tích lũy trong AKB, còn developer có thể lấy dữ liệu qua MCP để phát triển mà không cần đào lại các giải thích nền tảng đang bị phân tán. Trong nhóm, chúng tôi đang trực tiếp cảm nhận được việc agent giúp giảm bớt rào cản kỹ thuật và ngôn ngữ giữa developer và PM.

Xem thử ngay

Nếu muốn xem ngay mà không cần cài đặt, bạn có thể truy cập bản demo công khai tại akb-demo.agent.seahorse.dnotitia.ai. (Cần đăng ký, nhưng vì là bản demo nên toàn bộ dữ liệu sẽ được khởi tạo lại hằng tuần.)

Nếu muốn tự chạy thử, hãy khởi động bằng Docker compose như bên dưới rồi truy cập localhost:3000. Ngay cả khi không có embedding key, tìm kiếm theo từ khóa (BM25) vẫn hoạt động.

git clone https://github.com/dnotitia/akb && cd akb  
cp config/app.yaml.example   config/app.yaml  
cp config/secret.yaml.example config/secret.yaml  
docker compose up -d  

Hiện vẫn còn nhiều điểm chưa hoàn thiện. Nếu bạn thử chạy, chúng tôi rất cảm kích nếu bạn để lại bình luận về bug, điểm bất thường hoặc cảm nhận của mình.

Chưa có bình luận nào.

Chưa có bình luận nào.