Rowboat 本地搭建教程:让 AI 真正“记得你做过什么”
你有没有这种崩溃时刻:
- 上周会议定了方案,这周又被拉进群里“再对一遍背景”
- 决策过程散落在邮件、IM、文档评论区,找起来像考古
- 你想让 AI 帮忙推进工作,结果它每次都要你重讲上下文
问题不在你不够聪明,问题在“记忆”没被系统化。
Karpathy 那句很扎心:少输入 tokens,让大量事情替你发生。要做到这点,你的 AI 得有持续累积的工作记忆。
Rowboat 就是奔着这个来的:用 Markdown + Obsidian 这种朴素但强韧的底座,把工作里的信息织成一个会越长越密的知识网,而且强调 100% 本地运行。
仓库:
github.com/rowboatlabs/rowboat(原文给的链接)
下面这篇给你一套“能落地”的搭建路线:从本地跑起来,到怎么把会议/邮件/决策喂进去,再到怎么用它减少你重复解释的次数。
你会得到什么(讲人话版)
搭好后,你会逐渐拥有:
- 一个 Obsidian Vault:所有工作内容以 Markdown 形式沉淀
- 可查询的记忆:今天问 AI“这个需求当时为什么这么定”,它能翻出依据
- 越来越顺的知识图谱:人、项目、决策、承诺、截止日期彼此有链接
- 更少的重复劳动:少开“对齐会”,少写“背景介绍”,少翻聊天记录
开始之前:准备清单 ✅
把这些装好,后面会很省事:
- Git(拉代码)
- Docker Desktop(强烈推荐,省去环境地狱)
- Obsidian(用来浏览/编辑 Vault)
- (可选)本地大模型运行器:比如 Ollama / LM Studio
说明:Rowboat 的具体依赖、端口、启动命令以仓库 README 为准。下面给的是一套“通用且稳妥”的本地部署路线,你照着做能快速跑通,再按 README 微调。
部署路线 A:Docker 跑起来(适合大多数人)
1)拉取代码
git clone https://github.com/rowboatlabs/rowboat.git
cd rowboat
2)找 compose / 启动入口
在项目根目录看这些文件有没有:
docker-compose.yml/compose.ymlMakefileREADME.md里的 Quickstart
常见启动方式一般是其中一种:
# 方式 1:docker compose
docker compose up -d --build
# 方式 2:Makefile
make up
跑起来后,通常会有:
- 一个 Web UI(浏览、搜索、图谱、任务)
- 一个索引/嵌入服务(做检索)
- 一个本地数据库(SQLite 或 Postgres,看项目配置)
3)确认数据目录是“本地持久化”
这一步很关键,不然你重启容器就全没了。
你要在 compose 里看到类似:
./data:/app/data./vault:/app/vault
没有的话就按 README 配。目标只有一个:Vault 和索引数据落在你自己的硬盘上。
部署路线 B:本机源码运行(适合爱折腾/要改代码的人)
通常会是 Python/Node 其中之一,常见套路:
# Python 例子
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# 或 Node 例子
pnpm install
pnpm dev
具体用哪套命令,别猜,直接以仓库 README 为准。
把 Obsidian 接上:让“记忆”可见、可编辑 🧠
Rowboat 的底层是 Markdown,这个选择特别爽:
- 你不被任何 SaaS 绑架
- 文件就是文件,能 Git、能备份、能迁移
- Obsidian 打开就是一整个工作大脑
你要做的事
-
在本地新建一个 Vault 文件夹,比如:
~/RowboatVault -
在 Rowboat 配置里,把 Vault 路径指向这个目录
-
用 Obsidian 打开这个 Vault
之后你所有会议纪要、决策记录、项目日志,都往这里写。Rowboat 负责索引、连线、检索和“把上下文喂给 AI”。
信息怎么喂进去:别靠自律,靠流程
靠“我记得要整理”基本等于没整理。建议你用下面这套结构,写起来像流水账,但检索起来非常猛。
推荐目录结构(直接抄)
RowboatVault/
00_Inbox/
01_People/
02_Projects/
03_Meetings/
04_Decisions/
05_Commitments/
06_Notes/
99_Attachments/
00_Inbox:临时丢一切,后面再整理03_Meetings:所有会议纪要04_Decisions:所有决策(强制沉淀)05_Commitments:承诺与截止日期(防遗忘神器)
会议纪要模板(建议强制使用)
新建:03_Meetings/2026-05-11-项目A周会.md
---
type: meeting
date: 2026-05-11
project: 项目A
attendees: [张三, 李四]
---
# 项目A周会(2026-05-11)
## 结论
-
## 讨论要点
-
## 决策(一定要写清楚)
- 决策:
- 选项:
- 原因:
- 反对意见:
- 负责人:
- 复盘时间:
## 承诺 / To-do
- [ ] 谁 在 什么时候 前 做 什么
## 资料链接
-
你会发现,AI 最爱这种结构化信息。因为它能稳定抽取“人/事/时间/原因”。
决策记录模板(让你少背锅)
新建:04_Decisions/DEC-2026-05-11-为什么选方案B.md
---
type: decision
date: 2026-05-11
project: 项目A
status: decided
---
# DEC-2026-05-11 为什么选方案B
## 背景
## 候选方案
- A:
- B:
- C:
## 最终选择
- 选:B
## 依据
-
## 影响范围
-
## 风险与兜底
-
这份东西写好了,以后有人问“当时为什么这么定”,你不用再开会解释半小时。
接本地模型:保证“100% 本地”的关键点
很多人说本地,结果 embedding 还在调云 API,那就尴尬了。
你要做的是两件事:
- LLM 推理本地(用于总结、问答、抽取)
- Embedding 向量本地(用于检索/召回)
常见做法是用 Ollama:
# 安装好 ollama 后
ollama pull qwen2.5:7b
ollama pull nomic-embed-text
然后在 Rowboat 的配置里把:
- LLM Base URL 指向
http://localhost:11434 - Embedding model 也切到本地
具体字段名看 Rowboat 的配置示例(一般在
.env.example、config.yaml一类文件)。
每天怎么用:给你一条“低摩擦”工作流
你不需要做很多。
习惯 1:所有会议纪要都进 Vault
- 会后 10 分钟内,把纪要丢进
03_Meetings - 没时间写?就贴录音转文字/聊天记录也行,先落地再优化
习惯 2:每次拍板都写一条决策卡片
- 只写 3 行也可以:选了啥、为啥、谁负责
- 不写决策记录,后面必然出现“反复讨论同一件事”
习惯 3:承诺集中管理
把所有“谁在什么时候前要交付什么”写进 05_Commitments。
你会明显感觉到:
- 扯皮变少
- 追进度变简单
- 你不需要当人肉提醒器
你可以直接问它什么(例子)
当你把资料持续喂进去,问题就可以问得很具体:
- “项目A 这个需求当时的决策依据是什么?把反对意见也列出来。”
- “把过去两周跟张三相关的承诺按截止日期排序。”
- “上次我们讨论的风险清单有哪些?哪几条还没兜底?”
- “把这个讨论串总结成:结论/分歧点/待办/负责人。”
这才叫少输入 tokens。
避坑清单(踩过的人会懂)
- Vault 乱命名:文件名带日期,长期收益巨大。别用“会议纪要(1)(最终版).md”。
- 只存总结不存原文:总结会丢细节。原文+结构化摘要一起留。
- 到处都是 To-do:待办散落在会议纪要里很正常,但一定要有一个承诺中心(
05_Commitments)。 - 本地≠没备份:本地跑得越爽,越要做备份。Git + 加密网盘/移动硬盘,随你。
- 模型太小硬扛复杂任务:7B 能用,但别指望它一次性读懂十几份长文档。该分块就分块。
一句行动建议
别等“资料整理完再开始”。
今天就做三件事:
- 把 Rowboat 跑起来(Docker 优先)
- 建好 Vault 目录结构
- 把下一场会议纪要按模板写进去
坚持两周,你会开始尝到甜头。
6 个月后差距会非常夸张:你要么拥有一个会长记性的工作系统,要么继续在聊天记录里考古。选哪个,真的就看今天动不动手。