writing-eval:本地化的 AI 写作风格一致性检测工具
Majestic Labs 开源 writing-eval,可在本地基于参考语料构建风格 profile,对 AI 生成…
writing-eval 是 Majestic Labs 开源的一款命令行工具,专注于解决「AI 生成的稿件语法正确但风格飘移」的评估难题。它把组织的编辑规范转成可在本地重复运行的风格检测流程,使团队在切换提示词、模型或参考语料后,能直接看到写作质量的提升或回归。
项目背景与设计理念
随着大模型写作场景普及,「写得像不像我们自己」逐渐成为内容团队的核心痛点。writing-eval 的出发点是:AI 工作流需要由企业自身定义「可接受」的产出标准,而不是依赖外部托管模型做黑箱打分。
为此,工具在设计上明确划定了边界:
- 完全在本地 CPU 上运行,结果确定性可复现
- 不调用任何托管模型,不上传源材料
- 不训练模型,也不优化检测器
- 不复刻任何专有评估方法
这种「只做检测、不做生成」的定位,让它更适合作为 CI 中的回归门禁或回归对比基线。
核心能力
工具围绕「风格 profile」组织流程,主要包含以下能力:
- 风格 profile 构建:从作者已发布的 Markdown 或纯文本目录中提取基线,生成可复用的
acme类风格档案 - 单文档检测:对单篇 Markdown / 纯文本做类似 linter 的逐行审计
- 规则化 lint:定位可配置的写作倾向(例如元话语开场词
In this article、delve等 AI 写作痕迹) - 语料评估:在 JSONL 参考语料上对多个写作系统做横向对比
- 结构化报告:同时输出人类可读文本与 JSON,便于人工评审、自动化与回归门禁
./writing-eval check 是最常用的入口,支持以下常用选项:
--rules:选择规则文件,默认使用内置规则集,可叠加 anti-AI 规则集--references:指定 JSONL 参考语料;缺省时跳过 token 1-gram L2 指标--style:与命名 profile 比对生成打分报告,与--references互斥--format text|json:切换人类可读或 JSON 输出--json PATH:在保留标准输出的同时把 JSON 结果写入文件
LLM Agent 集成
仓库内置了 skills/writing-eval/SKILL.md,兼容 SKILL.md 指令协议的 Agent 框架可直接加载,按以下步骤自动调用 CLI:
- 选择或构建合适的 profile
- 解析退出码与 JSON 输出
- 保护私有源材料
- 在汇报时避免夸大启发式分数
典型调用示例:
- 「用 writing-eval 检查
docs/draft.md是否符合 acme profile,并按优先级汇总问题与来源位置」 - 「基于
data/product-docs中的授权文本构建名为product-docs的 profile,再对docs/new-guide.md做检测」 - 「对比
runs/release-candidate中的写作系统与data/reference-corpus.jsonl,解释报告结论」
输出样例与局限
不带 --style 时,文本输出沿用 linter 格式:每条发现按位置排序,附 1-indexed 行/列偏移与命中片段;末尾输出 metrics 块,包含词数、各严重级别的 tell 率、平均句长、句长方差、重复开头率,以及信息性的可读性指标(Flesch、MTLD 等)。文档明确指出,token 数低于 10 时 MTLD 会被渲染为 n/a。
工具定位为「单一狭窄场景的本地测量」,并非通用写作评分器。对于追求模型无关、可复现风格回归的团队,它提供了一个轻量、可纳入 CI 的选项。
