“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。
md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。
要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。
在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。
要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。
工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。
写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。
适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。
你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。
全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
传票拿不走的第二大脑:在树莓派5上跑本地RAG
说实话,我第一次看到“你的记忆如果托管在别人那里,你的思想就是租来的”这句话时,后背有点发凉。不是危言耸听,而是我意识到我们这代人正在干一件历史上从未有过的事:把工作记忆外包给云服务商。
Andy Clark和David Chalmers在1998年提出了“延展心灵”理论,大意是说:认知会渗透到我们信任的工具里。如果你能可靠地访问一个笔记本,那它就是你思维的一部分。放到2026年的今天,那个笔记本变成了一个由平台控制的向量数据库,而那个平台有法务部、有合规团队,响应传票的速度比你回邮件还快。你的延展心灵现在有了服务条款、数据保留策略,还有一个能随时交出你数据的法务团队。
我不是在怀念纸笔时代。我在想的是:什么样的架构能让你保留主动权?答案不是少用机器思考,而是在你控制的机器上本地思考。
所以我搞了个第二大脑,跑在树莓派5上,配了NVMe和Hailo-8加速器,完全离线的检索增强生成(RAG)。没有API密钥,没有遥测,没有任何第三方能被迫交出你的联想图谱。下面是我完整的实现方案,比那些云vs本地的口水文要扎实得多。
延展心灵,现在有了房东
延展心灵理论的核心是信任和耦合。如果你伸手拿一个工具就像你伸手拿一段记忆一样自然,那它就属于你的认知。云服务打破了这种耦合,因为它插进来一个房东。你的检索很快,但也被观察、被记录、被排序、被保留。这带来三个后果:
第一,认知污染。 当你的查询被用来训练他们的模型时,你未来的答案会被所有人的查询影响。你的私人上下文被稀释成了平均值。
第二,法律风险。 你的提示词、上传文件、检索历史和嵌入向量都是商业记录。在很多司法管辖区,这些是可以被发现的。你不能对你给服务商的数据主张第五修正案的保护。
第三,战略脆弱性。 一个政策变更、一次涨价、一个区域封锁,你的认知假肢就熄火了。这不是工具,这是依赖。
本地RAG恢复了这种耦合。模型在你桌上,索引在你硬盘上,检索路径从不出你的局域网。你重新获得了哲学家在乎的、黑客需要的东西:对你自己过往思维的直接、可靠、私密的访问。
为什么RAG比微调更适合个人大脑
微调把知识烤进权重里。贵、脆弱、难以审计。RAG把知识放在模型外面,查询时再检索。对于个人记忆,这有四个优势,不是只从实用角度,而是从智力层面:
可溯源。 RAG能精确引用它用了哪个文本块。你可以打开原始笔记核实。微调模型会自信地胡编,而且不给脚注。
可变性。 你的生活每天都在变。用RAG,你重新嵌入一条笔记,答案就更新了。用微调,你要么重新训练,要么忍受过时的权重。
可组合。 你可以用元数据过滤器混合不同语料。“只看2024年的工作笔记”、“只看代码,不要日记”。这是信息论在实践中的应用:检索就是选择性解压缩。
可移植。 一个2GB的向量库和一个量化后的8B模型能塞进树莓派。一个不拉胯的个人微调模型可不行。
RAG不是权宜之计。它是对超文本原始理念的回归,只不过用相似度搜索代替了手动链接。Bush的Memex设想了联想轨迹,我们现在终于有了构建它们的数学工具。
不被胁迫的架构
思考时要分层,不要按产品想。
摄取层。 文件进,干净文本出。PDF用本地OCR,网页剪藏用可读性提取,代码用tree-sitter感知的分块。每个块都有元数据:源路径、哈希值、创建时间、标签、隐私标签。
嵌入层。 一个小型本地嵌入模型把文本转成向量。我用nomic-embed-text-v1.5,因为它小巧、召回率高,在ARM上跑得很好。大多数云方案就在这里泄露信息——别在这儿漏。
存储层。 树莓派上跑Qdrant。用Rust写的,内存占用低,过滤功能好。你更需要元数据过滤,而不是原始速度。快速但错误的答案比慢速但正确的更糟糕。
模型层。 Ollama跑一个量化后的指令模型。llama3.1:8b-instruct-q4_K_M是树莓派5 8GB版的甜点。如果加了Hailo-8,可以把嵌入推理卸载掉,释放CPU给生成任务。
接口层。 一个极简的FastAPI服务器,做检索、构建带引用的提示词、调用Ollama、返回结构化JSON。前端随便你用什么。我用本地的Obsidian插件和一个在野外用的TUI。
整个循环都在设备上完成。唯一的网络流量是你选择在自己机器之间同步加密笔记的时候。
让这一切成真的硬件
树莓派5不再是玩具了。关键变化是PCIe通过HAT接口暴露出来。配一个像样的NVMe HAT,你就能获得真正的存储带宽——而存储带宽正是RAG的实际瓶颈。
我的野外构建配置:
- 树莓派5,8GB
- Pineberry Pi HatDrive或类似的NVMe HAT
- 1TB NVMe,TLC,最好带DRAM缓存
- Hailo-8 M.2 AI模块,26 TOPS,功耗2.5瓦
- 铝制被动散热外壳,兼作散热片
- USB-C PD充电宝,65W
- 两张microSD卡:一张放引导加载程序,一张放LUKS头部备份
空闲时功耗大约4到6瓦。生成时大约9到12瓦。一个20000毫安时的充电宝就能跑一整天。这就是关键——一个带不走的脑子,你不会用。
用LUKS2加密NVMe。用Argon2id,别用PBKDF2。密钥文件放在一个USB盘上,启动后拔掉,或者记一个强密码。数据分区挂载为noexec、nodev。操作系统用只读覆盖层,这样硬断电不会破坏根文件系统。这不是偏执,是系统卫生。你在构建一个认知设备,不是一个玩具盒子。
最小可审计的软件栈
臃肿是审计性的敌人。下面是我在树莓派上生产运行的compose文件。故意写得很平淡:
services:
qdrant:
image: qdrant/qdrant:v1.9-arm64
ports: ["6333:6333"]
volumes:
- /mnt/brain/qdrant:/qdrant/storage
restart: unless-stopped
ollama:
image: ollama/ollama:latest
ports: ["11434:11434"]
volumes:
- /mnt/brain/ollama:/root/.ollama
environment:
OLLAMA_KEEP_ALIVE=24h
restart: unless-stopped
embedder:
image: ghcr.io/nomic-ai/nomic-embed-text:v1.5-cpu
ports: ["8001:8000"]
restart: unless-stopped
api:
build: ./brain-api
ports: ["8080:8080"]
depends_on: [qdrant, ollama, embedder]
environment:
QDRANT_URL=http://qdrant:6333
OLLAMA_URL=http://ollama:11434
EMBED_URL=http://embedder:8000
volumes:
- /mnt/brain/vault:/vault:ro
API大概180行Python。只做好三件事:摄取、检索、回答。没有LangChain,没有隐藏提示词的神奇链。你要能看到提示词模板,因为偏见就藏在那里。
真正能用的摄取逻辑
- Markdown文件按700到900个token分块,重叠100到150个token。重叠能保持跨边界的上下文。
- 代码用tree-sitter按函数或类分块。把语言和符号名存到元数据里。
- PDF先用本地OCR,然后按标题分块。保留页码。
- 计算源文件的SHA256。存起来。重新摄取时跳过没改过的文件。
检索逻辑
嵌入查询,在Qdrant里搜索前12个结果,然后用最大边际相关性(MMR)重排序来增加多样性。如果查询暗示了筛选条件(比如“上个季度”),就用元数据范围过滤,而不是碰运气。构建一个强制引用的提示词。我的模板结尾是:“只使用提供的上下文回答。引用来源为[1]、[2]。如果答案不在上下文中,就说你不知道。”——智力质量就体现在这里。
最后说一句:这套东西跑起来之后,我最大的感受不是“哇好快”,而是“这玩意儿是我的”。没有人在看我在查什么,没有人在分析我的兴趣图谱,没有人能突然告诉我“这个功能下个月要收费了”。你的第二大脑,应该只属于你。