孙哥同款:从0到1搭建AI财务决策系统,用TaoToken统一Key打通Claude Code与Codex双Agent

📅 发布时间:2026/9/27 16:03:19
孙哥同款:从0到1搭建AI财务决策系统,用TaoToken统一Key打通Claude Code与Codex双Agent
1. 为什么个人开发者需要一套「双 Agent 财务决策系统」先说清楚这套东西是什么它是一套跑在你本机、只读你主动放进文件夹的账单资料、由 Claude Code 和 Codex 两个 Agent 分工协作的个人财务分析系统。能做的事很具体——把银行流水、信用卡账单、基金摘要、贷款记录整理成一份「财务概览」再针对一笔大额支出比如首付、创业启动金、借给朋友的钱算出四种付款方案下你未来 30 天和 90 天的现金余量。适合谁适合手里有房贷、信用卡、基金、股票、工资多条现金流又不想把账单上传到任何云端服务的个人开发者。我试过把同一批账单分别丢给两个 AgentClaude Code 负责长文档理解和结构化输出Codex 负责把金额计算写成可复算的脚本。问题很快就暴露了——两个工具各自要一套 KeyClaude Code 读settings.jsonCodex 读config.toml环境变量名还不一样。每次换机器、换项目目录就得重新翻文档找配置格式。更麻烦的是两个 Agent 如果连的不是同一个模型入口同一笔账算出来的口径可能不一致你根本不知道信哪个。这篇要解决的就是这个割裂用 TaoToken 一个 Key 同时喂给 Claude Code 和 Codex让两个 Agent 走同一个模型入口配置一次、两边通用。下面直接给可复制的settings.json和config.toml骨架再给双 Agent 调用财务数据接口的验证动作目标是一次配置跑通「记账 → 预算 → 决策建议」这条链路。2. TaoToken 前置一个 Key 打通两个 Agent 的模型入口TaoToken 在这里的角色是统一的模型接入层。你不需要分别去申请两套凭证、记两套环境变量名只要在控制台生成一个 API KeyClaude Code 和 Codex 都指向同一个地址即可。官网入口在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 基址是 https://taotoken.net/api 这个地址不加 UTM 参数配置里直接写它。具体操作路径进控制台 → 创建 API Key → 复制那串sk-开头的字符串。控制台地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content Key 管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。生成后先别急着关页面后面两个配置文件都要用。注意Key 只存在你本机的配置文件或环境变量里不要写进任何会提交到 Git 的代码。财务数据本身也不该离开你的文件夹这一点后面权限规则里会再强调。如果你还没决定用哪个模型可以先去模型对话页试一下响应质量地址是 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。长期跑编码和 Agent 任务的话Coding Plan 更划算入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。3. 可复制配置settings.json 与 config.toml 骨架Claude Code 读的是项目根目录或用户目录下的settings.jsonCodex 读的是config.toml。两个文件都指向同一个 TaoToken 入口Key 用同一个。先建一个工作目录比如~/ai-finance把两个配置文件都放进去。3.1 Claude Code 的 settings.json{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoToken密钥, ANTHROPIC_MODEL: claude-sonnet-4-20250514 }, permissions: { allow: [ Read(./**), Write(./财务概览.md), Write(./重大支出分析.md), Write(./每周财务摘要.md) ], deny: [ Read(../**), Bash(curl:*), Bash(rm:*) ] } }这里ANTHROPIC_BASE_URL指向 TaoToken 的 API 地址Claude Code 就会把请求发到这里而不是默认的官方端点。permissions.allow只放开了当前目录读取和三个报告文件的写入deny里挡掉了目录外读取和删除命令——财务系统最怕的就是 Agent 手滑改原始账单。3.2 Codex 的 config.tomlmodel gpt-5-codex model_provider taotoken [model_providers.taotoken] name TaoToken base_url https://taotoken.net/api env_key TAOTOKEN_API_KEY [sandbox] mode workspace-write workspace . [history] persistence noneCodex 这边用model_providers自定义一个 providerbase_url同样指向 TaoTokenenv_key指定从环境变量读 Key。sandbox.mode workspace-write限制它只能写当前工作目录history.persistence none避免对话历史落盘——财务数据不留痕。3.3 环境变量与目录结构两个配置里都引用了 Key最稳妥的做法是写进 shell 环境变量而不是硬编码在文件里。在~/.zshrc或~/.bashrc里加一行export TAOTOKEN_API_KEYsk-你的TaoToken密钥然后source ~/.zshrc生效。Claude Code 的settings.json里如果不想明文写 Key也可以把ANTHROPIC_API_KEY的值改成从环境变量读取的写法具体看你用的版本支持哪种插值语法。目录结构建议这样ai-finance/ ├── settings.json ├── config.toml ├── raw/ # 原始账单只读 │ ├── bank_202501.csv │ ├── creditcard_202501.pdf │ └── fund_summary.xlsx ├── 财务概览.md ├── 重大支出分析.md └── 每周财务摘要.md原始账单全部丢进raw/Agent 只读不写。三个报告文件由 Agent 生成你随时可以删掉重跑。4. 验证请求双 Agent 调用财务数据接口跑通链路配置写完不算完得验证两个 Agent 真的能通过 TaoToken 拿到响应并且能协作处理同一批财务数据。分三步走。4.1 单 Agent 连通性验证先单独测 Claude Code。在ai-finance目录下打开终端运行claude -p 读取 raw/ 目录下的文件列表告诉我每个文件的格式和大致内容不要修改任何文件。如果配置正确它会返回raw/下的文件名和格式判断。这一步只验证「能不能连上 TaoToken 并读到文件」不涉及金额计算。Codex 那边同理codex exec 列出当前目录下 raw/ 文件夹里的文件说明每个文件的类型。两个都返回正常说明统一 Key 接入成功。如果报 401检查环境变量有没有生效如果报连接超时检查base_url是不是写成了带 UTM 的地址——配置里只写https://taotoken.net/api不要带参数。4.2 双 Agent 分工验证连通之后让两个 Agent 各干各的活。Claude Code 负责理解非结构化账单PDF、Excel 摘要Codex 负责把金额计算写成可复算的 Python 脚本。你可以这样下指令claude -p 读取 raw/ 下所有账单生成一份财务概览草稿列出现金总额、可立即使用资金、其他资产、负债、未来三个月确定支出、无法确认的交易。金额注明币种和数据日期。Claude Code 输出草稿后把草稿里的关键数字交给 Codex 验证codex exec 根据 raw/ 下的原始数据用 Python 重新计算以下数字并输出计算脚本现金总额、未来30天确定支出、未来90天确定支出。不要心算全部用代码算。Codex 会生成一段 Python 脚本并执行输出结果。两个结果对不上就说明有一方读错了数据——这时候回去检查原始文件里有没有重复记录、本人账户互转、信用卡还款被重复计算。4.3 大额支出分析验证最后跑一遍完整链路。给 Claude Code 下这个指令可以直接用 excerpt 里那段提示词的精简版claude -p 我要支付 500000 元人民币计划 2025-06-01 支付希望账户里至少保留 100000 元。请比较四种情况现在一次付清、分3次每次间隔30天、推迟90天、暂不支付。每种情况说明付款后剩余可用资金、未来30天和90天是否低于安全线、哪些确定支出受影响。所有金额用代码计算把四种情况放在同一张表里。Claude Code 会调用 Codex 生成的计算脚本或者自己写脚本执行最终输出一张对比表。这张表就是「决策建议」的核心产物——它不替你选但把每种选择的后果摆在一起。5. 本篇常见错排查配置和验证过程中最容易踩的坑集中列一下。Key 无效或 401最常见的原因是环境变量没生效。export之后要source配置文件或者新开一个终端窗口。另一个原因是settings.json里 Key 写成了占位符没替换。检查方法echo $TAOTOKEN_API_KEY看有没有输出。base_url 写错有人会把官网地址https://taotoken.net直接填进base_url正确写法是https://taotoken.net/api。带 UTM 参数的地址只用于浏览器访问配置文件里不要带。Codex 报 provider 找不到config.toml里model_provider的值必须和[model_providers.xxx]里的xxx一致。上面示例里都是taotoken如果你改了名字两处都要改。Agent 读到了目录外的文件检查permissions.deny里有没有Read(../**)。Claude Code 的权限规则是 allow 和 deny 同时生效deny 优先级更高。Codex 那边靠sandbox.workspace限制。金额算出来对不上九成是重复计算。本人账户之间的转账、信用卡还款、退款这三类记录最容易被重复计入收入和支出。在提示词里明确要求 Agent 识别并排除这三类或者让 Codex 在脚本里加去重逻辑。Agent 试图执行付款或转账正常情况下不会但如果你给的提示词里带了「帮我付」之类的字眼可能会触发。权限规则里已经挡掉了Bash(curl:*)和Bash(rm:*)但更稳妥的做法是在提示词里写死「不执行任何真实资金操作」。报告文件写入失败检查permissions.allow里的Write路径和实际文件名是否一致。中文文件名在某些终端环境下需要引号包裹。6. 把配置固定下来让系统自己跑配置跑通之后日常使用其实很简单每周把新账单丢进raw/然后跑一条命令让 Agent 更新报告。Claude Code 那边可以这样claude -p raw/ 目录下有新文件请更新财务概览.md只报告变化现金和负债的变化、本周最大三项收入和支出、新增未来支出、重复或异常交易、超过30天未更新的账户。没有明显变化就写本周无显著变化。Codex 负责在每次更新后重新跑一遍计算脚本确保数字和原始数据一致。两个 Agent 走同一个 TaoToken Key模型入口统一口径就不会漂。这套系统不碰你的网银不索取验证码不执行任何转账。它只做一件事把你主动放进文件夹的账单读一遍算清楚然后把选择的后果摆在你面前。分析和转账之间那道线始终由你自己按。如果你还没生成 Key去 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 创建一个然后按上面的settings.json和config.toml填进去。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 遇到配置格式问题可以先翻那里。长期跑 Agent 任务的话Coding Plan 的入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 比按量计费省心一些。