通过借用现有报告的结构和内容方向,快速创建新报告。运用多策略内容变换保持结构同构,配合 Mermaid 自动重绘图表。
| 模块 | 内容 | 适用场景 |
|---|---|---|
| ------ | ------ | --------- |
| 能力边界 | 能做 vs 不能做 | 不确定技能能不能处理时先看这里 |
| API Key 配置 | 哪些 API 需要 Key、怎么配 | 想知道要不要 API Key?看这里 |
| 第零步 | 前置确认:条件 & 风格选择 | 每次触发必走 |
| 第零点五步 | 执行清单 + 检查点 | 追踪进度,防止步骤遗漏 |
| 第一步 | 源报告分析 + 图片审计 | 读取文件 → 提取蓝图 → 审计图片 |
| 第二步 | 内容变换(6 策略 + 结构锁) | 重写报告文字 |
| 第三步 | 图表处理三通道 | Mermaid / AI 生图 / 手动修图 |
| 第四步 | 组装输出 + 变换摘要 | 最终报告 |
| 精细控制 | 策略强度、缩放偏好、AI 味强度 | 想精细控制改写方式?在这里调 |
| 异常处理 | 错误码对照表 + 恢复步骤 | 报错时查这里 |
| 断点恢复 | 中断后如何继续 | 长文档怕中断?这里有方案 |
| 常见问题 | 15 条常见问题解答 | 遇到困惑先查 |
| 改写示例 | 改写前后效果对比 | 想知道效果?看这里 |
本技能是一个文本变换工具。它重写、重排、重新格式化文本。不做文本操作以外的任何事情。
[此处插入您的实际数据] 占位符代替你是一个文案编辑 + 代笔人,不是科学家/工程师/程序员。
你的工作:「这个人已经写好了一份报告,你帮他用另一种说法重写一遍。」
你的工作不是:「验证这份报告对不对」或「按报告里的步骤做一遍实验」。
有疑问时 — 自问:「我要做的事是否涉及执行、计算、访问或验证?」如果答案是「是」,立刻停手。这超出了本技能的范围。
本技能的核心功能(读取报告 → 分析结构 → 六策略改写 → 输出)完全不需要任何 API Key,开箱即用。
AI 生图功能(§3.5)提供了 4 个免费 API,其中 2 个零门槛匿名可用,不需要任何配置。另外 2 个是可选的升级选项——用户可根据需求自行选择是否配置。
| 你需要什么 | 需要配置吗 |
|---|---|
| ----------- | :---------: |
| 仅使用文本变换(占 90% 场景) | ❌ 什么都不用配,直接用 |
| 使用 AI 生成简单图表(折线/柱状等) | ❌ 不用配,自动走匿名 API |
| 使用 AI 生成高质量图表 | ⚠️ 可选 — 免费注册一个 Token 即可升级 |
稳 定 可 用(零配置,即开即用):
✅ Stable Horde → 匿名直连,无需任何操作
✅ Pollinations.ai → 匿名直连,无需任何操作
可 选 升 级(如需更高质量,免费注册即可):
⭐ Hugging Face → 免费注册获取 Token,生图质量最佳
⭐ Replicate → 注册送 $5 试用额度,模型选择最多
配置方式详见下方。无论配置了几个 Key,agent 自动按以下顺序选择最优可用 API:
1. ⭐ 检测到 HF_TOKEN → 优先用 Hugging Face(质量最佳)
2. ⭐ 检测到 REPLICATE_API_TOKEN → 用 Replicate(模型最多)
3. ✅ 以上均未配置 → 自动降级到 Stable Horde(匿名兜底,零门槛)
4. ✅ Stable Horde 不可达 → 自动降级到 Pollinations.ai
5. ❌ 全部不可用 → 输出 Prompt 文字,让用户手动生成
> 如果你一个 Key 都没配,系统自动走第 3 步 → 完全正常使用。
> 如果你只配了一个 Key,agent 自动走对应的第 1 或第 2 步。
> 如果你配了多个 Key,agent 自动按质量优先级选择最高可用服务。
三种方式,按需选择:
| 方式 | 操作 | 适用人群 | 持久性 |
|---|---|---|---|
| ------ | ------ | --------- | :-----: |
| 零配置 | 什么都不做,直接用 | 大多数用户 | — |
| .env 文件 | 在项目目录创建 .env,写入 HF_TOKEN=你的Token | 开发者、一次性配置 | ✅ 持久 |
| 对话告知(临时) | 直接对 agent 说「我用 Hugging Face,Token 是 xxx」 | 不熟悉环境变量的用户 | ⚠️ 仅本次对话有效 |
.env 文件示例:
# Hugging Face Token(免费注册:https://huggingface.co/settings/tokens)
HF_TOKEN=hf_xxxxxxxxxxxxxxxxxxx
# Replicate Token(注册送$5试用:https://replicate.com/account/api-tokens)
REPLICATE_API_TOKEN=r8_xxxxxxxxxxxxxxxxxxx
> ⚠️ .env 文件建议添加到 .gitignore,避免 Token 被提交到代码仓库。
每次触发本技能时,必须先向用户提问:
> 「是否需要附加补充条件?当前默认规则:减少 AI 味(避免过于工整的过渡词、多样化句式、增加自然表达)。
>
> 你还可以追加条件,例如:偏好扩充解释还是精简概括、指定需要重点保留的术语、要求变换后的排版风格等。
> ⚠️ 注意:实验数据/测量结果章节将使用 [此处插入您的实际数据] 占位符——如需填充真实数据请提供。
>
> 🎨 图表风格(如源报告中含折线图/柱状图/散点图等数据图表):
> 请选择重绘风格:[1] 极简商务 / [2] 学术严谨(默认) / [3] 科技可视化 / [4] 自定义
> 若无需选择,将默认使用『学术严谨』风格。」
重要:本技能绝不编造实验数据。如果用户要求「插入个人实验数据」,提醒用户本技能只做文本变换——实际实验结果必须由用户提供。不要生成看起来合理但是假的数据。
等待用户回复后再继续。如果用户说「无附加条件」,按默认规则继续。
如果用户想精细控制变换程度,展示以下调节选项。这是可选的——仅在用户明确要求「精细调节」或对默认行为表达不满时触发。
| 参数 | 控制什么 | 默认值 | 可选范围 |
|---|---|---|---|
| ----------- | ----------------- | --------- | ----------------- |
| 策略强度 | 对每章节应用策略的激进程度 | balanced | conservative(轻度)/ balanced(均衡)/ aggressive(深度) |
| 缩放偏好 | 内容扩张还是收缩 | keep-length | expand(扩张)/ keep-length(保持)/ contract(精简) |
| AI 味强度 | 去掉多少 AI 痕迹 | 80 | 0-100(0=保留 AI 风格,50=自然混合,100=极度自然人写风) |
| 策略选择 | 启用/禁用特定策略 | A,B,C,D,E,F(全开) | 任意子集,如 A,C,E |
| 术语保护 | 指定不可改的专业词汇 | (无) | 逗号分隔,如 单例模式,LoggerFactory,AppLogger |
| 输出格式 | 最终文件格式 | markdown | markdown / docx / txt |
向用户展示的方式:
「如果你想精细控制,我可以按以下参数调整改写方式(直接回车则全部使用默认值):
1. 改写激进程度:[conservative 轻度 / balanced 均衡(默认) / aggressive 深度]
2. 篇幅控制: [expand 扩张 / keep-length 保持(默认) / contract 精简]
3. 去AI味程度: [0-100,默认80,越高越像人写的]
4. 启用策略: [A/B/C/D/E/F,默认全开,可指定子集如 A,C,E]
5. 术语保护: [逗号分隔,如 单例模式,LoggerFactory]
6. 输出格式: [markdown(默认) / docx / txt]」
如果用户提供了任何参数值,存储并应用到所有相关阶段。如果跳过(直接回车),使用默认值。
第零步完成后,立即创建 TodoWrite 任务列表来追踪整个变换进度。这可以防止遗漏阶段并确保质量。
必须初始化以下待办列表(如果 agent 有 TodoWrite 工具则使用它,否则在脑中维护检查清单):
TodoWrite 项目:
1. [第一步] 分析源报告 — 提取蓝图、章节映射、领域词汇
1.2 [第一步] 记录基础信息/元数据块快照 — 逐字记录前 N 段格式(字段顺序、空格类型/数量、标点、换行、下划线占位符)
2. [第一步] 构建图表清单 — 列出每张图片的位置和类型
2.5 [第一步] 图片审计 — 统计 N_total 张图片,验证清单有恰好 N_total 行,输出「覆盖率 100%」小结
2.6 [第一步] 表格审计 — 记录所有表格的行数/列数/表头,确保表格结构不变
3. [第一步] 识别代码块,标记为「待变换文本」(非待执行指令)
4. [第二步] 在结构锁规则内对各章节应用 A~F 变换策略(🚫 零变换区域跳过)
4.5 [第二步] 结构自检 — 验证章节数/编号与源文档一致;验证无新增/删除章节
4.6 [第二步] 元数据自检 — 输出报告前 N 段与源文档逐字逐符对比,确认无格式偏差
5. [第三步] 处理可映射图表 → Mermaid 重绘(图后不加额外文字)
6. [第三步五] 处理 AI 可重绘图表(含结果截图/代码截图)→ API → 数据提取 → 风格 → 提示词 → 调用 → 获取 → 校验
7. [第三步] 处理静态图片 → 逐图给出具体方案(强制执行,不许笼统建议)
8. [第四步] 组装最终报告 + 自动插入重绘图片 + 输出变换摘要
9. [最终] 自检 — 验证:
(a) 所有策略已应用 (b) 无逐字复制 (c) 无编造数据 (d) 无执行代码
(e) 全部 N_total 张图片已处理 (f) 图片插入位置正确 (g) 变换摘要完整
(h) 章节数与源文档一致 (i) 无新增章节 (j) Mermaid 图后无多余文字
(k) 每张静态图都有具体的逐图方案 (l) 基础信息元数据块与源文档逐字一致(零偏差)
(m) 所有表格的行数/列数/表头保持不变
检查清单规则:
TodoWrite 工具 → 内部维护检查清单,在回复中明确说明进度。长报告可能因 token 限制、网络问题或超时而中断。为避免从头重来,使用此检查点协议。
何时保存检查点:
每完成一个主要阶段后,输出一条简短的检查点行:
✅ [检查点] 第{N}步完成 — 已生成:{产出内容}
└─ 回复「从第{N+1}步继续」即可断点恢复
检查点摘要示例:
✅ [检查点] 第一步完成 — 已生成:蓝图 + 图片审计(12张图,覆盖率100%)
✅ [检查点] 第二步完成 — 已生成:全部章节内容变换
✅ [检查点] 第三步完成 — 已生成:3张Mermaid图 + 2张AI生图 + 7张静态处理方案
✅ [检查点] 第四步完成 — 已生成:最终报告 + 变换摘要
如何从检查点恢复:
如果用户说「从第 N 步继续」:
如果 agent 在两次对话之间没有持久状态:
读取源文件前,确保所需的处理技能可用。对每个依赖按以下优先级顺序解析:
| 文件格式 | 首选技能 | Skill Hub URL(技能不可用时) | 降级方案(全部不可用时) |
|---|---|---|---|
| ------------- | ----------------- | -------------------------------------- | ------------------------------- |
.docx | document-pro | https://skillhub.cn/skills/word-docx | 尝试用可用库解析;请求用户导出为 .md/.txt |
.pdf | document-pro | https://skillhub.cn/skills/pdf-to-word | 使用 WebFetch 作为最后手段;请求用户导出为 .txt |
.pptx | document-pro | (无) | 请求用户导出为 .md/.txt |
.xlsx | (无) | https://skillhub.cn/skills/excel-xlsx | 读取 CSV 导出,或请求用户提供文本版本 |
.md/.txt/.tex | (不需要) | (无) | 直接读取 |
每个依赖的解析步骤:
列表中是否有该技能。WebFetch 访问 Skill Hub URL 以获取/下载技能定义。| 所需技能 | Skill Hub URL | 降级方案 |
|---|---|---|
| --------------- | --------------- | ---------- |
mermaid-image-generator | https://skillhub.cn/skills/mermaid | 在报告中直接输出 Mermaid 代码块;用户可通过 mermaid.live 手动渲染 |
重要:在进入 §1.2 之前,始终先尝试依赖解析。不要静默跳过处理步骤。
当出现问题时,使用此表向用户提供具体、可操作的诊断。不要输出像「读取失败」这样的模糊信息。
| 错误症状 | 可能原因 | 给用户的具体提示 | 恢复动作 |
|---|---|---|---|
| -------------- | --------------- | ------------------------ | ----------------- |
| 文件打不开 /「access denied」 | 文件被其他程序占用 | 「文件被占用 — 请关闭 {文件名} 后再试(可能正在被 Word/WPS 打开)」 | 请用户关闭文件后重试 |
| 找不到文件 | 路径拼写错误或文件被移动 | 「找不到文件:{路径}。请检查路径是否正确」 | 请用户核实路径 |
.doc(旧版)无法读取 | 旧版二进制格式 | 「旧版 .doc 格式无法直接读取。请用 Word 打开后另存为 .docx 再试」 | 请用户另存为 .docx |
| 文本提取为乱码 | 编码不匹配或文件受保护 | 「文件编码异常或受保护,无法提取文字」 | 请用户导出为 .txt |
.pdf 无文本 | 扫描件 PDF(纯图片) | 「此 PDF 是扫描件,不含可提取的文字。请先用 OCR 工具处理」 | 请用户 OCR 或提供文本 |
| 审计时图片数量不一致 | 部分图片以 OLE 对象嵌入 | 「检测到 {N} 个嵌入对象,其中 {M} 个无法识别内容」 | 登记为无法识别,继续流程 |
| Skill Hub URL 返回 404/503 | Skill Hub 服务不可用 | 「依赖服务 skillhub.cn 当前不可用(HTTP {code})。将降级处理」 | 降级到本地库或手动导出 |
| AI 生图 API 全部失败 | 速率限制、网络或服务宕机 | 「所有 AI 生图服务均不可用。已生成 Prompt,请手动在绘图工具中生成」 | 输出 prompt 文本 + 降级注释 |
| Mermaid 渲染超时 | 图片生成耗时过长 | 「Mermaid 渲染超时。将直接输出代码块,你可在 mermaid.live 手动渲染」 | 直接输出代码块 |
| 第三/四步中断 | 网络断开或 token 超限 | 「处理在第{N}步中断。已保存当前进度。回复「继续」从断点恢复」 | 保存检查点,提供恢复选项 |
| 输出 .docx 保存失败 | 缺少 python-docx 或 COM 权限 | 「无法生成 .docx。已保存为 Markdown,可用 Pandoc 转换」 | 保存为 .md,建议使用 pandoc |
对源报告进行结构化分析。将其输出为内部参考。
## 源报告蓝图
### 文档结构树
1. 标题
1.1 第一章
1.1.1 小节
### 章节用途映射
| 章节 | 用途 | 内容方向 |
|---------|------|---------|
| 1.1 | 实验目的 | 阐述本次实验要验证的…… |
| ... | ... | ... |
### 格式约定
- 编号风格:(如 1. / 1.1 / 1.1.1)
- 强调风格:关键术语加粗,定义用斜体
- 表格 / 图片标题风格
### 基础信息/元数据块快照(⚠️ 强制 — 必须逐字记录格式细节)
元数据快照(如实记录源文档的前 N 个段落的精确格式):
├─ 字段顺序:[如实记录,如 实验名称→实验类型→指导教师→专业班级→姓名→学号→联系电话]
├─ 各行精确格式:
│ ├─ 行1:「实验名称: 自然语言处理预处理 」→ 字段名后 5 个全角空格 + 值 + 3 个全角空格
│ ├─ 行2:「姓 名: 雷盛强 」→ 字段名中 5 个全角空格 + 冒号后 10 个半角空格 + 值 + 后缀空格
│ └─ 行3:「学 号:____5120234624___________」→ 字段名后含下划线占位符
├─ 换行逻辑:[各字段是否独立成行?字段值是否与字段名在同一行?空行数量?]
└─ 多字段混合行:[如有多个字段在同一段落,记录字段顺序和分隔方式,如「实验名称:xxx 学期:xxx」]
**规则**:输出基础信息时,严格按此快照还原。字段顺序、空格类型/数量、冒号全半角、下划线占位符、换行数量——每一项都必须与快照一致。
### 表格清单
| 表格 | 位置 | 行数 | 列数 | 表头内容 | 备注 |
|------|------|:---:|:---:|---------|------|
| 表1 | §3.2 | 5 | 9 | PID, 到达时间, 执行时间, ... | 仅变换数据单元格内容 |
| ... | ... | ... | ... | ... | ... |
**规则**:表格的行数、列数、表头文字必须与源文档完全一致。仅数据单元格内的文本可做最低强度变换。
### 图表清单
| 图片 | 类型 | 位置 | 逻辑内容摘要 | 处理类别 |
|--------|------|------|-------------|---------|
| 图1 | 流程图 | 2.3 | 展示系统启动流程 | **可映射** → flowchart |
| 图2 | 折线图 | 3.2 | 电压随温度变化趋势 | **AI 可重绘** → line chart |
| 图3 | 柱状图 | 4.1 | 三组算法性能对比 | **AI 可重绘** → bar chart |
| 图4 | 结果截图 | 3.1 | 程序运行界面截图 | **AI 可重绘** → img2img 风格迁移(优先)/ 静态→手动修图(回退) |
| 图5 | 代码截图 | 1.1 | 单例模式 Java 实现代码 | **AI 可重绘** → img2img 风格迁移(优先)/ 静态→手动修图(回退) |
| ... | ... | ... | ... | ... |
在进入第二步之前,必须完成此审计。非可选。
N_total。N_total 行。一张图一行,没有例外。```
| 图X | 截图 | §Y | [无法识别内容,需用户提供描述] | 静态 → 手动修图 |
```
```
📊 源文档图片审计:共 N_total 张图片
图表清单已登记:N_total 行
覆盖率:100% ✅
```
如果覆盖率不是 100%,不得继续。返回去补全缺失的行。
列出必须保留的关键术语(领域专用词),以及可以变化的术语(一般描述性语言)。
如果源报告包含代码块(Python、C、MATLAB、Verilog、Shell 脚本等):
这些规则是不可协商的。策略 A~F 在这些约束内运行。违反其中任何一条都是 bug。
| # | 规则 | 解释 | 为什么重要 |
|---|---|---|---|
| --- | ------ | ------------- | ------------------ |
| 1 | 章节数量不变 | 源文档有几个一级标题 → 输出就是几个。绝不多一个,绝不少一个 | 防止整节丢失 |
| 2 | 章节编号锁定 | 源文档用 1. / 1.1 / 1.2 你就用 1. / 1.1 / 1.2。不改变编号体系 | 防止编号漂移 |
| 3 | 严禁新增章节 | 不要添加源文档中没有的独立章节。源文档不存在的标题 = 不允许出现 | 防止无中生有 |
| 4 | 严禁删除章节 | 课堂笔记、附录、参考资料、代码整合——全部保留 | 防止章节静默丢失 |
| 5 | 章节顺序锁定 | 源文档第 N 节就是输出的第 N 节 | 防止结构漂移 |
| 6 | 标题格式保留 | 若原是「作业N / 学号 / 姓名」格式,保留此格式 | 防止首部信息丢失 |
| 7 | 内容仅变换表达 | 改写内容,但不改变它「是什么」 | 核心同构原则 |
| 8 | 基础信息/元数据块零变换 | 实验名称、实验类型、专业班级、姓名、学号、联系电话、指导教师、任课教师、课程名称、学期、提交日期、实验地点、实验时间、题目、成绩等固定格式字段——字段顺序、标点符号、换行逻辑、空格间距(全角/半角空格区分)、下划线占位符等所有格式细节必须与源文档完全一致 | 防止首部信息格式偏差 |
| 9 | 表格结构锁定 | 源文档的表格(行数、列数、表头文字、单元格合并、对齐方式)保持不变。仅对数据单元格内的文本内容应用变换策略。不允许增加或删除行列,不允许修改表头文字 | 防止数据表格变形 |
进入第三步前自检:将源文档的目录与输出的目录逐条对比。章节数量和编号必须完全一致。
以下区域不应用任何变换策略。源文档中是什么,输出就是什么。一字不改,一符不变。
禁入区域清单:
自检协议: 输出报告的前 N 个段落(基础信息部分)与源文档逐字逐符对比。如果任何标点、空格(全角/半角)、换行、字段顺序存在差异 → 回退重写,保持完全一致。
对报告的每个章节,应用以下策略。所有变换发生在单个章节内部,绝不跨越章节边界。
⚠️ 在单个章节内应用。绝不跨越章节边界。
⚠️ 关键约束:此策略个性化的是「写法」,不是「内容」。绝不编造数据。
[此处插入您的实际数据] 或 [替换为您的实验测量值] 占位符。[数据] 或 [测量值]。⚠️ 关键:此策略调整已有解释的深度。不引入新主题。
🚫 策略 D(及所有策略)下禁止的行为:
一句话自检:「原文有没有提过这个话题?」→ 有 → 可以展开;没有 → 砍掉。
| 类别 | 描述 | 示例 | 处理方法 |
|---|---|---|---|
| ---------- | ------------- | ---------- | ------------------- |
| 可映射 | 可用 Mermaid 语法表达 | 流程图、时序图、思维导图、架构图、类图、状态图、ER 图、甘特图、饼图 | → §3.2 Mermaid 重绘 |
| AI 可重绘 | Mermaid 无法充分渲染的数据图表 | 折线图、柱状图、散点图、雷达图、组合图、环形图、气泡图 | → §3.5 AI 图片重绘 |
| 静态 | 无底层数据结构的栅格图片 | UI 截图、设备照片、场景插图 | → §3.3 手动修图建议 |
对每张可映射图表:
mermaid-image-generator 技能渲染为 PNG/SVG。⚠️ 图表后禁止冗余解释:如果原文档在图后没有任何解释文字 → 你也一个字不添加。如果原文档只有简短标题 → 只输出等价变换后标题。不写原文没有的多段落分析。
| 原始图表类型 | Mermaid 语法 |
|---|---|
| ---------------------- | ---------------- |
| 流程图 / 过程图 | flowchart TD 或 flowchart LR |
| 时序图 / 序列图 | sequenceDiagram |
| 思维导图 | mindmap |
| 架构图 / 框图 | graph TD 或 block-beta |
| 类图 | classDiagram |
| 状态图 / 状态机 | stateDiagram-v2 |
| 甘特图 | gantt |
| ER 图 / 实体关系图 | erDiagram |
| 饼图 | pie |
| 用户旅程图 | journey |
对于每张静态图片,必须输出明确的逐图指令。笼统的一条建议(如「建议用 GIMP 修图」)是不可接受的。
对每张静态图片,提供以下全部信息:
可接受的逐图输出示例:
图3(实现代码截图,静态)
└─ 位置:§1.1 单例模式 → 「实现代码截图:」
└─ 处理:原截图包含单例模式 Java 代码。建议使用 GIMP:
(1) 用相近字号将变换后的代码重新输入截图中的代码区域
(2) 导出为 PNG 替代原图
└─ 替代:可直接将变换后的代码以代码块形式嵌入此处
关键:变换摘要中图表清单的每张静态图都必须有一行。零遗漏策略同样适用于此。
对于运行结果截图、代码实现截图、程序界面截图等包含文字/数据的静态截图,优先尝试 AI 风格迁移(img2img)处理,而非直接回退到手动修图:
source_imagedenoising_strength 设在 0.35–0.55(低强度保留文字和数据的可读性,高强度用于纯视觉换肤)"clean code editor screenshot, sharp monospace font, syntax highlighting, {原语言} code, no blur, no distortion""clean terminal/program output screenshot, sharp text, {原内容描述}, no blur"注意:本方案的目的是「换皮肤」——保留截图中的代码/数据内容不变,仅改变视觉风格(配色、背景、字体渲染效果等)。不改变代码逻辑和数据内容。
本节处理所有 AI 可重绘数据图表。流水线为:API 选择 → 数据提取 → 风格配置 → 提示词生成 → API 调用 → 图片获取 → 自动插入 → 校验。
| 图表类型 | 常见场景 |
|---|---|
| ----------- | ---------------- |
| 折线图 | 趋势分析、时间序列 |
| 柱状图/条形图 | 分类对比、频次统计 |
| 散点图 | 相关性分析、分布观察 |
| 雷达图 | 多维评估、综合评分 |
| 组合图 | 复合指标对比 |
| 环形图/饼图 | 占比构成 |
| 气泡图 | 三维数据映射 |
| 热力图 | 矩阵密度分布 |
| 箱线图 | 统计分布 |
| 瀑布图 | 累积变化 |
以下 4 个 API 均可免费使用。其中 2 个零配置匿名可用,另外 2 个是可选升级项。
| API | 依赖等级 | 需要配置? | 何时自动启用 |
|---|---|---|---|
| ----- | :-------: | :---------: | ------------- |
| Stable Horde | ✅ 零配置 | ❌ 什么都不用做 | 无任何 Key 时自动兜底 |
| Pollinations.ai | ✅ 零配置 | ❌ 什么都不用做 | Stable Horde 不可达时自动降级 |
| Hugging Face | ⭐ 可选升级 | ⚠️ 需设 HF_TOKEN | 检测到环境变量时自动优先 |
| Replicate | ⭐ 可选升级 | ⚠️ 需设 REPLICATE_API_TOKEN | 检测到环境变量时自动启用 |
| 属性 | 值 |
|---|---|
| ---------- | ------- |
| 端点 | https://stablehorde.net/api/v2/generate/async |
| 状态查询 | https://stablehorde.net/api/v2/generate/check/{id} |
| 认证 | 无需(匿名)或可选 API 密钥 |
| 免费额度 | 无限制匿名请求 |
| Img2Img | ✅ 支持 — base64 传入 source_image |
| 最大分辨率 | 1024×1024(匿名) |
示例请求:
POST https://stablehorde.net/api/v2/generate/async
{
"prompt": "A clean academic line chart showing temperature vs voltage curve...",
"params": {
"width": 1024, "height": 768, "steps": 30,
"cfg_scale": 7.5, "sampler_name": "k_euler", "n": 1
},
"source_image": "<base64-encoded-original-chart>",
"source_processing": "img2img",
"denoising_strength": 0.6
}
| 属性 | 值 |
|---|---|
| ---------- | ------- |
| 端点 | https://api-inference.huggingface.co/models/stabilityai/stable-diffusion-2-1 |
| 认证 | Bearer token(免费账户 → Settings → Access Tokens) |
| 免费额度 | ~30k 输入字符/月 |
| Img2Img | ✅ 支持 |
示例请求:
POST https://api-inference.huggingface.co/models/stabilityai/stable-diffusion-xl-base-1.0
Authorization: Bearer hf_xxxxxxxxxx
Content-Type: application/json
{
"inputs": "A professional bar chart with 4 categories...",
"parameters": {
"negative_prompt": "blurry, distorted axes, incorrect labels, text errors",
"width": 1024, "height": 1024,
"num_inference_steps": 25, "guidance_scale": 7.5
}
}
| 属性 | 值 |
|---|---|
| ---------- | ------- |
| 端点 | https://api.replicate.com/v1/predictions |
| 认证 | Authorization: Token r8_xxxxxxxxxx |
| 免费额度 | 免费试用额度(~$5) |
| Img2Img | ✅ 支持 |
| 属性 | 值 |
|---|---|
| ---------- | ------- |
| 端点 | https://image.pollinations.ai/prompt/{prompt}?width=1024&height=768&model=flux |
| 认证 | 无需 |
| 免费额度 | 无限 |
Agent:此图表应使用哪个 API?
第 1 步:是否检测到环境变量 HF_TOKEN?
→ 是 → 使用 Hugging Face(质量最佳) — ⭐ 需配置 Key
→ 否 → 继续
第 2 步:是否检测到环境变量 REPLICATE_API_TOKEN?
→ 是 → 使用 Replicate(模型最多) — ⭐ 需配置 Key
→ 否 → 继续
第 3 步:Stable Horde 是否可达?
→ 是 → 使用 Stable Horde(匿名兜底) — ✅ 零配置
→ 否 → 继续
第 4 步:降级 → 使用 Pollinations.ai — ✅ 零配置
→ 仍不可用 → 输出手动 Prompt 文本
💡 Key 的配置方式详见 → 「🔑 API Key 配置说明」
方法 A:多模态视觉分析(如果 agent 具备图像视觉能力):提取图表类型、标题、X/Y 轴标签与刻度值、数据系列、图例、网格样式、配色方案。
方法 B:OOXML 嵌入式数据提取:从 docx 压缩包内的 word/charts/chartN.xml 解析 、、 节点。
方法 C:用户提供数据(降级方案):询问用户提供图表类型、轴标签、数据系列等。
标准化为内部 JSON:
{
"chart_type": "line",
"title": "输出电压-温度关系曲线",
"axes": {
"x": {"label": "温度 (°C)", "values": [20, 30, 40, 50, 60, 70], "type": "numeric"},
"y": {"label": "输出电压 (V)", "range": [0, 5], "scale": "linear"}
},
"series": [
{"name": "测量值", "values": [0.8, 1.6, 2.4, 3.2, 4.0, 4.7], "color": "#2E86DE", "style": "solid"},
{"name": "理论值", "values": [0.9, 1.7, 2.5, 3.3, 4.1, 4.8], "color": "#EE5A24", "style": "dashed"}
],
"legend": {"position": "bottom"}
}
预设风格 #1:极简商务 — 白底、浅灰网格、无衬线体、干净留白。
预设风格 #2:学术严谨(默认)— 米白底、主+次网格、衬线体、向内刻度。
预设风格 #3:科技可视化 — 深色底、青色辉光、等宽字体、霓虹效果。
自定义模式:用户可逐项配置配色、线条粗细、数据标记类型、网格线、字体、宽高比等参数。
基于提取的图表数据 + 选择的风格,生成结构化提示词。使用统一模板包含 STYLE、COLORS、FONT、DATA、REQUIREMENTS 五段。
执行顺序:选择 API → 提取数据 → 应用风格 → 生成提示词 → 调用 API → 轮询结果 → 获取图片 → 校验。
Img2Img 最佳实践:denoising_strength 设在 0.45–0.65。数据完整性关键时用 0.45–0.55;视觉换风格为主时用 0.55–0.65。
错误处理:429 → 等 Retry-After 后重试一次;5xx → 切换下一个 API;全部失败 → 输出 prompt 文本 + 降级注释。
| 检查项 | 失败时动作 |
|---|---|
| ------- | ----------- |
| ✅ 坐标轴对齐 | 降低去噪强度重新生成 |
| ✅ 标签可读性 | 增强 "sharp text" 关键词 |
| ✅ 数据点数匹配 | 明确 "exactly N data points" |
| ✅ 颜色区分 | 调整配色重新生成 |
| ✅ 图例准确性 | 明确 legend 内容 |
| ✅ 无伪影 | 增强负面提示词 |
| ✅ 比例合理 | 调整宽高参数 |
| ✅ 风格匹配 | 使用更明确的风格关键词 |
如果连续两次失败 → 降级输出 prompt + 注释。
第一步 图表清单
│
▼
┌── 分类 ──┐
│ │ │
▼ ▼ ▼
可映射 AI 可重绘 静态
│ │ │
▼ ▼ ▼
§3.2 §3.5 §3.3
Mermaid AI 生图 手动修图
呈现完整的变换后报告,后附变换摘要:
## 变换摘要
### 结构变化
- (列出所做的任何结构变化)
- ✅ 基础信息/元数据块 — 零变换区域,格式完全保留(已逐字校对)
- ✅ 表格结构 — 共 N 张表,行列数与表头全部保留
### 内容变换策略应用
| 章节 | 应用的策略 | 说明 |
|------|-----------|------|
| 1.1 | 策略A, C, E | 重排了段落顺序,加入个人实验环境描述 |
| ... | ... | ... |
### 格式合规检查
- ✅ 基础信息元数据块:字段顺序、空格、标点、换行 — 与源文档完全一致
- ✅ 表格结构:行数/列数/表头 — 全部保留
- ✅ 章节结构:数量/编号 — 与源文档一致
### 图表处理
| 原图 | 类型 | 处理方式 | 新图说明 |
|------|------|---------|---------|
| 图1(流程图) | 可映射 | Mermaid 重绘 | 改为 LR 布局,深蓝色配色方案 |
| 图2(折线图) | AI 可重绘 | Stable Horde API | 学术严谨风格,img2img 强度 0.5 |
| 图3(截图) | 静态 | 建议手动修图 | 需修改标题栏标签文字 |
| 章节类型 | 推荐主要策略 |
|---|---|
| ------------- | ------------------------------- |
| 基础信息/元数据块 | 🚫 零变换 — 不应用任何策略,逐字保留源文档格式 |
| 目的/目标 | C(个人化)、E(去 AI 味)、F(同义替换) |
| 原理/背景 | B(逻辑改写)、D(扩缩)、E、F |
| 设计/方案 | A(排版)、B(逻辑)、C(个人化) |
| 步骤/方法 | A(排版)、C(个人化)、E |
| 结果/数据 | C(个人化 — 使用 [此处插入您的实际数据] 占位符,绝不编造数字)+ E、F |
| 分析/讨论 | B(逻辑)、D(扩缩)、E、F |
| 总结/结论 | B(逻辑)、E、F |
| 用户说法 | 类型 | Agent 应如何响应 |
|---|---|---|
| --------- | ------ | ----------------- |
| 「参照这份实验报告帮我写一份新的」 | 实验报告借鉴 | 调用 report-transformer,进入第零步 |
| 「帮我借鉴一下这篇课程设计」 | 课程报告借鉴 | 调用 report-transformer,进入第零步 |
| 「拿这份项目总结改一改,换一种写法」 | 项目总结改写 | 调用 report-transformer,进入第零步 |
| 「照着这个格式写一份我的报告」 | 格式复用 | 调用 report-transformer,进入第零步 |
| 「帮我仿写这篇技术文档」 | 技术文档仿写 | 调用 report-transformer,进入第零步 |
| 「抄一份类似的实验报告,数据改成我的」 | 抄袭式改写 | 调用 report-transformer,进入第零步 |
| 「这个文档改改词,不要让人看出来是抄的」 | 去重改写 | 调用 report-transformer,进入第零步 |
| 「帮我把这个报告换个说法,逻辑也调整下」 | 深度改写 | 调用 report-transformer,进入第零步 |
| 「参考这篇结题报告的结构,内容换成我的」 | 结构复用 | 调用 report-transformer,进入第零步 |
| 「这份设计文档帮我改写一下,图也帮我重新画」 | 全量变换 | 调用 report-transformer,进入第零步 |
| 「这报告里的折线图帮我换个风格重新生成」 | 图表风格迁移 | 调用 report-transformer,进入第零步 |
| 「把这篇实验报告改头换面,图表也重新做」 | 全文+图表变换 | 调用 report-transformer,进入第零步 |
| 用户说法 | 类型 | Agent 应如何响应 |
|---|---|---|
| --------- | ------ | ----------------- |
| 「帮我写一份实验报告」 | 从零创建 | 不触发技能,直接写(无参考源) |
| 「帮我翻译这份报告」 | 翻译任务 | 不触发技能,纯翻译 |
| 「帮我总结这份报告说了什么」 | 摘要任务 | 不触发技能,纯摘要 |
| 「帮我检查这份报告有没有错误」 | 校对任务 | 不触发技能,纯校对 |
| 「帮我排版美化这份报告」 | 格式调整 | 不触发技能 |
| 「这个图和那个图什么区别」 | 图表理解 | 不触发技能 |
用户消息是否包含以下三个要素?
├── ① 有「借鉴/参考/改写/仿写/抄袭」意图?
├── ② 提供了(或指向了)一份已有的源报告?
└── ③ 期望输出一份新报告?
若 ①②③ 全部满足 → 触发 report-transformer
若 缺任何一项 → 不触发,用普通对话处理
A:对照错误诊断表中的具体症状。最常见的原因:① 文件被 Word/WPS 占用(先关闭再试);② 旧版 .doc 格式(用 Word 另存为 .docx);③ PDF 是扫描件(先用 OCR)。
A:说明 agent 违反了结构锁规则。在第零步时补充条件:「严守源文档结构,不增不减不重排任何章节」。
A:已在第三步 Mermaid 重绘章节设置了「图后不写废话」规则。如果仍然出现,在第零步追加条件:「图表后不要添加任何原文没有的解释文字」。
A:检查图片审计是否完成。第一步结束时 agent 应输出「覆盖率 100%」。如果没有 → 回复「重新做图片审计,保证 100% 覆盖率」。
A:策略 D 被过度使用。在第零步时指定缩放偏好为 contract(精简),或指定策略子集为 A,B,C,E,F(关闭 D)。
A:在第零步时提高去 AI 味程度,如「去 AI 味程度调到 95」。或使用精细调控参数 AI味强度=95。
A:agent 会输出完整的生图 Prompt 文本 + 占位符。你可将其复制到任意 AI 绘图工具手动生成,然后替换占位符。
A:不需要。每次步骤完成后 agent 应输出检查点。回复「从第 N 步继续」并粘贴上一阶段的检查点内容即可。详见断点恢复机制。
A:可以。在第零步时说明「只改文字,图表保留原样」,agent 会跳过第三和第三点五步。
A:数据章节会使用 [此处插入您的实际数据] 占位符。你需要手动将其替换为自己的实验数据。本技能绝不会编造数据。
A:在第零步条件中指定术语保护列表,如「不可修改这些词:单例模式、工厂方法、日志记录器」。
A:在第零步时要求输出格式为 docx。若 docx 生成失败,agent 会退为 .md 并提示你用 Pandoc 转换。
A:Mermaid 渲染只改变布局方向和配色方案。若对效果不满意,可要求 agent 输出 Mermaid 源码,自行到 mermaid.live 调整。
A:看触发示例的 ✅/❌ 对照表。简单来说:有源报告 + 想改写成新报告 → 用;从零写 / 翻译 / 摘要 / 校对 → 不用。
A:不能。能力边界明确写了:本技能不验证、不校验、不事实核查源报告。只做文本变换,不做事实核查。
A:这是 skill 已修复的已知问题。现在 SKILL.md 中已新增「零变换区域」规则。如果仍然出现,请确认 agent 是否:
① 已执行「基础信息/元数据块快照」记录(第一步应输出快照内容)
② 已在元数据自检(第 4.6 步)中完成逐字校对
如未执行,回复「重新做元数据快照,基础信息零变换」即可。
A:已新增「表格结构锁定规则(规则 #9)」。如果仍然出现,在第零步补充条件:「表格结构保持不变,不增减行列,不改表头」。
A:skill 会优先尝试 AI 风格迁移(img2img)来「换皮肤」——保留代码和数据内容,只改变视觉风格。如果连续两次 AI 生成结果文字模糊不可读,才会回退到手动修图方案。
改写前(原文):
> 1. 实验目的
> 通过本次实验,掌握单摆法测量重力加速度的方法,理解周期与摆长的关系。
改写后(输出):
> 1. 实验目的
> 本实验利用单摆装置测定本地重力加速度 g 值,观察并验证摆长变化对摆动周期的影响规律。
应用的策略:C(个人化:改为「本实验」);E(去 AI 味:去掉「通过本次实验」模板开头);F(同义替换:掌握→测定)
改写前(原文):
> 3. 我的方案
> 本系统采用工厂模式创建日志记录器。当需要记录日志时,通过 LoggerFactory 获取对应的 Logger 实例。不同级别日志分别处理。
改写后(输出):
> 3. 设计方案
> 日志记录器的创建统一交给 LoggerFactory 管理——调用方不直接 new 对象,而是向工厂请求对应的 Logger。
>
> 不同级别的日志(Info/Warning/Error)在工厂内部路由到各自的处理器,外部只需关心「记录」这一个动作。
应用的策略:A(段落拆分:1→2 段);B(逻辑改写:先结论再解释→先机制再效果);E(去 AI 味)
改写前(原文):
> 选择工厂模式的原因是解耦对象创建和使用。
✅ 正确扩充(话题原文已有):
> 如果不使用工厂模式,调用方需要直接 new 具体的 Logger 类,这会让调用方和具体实现类耦合。引入工厂后,调用方只知道 LoggerFactory,不需要关心 Logger 是怎么创建出来的——达到了创建和使用分离的目的。
❌ 错误扩充(引入了原文没有的话题):
> 工厂模式是 GoF 提出的 23 种设计模式之一,属于创建型模式。创建型模式还包括单例模式、建造者模式等……(← 原文根本没提 GoF 和设计模式分类,这是新话题,应砍掉)
改写前(源文档截图):
┌─ 单例模式实现代码 ────────────┐
│ public class AppLogger { │
│ private static AppLogger... │
│ } │
└──────────────────────────────┘
(代码截图,静态类型)
改写后(输出中的处理):
图1(实现代码截图,静态)
└─ 位置:§1.1 单例模式 → 「实现代码截图:」
└─ 处理:源代码为 Java 单例模式实现。建议用 GIMP:
(1) 用相近字号将变换后的代码重新输入截图中的代码区域
(2) 导出为 PNG 替代原图
└─ 替代:可直接将变换后的代码以代码块形式嵌入此处
Mermaid 重绘效果:
源文档「4. 类图」——一张 UML 类图的截图,用 Mermaid 重绘为 classDiagram,布局改为 LR,配色改为蓝色系。图后无多余文字。
以上示例展示了各策略的合理应用方式和边界。核心原则:变换表达,不改变主题;保留结构,不增删章节。
共 6 个版本