
1. 为什么要把微信聊天记录做成 ex-skill先说清楚这件事到底在做什么。ex-skill 是一套基于 Claude Code Skills 机制的人格化提示词框架它把某个人的说话习惯、口头禅、情绪反应模式抽象成一份可被模型加载的技能文件。你喂进去的是聊天语料出来的是一段能持续对话的人格副本。适合谁适合想研究提示词工程、想理解 Claude Code Skills 目录结构、或者单纯想练手本地数据清洗的开发者。不适合拿去做任何未经对方同意的传播这一点先讲在前面。整条链路其实分三段WeChat 3.9 的本地数据库是原始矿Memotrace 负责解密和导出成干净语料Claude Code 负责把语料挂载成 Skill 并驱动对话。很多人卡在第一步因为新版微信的数据库加密方案变了Memotrace 读不到也有人卡在第三步因为 Claude Code 默认走官方通道网络和额度都不稳定。这篇的重点就是把中间那段settings 改到 TaoToken讲透让 Claude Code 通过统一 Key 和 API 通道稳定跑起来再去加载 ex-skill。我试过把导出的 800 条对话直接丢进去结果模型前几轮像模像样后面就开始客气化本质是语料里情绪密度不够加上通道偶尔超时导致上下文截断。所以这篇不只是配置教程还会把验证动作和排错写清楚。WeChat 3.9 电脑版在这里的角色是数据源不是让你去破解什么而是它本地留存的聊天数据库格式相对稳定Memotrace 这类工具能识别。Memotrace 的作用是把加密的 SQLite 数据库解密、解析、按联系人归档并导出成 AI 友好的 TXT。Claude Code 则是执行端它读取.claude/skills下的技能定义把语料作为上下文注入。三者串起来才叫复现前任 Skills的完整链路。需要提醒的是语料质量决定复现上限。你导出 5000 条废话不如精选 600 条有情绪起伏、有口癖、有反问和吐槽的对话。后面第三节会给具体的导出目录配置和筛选建议。2. TaoToken 前置给 Claude Code 一条稳定通道Claude Code 默认请求 Anthropic 官方端点国内直连经常出现超时、401、或者local proxy failed这类报错。TaoToken 在这里提供的是统一 Key 和 API 通道你只需要把 Claude Code 的 settings 指向它就能用同一个 Key 调用模型省去多套凭证来回切换的麻烦。官网地址是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 根地址是 https://taotoken.net/api 注意 API 地址不带 UTM 参数配置时别抄错。前置准备分三件事。第一注册并拿到 API Key入口在控制台的 API Keys 页面https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 。第二确认你要用的模型 IDClaude Code 场景一般用 Anthropic 兼容的模型名具体以文档为准https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。第三如果你打算长期跑编码或 Agent 任务可以看 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 它更适合高频调用。这里要强调一个概念Base URL、Key、Model ID 是三件套缺一不可。很多人只改了 Key忘了 Base URL 还指向官方结果一直 401也有人 Base URL 写成了带/v1或漏了/api导致 404。Claude Code 的配置读取优先级是项目级.claude/settings.json 用户级~/.claude/settings.json 环境变量。建议在项目目录里放一份 settings避免污染全局。如果你用的是 Claude Code 的 Anthropic 兼容模式环境变量方式也很直接export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEYsk-你的TaoTokenKey但环境变量在重启终端后会丢所以更推荐写进 settings 文件。下一节给完整片段。另外模型对话调试可以用这个入口快速验证 Key 是否有效https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 。先在网页端发一句话确认能返回再去配 Claude Code能省掉一半排错时间。3. 可复制配置Memotrace 导出目录 Claude Code settings这一节是全文核心两个配置文件都要能直接抄。先说 Memotrace 的导出目录。Memotrace 解析完数据库后默认导出路径在它的工作目录下通常是Memotrace/data/或者你手动指定的文件夹。为了后续 Claude Code 读取方便建议统一到一个固定目录比如D:/ex-skill-corpus/。导出时选AI 对话专用 TXT它会过滤掉图片、语音、系统消息只留文本。导出后的结构大概是这样D:/ex-skill-corpus/ ├── 张三/ │ └── 张三_AI对话.txt ├── 李四/ │ └── 李四_AI对话.txt └── manifest.jsonmanifest.json不是 Memotrace 自动生成的是我建议你手动维护的一份索引记录每个联系人的语料条数和时间范围方便后面筛选。格式如下{ target: 张三, file: D:/ex-skill-corpus/张三/张三_AI对话.txt, message_count: 812, date_range: 2023-01-01 ~ 2024-06-30, notes: 已剔除纯表情和转账记录 }然后是 Claude Code 的 settings。在项目根目录创建.claude/settings.json内容如下{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoTokenKey, ANTHROPIC_MODEL: claude-sonnet-4-20250514 }, permissions: { allow: [ Read, Write, Bash(git:*) ] } }注意ANTHROPIC_MODEL要填 TaoToken 文档里支持的模型 ID别照抄我这里的示例以文档为准。如果你用的是 Codex 风格的auth.json对应写法是{ base_url: https://taotoken.net/api, api_key: sk-你的TaoTokenKey, model: claude-sonnet-4-20250514 }三件套再次对齐Base URL 是https://taotoken.net/apiKey 是sk-开头那串Model ID 查文档。Cline MCP 场景同理在 MCP 配置里填这三个字段即可。接着初始化 ex-skill 目录cd D:/MyDigitalLife git init mkdir -p .claude/skills git clone https://github.com/perkfly/ex-skill .claude/skills/create-ex克隆完检查一下.claude/skills/create-ex/SKILL.md是否存在这是技能入口文件。如果目录为空说明克隆失败多半是网络问题重试即可。最后把语料路径写进技能配置。打开SKILL.md找到语料输入位置填入D:/ex-skill-corpus/张三/张三_AI对话.txt。有些版本支持在对话里动态指定路径那就留空运行时再传。4. 验证请求一次对话确认 Skills 生效配置写完不代表生效必须做一次验证。启动 Claude Codecd D:/MyDigitalLife claude进入交互界面后先确认通道是否通。输入一句普通提问比如你现在加载了哪些 skills观察返回。如果出现 401说明 Key 或 Base URL 有问题如果出现local proxy failed多半是 Base URL 写错或网络层拦截如果返回正常但没提到 create-ex说明技能没被识别。接着触发技能/create-ex按提示输入目标人物基本信息语料路径填D:/ex-skill-corpus/张三/张三_AI对话.txt。加载完成后发一句你在原始语料里见过的、有代表性的对话比如对方常说的口头禅。观察三点语气是否接近、是否复现口癖、情绪反应是否符合原对话逻辑。一个可复制的验证动作是你今天好累啊 预期模型用目标人物的口吻回应而不是通用安慰话术如果模型回的是辛苦了要注意休息哦这种标准客服腔说明语料没吃进去或者 Skill 没激活。这时候检查.claude/skills/create-ex/下是否有SKILL.md和语料引用以及 settings 里的模型 ID 是否被 TaoToken 支持。验证通过后你可以用模型对话入口再交叉验证一次 Key 的额度是否正常https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 。网页端能返回CLI 端一般也没问题。实测下来第一次加载语料会有几秒延迟因为模型要读完整份 TXT。如果 TXT 超过 2000 行建议先切分成 500 行左右的小文件分批注入避免reading choices类报错。5. 本篇常见错排查排错按报错原文对照别凭感觉猜。401 UnauthorizedKey 无效或没带上。检查ANTHROPIC_API_KEY是否以sk-开头是否有多余空格是否复制时漏了字符。如果 Key 确认没问题检查 Base URL 是否写成了https://taotoken.net/api/带尾斜杠某些客户端对尾斜杠敏感去掉试试。local proxy failed通常是 Base URL 指向了本地代理端口但代理没启动。如果你没配代理直接把 Base URL 改成https://taotoken.net/api不要填127.0.0.1之类。这个报错和网络环境有关别去折腾系统代理设置。reading choices 报错模型返回结构不符合预期常见于模型 ID 填错。比如填了一个 TaoToken 不支持的模型名返回体里没有choices字段。去文档核对模型 ID改成支持的再试。OAuth 相关报错Claude Code 某些版本会尝试 OAuth 登录如果你用的是 API Key 模式需要在 settings 里显式关闭 OAuth或者用ANTHROPIC_API_KEY覆盖。具体看 Claude Code 版本说明别同时开两种认证方式。Memotrace 读不到微信100% 是版本问题。新版微信数据库加密方案变了必须用 3.9 版本。卸载新版装 3.9登录后保持后台运行再开 Memotrace。Token 溢出语料太大。截取 500 到 1000 条表达欲最强的对话剔除嗯哦哈哈这类无信息量内容。质量比数量重要。AI 语气回潮聊几轮后变客气。直接发保持目标人设继续对话或者重新加载 Skill。这是模型原始对齐在起作用不是配置坏了。排错时建议开一个终端专门看日志Claude Code 的详细日志能看到实际请求的 Base URL 和模型 ID比猜快得多。接入文档在这里https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 遇到不确定的字段先查文档。6. 把通道固定下来长期跑配置一次不难难的是长期稳定。我的做法是把.claude/settings.json提交到项目 Git 里Key 用环境变量占位本地再覆盖。这样换机器时只改 KeyBase URL 和模型 ID 不动。如果你打算高频跑 Agent 任务Coding Plan 比按量更划算https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 。Key 管理在控制台https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 建议给不同项目建不同 Key方便排查是哪个项目在消耗额度。最后一步把验证过的语料和 Skill 目录打个 taggit add .claude/skills/create-ex git commit -m feat: ex-skill loaded with corpus v1 git tag corpus-v1下次语料更新直接切 tag 对比效果。这套流程跑顺之后你会发现真正花时间的不是配置而是语料清洗和筛选。把这两件事做扎实复现效果自然就上来了。