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_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_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换成你刚创建的 Key:
curl -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 URL | https://taotoken.net/api |
| API Key | 你创建的 Key |
| Model ID | deepseek-chat 或 claude-sonnet-4-20250514 |
这张清单就是后面所有配置的源头。Obsidian 插件填这三个,Claude Code 的 settings 填这三个,微信 AI 的转发服务也填这三个。统一的好处是,哪天你要换模型或者换 Key,只改一处,三个工具同时生效。
如果你打算长期用,建议直接上 Coding Plan,地址是 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。它适合高频编码和 Agent 场景,额度比按量付费更划算。接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_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.json;Windows 上是%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填你的 Key,ANTHROPIC_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/api,Key 填你的 Key,Model ID 填模型名。三件套齐全,任何一个 Agent 都能跑起来。Codex 的auth.json也是同样的思路,把 endpoint 和 key 指向 TaoToken 即可。
3.3 微信 AI 侧:转发服务与消息路由
微信本身不开放个人号 API,所以这一步需要一个中间转发服务。常见做法是跑一个本地 HTTP 服务,接收微信消息,调用 TaoToken 的接口,再把结果返回。你可以用 Python 写一个最小服务,核心逻辑就是收到消息后转发到https://taotoken.net/api/v1/chat/completions。
下面是一个可运行的最小示例,保存为wechat_bridge.py:
import 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": f"Bearer {API_KEY}", "Content-Type": "application/json" } payload = { "model": MODEL, "messages": [{"role": "user", "content": user_msg}] } resp = requests.post(TAOTOKEN_URL, headers=headers, json=payload, timeout=60) data = resp.json() reply = data["choices"][0]["message"]["content"] return jsonify({"reply": reply}) if __name__ == "__main__": app.run(host="0.0.0.0", port=8080)启动后,你的微信转发工具把消息 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 error
Claude Code 默认会尝试 OAuth 登录,如果你已经用 API Key 配置了,但工具还在走 OAuth 流程,就会报这个错。解法是确认 settings.json 里ANTHROPIC_API_KEY已经填写,并且没有同时存在冲突的登录凭证。有些版本需要显式设置ANTHROPIC_AUTH_TYPE=api_key,具体看接入文档 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_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,降低泄露风险。这套工作流的价值在于把三个割裂的系统变成一个整体,而统一通道是让它成立的前提。