Khoj:本地优先的 AI 第二大脑,把笔记变成可对话知识库
智能体
📖 简介
Khoj 是本地优先的 AI 第二大脑,支持 Obsidian/Emacs/网页/桌面多端,能对笔记做语义搜索、自动生成、跨文档问答,OpenAI 兼容 API,数据完全掌控在自己手里。
📝 详细介绍
开篇
这篇教程带你从零跑起一个 Khoj 实例,最终你会拥有一个本地运行的 AI 问答服务,它能直接检索你指定的 Markdown 笔记文件,并用自然语言回答你的问题。整个过程不需要上传数据,也不依赖云端。
前置条件
- Linux/macOS/WSL 环境,Windows 原生请用 Docker 方式
- Python 3.10 或更高版本,以及 pip 20+
- 已安装 Ollama,并拉取至少一个模型(推荐
llama3.1) - 至少 8GB 内存(本地模型推理建议 16GB)
- 一个存放笔记的文件夹,比如
~/notes
安装部署
安装 Khoj
创建虚拟环境,避免污染系统依赖:
python3 -m venv khoj-env
source khoj-env/bin/activate
安装 Khoj(包含本地模型支持):
pip install "khoj[ai]"
初始化配置
生成默认配置文件目录:
khoj init
编辑 ~/.khoj/khoj.yml,先写一个最小可运行配置:
content-type:
markdown:
input-files:
- /home/yourname/notes
chat:
model: "ollama/llama3.1"
embed-model: "ollama/nomic-embed-text"
记得把 /home/yourname/notes 换成你的笔记目录。
启动
khoj --config ~/.khoj/khoj.yml
看到类似 Server running on http://localhost:42123 的日志就说明成功了。
第一个 Demo:让 Khoj 回答笔记里的问题
先准备笔记内容
这一步要创建笔记文件,并写入几条带明确事实的信息,方便后面验证。
mkdir -p ~/notes
cat > ~/notes/okr.md << 'EOF'
# 季度目标
- Q3 冲刺目标:把用户留存率从 60% 提升到 70%
- 关键结果 1:上线新版引导流程
- 负责人:小林
EOF
重建索引
新增文件后需要让 Khoj 重新读取笔记:
khoj --config ~/.khoj/khoj.yml --re-index
在网页里提问
打开浏览器访问 http://localhost:42123,在输入框里输入:
Q3 冲刺目标是什么?
预期输出:根据你的笔记,Q3 冲刺目标是把用户留存率提升到 70%,关键是上线新版引导流程,负责人的小林。
如果没跑通,确认 Ollama 已启动:ollama serve,并且模型已拉取:ollama pull llama3.1。
配置与调优
定期刷新索引
Khoj 不会自动监控文件变化。结合 cron 每小时重建一次:
crontab -e
0 * * * * cd /path/to/khoj-env/bin && ./khoj --config ~/.khoj/khoj.yml --re-index
切换更强或更快的模型
如果硬件允许,可以在 khoj.yml 的 chat.model 里换成更大的模型,比如 ollama/mistral,或者改用 OpenAI 模型:
chat:
model: "ollama/mistral"
top-k: 5
限制回答范围,减少幻觉
在配置中提高检索结果数量,并关闭全局搜索,让回答更贴近笔记:
chat:
model: "ollama/mistral"
retrieval-top-k: 8
reranker: "cross-encoder"
常见坑与排错
| 报错信息 | 原因 | 解决办法 |
|---|---|---|
ConnectionRefusedError: [Errno 111] | Ollama 没启动或端口不对 | 先运行 ollama serve,再重启 Khoj |
No module named 'torch' | 本地嵌入模型需要 PyTorch | 执行 pip install "khoj[gpu]" 或 pip install torch --index-url https://download.pytorch.org/whl/cpu |
Error indexing files | 笔记目录路径写错或权限不足 | 检查 khoj.yml 里的 input-files 是否为绝对路径,且当前用户可读 |
| 回答内容完全是模板化,答非所问 | 模型没有检索到笔记,可能索引没刷新 | 执行 khoj --config ~/.khoj/khoj.yml --re-index,确认日志里有“Indexing complete” |
下一步
- 接入 Notion、Google Docs 等更多内容源,在
content-type下添加对应配置 - 为 Khoj 写一个本地 Web 前端,用 WebSocket 把对话流式推送到页面
- 用 Docker Compose 打包你的 Khoj + Ollama,一键部署到局域网服务器,供多设备使用
🚀
AI 项目推荐
智能体- 标签
- #知识库 #第二大脑 #自托管 #语义搜索
- 浏览
- 👁️ 16
- 发布日期
- 2026-08-30