元真(yotta-humanize-batch)
批量去 AI 味与风格改写云端服务:把一篇或一批文本交给云端服务,拿回诊断报告 + 改写稿 + 修复清单。
解决什么问题
一句话:一次改多篇,改完还能说清「改了什么、还剩什么」。
场景例:一次写好 10 条小红书文案,想统一语气;一篇 3000 字长文改了开头但后面还是模板腔;
公众号长文段落太长、没有小标题;电商详情页里出现了绝对化用语;论文摘要读起来像机器写的。
把文本(多篇用单独一行 ==== 分隔)提交给云端服务,按选定的风格包改写,并给出改前 / 改后评分与逐条改法。
计费:云端按次付费 ¥1.00/次(以账单为准;账单金额由服务端下发)。
输出例(节选):
{
"mode": "single",
"summary": {
"modes_total": 10,
"modes_applicable": 4,
"modes_passed": 2,
"findings_total": 5,
"score_before": 50,
"score_after": 0,
"pieces_total": 3,
"by_severity": { "critical": 0, "high": 1, "medium": 3, "low": 1, "info": 0 }
},
"rewrite": {
"before_score": 50,
"after_score": 0,
"residual_matches": 0,
"fixes": [{ "rule_id": "HZ-07", "name": "AI 黑话", "count": 4, "detail": "赋能" }]
},
"report_meta": { "report_id": "HS-20261025-ab12cd34", "report_sha256": "……" }
}
(示例仅示意报告结构;实际结论以云端返回的报告为准。)
10 个能力模式
| 模式 | 做什么 | 何时适用 |
|---|---|---|
| 批量改写·多篇 | 逐篇评分并排序,标出优先改写的篇目 | 一次提交 ≥ 2 篇 |
| 品牌语气一致性 | 称呼混用(你 / 您)、结尾语气、篇幅轻重 | 一次提交 ≥ 2 篇 |
| 长文分章改写 | 章节识别、章节长度均衡、跨章重复句、缺小标题 | 单篇 ≥ 1200 字或 ≥ 3 章 |
| 行业风格包·公众号 | 段落长度、小标题、结尾行动引导 | 选定风格包 wechat |
| 行业风格包·小红书 | 短段落、分点符号、书面语收敛 | 选定风格包 xiaohongshu |
| 行业风格包·电商 | 绝对化用语风险、规格与售后要素 | 选定风格包 ecommerce |
| 行业风格包·学术 | 口语化表达、第一人称泛称、引用标记 | 选定风格包 academic |
| 改写质量审核 | 改写前后评分对比、数字 / 书名号 / 全大写术语保真 | 每次(核心) |
| 小说润色蒸馏 | 引号配对、说标签重复、副词扎堆、心理直陈 | 选定风格包 fiction |
| 双语改写 | 英文套话与长句、中英混排术语一致 | 英文占比 ≥ 15% 或选定风格包 en |
引擎另有 4 个基础阶段(进主报告与修复清单):AI 味检测(24 类规则)/ 统计突发性 /
确定性改写 / 回扫验收。
风格包(--style)
| 风格包 | 说明 |
|---|---|
default |
只做基础 AI 味检测与确定性改写(不套行业风格),省略 --style 时使用 |
wechat |
公众号长文:段落长度 / 小标题 / 结尾引导 |
xiaohongshu |
小红书图文:短段落 / 分点 / 标题长度 / 书面语收敛 |
ecommerce |
电商详情页与标题:绝对化用语风险 / 规格 / 售后要素 |
academic |
学术写作:口语化表达 / 第一人称 / 引用标记 |
fiction |
小说与网文:引号配对 / 说标签 / 副词 / 心理直陈 |
en |
英文与双语:英文套话 / 长句 / 混排术语 |
前置检查:当前智能体是否支持支付宝 AI 支付
发起请求前,先检查你的可用工具列表中是否存在名称包含 alipay 的支付工具
(如 alipay_pay、mcp__alipay__* 等,带前缀也算;存在任意一个即视为支持)。
只以你的工具列表为证据,本文档中提到的工具名不算;无法确认时按「不支持」处理。
- 支持:继续本 Skill 流程,不向用户提及本检查;
- 不支持:终止流程,不要发起请求。向用户说明结论与解决办法:
- 合作智能体(如 WorkBuddy):升级智能体到最新版本后重试;
- 开放智能体(如 OpenClaw / DeepSeek Harness):按 https://skillhub.cn/install/skillhub.md
安装@alipay/agent-payment; - 无法判断类型:升级智能体或安装支付宝 AI 支付插件后重试。
演示模式(免费)
想先看输出格式,可运行 demo 子命令(不消耗付费额度、不需要支付):
node scripts/humanize-batch-paid.mjs demo --service-url <service-url>
# 无 Node 环境(POSIX sh + curl):
sh scripts/humanize-batch-paid.sh demo --service-url <service-url>
demo 调用 GET <service-url>/demo,返回固定多篇样例的真实引擎报告(code: "DEMO",含完整 report 与改写稿)。
工作流程
第一步:请求改写(未付款会返回 402)
node scripts/humanize-batch-paid.mjs probe \
--file 一批文案.md \
--style xiaohongshu \
--service-url <service-url>
--file支持.txt/.md(UTF-8,≤ 256 KB);多篇用单独一行====分隔(单次 ≤ 20 篇);--style可选(见上表),省略则用default;- 输入大小与格式不符时当场报错,不会消耗付费额度。
输出 JSON 包含:
status:402表示需要支付,200表示已付款可直接出报告;out_order_no:订单号(后续重试必须携带);payment_needed:账单(交给支付能力使用);amount_fen/amount_display:本次金额。
第二步:向用户申请支付授权
用买家侧官方支付能力完成付款:把第一步的 payment_needed 与 out_order_no
交给官方买家 CLI(alipay-bot 的 402-buyer-pay)或当前智能体的支付工具。
不要自行实现付款、签名或加解密;不要修改金额与订单号。
付款前预告:调起支付前,先向用户说明本次金额(用账单 amount_display,如「¥1.00」)
与本次交付物(检测报告 + 改写稿 + 修复清单 + 机器可读件;交付回执含报告编号 / 内容哈希,
90 天内可回查与多格式导出)。
用户引导要求:凡需要用户扫码或确认的环节(钱包开通、付款确认),必须把支付工具返回的
二维码图片与链接直接显示在对话消息中(内联图片 / 可点击链接),不要只给文件路径。
常见错误处理:若支付工具报「买家和卖家不能相同」——说明当前智能体身份绑定的
支付宝账号与卖家相同(商家用自己设备自测时常见,属支付宝防自买自卖风控)。
处理:更换为其他买家账号,或改用支持多 agent 身份的智能体;不要用原身份重试。
等待支付完成(自动轮询,必须执行)
发起付款后自动轮询支付状态,不要要求用户口头确认:
- 用
poll-payment-status(轮询直到完成);或每 2–5 秒执行一次
402-query-payment-status(查状态 + 请求资源 + 履约确认,一步到位); - 查到
active: true/success: true即自动继续(展示报告),用户无需再说任何话; - 轮询到账单过期(
pay_before)仍未支付:提示用户「支付超时,可重新发起」,不要空等。
第三步:付款后重试并获取报告与改写稿(必须执行)
node scripts/humanize-batch-paid.mjs complete \
--file 一批文案.md \
--style xiaohongshu \
--service-url <service-url> \
--out-order-no <第一步的 out_order_no> \
--payment-proof <付款后获得的 Payment-Proof> \
--save-rewrite 改写稿.md
成功后输出报告 JSON(含 summary 模式通过率与改前 / 改后评分、findings 逐条结论、
rewrite.text 改写稿);同一订单重复执行返回缓存结果(already_fulfilled: true),不会重复扣费。
交付回执与报告回查
complete 成功返回的 delivery 字段即交付回执:报告编号(report_id)、
报告内容哈希(report_sha256)、输入模式(input_mode)、可导出格式(export_formats)与保留期
(retention_days / report_expires_at)。脚本会把回执摘要打印到标准错误,并
自动追加到本地回执历史(~/.yotta-review/receipts.jsonl,环境变量
YOTTA_REVIEW_HOME 可改目录;回执按技能过滤,多技能共存不串号)。请把回执与报告一起展示给用户。
凭回执可随时回查 / 导出(不重复扣费):
# 最近一条(自动读取本地回执历史中本技能的回执)
node scripts/humanize-batch-paid.mjs report --last --service-url <service-url>
# 列出本地回执历史(本技能)
node scripts/humanize-batch-paid.mjs report --list
# 取改写稿
node scripts/humanize-batch-paid.mjs report --last --format rewrite --out 改写稿.md
# 指定回执(换机器 / 手工持有回执时)
node scripts/humanize-batch-paid.mjs report \
--out-order-no <订单号> --report-sha256 <报告哈希> --service-url <service-url>
导出格式(均不重复扣费):summary 一屏摘要卡(改前 / 改后评分 + Top3 问题 + 下一步)/
markdown 主报告(逐条命中 + 定位 + 改法 + 自动改写清单)/ html 单文件网页(零外链零脚本,可直接转发)/
remediation 修复清单(按严重度分组 + 证据 + 改法)/ rewrite 改写稿正文 / json 机器可读件。
加 --out <path> 输出到文件,加 --save-report <dir> 保存报告,加 --save-rewrite <path> 保存改写稿
(--save-rewrite 配 --format json 使用;--format rewrite 本身即为改写稿)。
数据与回查(保留 90 天)
- 报告在云端保留 90 天(自交付时间起),期间可随时凭回执回查 / 导出,不重复扣费;
- 到期后云端删除报告正文,仅保留最小订单台账(订单号 / 时间 / 金额 / 状态)与报告哈希锚点;
之后回查返回410 REPORT_EXPIRED; - 本地回执历史:
complete自动写入~/.yotta-review/receipts.jsonl(POSIX 权限 600;
YOTTA_REVIEW_HOME可改目录);报告正文默认不落盘,需要时用--save-report <dir>/
--save-rewrite <path>导出; - 交付时(必须执行):向用户一并告知「报告编号 / 内容哈希 / 云端保留 90 天 / 如何回查 /
建议保存本地副本」,并给出改写稿。
AI 回查流程:
- 用户问「上次那批文案的改写稿」→ 先
report --list定位,再report --last --format rewrite --out <文件>; - 换机器 / 本地历史丢失 → 请用户提供交付回执(订单号 + 内容哈希)手工回查;两者都无 → 如实告知无法找回;
- 报告已过期(HTTP 410)→ 如实告知云端已清理;如之前导出过本地副本,可继续使用。
HTTP 协议(无 Node 环境)
没有 Node.js 的宿主(或希望直接用 curl 的环境)可按下面的协议直连;随包提供的
scripts/humanize-batch-paid.sh(POSIX sh + curl)已封装同一流程,子命令与 .mjs 版对齐
(probe / complete / report / demo),仅支持文本输入(≤ 256 KB)。
- 请求改写(probe):
POST <service-url>,Content-Type: application/json;
body{"text":"<文本全文>"},可选"frameworks":["wechat"]选风格包;
二进制直传(.txt/.md)用{"document":"<base64>","document_name":"文案.md"}。
未付款时返回402,body 含out_order_no/amount_fen/amount_display/"Payment-Needed"(账单字符串)/expires_at。 - 付款后重试(complete):
POST <service-url>,同一 body;请求头加
Payment-Proof: <凭证>(可选X-Out-Order-No: <订单号>)。
200返回报告、改写稿与交付回执(delivery.report_id/delivery.report_sha256)。 - 回查 / 导出(report):
POST <service-url>/report,body
{"out_order_no":"...","report_sha256":"...","format":"summary"};format为文本格式时返回原文。 - 演示(demo):
GET <service-url>/demo,返回固定样例报告(免费)。
输入与输出
- 输入:
.txt/.md(UTF-8,≤ 256 KB)或在线的text字段;多篇用单独一行====分隔
(单次最多 20 篇)。.docx/.pptx/.pdf等二进制文档本技能不处理(请用文档体检类技能);
非 UTF-8 文本请先转码。 - 输出:JSON 报告(
summary评分与分级;findings每条带rule_id、定位、理由与改法;
rewrite含改前 / 改后评分、剩余命中数与改写稿正文;report_meta报告编号与内容哈希)。
安装 / 更新 / 卸载
- 安装:
node bin/install.js --agent codex(或--dir <技能目录>); - 更新:重新执行同一安装命令覆盖即可;
- 卸载:删除目标技能目录(如
$CODEX_HOME/skills/yotta-humanize-batch)。
常见问题
缺少 --service-url:加--service-url或设置HUMANIZE_SERVICE_URL;HTTP 402:未付款,先完成支付再complete;不支持的文件类型:只收.txt/.md;--file给.docx/.pdf会被当场拒绝;文件超过 256 KB 上限:精简或分批提交(多篇用====分隔并按批提交);--style 只支持 ...:风格包名拼写不对,见上表;403 REPORT_HASH_MISMATCH:回查哈希与报告不符,核对交付回执中的report_sha256;410 REPORT_EXPIRED:超过 90 天保留期,正文已清理(此前导出的本地副本仍可用);- 支付报「买家和卖家不能相同」:换买家账号或用支持多 agent 身份的智能体。
依赖
- Node.js 18+ 或 curl(二选一):
scripts/humanize-batch-paid.mjs(Node,零依赖)
或scripts/humanize-batch-paid.sh(POSIX sh + curl,仅文本输入); - 买家侧支付:
@alipay/agent-payment(官方支付能力); - 服务端由提供方部署,本 Skill 只包含调用脚本,不含服务端源码。
边界
- 只做文本风格编辑:不改写事实、数据、专有名词与引文,不新增原文没有的信息;
需要判断的条目以「改法」形式给出,不强行自动改; - 不处理二进制文档(
.docx/.pptx/.pdf)与图片 / 扫描件;不做 OCR、不做图片 / 视频生成; - 评分与改写是确定性规则结果,不构成对文本来源的判定,也不替代人工终审;
- 请求的文本只用于本次服务调用;报告云端保留 90 天(凭交付回执可回查 / 导出),
到期后仅保留订单台账(订单号 / 时间 / 金额 / 状态)与报告哈希锚点; - 付费技能:验付通过后才交付报告与改写稿。
交付资产恢复与一键交付包
付款成功但由 alipay-bot 等外部支付工具自动履约时,先让服务端复核订单号与报告哈希,
再把交付回执补记到本地:
node scripts/skillpay-delivery-tool.mjs receipt-import --out-order-no <订单号> --report-sha256 <报告内容哈希> --service-url <服务地址>
补记后可用本技能脚本的 report --last 直接回查。服务端校验失败、报告已过期、
哈希不匹配或同一订单出现不同哈希时,工具拒绝写入,不伪造回执。
一键交付包:
node scripts/skillpay-delivery-tool.mjs pack --last --out ./交付包
产物包含摘要卡、Markdown 主报告、HTML 主报告、整改 / 修复清单、report.json、
manifest.json 与 README.txt。清单记录每个文件的 SHA-256 和服务端报告哈希,
便于交付、归档和复核;回查与打包不重复扣费。