SuperAPI AI 工具集

Plotting SOP

写作与研究

查看项目

更新于 10-16 04:40

技能介绍

Plotting SOP 是科研作图标准操作规程,属于 wentorai/research-claw 技能集。当用户要求绘制或可视化任何图或示意图、为论文创建图表(柱状图、折线图、散点图、热力图、雷达图等)、绘制流程图/架构图/概念图、在学术写作过程中生成插图(由 writing-sop 第 2 阶段调用),或把数据转换为视觉表达时,应读取本技能。

一、环境检测 在生成任何图之前,必须先检查可用能力,且每次会话只运行一次。检测项包括:matplotlib 版本、seaborn 版本、mmdc(Mermaid CLI)是否可用(可回退到 npx --yes @mermaid-js/mermaid-cli)、cairosvg 是否可用。结果记录在会话记忆中,后续图表不再重复检测。如果缺少 matplotlib,会询问用户是否允许运行安装脚本 scripts/setup-plotting-env.sh;若找不到该脚本,可用 pip install --user matplotlib seaborn numpy pandas;若用户拒绝,则跳过 Python 引擎,改用 Mermaid 或 AI Image。若缺少 mmdc 属正常,使用 npx 回退;若 npx 也失败,则保存 .mmd 文件并提示用户粘贴到 https://mermaid.live 查看。

二、引擎选择决策树 每个绘图请求都必须遵循决策树,不得跳过步骤:

  1. 若是数据可视化(含数字/统计的图表,如柱状图、折线图、散点图、热力图、小提琴图、雷达图、直方图、箱线图)→ Python 引擎。
  2. 若是简单结构化示意图(节点数 ≤15 且美观度不重要,如简单流程图、时序图、类图、甘特图)→ Mermaid 引擎。
  3. 若是复杂示意图(节点数 >15 或需要视觉打磨,如架构图、研究方法流程、概念图、多层系统图、出版级插图)→ 若已配置 NanoBanana/OpenRouter 则用 AI Image 引擎;未配置则向用户推荐 NanoBanana,用户提供 API Key 后使用 AI Image 引擎;用户拒绝时给出警告(本地引擎生成复杂流程图质量有限,可能需手动调整),并退回 Mermaid 引擎尽力生成。
  4. 若是自定义矢量图形(几何形状、坐标标注)→ SVG 引擎。

三、NanoBanana 配置 NanoBanana 通过 OpenRouter 访问 Gemini 原生图像生成,是生成复杂、出版级学术示意图的可靠路径,因为它直接生成图像(像素级),绕过代码生成。需用户提供 OpenRouter API Key,存于 MEMORY.md 的 ## Global > ### Environment 下。推荐模型为 google/gemini-2.5-flash-preview-image-generation,备选 google/gemini-2.5-pro-preview-image-generation,API 端点为 https://openrouter.ai/api/v1/chat/completions。

四、Python 引擎(数据可视化) 适用于基于数值数据的图表:柱状图、折线图、散点图、热力图、小提琴图、雷达图、箱线图、直方图、饼图、面积图等。生成代码前必须先设置输出路径,命名规范为 outputs/figures/{topic}-fig{N}.png。代码模板要求:matplotlib.use('Agg') 必须在 pyplot 导入之前、使用学术风格设置(sans-serif、字号 12、figure.dpi 300、轴宽 1.2、网格 alpha 0.3、图例框 alpha 0.9)、所有标签和标题用英文、保存为 300 DPI PNG 并 tight_layout。执行协议:生成代码、保存到临时文件、用 python3 执行、检查退出码为 0 且 stdout 含 "OK" 且输出文件存在即为成功,否则进入 ReAct 自纠(最多 3 次),将上一次代码与错误注入下一次生成,仍失败则告知用户。配色建议:分类 ≤10 用 tab10、≤8 用 Set2、顺序用 viridis、发散用 RdYlBu、色盲安全用 Paired;禁止仅用红绿对比。图表类型速查涵盖柱状图、折线图、散点图、热力图、箱线图、小提琴图、雷达图、饼图、直方图、面积图及其关键代码。

五、Mermaid 引擎(结构化图) 适用于流程图、时序图、类图、状态机、甘特图。语法规则:节点 ID 用简单字母 A、B、C(不用中文、不加空格)、标签用 [] 包裹、箭头用 --> 或 -->|label|、标签内禁用 & < >、判断节点用单花括号。图节点数 ≤15 且美观度不重要;更大或需视觉打磨的图推荐 NanoBanana。渲染协议:生成代码、保存 .mmd 临时文件、依次尝试 mmdc 与 npx 渲染;两者都失败则保存源文件并提示用户到 https://mermaid.live 查看;文件存在且大于 1KB 即成功,失败可用 ReAct 最多重试 3 次。

六、AI Image 引擎(NanoBanana,复杂图) 适用于节点数 >15 或复杂空间布局、用户要求美观/专业/出版级、明确要求 AI 生成图、或本地模型能力较弱(AI 图像质量与本地模型无关)的场景。调用 API 前必须先向用户确认(会产生费用,预计约 $0.01),用户拒绝则退回 Mermaid。通过 Python 脚本 requests POST 到 OpenRouter 端点,从多模态响应中提取 base64 图像写入输出路径;文件存在且大于 1KB 即成功;API 失败(超时、鉴权、配额)则记录错误并降级到 Mermaid。

七、SVG 引擎(自定义矢量图) 适用于几何形状、带坐标标注的图、简单自定义插画。使用 svgwrite 生成 Python 代码,若不可用则直接生成原始 SVG XML 保存。可选 PNG 转换使用 cairosvg;若不可用则保留 .svg 文件并告知用户。

八、质量检查清单 每张图生成后必须校验:文件是否存在、文件大小是否 >1KB、标签是否为英文、DPI 是否 ≥300(Python)、文字是否重叠;不通过则修复并重跑(计为一次 ReAct 迭代)。

九、学术配图规范 文件命名:全部保存到 outputs/figures/{topic}-fig{N}.{ext}。每张图必须有英文图注,格式为 "Figure {N}. {说明文字}"。正文引用格式为 "as shown in Figure {N}" 或 "see Figure {N}"。样式规则:字体 sans-serif(Arial、Helvetica),所有文字 ≥10pt;DPI 至少 300(出版标准);白色背景(禁用透明);使用色盲友好配色(viridis、Set2、tab10、Paired);细轴线(1-1.5pt),不画图表外框;网格浅灰(alpha 0.3,数据图可选但推荐);图例避免遮挡数据并带半透明背景。

十、与 Writing SOP 的集成 当被 writing-sop 第 2 阶段(初稿生成)调用时:writing-sop 识别某段落需要图,以图描述调用本技能;本技能生成图并 workspace_save 到 outputs/figures/;把图路径与图注返回给 writing-sop;writing-sop 在草稿中嵌入图引用。典型调用模式为:写作第 2 阶段写方法部分,识别需要方法流程图,加载 plotting-sop 完成引擎选择、生成与保存,返回后在正文插入 "See Figure 1"。

十一、工具参考 运行 Python 作图使用 system.run(python3 /tmp/rc_plot_abc.py);Mermaid 编译使用 system.run(npx --yes @mermaid-js/mermaid-cli -i input.mmd -o output.png);调用 NanoBanana 使用 system.run(Python requests POST 到 OpenRouter 端点);保存图使用 workspace_save(outputs/figures/{name}.png);检查文件使用 system.run(ls -la outputs/figures/{name}.png);安装依赖使用 system.run(pip install matplotlib seaborn)。

关于该技能的收费、价格、平台等信息暂未提供。