Khoj: Bộ Não AI Thứ Hai Mã Nguồn Mở Mà Bạn Có Thể Tự Cài
Khoj là ứng dụng AI cá nhân mã nguồn mở đóng vai trò như bộ não thứ hai của bạn — chat với bất kỳ LLM nào, tìm kiếm tài liệu bằng AI ngữ nghĩa, tạo agent tùy chỉnh, và tự cài đặt hoàn toàn trên máy của mình.
Phần 1: Nền Tảng — Mô Hình Tư Duy
Bạn có hàng trăm note rải rác trong Obsidian, Notion, tập tin PDF nghiên cứu và các file Markdown. Bạn phải chuyển qua lại giữa ChatGPT, Claude, và Gemini, dán ngữ cảnh thủ công từng lần. Bạn muốn một AI đã đọc hết mọi thứ bạn biết — nhưng các nhà cung cấp lớn lại nhốt toàn bộ dữ liệu của bạn trên đám mây của họ.
Đó chính xác là khoảng trống mà Khoj được xây dựng để lấp đầy.
Mô Hình Tư Duy: Hãy nghĩ Khoj như một bộ não AI cá nhân chạy theo nguyên tắc — không phải chatbot đơn thuần, mà là một trợ lý kiến thức luôn hoạt động, đã đọc mọi tài liệu bạn từng viết, có thể tìm kiếm internet, tạo agent tự động, và làm tất cả điều này ngay trên máy bạn hoặc trên đám mây của Khoj, tùy lựa chọn.
Trong khi hầu hết các công cụ AI là stateless (mỗi cuộc trò chuyện bắt đầu từ đầu), Khoj là stateful và được lập chỉ mục kiến thức. Đây là AI nhớ được bạn.
Phần 2: Điều Tra — Kiến Trúc Chuyên Sâu
Bức Tranh Tổng Thể
Khoj là ứng dụng Python full-stack được xây dựng trên nền FastAPI ở lõi. Đây là luồng tổng quát:
┌──────────────────────────────────────────────────────────────┐
│ Khoj Clients │
│ Web App │ Plugin Obsidian │ Package Emacs │ Phone │ WhatsApp │
└─────────────────────────┬────────────────────────────────────┘
│ REST / WebSocket API
┌─────────────────────────▼────────────────────────────────────┐
│ Khoj Server (FastAPI) │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────────────┐ │
│ │ Pipeline │ │ Router Chat │ │ Engine Agent │ │
│ │ Indexing │ │ │ │ (Tool + Planner) │ │
│ └──────┬──────┘ └──────┬───────┘ └──────────────────────┘ │
└─────────┼────────────────┼────────────────────────────────────┘
│ │
┌─────────▼──────┐ ┌──────▼──────────────────────────────────┐
│ Vector Store │ │ LLM Adapters │
│ (embeddings) │ │ OpenAI │ Anthropic │ Google │ Ollama │
└────────────────┘ └─────────────────────────────────────────┘
Cấu Trúc Mã Nguồn
Codebase Khoj dưới src/khoj/ được tổ chức rõ ràng theo chức năng:
| Thư mục | Mục đích |
|---|---|
routers/ | Các endpoint FastAPI REST & WebSocket (chat, agent, tìm kiếm, file) |
processor/conversation/ | LLM adapter cho từng nhà cung cấp (OpenAI, Anthropic, Google, Ollama) |
processor/content/ | Parser tài liệu (PDF, Markdown, Notion, Org-mode, Word) |
database/ | Models Django ORM — cuộc trò chuyện, agent, file, người dùng |
search/ | Pipeline tìm kiếm ngữ nghĩa dùng sentence-transformers |
routers/api_agents.py | REST API đầy đủ để tạo và quản lý agent |
Mẫu LLM Adapter
Một trong những thiết kế thanh lịch nhất của Khoj là mẫu LLM adapter. Mỗi nhà cung cấp có module riêng với cùng interface:
# src/khoj/processor/conversation/anthropic/anthropic_chat.py
async def converse_anthropic(
messages: List[ChatMessage],
model: Optional[str] = "claude-3-7-sonnet-latest",
api_key: Optional[str] = None,
deepthought: Optional[bool] = False,
tracer: dict = {},
) -> AsyncGenerator[ResponseWithThought, None]:
"""Trò chuyện với người dùng dùng Claude của Anthropic"""
async for chunk in anthropic_chat_completion_with_backoff(
messages=messages,
model_name=model,
temperature=0.2,
...
):
yield chunk
Mẫu tương tự được áp dụng cho openai_chat.py, google_chat.py, và ollama_chat.py. Router chọn adapter phù hợp lúc runtime dựa trên model mà người dùng cấu hình — bạn chuyển từ GPT-4o sang Gemini sang Llama 3 mà không cần thay đổi bất kỳ dòng code nào.
Pipeline Nạp Tài Liệu
Khoj đọc kho kiến thức của bạn và lập chỉ mục vào vector store để truy hồi ngữ nghĩa:
- PDF → parser
pypdf - Markdown / Org-mode → trích xuất plain text
- Notion → tích hợp API chính thức
- Word → parser Office XML
- Ảnh → mô tả bằng Vision LLM
Tất cả đều vào chỉ mục vector embedding (sentence-transformers). Khi bạn đặt câu hỏi, Khoj thực hiện tìm kiếm tương đồng ngữ nghĩa trên corpus của bạn, lấy k phần liên quan nhất, và truyền chúng làm ngữ cảnh vào LLM — RAG cổ điển, nhưng tích hợp sâu sắc.
Phần 3: Chẩn Đoán — Khoj Làm Gì Cho Lập Trình Viên
Trường Hợp 1: Trợ Lý Nghiên Cứu Cá Nhân
Tải toàn bộ thư viện nghiên cứu — 300 PDF, 1.000 note Markdown, toàn bộ Notion — và trò chuyện với chúng:
# Đồng bộ thư mục tài liệu local
khoj --content-file /path/to/research/
# Hoặc qua web UI: Settings → Files → Upload
Hỏi: “Trong các bài báo của mình, bài nào đề cập kiến trúc Transformer cho dự báo chuỗi thời gian?” Khoj truy hồi các đoạn liên quan, trích dẫn chúng, và tổng hợp câu trả lời mạch lạc.
Trường Hợp 2: Agent AI Tùy Chỉnh
Hệ thống agent của Khoj cho phép bạn tạo nhân vật AI chuyên biệt với kho kiến thức, LLM, system prompt và công cụ riêng:
Settings → Agents → Create Agent
- Name: "Python Code Reviewer"
- Model: Llama 3.1 70B (local via Ollama)
- Knowledge Base: tài liệu codebase nội bộ của công ty
- Tools: Web Search, Code Execution
- Persona: "Bạn là senior engineer nghiêm khắc. Review code về bảo mật và độ chính xác."
Mỗi agent có endpoint chat riêng. Bạn có thể có agent “Nhà Phân Tích Nghiên Cứu” đọc PDF học thuật và agent “Copywriter Marketing” đọc tài liệu brand guidelines — cả hai chạy trên cùng một server Khoj.
Trường Hợp 3: Nghiên Cứu Tự Động (Scheduled Jobs)
Khoj có thể đóng vai trợ lý chủ động:
- Thiết lập task nghiên cứu hàng ngày: “Mỗi sáng, tìm kiếm tin tức về AI safety và gửi cho tôi một bản tóm tắt dạng newsletter”
- Nó duyệt web, tổng hợp thông tin, và giao đến kênh bạn cấu hình (email, webhook, v.v.)
Trường Hợp 4: Bảo Mật Dữ Liệu — Chạy Hoàn Toàn Local
Dành cho lập trình viên không muốn gửi dữ liệu lên đám mây bên thứ ba:
# Chạy Llama 3 local qua Ollama
ollama run llama3.1
# Trỏ Khoj vào đó
# Trong Khoj UI → Chat Models → Add Model → host: http://localhost:11434
Tài liệu của bạn ở trên ổ đĩa của bạn. Cuộc trò chuyện được xử lý local. Không có dữ liệu nào rời máy tính.
Các LLM Được Hỗ Trợ
| Loại | Nhà cung cấp | Model ví dụ |
|---|---|---|
| Cloud | OpenAI | GPT-4o, o3-mini |
| Cloud | Anthropic | Claude 3.7 Sonnet |
| Cloud | Gemini 1.5 Pro, Flash | |
| Cloud | Cohere, Mistral AI | Command R, Mistral Large |
| Local | Ollama | Llama 3.1, Qwen, Gemma, DeepSeek |
Phần 4: Giải Pháp — Cách Bắt Đầu
Lựa Chọn A: Cloud (Không Cần Cài Đặt)
Con đường nhanh nhất — truy cập app.khoj.dev và tạo tài khoản miễn phí. Không cần cài đặt gì.
Lựa Chọn B: Self-Host với Docker (Khuyên Dùng)
mkdir ~/.khoj && cd ~/.khoj
# Tải file compose chính thức
wget https://raw.githubusercontent.com/khoj-ai/khoj/master/docker-compose.yml
# Khởi động
docker-compose up -d
Truy cập http://localhost:42110 là xong.
Lựa Chọn C: Self-Host với pip (Dành Cho Python Developer)
# Cài đặt với hỗ trợ LLM local (llama-cpp-python)
python -m pip install 'khoj[local]'
# Khởi động server
khoj
Để tăng tốc bằng GPU:
# NVIDIA CUDA
CMAKE_ARGS="-DGGML_CUDA=on" FORCE_CMAKE=1 python -m pip install 'khoj[local]'
# Apple M1/M2/M3
CMAKE_ARGS="-DGGML_METAL=on" python -m pip install 'khoj[local]'
Thêm Kho Kiến Thức Của Bạn
Sau khi khởi động Khoj:
- Web App: Vào Settings → Files → kéo thả PDF, Markdown, hoặc kết nối Notion
- Obsidian Plugin: Cài plugin Khoj → nó lập chỉ mục vault của bạn tự động
- CLI đồng bộ:
khoj --content-file ~/notes/ --content-file ~/research/*.pdf
Kết Nối LLM Ưa Thích
Trong Settings → Chat Models:
- Thêm OpenAI key cho GPT-4o
- Thêm Anthropic key cho Claude
- Trỏ về
http://localhost:11434cho các model Ollama local
Khoj sẽ định tuyến tất cả cuộc trò chuyện qua model bạn chọn làm mặc định.
Mô Hình Tư Duy Cuối Cùng
┌────────────────────────────────────────────────────────────┐
│ Khoj │
│ │
│ "Bộ não AI thứ hai mã nguồn mở của bạn" │
│ │
│ Khoj LÀ: │
│ → Ứng dụng AI cá nhân tự cài được (FastAPI + Python) │
│ → Router LLM-agnostic (GPT, Claude, Gemini, Ollama) │
│ → Pipeline RAG trên TÀI LIỆU CỦA BẠN │
│ → Trình xây dựng agent với kiến thức + công cụ tùy chỉnh │
│ │
│ Khoj GIẢI QUYẾT: │
│ → Kiến thức rải rác qua file, app và công cụ │
│ → Phụ thuộc vào dịch vụ AI đóng, chỉ trên cloud │
│ → Quyền riêng tư: dữ liệu ở trên máy bạn nếu bạn muốn │
│ │
│ Khoj KÍCH HOẠT: │
│ → Chat với hàng ngàn tài liệu của riêng bạn │
│ → LLM local (Llama, Qwen, DeepSeek) qua Ollama │
│ → Agent tự động nghiên cứu và gửi newsletter │
│ → Đa nền tảng: Web, Obsidian, Emacs, Phone, WhatsApp │
│ │
│ Self-host: pip install khoj | docker-compose up │
│ Cloud: app.khoj.dev (có gói miễn phí) │
└────────────────────────────────────────────────────────────┘
GitHub: khoj-ai/khoj
Docs: docs.khoj.dev
Live App: app.khoj.dev
Bài viết liên quan
-
Project N.O.M.A.D.: Xây lô cốt tri thức cho ngày không có mạng
Khi đám mây bay đi mất, thứ còn lại trong ổ cứng mới là cứu cánh.
-
BitNet: Kỷ nguyên LLM 1-bit Cuối cùng đã Bắt đầu
Khám phá bitnet.cpp, framework chính thức của Microsoft dành cho các LLM 1-bit, giúp thay thế phép nhân bằng phép cộng để tăng tốc độ xử lý vượt trội.
-
Context Engineering: Kỹ Thuật Phân Tách AI Agent Giỏi Khỏi Agent Xuất Sắc
Khám phá Agent Skills for Context Engineering — bộ công cụ mã nguồn mở được viện dẫn trong nghiên cứu học thuật, dạy bạn cách quản lý context window như một kỹ sư AI chuyên nghiệp.
-
Bên Trong Hộp Đen: Những System Prompt Bị Rò Rỉ Tiết Lộ Gì Về Cách Các AI Tool Thực Sự Hoạt Động
Phân tích chuyên sâu bộ sưu tập system prompt bị rò rỉ lớn nhất từ Cursor, Manus, Windsurf, Devin, v0 và hơn 30 công cụ AI khác — khám phá kiến trúc cốt lõi, thiết kế công cụ và triết lý agent của chúng.