Obsidian + Claude Code + 微信AI,我把这三个系统缝进了一个软件:TaoToken 统一 Key 接入实录

发布时间:2026/10/3 6:30:26
Obsidian + Claude Code + 微信AI,我把这三个系统缝进了一个软件:TaoToken 统一 Key 接入实录
1. 为什么要把 Obsidian、Claude Code 和微信 AI 缝在一起如果你同时用 Obsidian 记笔记、用 Claude Code 写代码、又在微信里处理大量碎片信息大概率会遇到一个很别扭的问题这三套系统各自都挺好用但彼此之间是断开的。笔记里的需求要手动复制到终端Claude Code 跑出来的结果要手动贴回笔记微信里看到一篇好文章想存进知识库又得切回电脑。一天下来光是复制粘贴和切换窗口就消耗掉不少注意力。我自己的场景更极端一点。Vault 里躺着几百篇 Markdown很多是待办、灵感、半成品方案。以前想让 AI 处理其中某一段流程是打开笔记、选中、复制、切到终端、粘贴、等结果、再复制、切回笔记、粘贴。一次两次还行天天这么干就烦了。更别说出门在外手机上突然想到一个点既没法开终端也没法快速检索本地笔记。所以我想做一件事用一套统一的 Key 和 API 通道把 Obsidian 的 Markdown、Claude Code 的 Agent 能力、微信 AI 的对话入口串成一条工作流。核心思路不是迁移数据也不是重写工具而是让它们通过同一个 API 端点互相调用。Obsidian 负责存和触发Claude Code 负责执行和生成微信 AI 负责移动端问答和推送。三者共享同一个模型通道配置一次到处能用。这里的关键角色是 TaoToken。它提供统一的 API 通道和 Key 管理把 deepseek、Claude 等模型的调用收敛到一个 Base URL 上。你不需要在每个工具里分别填不同的厂商 Key也不用担心某个工具的 endpoint 格式对不上。对个人开发者和小团队来说这种统一入口能省掉大量配置摩擦。这篇文章会从零讲清楚三件事第一怎么在 TaoToken 上拿到 Key 并确认通道可用第二怎么把 Obsidian、Claude Code、微信 AI 分别接到这个通道上给出可复制的 settings 和 JSON 片段第三怎么验证一次从 Markdown 笔记触发 Claude Code、再把结果推回微信的完整动作。目标很明确你照着做能搭出一套属于自己的缝合工作流。适合谁看如果你满足下面任意一条这篇就是写给你的用 Obsidian 超过半年、笔记超过一百篇用过 Claude Code 或类似 CLI Agent但嫌终端切换麻烦想在微信里直接问自己的知识库手里有多个模型的 Key想统一管理。不需要你是运维或者后端只要能看懂 JSON 和命令行就行。2. TaoToken 前置准备统一 Key 与 API 通道怎么配在动手缝三个系统之前先把 TaoToken 这一层搞定。这一步做扎实后面三个工具的配置就是复制粘贴的事。我试过在没统一通道的情况下分别配三个工具结果每个工具的 endpoint 写法都不一样排错排到怀疑人生。统一之后Base URL 只有一个Key 只有一个模型 ID 也统一管理。2.1 注册与获取 API Key打开 TaoToken 官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册账号后进入控制台。控制台地址是 https://taotoken.net/console 登录后找到 API Keys 页面路径是 https://taotoken.net/api-keys 。在这里创建一个新的 Key建议命名带上用途比如obsidian-claude-wechat方便以后区分。创建完成后Key 只会完整显示一次复制下来存到安全的地方。这个 Key 就是后面三个工具共用的凭证。注意不要把它提交到 Git 仓库也不要写在会被同步到公开位置的笔记里。如果你用 Obsidian 的同步功能建议把配置文件放在 Vault 之外或者用环境变量引用。TaoToken 的 API 基础地址是 https://taotoken.net/api 注意这个地址不带任何查询参数。所有工具的 Base URL 都填这个不要自己加/v1或者/chat/completions具体路径由工具自己拼接。这一点很关键我见过不少人因为多写了一段路径导致 404。2.2 确认可用模型与通道格式在控制台里可以看到当前账号可用的模型列表。常见的包括 deepseek 系列、Claude 系列等。每个模型有一个 Model ID比如deepseek-chat、claude-sonnet-4-20250514这类。你在配置 Claude Code 或者微信 AI 时Model ID 要填这个值不能填展示名称。TaoToken 的通道兼容 OpenAI 风格的请求格式也就是说POST /v1/chat/completions这种标准结构可以直接用。同时它也支持 Anthropic 风格的调用这对 Claude Code 很重要因为 Claude Code 默认走的是 Anthropic 的接口协议。你不需要自己转换格式工具里选对协议类型就行。为了确认通道可用可以先用 curl 做一次最小请求。把下面的YOUR_KEY换成你刚创建的 Keycurl -X POST https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer YOUR_KEY \ -H Content-Type: application/json \ -d { model: deepseek-chat, messages: [ {role: user, content: 回复两个字通了} ] }如果返回的 JSON 里有choices字段并且内容里包含「通了」说明 Key 和通道都没问题。如果返回 401检查 Key 是否复制完整、有没有多余空格。如果返回 404检查 URL 是不是写成了https://taotoken.net/api后面多加了路径。2.3 把 Key 和 Base URL 记成配置清单在开始接三个工具之前先把这三个值写在一张清单上后面每个工具都要用配置项值Base URLhttps://taotoken.net/apiAPI Key你创建的 KeyModel IDdeepseek-chat 或 claude-sonnet-4-20250514这张清单就是后面所有配置的源头。Obsidian 插件填这三个Claude Code 的 settings 填这三个微信 AI 的转发服务也填这三个。统一的好处是哪天你要换模型或者换 Key只改一处三个工具同时生效。如果你打算长期用建议直接上 Coding Plan地址是 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。它适合高频编码和 Agent 场景额度比按量付费更划算。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 遇到协议细节可以查这里。3. 可复制配置Obsidian、Claude Code、微信 AI 三件套这一节是全文的核心操作部分。我会分别给出三个工具的配置片段路径和字段名都按真实工具来写。你不需要全部一次配完可以按 Obsidian → Claude Code → 微信 AI 的顺序逐个来每配完一个就验证一次。3.1 Obsidian 侧用插件把 Markdown 发给模型Obsidian 本身不直接调 API需要借助社区插件。常用的有 Text Generator、Smart Connections 这类。这里以 Text Generator 为例因为它配置简单、支持自定义 endpoint。在 Obsidian 设置里打开第三方插件搜索 Text Generator 安装并启用。启用后进入插件设置找到 Custom Provider 或者 OpenAI Compatible 的选项。填入以下内容{ provider: openai-compatible, baseUrl: https://taotoken.net/api, apiKey: YOUR_KEY, model: deepseek-chat, temperature: 0.7, maxTokens: 2048 }注意baseUrl只写到https://taotoken.net/api不要加/v1。Text Generator 会自己在后面拼/v1/chat/completions。如果你填了/v1实际请求会变成/v1/v1/chat/completions直接 404。这个坑我踩过排查了半小时才发现是路径重复。配置保存后在任意 Markdown 笔记里选中一段文字用命令面板执行 Text Generator 的生成命令。如果设置正确选中的文字会被作为 prompt 发出去几秒后结果会插入到笔记里。这样你就完成了「从 Markdown 笔记触发模型处理」这一步。如果你想让笔记里的特定标记自动触发比如以::ai开头的行可以在插件里配置 trigger 规则。这样你写笔记时只要加个标记模型就会自动处理那一行。对于待办整理、摘要生成这类重复动作效率提升很明显。3.2 Claude Code 侧settings 配置与三件套Claude Code 的配置走的是 Anthropic 协议但 TaoToken 的通道兼容这个协议。你需要修改 Claude Code 的 settings 文件。在 macOS 和 Linux 上路径通常是~/.claude/settings.jsonWindows 上是%USERPROFILE%\.claude\settings.json。如果文件不存在就新建一个。写入以下内容{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: YOUR_KEY, ANTHROPIC_MODEL: claude-sonnet-4-20250514 } }这三个字段就是 Claude Code 的三件套Base URL、Key、Model ID。ANTHROPIC_BASE_URL填 TaoToken 的 API 地址ANTHROPIC_API_KEY填你的 KeyANTHROPIC_MODEL填你要用的模型 ID。如果你更习惯用 deepseek可以把 Model ID 换成deepseek-chat通道同样支持。保存后打开终端运行claude进入交互模式。输入一句你好帮我列一下当前目录的文件如果 Claude Code 正常返回结果说明配置生效。如果报OAuth error或者authentication failed先检查 Key 有没有写错再检查 settings.json 的 JSON 格式是否合法比如有没有多余的逗号。如果你用 CC Switch 或者 Cline MCP 来管理多个 Agent配置逻辑是一样的Base URL 填https://taotoken.net/apiKey 填你的 KeyModel ID 填模型名。三件套齐全任何一个 Agent 都能跑起来。Codex 的auth.json也是同样的思路把 endpoint 和 key 指向 TaoToken 即可。3.3 微信 AI 侧转发服务与消息路由微信本身不开放个人号 API所以这一步需要一个中间转发服务。常见做法是跑一个本地 HTTP 服务接收微信消息调用 TaoToken 的接口再把结果返回。你可以用 Python 写一个最小服务核心逻辑就是收到消息后转发到https://taotoken.net/api/v1/chat/completions。下面是一个可运行的最小示例保存为wechat_bridge.pyimport requests from flask import Flask, request, jsonify app Flask(__name__) TAOTOKEN_URL https://taotoken.net/api/v1/chat/completions API_KEY YOUR_KEY MODEL deepseek-chat app.route(/wechat, methods[POST]) def handle(): user_msg request.json.get(message, ) headers { Authorization: fBearer {API_KEY}, Content-Type: application/json } payload { model: MODEL, messages: [{role: user, content: user_msg}] } resp requests.post(TAOTOKEN_URL, headersheaders, jsonpayload, timeout60) data resp.json() reply data[choices][0][message][content] return jsonify({reply: reply}) if __name__ __main__: app.run(host0.0.0.0, port8080)启动后你的微信转发工具把消息 POST 到http://你的地址:8080/wechat就能拿到模型回复。如果你想让微信 AI 能检索 Obsidian 笔记可以在 payload 里把相关笔记内容拼进 messages作为上下文一起发出去。这样手机上问一句模型就能基于你的本地笔记回答。4. 验证请求从 Markdown 笔记到微信回复的完整动作配置写完不代表通了必须做一次端到端验证。这一节我会走一遍完整流程在 Obsidian 里写一段 Markdown触发 Claude Code 处理把结果通过转发服务推到微信。每一步都有可观察的结果哪一步断了都能定位。4.1 第一步在 Obsidian 里准备触发内容打开你的 Vault新建一篇笔记比如test-workflow.md写入以下内容# 测试工作流 请把下面这段需求整理成三条可执行的待办 1. 把用户反馈按优先级排序 2. 给每条反馈标注影响范围 3. 输出成表格选中「请把下面这段需求整理成三条可执行的待办」到结尾的部分用 Text Generator 触发。如果配置正确几秒后笔记里会插入模型生成的三条待办。这一步验证的是 Obsidian → TaoToken 的通道。如果没反应先看 Obsidian 开发者控制台有没有报错。常见错误是401 Unauthorized说明 Key 不对或者model not found说明 Model ID 写错了。对照第 2 节的清单逐个检查。4.2 第二步用 Claude Code 处理同一段内容打开终端进入你的工作目录运行claude。把刚才那段需求粘贴进去加上一句指令把这段需求整理成三条可执行的待办输出 Markdown 表格。Claude Code 会调用 TaoToken 的通道返回结果。如果返回正常说明 Claude Code 的三件套配置生效。你可以把返回的表格复制回 Obsidian 笔记完成「笔记 → Claude Code → 笔记」的闭环。这一步的验证点是Claude Code 能正常发起请求并拿到结果。如果卡在local proxy failed通常是网络或者 Base URL 写错如果报reading choices相关错误说明返回结构不符合预期检查 Model ID 是否被通道支持。4.3 第三步把结果推到微信启动第 3.3 节的wechat_bridge.py然后用 curl 模拟一次微信消息curl -X POST http://localhost:8080/wechat \ -H Content-Type: application/json \ -d {message: 帮我总结一下今天的待办}如果返回的 JSON 里有reply字段说明微信转发服务 → TaoToken 的通道也通了。接下来把你的微信转发工具指向这个服务手机上发消息就能收到模型回复。到这里三个系统就缝在一起了Obsidian 负责存和触发Claude Code 负责执行微信 AI 负责移动端入口三者共享同一个 TaoToken 通道。你可以在这个基础上加更多动作比如让微信消息自动写入 Obsidian 的 inbox 笔记或者让 Claude Code 的结果自动推送到微信。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth配置过程中最容易卡在几个固定报错上。这一节把常见错误和对应解法列出来你遇到时可以直接对照。5.1 401 Unauthorized这是最常见的错误意思是 Key 没通过验证。可能原因有三个Key 复制不完整、Key 前后有空格、Key 已经被删除或过期。解法是回到 https://taotoken.net/api-keys 重新复制一次粘贴时注意不要带换行。如果你用环境变量引用检查变量名有没有拼错。还有一种情况是 Base URL 写成了https://taotoken.net/api/带尾斜杠某些工具会把斜杠和路径拼成双斜杠导致鉴权头没带上。统一写成不带尾斜杠的https://taotoken.net/api。5.2 local proxy failed这个报错通常出现在 Claude Code 或者类似 CLI 工具里意思是本地代理连接失败。原因可能是 Base URL 填错、网络不通、或者工具本身在走一个不存在的本地端口。先确认ANTHROPIC_BASE_URL是https://taotoken.net/api然后用 curl 直接测一次通道。如果 curl 通但工具不通检查工具版本旧版本可能不支持自定义 Base URL。5.3 reading choices 相关错误报错信息里出现reading choices或者cannot read property of undefined说明返回的 JSON 结构里没有choices字段。常见原因是 Model ID 写错通道返回了一个错误对象而不是正常响应。解法是先用 curl 确认 Model ID 可用再检查工具里填的模型名是否和通道支持的一致。另外如果请求体格式不对比如 messages 不是数组也会导致返回结构异常。5.4 OAuth errorClaude Code 默认会尝试 OAuth 登录如果你已经用 API Key 配置了但工具还在走 OAuth 流程就会报这个错。解法是确认 settings.json 里ANTHROPIC_API_KEY已经填写并且没有同时存在冲突的登录凭证。有些版本需要显式设置ANTHROPIC_AUTH_TYPEapi_key具体看接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 里的说明。5.5 微信侧收不到回复如果 curl 测转发服务正常但微信里发消息没反应问题多半在转发工具和你的服务之间的连接。检查转发工具的目标地址是不是http://你的内网IP:8080/wechat端口有没有被防火墙挡住。另外微信消息可能有长度限制太长的回复会被截断可以在服务里做分段返回。6. 把这条工作流用起来几个实用建议配置跑通只是开始真正省时间的是把它变成日常习惯。我自己的用法是Obsidian 里维护一个inbox.md所有临时想法先扔进去加一个::ai标记。每天固定时间用 Text Generator 批量处理这些标记让模型整理成结构化待办。Claude Code 则用来处理需要多步推理的任务比如重构一段代码或者分析一篇长文。微信 AI 主要解决移动场景出门在外想到什么直接发消息回来再整理进 Vault。如果你想让这条链路更自动可以在转发服务里加一个分支当消息以存开头时把内容写入 Obsidian 的 inbox 文件其他消息走模型问答。这样微信就变成了一个移动端的笔记入口和问答入口。模型选择上日常整理用 deepseek 系列就够成本低、响应快。需要复杂推理或者代码生成时切到 Claude 系列。因为三个工具共享同一个通道你只需要在配置里改 Model ID不用重新申请 Key。最后提醒一点所有配置文件里的 Key 都不要提交到公开仓库。如果你用 Obsidian 同步把插件配置放在 Vault 外或者用环境变量引用。定期在控制台轮换 Key降低泄露风险。这套工作流的价值在于把三个割裂的系统变成一个整体而统一通道是让它成立的前提。