Nate Jones Second Brain — 奈特·琼斯 的第二大脑
v1使用 Supabase(pgvector)和 OpenRouter 设置和运行个人知识系统。五个结构化表格 — 思想(收件箱日志)、人员、项目、想法、管理 — 具有 AI 驱动的分类、基于置信度的路由和跨所有类别的语义搜索。从任何来源捕获思想,通过 LLM 对其进行分类,通过分类器(Sorter)将其路由到正确的表格,拒绝低置信度的分类(Bouncer),并记录一切(Receipt)。两个有见解的原语 — Supabase 用于持久上下文架构,OpenRouter 作为 AI 网关 — 解锁了无限的应用程序。个人知识系统的基础层。由 Limited Edition Jonathan • natebjones.com
运行时依赖
安装命令
点击复制技能文档
Nate Jones 第二大脑
当智能变得丰富时,背景成为稀缺的资源。这项技能是背景架构 —— 一个持久的、可搜索的知识层,它将你的代理转变为个人知识管理器。两个有见解的原语:Supabase —— 你的数据库,并且不止于此。PostgreSQL + pgvector。以结构化数据和向量嵌入的形式存储想法、人员、项目、想法和任务。内置 REST API。你的数据,你的基础设施。模型来来去去;你的背景始终存在。一旦你有了 Supabase 项目,你就解锁了构建其他一切的基础 —— 第二大脑只是开始。OpenRouter —— 你的 AI 网关。一个 API 密钥,每个模型。用于分类和路由的嵌入和 LLM 调用。通过更改字符串交换模型。设计为未来兼容的。其他一切 —— 你如何捕获想法、如何检索它们、你在上面构建什么 —— 都是应用层。这项技能涵盖了基础。
如果表格尚不存在,请参阅 {baseDir}/references/setup.md
构建块
这些是系统背后的操作概念。了解它们可以帮助你正确操作。
块名称 | 作用 | 实现 ---------|----------|--------- Drop Box | 无缝捕获点 | 所有内容都先进入 thoughts Sorter | AI 分类 + 路由 | LLM 分类类型,然后路由到结构化表格 Form | 一致的数据合同 | 每个表格都有定义好的模式 Filing Cabinet | 每个类别的真实来源 | 人员、项目、想法、管理表格 Bouncer | 信心阈值 | 信心 < 0.6 = 不路由,留在收件箱 Receipt | 审计跟踪 | thoughts 行日志记录了什么进入、哪里去了 Tap on the Shoulder | 主动表面 | 每日摘要查询(应用层) Fix Button | 代理介导的更正 | 在用户请求下在表格之间移动记录
完整的概念框架:{baseDir}/references/concepts.md
五个表格
表格名称 | 角色 | 关键字段 ---------|----------|--------- thoughts | 收件箱 | 内容、嵌入、元数据(类型、主题、人员、信心、路由到) people | 关系跟踪 | 名称(唯一)、背景、后续、标签、嵌入 projects | 工作跟踪 | 名称、状态、下一步、笔记、标签、嵌入 ideas | 思想捕获 | 标题、摘要、阐述、主题、嵌入 admin | 任务管理 | 名称、截止日期、状态、笔记、嵌入
每个表格都有自己的语义搜索功能,通过 match_* 函数实现。跨表格搜索通过 search_all 实现。
路由规则
当一个想法被分类:
类型 | 路由 | 动作 ---------|----------|--------- person_note | people | Upsert:创建人员或追加到现有背景 task | admin | 插入新任务(状态 = pending) idea | ideas | 插入新想法 observation | none | 留在 thoughts 中 reference | none | 留在 thoughts 中
如果信心 < 0.6,不路由。留在 thoughts 中,告诉用户。
快速开始
捕获一个想法(完整的管道)
- 嵌入
- 分类(与步骤 1 并行运行)
- 存储在 thoughts 中(收据)
- 根据分类路由(如果信心 >= 0.6)
完整的管道,包含路由逻辑:{baseDir}/references/ingest.md
语义搜索(单表格) QUERY_EMBEDDING=$(curl -s -X POST "https://openrouter.ai/api/v1/embeddings" \ -H "Authorization: Bearer $OPENROUTER_API_KEY" \ -H "Content-Type: application/json" \ -d '{"model": "openai/text-embedding-3-small", "input": "职业变化"}' \ | jq -c '.data[0].embedding')
curl -s -X POST "$SUPABASE_URL/rest/v1/rpc/match_thoughts" \ -H "apikey: $SUPABASE_SERVICE_ROLE_KEY" \ -H "Authorization: Bearer $SUPABASE_SERVICE_ROLE_KEY" \ -H "Content-Type: application/json" \ -d "{\"embedding\": $QUERY_EMBEDDING}"