『Agent项目实战』WeChatDaily 开源实战:用 AI Coding 自动生成微信群日报的 TaoToken 配置骨架
微信群消息一多复盘就成了体力活。技术群、课程群、社群运营群尤其明显白天讨论了一堆工具、方案、踩坑结论晚上想整理成日报只能在聊天记录里一条条翻。WeChatDaily 这个开源项目就是冲着这个痛点来的——它把微信群聊数据在本地处理再交给 AI Coding Agent 做话题分析最后渲染成 Markdown、HTML 甚至 PNG 长图日报。这篇不重复 README 的安装流水账而是聚焦一件事怎么用 TaoToken 统一 Key 和 API 通道把 WeChatDaily 的 AI 分析环节接稳并给出一份可直接复制的 config.toml 与 settings.json 骨架。适合已经在跑 WeChatDaily、或者准备把它接进自己 Agent 工作流的开发者。下面从场景、前置配置、可复制骨架、验证动作到排错一步步来。1. WeChatDaily 的 AI 分析环节为什么需要统一通道WeChatDaily 的设计里有个很克制的选择项目本身不内置大模型 API Key。本地脚本只负责脏活累活——提取 raw_key、解密数据库、导出 Markdown 聊天记录语义总结交给使用者当前的 AI Coding Agent。这个分工很干净但也带来一个现实问题Agent 背后到底连哪个模型服务、Key 怎么管、多个工具之间怎么复用同一套凭证。我试过把 Key 直接写进各个工具的配置文件结果是每换一个 AI Coding 工具就要重新配一遍团队里几个人共用还容易互相覆盖。更麻烦的是WeChatDaily 的 Skill 工作流会连续调用分析步骤如果通道不稳定导出到一半分析失败前面的解密和导出就白跑了。TaoToken 在这里的角色是统一入口一个 Key、一套 API 地址同时给模型对话、Coding Plan、以及各类 AI Coding 工具用。对 WeChatDaily 这种「本地脚本 Agent 分析」的组合来说把模型通道收敛到一处配置骨架就能固定下来换工具时只改一个文件。需要先明确一点WeChatDaily 处理的是聊天记录属于敏感数据。TaoToken 解决的是通道统一和 Key 管理不改变数据流向——你依然要自己判断哪些群适合做本地实验哪些内容不适合进云端上下文。这一点在后面的排错章节还会再提。2. TaoToken 前置准备Key、地址与工具入口在写配置文件之前先把三样东西准备好API Key、API 地址、以及你要用的工具入口。API 地址固定为https://taotoken.net/api注意这个地址不带任何查询参数。官网入口是https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content从官网可以进到控制台创建 Key。创建 Key 的路径是控制台里的 API Keys 页面对应 deep link 为https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite。拿到 Key 之后不要直接写进会提交到 Git 的文件里WeChatDaily 的.env、export/目录本来就在忽略列表里模型配置也建议走同样的隔离思路。如果你主要做长期编码和 Agent 任务可以了解 Coding Plan入口是https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite如果只是想先验证模型能不能通用模型对话页面https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite更快。接入文档在https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewriteClaudeCodeAnthropic 相关说明在https://taotoken.net/claudecode-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaudecode-anthropicutm_campaignrewrite。注意Key 只创建一次就够多个工具复用同一个 Key。如果团队协作建议每人一个 Key方便在控制台单独停用而不是共用一个。3. 可复制的 config.toml 与 settings.json 骨架WeChatDaily 本身不读模型配置模型配置是给你所用的 AI Coding 工具读的。所以这里的骨架分两层一层是 WeChatDaily 自己的.env一层是 AI Coding 工具的模型通道配置。下面给出可直接改的版本。3.1 WeChatDaily 的 .env 骨架# WeChatDaily 本地配置不要提交到 Git WX_RAW_KEY你的64位hex_raw_key WECHAT_DB_DIR WECHAT_DEFAULT_GROUPS示例群①,示例群② # 模型通道供 Agent 分析环节读取非项目内置 TAOTOKEN_API_BASEhttps://taotoken.net/api TAOTOKEN_API_KEY你的_taotoken_key TAOTOKEN_MODEL你的默认模型名WX_RAW_KEY来自 wx_key 工具提取的 64 位 hex微信重启后可能变化需要重新提取。WECHAT_DEFAULT_GROUPS是常用群列表方便 Agent 在对话里直接引用群名。3.2 config.toml 骨架很多 AI Coding 工具用 TOML 管理模型通道下面这份骨架把 TaoToken 作为统一 provider# config.toml —— AI Coding 工具模型通道配置 [provider.taotoken] name taotoken base_url https://taotoken.net/api api_key_env TAOTOKEN_API_KEY default_model 你的默认模型名 [provider.taotoken.limits] timeout_seconds 120 max_retries 2 [agent.wechatdaily] skill_dir .claude/skills/wechat-group-daily-report analysis_output export/reports/analysis_{date}_{group}.json report_output export/reports/report_{date}_{group}.html关键点是api_key_env指向环境变量而不是硬编码 Key这样.env和config.toml可以分开管理前者进忽略列表后者可以进仓库当模板。3.3 settings.json 骨架如果你的工具用 JSON 配置等价骨架如下{ providers: { taotoken: { baseUrl: https://taotoken.net/api, apiKeyEnv: TAOTOKEN_API_KEY, defaultModel: 你的默认模型名, timeoutSeconds: 120, maxRetries: 2 } }, wechatdaily: { skillDir: .claude/skills/wechat-group-daily-report, analysisOutput: export/reports/analysis_{date}_{group}.json, reportOutput: export/reports/report_{date}_{group}.html, renderScript: scripts/render_manual_report.py } }两份骨架的字段含义一致选你工具支持的那份即可。{date}和{group}是占位符由 Skill 工作流在运行时替换。3.4 参数对照表字段作用建议值base_url / baseUrl模型 API 入口https://taotoken.net/apiapi_key_env / apiKeyEnvKey 的环境变量名TAOTOKEN_API_KEYdefault_model分析环节默认模型按控制台可用模型填timeout_seconds单次请求超时120max_retries失败重试次数2skill_dirSkill 目录.claude/skills/wechat-group-daily-report4. 验证请求与日报生成结果配置写完先别急着跑完整日报分两步验证更稳。第一步单独验证模型通道。用 curl 打一次请求确认 Key 和地址都对curl -s https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d { model: 你的默认模型名, messages: [{role: user, content: 只回复 ok}] }返回里能看到模型输出说明通道通了。如果这里就报 401先回去检查 Key 和环境变量有没有生效。第二步走 WeChatDaily 的 Agent 主路径。在支持 Skill 的工具里加载项目 Skill然后直接说帮我生成「示例群①」今天的微信群日报Agent 会按 Skill 工作流依次完成确认群名和日期、按需刷新解密、导出 Markdown、调用模型分析、写入analysis_{date}_{群}.json、最后渲染 HTML。跑通后本地大致会有这些文件类型路径完整聊天记录export/reports/report_{date}.md结构化分析export/reports/analysis_{date}_{群}.json可视化日报export/reports/report_{date}_{群}.html图片版可选export/reports/report_{date}_{群}.pngPNG 需要额外装 Playwright Chromiumpython -m playwright install chromium如果只想手动验证解密和导出可以用python wechat.py groups python wechat.py export --date 2026-06-12 --groups 示例群① --limit 99999这组命令是排错用的不是日常主流程。日常只要配好.env和模型通道交给 Agent 就行。5. 本篇常见错排查模型通道报 401 或 403。先确认TAOTOKEN_API_KEY在当前 shell 里真的存在echo $TAOTOKEN_API_KEY看一下。如果配置文件里写的是api_key_env工具读的是环境变量不是文件里的字面值。分析步骤超时。聊天记录很长时单次请求容易超时。把timeout_seconds调到 120 以上max_retries设 2让失败自动重试。如果还是慢考虑按日期分段导出再分析。导出消息偏少或日期不对。大概率是 raw_key 过期。微信重启后 key 会变重新跑 wx_key 更新.env再在对话里选「刷新解密」。PNG 渲染失败但 HTML 正常。缺 Playwright Chromium执行python -m playwright install chromium即可。子模块报错No module named key_scan_common。克隆时漏了子模块初始化补跑git submodule update --init --recursive。Key 泄露风险。.env、export/、tools/wechat-decrypt/config.json、tools/wx_key/都不该进 Git。模型配置里的 Key 走环境变量别硬编码进config.toml或settings.json。注意聊天记录是敏感数据。TaoToken 统一的是模型通道不改变数据流向。公司群、客户群、隐私群建议只在可信环境做本地实验别把原始记录随便塞进不确定的云端上下文。6. 把通道固定下来再谈自动化WeChatDaily 的价值在于把微信群复盘拆成清晰的三段本地脚本处理数据、Agent 做结构化分析、HTML/PNG 负责交付。这套分工要跑得稳模型通道就不能散落在各个工具里。用 TaoToken 把 Key 和 API 地址收敛到一处config.toml和settings.json骨架就能当模板复用换工具时只改一个文件。如果你还在排障和接入阶段先去 API Keys 页面确认 Key 状态再对照接入文档核对地址格式https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite和https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite。如果只是想先确认模型能不能通用模型对话页面https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite打一次请求最快。长期跑编码和 Agent 任务的话Coding Plan 入口在https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite。我的建议是先拿一个测试群跑通完整流程确认通道、解密、分析、渲染四步都稳再决定要不要接进日常复盘。别一上来就处理敏感群先把环境边界摸清楚。