1. 从「收藏夹黑洞」到可检索的第二大脑SuperMemory 是一个把 Chrome 书签、推文、网页内容抓取下来再用 AI 做语义检索的开源项目。它的定位不是又一个稍后读工具而是「私人智能书签助手」——你保存过的内容能在需要的时候被对话式地重新找回来。技术栈上它用 Nextjs 14 做 Web UIReact 写前端交互Drizzle ORM 接 Cloudflare D1Chrome 扩展负责采集AI 后端负责向量化和问答。整个仓库由 turborepo 管理分成 web、extension、ai 三个模块。我最初用官方托管版试的时候遇到一个典型问题添加 spring.io 首页后问 Spring Kafka 相关问题它直接拒答补上具体文档页地址后能答了但内容很浅参考价值有限。后来换成自己部署 统一 Key 接入把模型换成可配置的推理端点检索质量才稳定下来。这篇就聚焦 Chrome 插件场景下的落地配置怎么用 TaoToken 统一 Key 打通 AI 后端怎么让插件加载、书签写入、检索回读形成闭环。适合已经在用 Nextjs/React 做个人知识库、想给书签加一层语义检索的开发者。核心检索词先明确SuperMemory 是什么——一个 AIGC 驱动的私人智能书签助手能做什么——采集网页/推文、向量化存储、对话式检索适合谁——有本地部署能力、想统一管理模型 Key 的 Nextjs/React 开发者。2. TaoToken 前置统一 Key 解决多模型切换SuperMemory 的 AI 后端默认走单一模型端点但实际使用中你会遇到嵌入模型和对话模型可能不是同一家本地调试想换模型要改多处配置Key 散落在.env里容易泄漏。TaoToken 的作用是把这些模型调用收敛到一个统一 Key 和统一 Base URL 上SuperMemory 的 AI 模块只需要认一个OPENAI_API_KEY和OPENAI_BASE_URL换模型时改配置不改代码。你需要先拿到 Key。访问控制台创建 API Key地址是 https://taotoken.net/api-keys 这一步只做一次。拿到sk-开头的 Key 后AI 后端的.env里这样填# apps/ai/.env OPENAI_API_KEYsk-你的TaoTokenKey OPENAI_BASE_URLhttps://taotoken.net/api注意 Base URL 不要带 UTM 参数API 调用地址就是https://taotoken.net/api。模型名按你实际要用的填比如对话用gpt-4o-mini嵌入用text-embedding-3-small具体可用模型在模型对话页能查到 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentsupermemory_chromeutm_campaignrewrite 。如果你打算长期跑编码类 Agent 或批量处理书签Coding Plan 会更划算入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentsupermemory_chromeutm_campaignrewrite 。提示TaoToken 在这里的角色是模型调用的统一入口不是替代 SuperMemory 本身。SuperMemory 负责采集、存储、检索逻辑TaoToken 负责把模型请求稳定地送出去。3. 可复制配置settings.json 与 config.toml 骨架SuperMemory 的 Chrome 扩展和 AI 后端各有一份配置。扩展侧用settings.json控制采集行为和 API 地址AI 后端用config.toml控制模型参数和检索策略。下面两份骨架可以直接复制后改字段。先看扩展侧的settings.json放在apps/extension/public/下{ apiBaseUrl: http://localhost:3000, aiBaseUrl: https://taotoken.net/api, collect: { autoCapture: true, captureOnBookmark: true, excludeDomains: [localhost, 127.0.0.1], maxContentLength: 8000 }, auth: { provider: next-auth, sessionCookie: supermemory.session-token }, ui: { defaultView: chat, showSourceBadge: true } }关键字段说明aiBaseUrl指向 TaoToken 的 API 地址扩展在调用 AI 后端时会把请求转发到这里captureOnBookmark设为 true 后你在 Chrome 里点收藏插件会自动抓取页面正文并写入知识库maxContentLength控制单页抓取上限太大影响嵌入速度太小会丢上下文8000 字符是个平衡点。再看 AI 后端的config.toml放在apps/ai/下[server] host 0.0.0.0 port 8000 [model] provider openai-compatible base_url https://taotoken.net/api chat_model gpt-4o-mini embedding_model text-embedding-3-small max_tokens 2048 temperature 0.3 [retrieval] top_k 6 similarity_threshold 0.72 chunk_size 512 chunk_overlap 64 [database] driver d1 binding DBprovider写openai-compatible是因为 TaoToken 的接口兼容 OpenAI 格式SuperMemory 的 AI 模块不用改调用逻辑。similarity_threshold设 0.72 是实测下来比较稳的值太低会召回无关书签太高会漏掉相关但表述不同的内容。chunk_size和chunk_overlap决定文本切分粒度512/64 适合网页正文如果你主要存推文可以降到 256/32。两份配置改完后AI 后端的.env和config.toml里的base_url要保持一致否则扩展转发和后端直连会走两个地址排查起来很麻烦。4. 验证请求插件加载、书签写入与检索回读配置写完不算完要跑通三个动作才算闭环。我按顺序说。第一步启动 AI 后端并验证模型连通。在apps/ai/下执行pnpm install pnpm dev然后用 curl 打一次对话接口确认 TaoToken 的 Key 生效curl -X POST https://taotoken.net/api/chat/completions \ -H Authorization: Bearer sk-你的TaoTokenKey \ -H Content-Type: application/json \ -d { model: gpt-4o-mini, messages: [{role: user, content: 用一句话说明什么是向量检索}] }返回里有choices[0].message.content就说明 Key 和 Base URL 都对。如果返回 401检查 Key 是否复制完整返回 404检查 Base URL 是不是写成了带路径的地址。第二步加载 Chrome 扩展。打开chrome://extensions/开启开发者模式点「加载已解压的扩展程序」选apps/extension/dist目录。加载成功后扩展图标出现在工具栏点开应该能看到对话界面。如果界面空白打开扩展的 Service Worker 控制台看报错常见的是apiBaseUrl指向的 Nextjs 服务没启动。第三步写入书签并回读。在 Chrome 里随便打开一篇技术文章点收藏等几秒让插件抓取。然后回到扩展对话界面问一个只有那篇文章里才有的细节比如「那篇文章里提到的 chunk_overlap 默认值是多少」。如果检索链路通了它会带着来源引用回答你。这一步能过说明采集、嵌入、检索、生成四个环节都串起来了。注意首次写入书签后嵌入是异步的别马上提问等 5 到 10 秒。如果一直检索不到去 AI 后端日志里看有没有 embedding 请求失败。5. 本篇常见错排查报错一Error: 401 Unauthorized出现在 AI 后端日志。原因是.env里的OPENAI_API_KEY没被读到或者config.toml里的base_url写成了https://taotoken.net少了/api。检查顺序先确认.env在apps/ai/根目录再确认base_url完整。报错二扩展加载后对话界面一直转圈。多半是settings.json里的apiBaseUrl指向了http://localhost:3000但 Nextjs 服务没起。SuperMemory 的 web 模块和 ai 模块是两个进程web 负责 UI 和 authai 负责模型调用两个都要跑。启动命令在根目录用pnpm dev会同时拉起。报错三书签写入了但检索不到。先看similarity_threshold是不是设太高0.72 以上容易漏召回临时降到 0.6 试试。再看chunk_size如果文章很长而 chunk 太小关键信息可能被切散。最后确认嵌入模型和对话模型是不是同一个 provider混用会导致向量空间不一致。报错四D1 binding not found。这是 Cloudflare D1 的绑定问题本地开发时wrangler.toml里要有[[d1_databases]]段且binding名字和config.toml里的binding一致。如果你不想用 D1可以把driver改成sqlite走本地文件适合纯本地调试。报错五插件采集到的正文是乱码或空。有些站点用 JS 动态渲染插件抓的是初始 HTML。这种情况在excludeDomains里加规则跳过或者手动复制正文到 SuperMemory 的 Markdown 编辑器里录入。官方插件在这块确实有 UI bug我试过几个新闻站都抓不全手动录入反而更稳。6. 把 Key 收口让书签真正可检索SuperMemory 的价值不在于「存了多少」而在于「能不能在需要的时候被找回来」。官方托管版模型能力有限自己部署 TaoToken 统一 Key 之后你可以按书签类型切换模型技术文档用便宜的小模型做嵌入对话用推理强一点的模型成本和质量都能控。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentsupermemory_chromeutm_campaignrewrite 里面有 OpenAI 兼容接口的完整参数说明。如果你只是想把 SuperMemory 跑起来验证效果先去模型对话页拿一个可用模型名填进config.toml就能跑通。长期用的话Coding Plan 适合把书签处理、批量嵌入、Agent 检索这些任务打包跑比按次调用省心。最后留一个我踩过的坑config.toml改完一定要重启 AI 后端SuperMemory 的配置是启动时加载的热更新不生效。改完不重启你会以为配置没起作用其实是旧进程还在跑。
企业数字化 ERP 产品动态
相关推荐
婴幼儿疫苗预约接种管理系统开发实战:从需求调研到并发控制 疾病预防控制中心婴幼儿疫苗预约与接种信息管理系统开发实战记录在疾控中心实习的第二周,我接到了一份《婴幼儿疫苗预约与接种信息管理系统开发任务书》。说实话,刚看到标题时我并没有太当回事——信息管理系统,无非就是登录、增删改查、报表… · 2026/9/26 16:55:42
AI辅助论文数据分析:从研究假设到结果表述的高效路径 写这篇东西的起因,是我自己带的研究生和几个正在写毕业论文的学弟学妹,前前后后都被卡在同一个地方:数据拿到手了,图表也勉强画出来了,但论文里的“数据分析”部分总被导师批“没有深度”“像在记流水账”。有人甚至直… · 2026/9/26 16:55:42
Mac上部署Dify全指南:Docker Compose配置与本地模型接入 1. 部署前的整体思路:为什么非要在Mac上跑Dify 先说结论:Dify这个智能体开发平台,本质上是一组微服务组成的容器集群,官方推荐部署方式是Docker Compose,所以不管你的机器是Mac还是Linux服务器,思路都差不多… · 2026/9/26 16:55:42
智能工厂顶层设计:从业务痛点到IT/OT融合的落地路径 这些年我接触过不少准备上智能工厂的项目,有做汽车零部件的,有做3C电子的,也有做化工和食品的。说句实话,真正跑通的不到三成。大部分项目卡在同一道坎上——从第一天起就没想清楚智能工厂要解决谁的问题、创造什么价值࿰… · 2026/9/26 17:25:56
HART转Modbus RTU网关在污水流量采集中的实战选型与部署 1. 为什么污水厂现场非得用HART转Modbus RTU网关?——从仪表“哑巴”到数据活起来的真实困境我在某市第三污水处理厂做自动化改造时,第一次站在二沉池边的仪表柜前,盯着那台标着“HART输出”的电磁流量计发了十分钟呆。它明明在实时测量瞬时流… · 2026/9/26 17:25:56
PostgreSQL numeric类型全解析:存储格式、内存表示与精度实践 先说明一下,这篇文章不是给你讲“numeric怎么存进内存”这种教科书定义,而是把我在实际项目里和 PostgreSQL 的 numeric 搏斗过几轮之后,积累下来的完整链路梳理。从数据库磁盘上的存储格式,到进程内存里的表示,再到客… · 2026/9/26 17:25:49
Python机器学习入门与Scikit-learn 机器学习入门与-learn一、正式踏上学习机器知识的道路, 开始接触由这一个专门库带来的初步体验。关于第一章的小节, 也就是第一小节所提到的内容, 它是为了梳理清楚这门技术在过往岁月和当前阶段的演变历史, 这其实是一场因为数据运用而引发的巨大变革过程。在计算机科学这片范… · 2026/9/26 17:25:49
18个最热深度学习Github项目逐一介绍 摘要: 在前几天, 我们列举出了一百个是关于深度学习的源代码项目, 不过, 这些项目之中的大部分, 目前都不怎么活跃了, 所以呢, 我们在这里特别挑出来了一十八个最为活跃的此类项目, 并为每一个项目都制作了一张专门的信息卡片, 这样一来, 就可以让人感到一目了然了, 这就比较方… · 2026/9/26 17:25:49
SQL约束实战指南:从数据完整性到防重防脏的完整设计 作为常年跟SQL打交道的人,我翻看自己的笔记时发现“约束”这一章被画满了记号。很多初学者觉得约束不过是建表时顺手写的几个单词,实际上一旦数据量上来、业务逻辑变复杂,约束设计得好不好,直接决定你是优雅地维护数据,… · 2026/9/26 17:25:43
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46