当 SinoMem 遇上 Claude Code:本地记忆库跑起来后,模型通道怎么接
很多开发者把 SinoMem 的 MCP Server 跑起来之后,会卡在一个很具体的地方:store_memory和search_memory在examples/demo.py里读写正常,但一进 Claude Code 发请求,要么模型侧没反应,要么 Base URL 填错导致连接失败。SinoMem 本身不解决模型调用问题,它只负责把记忆留在本地 SQLite 里;Claude Code 调用模型这一步仍然需要一条可用的 API 通道。本文就按“接入配置”的视角,把 SinoMem 的 MCP 启动、Claude Code 的 MCP 配置、以及 Claude Code 的 Base URL 指向 TaoToken 这条链路一次讲清。TaoToken 官网入口在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end ,先拿到 Key,后面配置直接填。
SinoMem 的定位很明确:用 SQLite + jieba + ONNX + MCP Server 把 Agent 的长期记忆做成本地化方案,暴露search_memory/store_memory两个工具,Claude Code、Hermes 这类支持 MCP 的 Agent 都能接。但记忆库跑通不等于 Claude Code 能正常对话,因为 Claude Code 自身调用模型会消耗 Token,这一步原文没有展开。本文补上的就是这一段:SinoMem 继续管本地记忆,TaoToken 只负责 Claude Code 的模型通道,两者职责分开,配置互不干扰。
一、原问题与场景:SinoMem 跑通后,Claude Code 为什么还连不上
先把场景还原一下。你按 SinoMem 仓库的说明,进入项目目录执行:
cd SinoMem python -m sinomem.serverMCP Server 启动后,examples/demo.py里能正常写入“项目部署统一使用 Docker Compose”这类记忆,关键词搜索和语义搜索都能返回结果。说明 SQLite、jieba 分词、ONNX 推理这条本地链路是通的。
接着你在 Claude Code 里配置 MCP Server,填的是本地 Python 路径和启动命令,这一步照旧,没问题。但当你真正在 Claude Code 里发一条请求时,问题出现了:Claude Code 需要调用模型来生成回复,而模型通道的 Base URL 如果没配好,请求根本出不去。常见表现是连接超时、返回 401、或者提示 endpoint 不可用。
这里要区分两件事:
- SinoMem 的 MCP Server 负责“记忆读写”,它不参与模型推理;
- Claude Code 负责“调用模型”,它需要一条可用的 API 通道。
原文把重点放在本地记忆系统的构建上,模型通道这一步没有展开。而实际使用中,Claude Code 的模型调用会持续消耗 Token,如果没有一个稳定的接入点,SinoMem 记得再准,Agent 也没法正常对话。所以本文的接入配置视角,就是把这缺失的一环补上:打开 TaoToken 创建 Key,把 Claude Code 的 Base URL 配成https://taotoken.net/api,让模型通道走通。
二、TaoToken 前置:先拿 Key,再配 Claude Code
在动 Claude Code 的配置文件之前,先把 Key 准备好。打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end ,注册后进入控制台创建 API Key。这个 Key 后面要填到 Claude Code 的环境变量里,用于模型通道鉴权。
需要强调的是,TaoToken 在这里的角色是“Claude Code 的模型通道”,不是记忆存储。SinoMem 的记忆数据始终留在本地sinomem.db里,不会因为配了 TaoToken 就上传到云端。两者是解耦的:
- 记忆层:SinoMem MCP Server,本地 SQLite,
search_memory/store_memory; - 模型层:Claude Code 通过 TaoToken 的 Base URL 调用模型。
拿到 Key 之后,建议先确认两件事:
- Base URL 填
https://taotoken.net/api,不要带/v1,也不要加 UTM 参数; - Key 填到 Claude Code 对应的环境变量里,不要写死在代码中。
如果你还没有 Key,直接走这个入口:https://taotoken.net/?utm_source=taotoken_aicg_blog_end 。创建完成后,Key 页面在 https://taotoken.net/console/api-keys ,接入文档在 https://taotoken.net/doc ,排障时这两个页面会用到。
三、可复制配置:Claude Code 的 settings.json 与 SinoMem MCP 配置
这一节给可直接复制的配置。分两部分:Claude Code 的模型通道配置,以及 SinoMem 的 MCP Server 配置。
3.1 Claude Code 的 settings.json
Claude Code 的模型通道通过settings.json里的环境变量控制。核心是ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY这两个字段。配置示例如下:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "YOUR_API_KEY" } }把YOUR_API_KEY替换成你在 TaoToken 控制台创建的 Key。注意 Base URL 只写到/api,不要追加/v1,也不要带任何查询参数。这一点在排障时经常被忽略,多写一段路径就会导致请求 404。
如果你使用的是 Claude Code 的 CLI 方式,也可以通过环境变量注入:
export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_API_KEY="YOUR_API_KEY"3.2 SinoMem 的 MCP Server 配置
SinoMem 的 MCP 配置照旧,填本地 Python 路径和启动命令。在 Claude Code 的 MCP 配置里,指向 SinoMem 项目的启动方式:
{ "mcpServers": { "sinomem": { "command": "python", "args": ["-m", "sinomem.server"], "cwd": "/path/to/SinoMem" } } }把/path/to/SinoMem换成你本地 SinoMem 仓库的实际路径。如果你的 Python 环境是虚拟环境,command要指向虚拟环境里的 Python 解释器,例如/path/to/SinoMem/.venv/bin/python,否则可能因为依赖找不到而启动失败。
这两份配置是独立的:settings.json管模型通道,MCP 配置管记忆工具。SinoMem 的 MCP Server 仍然按cd SinoMem && python -m sinomem.server启动,Claude Code 的 MCP 配置也照旧填本地路径和启动命令,不需要因为接了 TaoToken 而改动 SinoMem 侧的任何东西。
3.3 如果你用 CLI 方式启动
SinoMem 本身是 Python 项目,不涉及 TaoToken 的 CLI。但如果你在 Claude Code 的 CLI 环境里工作,TaoToken 提供了对应的 CLI 工具用于快速接入:
npm i -g @taotoken/taotoken taotoken cc -k YOUR_API_KEY -u https://taotoken.net/api -m MODEL_ID这条命令里的-u填https://taotoken.net/api,-m填你要用的模型 ID。CLI 方式适合快速验证模型通道是否通,验证完再回到settings.json做持久化配置。
四、验证请求:先跑 demo.py,再在 Claude Code 里发一条请求
配置写完之后,不要急着在 Claude Code 里做复杂操作,按两步验证。
4.1 第一步:确认 SinoMem 记忆读写正常
进入 SinoMem 项目,跑一遍示例:
cd SinoMem/examples python demo.py预期能看到类似输出:
📦 记忆存储完毕 关键词搜索 "Docker": [部署规范] 项目部署统一使用 Docker Compose,不再使用虚拟机 语义搜索 "怎么部署服务": [部署规范] 项目部署统一使用 Docker Compose,不再使用虚拟机 演示完成这一步确认的是store_memory和search_memory能正常读写“Docker 部署规范”这类记忆。如果这一步失败,问题在 SinoMem 侧,跟 TaoToken 无关,先检查 SQLite 文件权限、jieba 分词注册、ONNX 模型是否下载完整。
4.2 第二步:确认 Claude Code 的模型通道走 TaoToken
SinoMem 侧正常后,打开 Claude Code,发一条简单请求,比如让它复述一条你刚存进记忆库的内容。如果 Claude Code 能正常返回,说明模型通道已经走通。
验证时重点看两个信号:
- 请求没有报 401 或连接超时,说明
ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY配置正确; - Claude Code 能结合 SinoMem 返回的记忆内容做回复,说明 MCP 工具调用和模型通道两条链路都通了。
如果 Claude Code 返回了内容,但内容里没有用到记忆库里的信息,那问题在 MCP 工具调用侧,检查 MCP Server 是否真的启动、工具是否被 Claude Code 识别。如果 Claude Code 直接报模型连接错误,那问题在 TaoToken 配置侧,回到settings.json检查 Base URL 和 Key。
五、本篇常见错排查
这一节列出接入过程中最容易踩的坑,按出现频率排序。
5.1 Base URL 多写了/v1
这是最高频的错误。Claude Code 的ANTHROPIC_BASE_URL应该填https://taotoken.net/api,不要写成https://taotoken.net/api/v1。多写/v1会导致请求路径拼接错误,返回 404 或 endpoint not found。
5.2 Key 填错或没替换
settings.json里的YOUR_API_KEY是占位符,必须替换成真实 Key。如果直接复制示例没替换,请求会返回 401。Key 在 https://taotoken.net/console/api-keys 页面管理,如果怀疑 Key 失效,重新创建一个再填。
5.3 MCP Server 启动路径不对
SinoMem 的 MCP 配置里,cwd要指向 SinoMem 仓库根目录,command要指向正确的 Python 解释器。如果用了虚拟环境但command写的是系统 Python,会因为找不到sinomem模块而启动失败。排查方法是手动执行cd SinoMem && python -m sinomem.server,看是否能正常启动。
5.4 ONNX 模型未下载完整
SinoMem 的语义搜索依赖 ONNX 模型,首次运行时transformers会从 Hugging Face 下载。如果网络中断导致模型文件不完整,demo.py会在语义搜索这一步报错。这时需要清理缓存重新下载,或者按仓库scripts/目录里的导出脚本手动生成 ONNX 文件。
5.5 记忆库文件权限问题
SQLite 数据库文件sinomem.db如果所在目录没有写权限,store_memory会失败。检查项目目录权限,确保运行 MCP Server 的用户对数据库文件有读写权限。
5.6 Claude Code 没识别到 MCP 工具
如果 Claude Code 能正常调用模型,但从不触发search_memory/store_memory,检查 MCP 配置是否被 Claude Code 正确加载。有些版本需要重启 Claude Code 才能识别新的 MCP Server 配置。另外确认 MCP Server 进程确实在运行,没有因为端口占用或依赖缺失而退出。
排障时如果涉及接入配置和 Key 管理,参考 https://taotoken.net/doc 和 https://taotoken.net/console/api-keys 。如果只是想验证模型通道是否通,可以直接在 https://taotoken.net/ 的模型对话页面发一条请求,确认 Key 和 Base URL 没问题,再回到 Claude Code 排查。
六、语义一致 CTA:SinoMem 管记忆,TaoToken 管模型通道
回到本文的核心分工:SinoMem 把 Agent 的长期记忆留在本地,用 SQLite + jieba + ONNX + MCP Server 实现search_memory/store_memory,数据不出本机;TaoToken 负责 Claude Code 的模型通道,让 Claude Code 在调用模型时有一条稳定的接入路径。两者互不替代,配置也互不干扰。
如果你已经跑通了 SinoMem 的demo.py,下一步就是把 Claude Code 的 Base URL 配成https://taotoken.net/api,Key 从 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 创建。配完之后,先在 Claude Code 里发一条简单请求确认模型通道正常,再让它结合记忆库内容做回复,验证两条链路都通。
后续如果你要长期在 Claude Code 里做编码和 Agent 任务,可以关注 Coding Plan 相关的接入方式;如果只是验证模型通道,模型对话页面就够用。SinoMem 继续保持本地记忆,TaoToken 只负责 Claude Code 的模型通道,这个分工在长期使用中会越来越清晰。