Hướng dẫn bạn cách biến các tập tin PDF rải rác thành một kho kiến thức cá nhân toàn diện bằng cách sử dụng OpenCode.
LLM-Wiki là ý tưởng của Andrej Karpathy: thay vì dùng RAG (luôn retrieve từ raw documents mỗi lần hỏi. Khi bạn hỏi, hệ thống tìm kiếm (retrieve) các đoạn văn bản (chunks) liên quan từ tài liệu gốc (raw documents) bằng vector search (embedding + vector DB), sau đó đưa chunks đó vào context của LLM để sinh câu trả lời.
→ Mỗi query gần như stateless (không trạng thái), phải “khám phá lại” kiến thức từ đầu.) , ta để LLM tự xây dựng và duy trì một kho kiến thức dạng Markdown (gọi là Wiki. LLM tự đọc và biên soạn (compile) tài liệu gốc một lần thành một kho kiến thức dạng Markdown có cấu trúc (các trang concept, entity, index, liên kết chéo). Sau đó, khi query, LLM chủ yếu làm việc trên Wiki đã được tổng hợp sẵn thay vì raw documents. → Stateful & Compounding: Kiến thức tích lũy, kết nối và ngày càng sâu sắc hơn theo thời gian.). Wiki này gồm:
- Các trang chủ đề (concept/entity pages)
- Index, summary, synthesis
- Liên kết chéo (interlinked)
- Kiến thức được “nấu chín” (compiled) một lần và cập nhật dần dần → tránh catastrophic forgetting.
Mỗi khi thêm source mới (PDF, bài viết, note…), LLM sẽ đọc, tóm tắt, cập nhật nhiều trang liên quan trong Wiki. Khi hỏi, LLM chủ yếu đọc Wiki (nhanh, chính xác và compounding).
Ưu điểm của LLM-Wiki:
Kiến thức compounding như lãi kép: Mỗi nguồn mới không chỉ thêm thông tin mà còn cập nhật các trang liên quan, tạo liên kết chéo.
Trả lời sâu sắc hơn với các câu hỏi phức tạp, so sánh, tổng hợp.
Đơn giản, rẻ, dễ làm việc với agent (OpenCode, Claude Code, Cursor…).
Human-readable: Bạn có thể mở Obsidian để xem graph view của kiến thức.
Nhược điểm của LLM-Wiki:
Ingest tốn kém (LLM phải đọc và tổng hợp từng nguồn).
Lỗi trong quá trình ingest có thể bị “nướng” vào wiki và lan tỏa.
Khó xử lý kho dữ liệu rất lớn hoặc thay đổi liên tục (high churn).
Ưu điểm của RAG:
Scale tốt với dữ liệu lớn, động (hàng nghìn tài liệu, cập nhật thường xuyên).
Dễ trace nguồn gốc (citation).
Phù hợp cho enterprise search, customer support, legal/medical (cần độ chính xác cao và traceability).
Nhược điểm của RAG:
Mỗi query phải “nấu lại từ đầu” → lãng phí và chất lượng tổng hợp kém hơn khi câu hỏi phức tạp.
Phụ thuộc mạnh vào chất lượng chunking và embedding.
Không tích lũy kiến thức lâu dài.
4. Khi nào nên dùng cái nào?
Dùng LLM-Wiki khi:
Kiến thức cá nhân, nghiên cứu cá nhân, team nhỏ.
Số lượng nguồn curated (chọn lọc), không quá lớn.
Muốn kiến thức tích lũy sâu theo thời gian (personal knowledge base, theo dõi một chủ đề dài hạn, codebase nội bộ, đọc sách/notes).
Ưu tiên sự đơn giản, minh bạch và compounding.
Dùng RAG khi:
Kho tài liệu rất lớn hoặc thay đổi thường xuyên.
Cần xử lý query factual nhanh trên dữ liệu động.
Yêu cầu traceability cao (pháp lý, y tế, hỗ trợ khách hàng).
Dự án enterprise cần scale.
Kết hợp cả hai cũng rất phổ biến: Dùng LLM-Wiki cho kiến thức cốt lõi đã tổng hợp + RAG cho raw documents lớn hoặc dữ liệu mới nhất.
Cách triển khai LLM-Wiki với OpenCode
OpenCode hỗ trợ rất tốt LLM-Wiki qua file instruction (tương tự AGENTS.md).
Bước 1: Cài đặt OpenCode. Sau đó chạy opencode để khởi động (có phiên bản terminal, desktop app beta, hoặc IDE extension). Cấu hình model bạn muốn dùng (Claude, GPT, Gemini, local model qua Ollama/LM Studio, hoặc OpenCode Zen).
Bước 2: Sử dụng repo LLM-Wiki chính thức hỗ trợ OpenCode
Repo tốt nhất và được cập nhật hỗ trợ OpenCode tốt nhất hiện nay là:
//github.com/nvk/llm-wiki
Nó có thư mục riêng plugins/llm-wiki-opencode/ dành cho OpenCode.
Cách cài nhanh nhất:
Cách A (Khuyến nghị – dùng remote URL):
Tạo hoặc chỉnh sửa file cấu hình của OpenCode:
Project-level: opencode.json trong thư mục dự án
Global: ~/.config/opencode/opencode.json hoặc ~/.config/opencode/AGENTS.md
Thêm nội dung sau vào opencode.json:
{
“instructions”: [
“//raw.githubusercontent.com/nvk/llm-wiki/master/plugins/llm-wiki-opencode/skills/wiki-manager/SKILL.md”
],
“permission”: {
“external_directory”: {
“~/.config/llm-wiki/**”: “allow”,
“~/wiki/**”: “allow” // thay bằng đường dẫn wiki của bạn
}
}
}
Cách B (Offline – copy file):
Clone repo: git clone //github.com/nvk/llm-wiki.git
cd llm-wiki
Copy file SKILL.md vào vị trí OpenCode đọc:
Copy plugins/llm-wiki-opencode/skills/wiki-manager/SKILL.md vào ~/.config/opencode/AGENTS.md (hoặc symlink).
Bước 3: Thiết lập thư mục Wiki
Tạo cấu trúc thư mục gợi ý:
~/wiki/
├── index.md # Trang chính, danh sách chủ đề
├── concepts/ # Các trang khái niệm
├── entities/ # Người, tổ chức, sản phẩm…
├── sources/ # Hoặc raw/ để bỏ tài liệu gốc
├── logs/ # Nhật ký ingest
└── summaries/
Bạn có thể để OpenCode tự tạo cấu trúc bằng cách nói với nó.
Bước 4: Sử dụng LLM-Wiki
Mở OpenCode trong thư mục dự án hoặc thư mục wiki, sau đó dùng lệnh tự nhiên (natural language):
Ingest nguồn mới:
Đặt file PDF, .md, .txt… vào thư mục raw/ hoặc sources/
Gõ:
“Ingest file mới này vào wiki”
hoặc
“Process all documents in raw/ and update the wiki”
Query kiến thức:
“Tóm tắt những gì ta biết về X”
“So sánh A và B dựa trên wiki”
“Tạo trang tổng hợp về chủ đề Y”
OpenCode (với skill LLM-Wiki) sẽ:
Đọc các trang liên quan trong wiki
Cập nhật index, tạo/ sửa trang mới
Duy trì tính nhất quán
Lưu ý quan trọng khi dùng với OpenCode
- Web search: Nếu muốn skill hỗ trợ tìm kiếm web, set biến môi trường:
export OPENCODE_ENABLE_EXA=1
- Permission: OpenCode khá nghiêm ngặt về quyền truy cập thư mục ngoài. Hãy cấu hình permission trong opencode.json như ví dụ trên.
- Model mạnh khuyến nghị: Claude 3.5/4, GPT-4o, Gemini 2.5 Pro hoặc model local mạnh (nếu context lớn).
- Workflow tốt:
- Ingest từng file hoặc batch nhỏ để kiểm soát chất lượng.
- Thường xuyên review và chỉnh sửa wiki thủ công.
- Dùng Obsidian để xem wiki dưới dạng graph view (rất đẹp).

Bài viết liên quan: