ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Python 绘图脚本调 nature-figure,TaoToken 只管模型请求

Python 绘图脚本调 nature-figure,TaoToken 只管模型请求 1. 先定位nature-figure 是绘图 SkillTaoToken 只负责模型请求最近在给 nature-skills 的 nature-figure 接绘图 Agent 时最容易踩的坑不是 matplotlib 报错而是 Agent 侧模型凭据没填对。TaoToken 官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentpython_figure_intro 可以拿 KeyBase URL 用 https://taotoken.net/api。很多人第一次跑绘图 Skill看到终端里出现401 invalid api key、model not found或者 Agent 反复说“无法生成文件”会下意识去改 Python 脚本、换字体、重装 matplotlib。实际上Python 绘图脚本是本地的真正需要模型请求的是绘图 Agent它读 Skill 约束、改脚本、补统计标注、整理多面板布局这一过程消耗 Token。TaoToken 在这里只做一件事给 Agent 提供模型请求入口。它不接管你的plt.savefig()也不替你执行python make_figure.py。把边界分清楚之后整个链路会清晰很多。本地负责虚拟环境、数据文件、Python 绘图脚本、多面板输出 PNG/SVG/PDF。Agent 负责读 nature-figure 的 SKILL.md 和 references按期刊图件习惯修改脚本检查面板标签、轴标签、字号、图例、统计表达。TaoToken 负责在 Agent 调用模型时提供 Base URLhttps://taotoken.net/api和 API Key。这样排查问题时就不会混在一起图没出来先看本地脚本Agent 不回复先看模型凭据Agent 回复了但图不对版再看 Skill 是否装全、提示词是否写清楚。本文按 Python 绘图视角走一遍可复现流程安装 nature-figure、给 Claude Code / Codex / CC Switch 配 TaoToken 凭据、运行一个 2×2 多面板脚本、让 Agent 只改脚本、最后用一张对照表核对模型请求凭据与产物。文末按“模型对话 → Coding Plan → 创建 Key → Claude Code 文档”的顺序给出入口。需要先说明nature-skills 里不是所有 Skill 都处于同一成熟度使用前以仓库当前标记为准绘图相关输出仍要人工复核。2. 从 npx skills 装 nature-figure只装绘图这一项nature-skills 把科研任务拆成多个可复用 Skill覆盖阅读、检索、润色、写作、绘图、统计审查、投稿前评审和返修回复等。对 Python 绘图来说不需要一次装全。你完全可以只装 nature-figure先跑通“数据表 → 多面板图 → 可编辑 SVG/PDF”这条线。仓库里常见的安装方式是用npx skills查看并选择单项 Skill也可以按仓库脚本同步到 Codex 或 Claude Code。注意单独复制一份SKILL.md往往不够部分功能依赖references、模板、脚本、nature-shared以及 Python、R、浏览器或 MCP 服务。绘图任务至少要有 Python 环境如果 Skill 里引用了示例模板也要把对应目录一起保留。先建一个独立项目目录避免污染已有科研工程mkdir -p ~/lab/nature-figure-demo cd ~/lab/nature-figure-demo python -m venv .venv source .venv/bin/activate # Windows PowerShell 用 # .venv\Scripts\Activate.ps1 pip install --upgrade pip pip install matplotlib pandas numpy如果你需要更接近期刊配色的调色板可以再加seaborn但本文示例只依赖 matplotlib、pandas、numpy减少环境变量。接着查看 Skill 列表并安装 nature-figurenpx skills list npx skills add nature-figure安装完成后检查项目里是否出现类似.claude/skills/nature-figure、.codex/skills/nature-figure或仓库脚本指定的 Skill 目录。不要只看SKILL.md是否存在还要确认references、templates、scripts是否完整。很多“Agent 不按格式画图”的问题根源是 Skill 资源缺文件Agent 只拿到了一个空壳说明。若你使用 Codex 或 Claude Code建议在项目根目录启动 Agent这样它更容易发现当前项目的 Skill 目录和 Python 脚本。下面给出一个最小的目录示意不必逐字照抄只要保证 Agent 能读到 Skill 和脚本即可nature-figure-demo/ ├── .venv/ ├── make_figure.py ├── data/ │ └── demo.csv ├── .claude/ │ └── skills/ │ └── nature-figure/ │ ├── SKILL.md │ ├── references/ │ ├── templates/ │ └── scripts/ └── outputs/ ├── figure_multi_panel.png ├── figure_multi_panel.svg └── figure_multi_panel.pdf如果你的 Agent 平台要求把 Skill 放到用户级目录就按平台文档放置不要强行复制到错误路径。安装阶段的目标只有一个让绘图 Agent 能读到 nature-figure 的完整约束同时让 Python 脚本留在本地可执行。3. 给绘图 Agent 配 TaoToken 凭据Claude Code / Codex / CC Switch 三套模型凭据要在 Agent 侧配置不是在 Python 脚本里写 Key。Python 脚本只负责画图不应出现任何 API Key。你需要先去 TaoToken 官网拿 Keyhttps://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentpython_figure_config 。控制台里创建或复制 Key 后用占位符YOUR_API_KEY代替真实值不要把真实 Key 提交到 Git。Base URL 统一用https://taotoken.net/api这个 Base URL 不加 UTM也不要在后面随意拼接未知路径。下面分三套常见配置Claude Code、Codex、CC Switch。注意不要混用协议Claude Code 用ANTHROPIC_*Codex 用config.toml不要把ANTHROPIC_*套到 Codex。3.1 Claude Codesettings.json / ANTHROPIC_*Claude Code 可以在项目级或用户级settings.json里配置环境变量。常见位置是~/.claude/settings.json或项目下的.claude/settings.json。示例{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: YOUR_API_KEY } }如果你更习惯用 shell 环境变量也可以export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEYYOUR_API_KEY配置后重启 Claude Code或者新开一个终端让环境变量生效。验证时可以让 Agent 回复一句简单内容确认没有401或connection error。如果仍然报错优先检查Key 是否复制完整、是否有多余空格、Base URL 是否写成了别的地址、当前终端是否真的加载了 settings.json。3.2 Codexconfig.tomlCodex 使用~/.codex/config.toml或项目级配置。典型写法如下注意这里用的是 Codex 自己的 provider 配置不要写ANTHROPIC_*model gpt-5-codex model_provider taotoken [model_providers.taotoken] name TaoToken base_url https://taotoken.net/api env_key TAOTOKEN_API_KEY wire_api responses然后在 shell 里设置export TAOTOKEN_API_KEYYOUR_API_KEY这里的关键是env_key TAOTOKEN_API_KEY它告诉 Codex 从环境变量读取 Key。不要把 Claude Code 的ANTHROPIC_API_KEY直接塞进 Codex 的env_key也不要把ANTHROPIC_BASE_URL写进config.toml。两者协议和字段不同混用会出现模型名不匹配、请求路径错误或鉴权失败。3.3 CC SwitchBase URL、API Key、模型名三件套CC Switch 这类切换工具通常要求三件套Base URL、API Key、模型名。填法如下字段填写值说明Base URLhttps://taotoken.net/api不加 UTM不要写额外路径API KeyYOUR_API_KEY从 TaoToken 控制台复制模型名控制台实际可用的模型 ID以模型对话页或控制台为准模型名不要凭记忆填。不同账号、不同通道可用的模型 ID 可能不同。如果你不确定先在 TaoToken 的模型对话页确认可用模型再复制到 CC Switch。配置完成后用 CC Switch 切换到 TaoToken 供应商重启 Agent让它执行一个只读任务例如“读取 make_figure.py 并总结当前面板数量”。这一步不触发绘图只验证模型请求链路。3.4 本地验证请求链路可以用一个最小 curl 检查 Key 和 Base URL 是否可用。命令由你在本地执行不要交给 Agent 去连生产库或执行未知命令curl -s https://taotoken.net/api/models \ -H Authorization: Bearer YOUR_API_KEY | head如果返回模型列表或明确的结构化信息说明 Base URL 和 Key 基本可用。如果返回 401检查 Key如果返回 404检查 Base URL 是否被改写如果超时检查本机网络和代理设置。这里不需要在 Python 脚本里做任何模型调用绘图脚本保持纯净。4. 可复现的 Python 多面板绘图脚本本地跑图Agent 只改脚本下面给出一份可直接运行的make_figure.py。它用 numpy 造三组模拟数据生成 2×2 多面板图A 时间曲线、B 组均值柱状图、C 相关性热图、D 成对散点。脚本保存 PNG、SVG、PDF 三种格式方便后续在 LaTeX 或 PPT 中继续编辑。这个脚本不访问网络不调用模型不消耗 Token。Token 消耗发生在绘图 Agent 读取 Skill、修改脚本、解释差异的时候。# make_figure.py import numpy as np import pandas as pd import matplotlib.pyplot as plt from matplotlib.ticker import MaxNLocator rng np.random.default_rng(42) x np.linspace(0, 10, 120) groups { Control: np.sin(x) rng.normal(0, 0.12, x.size), Treatment A: np.sin(x 0.3) 0.2 rng.normal(0, 0.12, x.size), Treatment B: np.cos(x * 0.8) rng.normal(0, 0.12, x.size), } df pd.DataFrame({x: x, **groups}) long_df df.melt(id_varsx, var_namegroup, value_namevalue) fig, axes plt.subplots(2, 2, figsize(9, 7), constrained_layoutTrue) ax1, ax2, ax3, ax4 axes.ravel() for name, sub in long_df.groupby(group): ax1.plot(sub[x], sub[value], labelname, linewidth1.4) ax1.set_title(A. Time course) ax1.set_xlabel(Time) ax1.set_ylabel(Signal) ax1.legend(frameonFalse, fontsize8) ax1.yaxis.set_major_locator(MaxNLocator(4)) means df[list(groups)].mean() sems df[list(groups)].sem() ax2.bar( means.index, means.values, yerrsems.values, capsize3, color[#4C72B0, #DD8452, #55A868], ) ax2.set_title(B. Group mean) ax2.set_ylabel(Mean signal) ax2.tick_params(axisx, rotation15) heat df[list(groups)].corr() im ax3.imshow(heat, cmapvlag, vmin-1, vmax1) ax3.set_xticks(range(len(heat.columns)), heat.columns, rotation30, haright) ax3.set_yticks(range(len(heat.index)), heat.index) ax3.set_title(C. Correlation) fig.colorbar(im, axax3, shrink0.8) ax4.scatter(df[Control], df[Treatment A], s12, alpha0.7, edgecolornone) ax4.set_title(D. Pairwise scatter) ax4.set_xlabel(Control) ax4.set_ylabel(Treatment A) for ax in axes.ravel(): ax.spines[[top, right]].set_visible(False) fig.savefig(outputs/figure_multi_panel.png, dpi300) fig.savefig(outputs/figure_multi_panel.svg) fig.savefig(outputs/figure_multi_panel.pdf) print(saved: outputs/figure_multi_panel.png / .svg / .pdf)运行前确保outputs目录存在mkdir -p outputs python make_figure.py你会得到三份文件。PNG 用于快速预览SVG 和 PDF 用于后续编辑。此时图是“能看”的但还不一定是“期刊风格”的。接下来让绘图 Agent 按 nature-figure 的约束修改脚本。提示词要限定范围只改脚本不执行未知命令不访问数据库不替换数据源。请读取当前目录的 make_figure.py 和 nature-figure Skill。 只修改绘图脚本不执行任何数据库命令不访问网络。 任务 1. 保留 2x2 多面板结构 2. 面板标签统一为 A/B/C/D并检查字号 3. 轴标签、刻度、图例在最终 PDF 中保持可读 4. 配色尽量接近高影响力期刊常用风格但不要改变数据 5. 输出修改后的 make_figure.py 和一份差异说明。Agent 输出新脚本后仍然由你在本地运行python make_figure.py如果 Agent 建议安装新包先确认包名和用途再在虚拟环境里安装。不要直接运行来路不明的脚本。绘图 Agent 的价值在于按 Skill 约束批量修改脚本、检查多面板一致性、补充统计说明它不应该接管本地执行权限。5. 多面板结果与模型请求凭据对照怎么核对 Token 消耗和产物跑通一次后建议做一张对照表把“模型请求凭据”和“本地产物”分开记录。这样出问题时能快速定位是 Key 失效还是脚本没重跑还是 Skill 没加载。下面是一个可复用的核对模板。环节配置入口关键字段预期产物核对方式TaoToken Key官网控制台YOUR_API_KEY可用 Key控制台能看到 Key 状态Claude Code~/.claude/settings.jsonANTHROPIC_BASE_URL、ANTHROPIC_API_KEYAgent 正常回复无 401能读取 SkillCodex~/.codex/config.tomlmodel_provider、base_url、env_keyAgent 正常回复TAOTOKEN_API_KEY已导出CC Switch供应商三件套Base URL、API Key、模型名切换后 Agent 可用模型名与页面一致Python 本地.venvmatplotlib、pandas、numpyfigure_multi_panel.*python make_figure.py无报错多面板结果outputs/PNG/SVG/PDF2×2 图件打开 PDF 检查文字可编辑Token 消耗TaoToken 控制台请求记录用量记录与 Agent 操作时间对应这张表的核心是模型请求凭据只影响 Agent不影响本地绘图脚本。Token 消耗发生在 Agent 读 Skill、改脚本、解释差异、检查统计表达的时候。你可以在 TaoToken 控制台看请求记录但不要把控制台用量和 matplotlib 执行混在一起。若 Agent 修改了脚本务必重新运行python make_figure.py否则你看到的还是旧图。若 SVG/PDF 中文字体缺失优先检查本机字体和 matplotlib 字体缓存而不是反复改 Base URL。6. 常见报错与排查401、404、模型名不匹配、图不对版401 invalid api key最常见原因是 Key 复制不完整、Key 已失效、或者 Claude Code 读的不是你以为的 settings.json。先检查ANTHROPIC_API_KEY或TAOTOKEN_API_KEY是否和 TaoToken 控制台一致。注意 Codex 不要用ANTHROPIC_*。404 not found通常是 Base URL 被改写。本文统一用https://taotoken.net/api。不要在后面随意加/v1、/chat/completions或其他路径除非 TaoToken 文档明确要求。CC Switch 里也一样Base URL 字段只填给定地址。model not found / model not supportedCC Switch 或 Codex 里的模型 ID 与账号可用模型不一致。去 TaoToken 模型对话页确认可用模型再复制准确 ID。不要凭记忆填一个看起来像的模型名。Agent 不调用 nature-figure检查 Skill 是否完整安装。只复制SKILL.md可能不够references、templates、scripts、nature-shared缺失都会让 Agent 无法按预期工作。确认启动 Agent 的目录是项目根目录或者按平台要求放到用户级 Skill 目录。图不对版Agent 改了脚本但你没有重新运行或者它只给了建议没有写入文件。让 Agent 输出完整make_figure.py然后本地执行。若多面板标签、字号、图例仍不统一把具体面板截图或 PDF 页面给它要求只改样式不改数据。统计表达不可信nature-statistics 之类的模块在不同版本里可能处于 Beta 或 Draft不能替代人工判断。实验单位、重复数、p 值、多重比较、效应量仍要回到原始数据核对。绘图 Agent 可以帮你检查跨面板数值一致性但不能替你决定统计方法。7. 引用、统计与返修nature-skills 其他模块怎么和绘图流水线共存Python 绘图只是 nature-skills 的一个切面。仓库里还有阅读、检索、润色、写作、统计审查、投稿前评审和返修回复等 Skill。它们可以独立调用不必串成固定流水线。对绘图任务来说最实用的组合是nature-figure 负责图件脚本nature-statistics 负责统计表达复核nature-ref-verifier 负责引用字段核验。但不要让一个 Prompt 同时做所有事。任务拆开后Token 请求更容易审计输出也更容易核对。例如你让绘图 Agent 改完make_figure.py后另开一个会话让它检查图注中的统计描述再另开一个会话让它核对参考文献。每次只给一个明确交付物脚本、图注、引用列表、返修回复。这样即使某个 Skill 处于 Beta 或 Draft你也能快速定位问题。需要再次强调“Nature 风格”描述的是项目参照的表达、图件和审稿标准不是期刊认可也不构成录用保证。论文的新颖性、方法质量、实验数据、作者责任和期刊政策不会因为安装 Skill 而改变。对于绘图流水线建议固定三个目录data/放原始数据scripts/或项目根目录放make_figure.pyoutputs/放 PNG/SVG/PDF。Agent 只改脚本不直接改outputs/。每次修改后重新运行脚本并保留一份差异说明。这样即使后面要返修也能清楚知道哪一版图件对应哪一版脚本、哪一次模型请求。8. 收尾把 Key、Base URL、Skill 目录固定成可复用清单把下面这份清单保存到项目 README 或本地笔记里下次换机器时直接照做去 TaoToken 官网拿 Keyhttps://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentpython_figure_cta记住 Base URLhttps://taotoken.net/apiClaude Code 写settings.json使用ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY。Codex 写config.toml使用model_providers.taotoken和TAOTOKEN_API_KEY不要混入ANTHROPIC_*。CC Switch 填三件套Base URL、API Key、模型名。安装 nature-figurenpx skills list、npx skills add nature-figure确认references、templates、scripts完整。本地运行python make_figure.py检查outputs/figure_multi_panel.png、.svg、.pdf。让绘图 Agent 只改脚本改完由你本地重跑。用对照表记录模型请求凭据、Agent 任务、产物文件和核对结果。如果你还没确定模型是否可用可以先到模型对话页试一条简单请求https://taotoken.net/models/detail/chat?utm_sourcetaotoken_aicg_blog_endutm_contentpython_figure_chat 。如果你准备长期让绘图 Agent 参与科研图件迭代可以看 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentpython_figure_plan 。需要创建新的 Key 时走 API Keys 页面https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentpython_figure_keys 。Claude Code 的具体配置字段和最新说明参考文档https://taotoken.net/doc/ClaudeCodeAnthropic?utm_sourcetaotoken_aicg_blog_endutm_contentpython_figure_doc 。按这个顺序走Python 绘图脚本、多面板结果和模型请求凭据就能各自独立、可复现、可核对。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进