人类 vs. AI——基于 Diff 的行级溯源,用于代理式编辑下的文本
摘要
Us vs. Them 是一个命令行工具/库,通过分析 git 历史来提供行级溯源,显示在代理式编辑下哪些文本行由人类编写,哪些由 AI 智能体编写。
查看缓存全文
缓存时间: 2026/08/09 17:27
eighttrigrams/us-vs-them
我们 vs. 他们
在代理式编辑下,为文本提供行级溯源——这一行是谁写的,我们还是他们?——通过文本的版本历史推导而来。可用作库,也可用作 CLI 工具。
alt
问题
随着代理式编码和编辑的兴起,溯源成为一个关键问题。人类编写或编辑过的文本应被视为近乎神圣:代理应当保持谨慎,并有非常充分的理由才去改动它。而另一个代理生成的粗制滥造的内容则完全可以随意处置。
一个用例是:一个主要靠 vibe 编程(vibecoded)开发的应用,你希望在代码中确立一些角落,来主张你的想法和所有权。你肯定不希望下一个会话中另一个代理把这段代码给推平。
另一个用例:原本自动生成的 README.md,你重写了开头几段。代理可以自由重做或追加后面的部分,但修改开头的内容时应当三思。
工作原理
其主要约束是,这种方式不应要求文本为此进行专门标记。随处可见的纯文本(markdown)应当按原样得到支持。
于是,唯一可以利用的是:文本的每个新版本都是在可识别作者身份的情况下创建的——作者要么是人类,要么是代理。
对给定文本进行评估后,输出是一组区间——机器生成文本的“海洋”中,人类所写行组成的“岛屿”。该算法在技术上基于简单的 diff,而这也是算法开发的指导性隐喻。我们不希望只追踪单行的作者归属,而是追踪有意义的连贯文本片段。因此,合并、拆分和作者归属的稀释都是需要纳入考量的行为,同时也要避免结果完全收敛为整片海洋或整座岛屿。
用法
将 us-vs-them 用作 CLI 工具时,需要 bbin (https://github.com/babashka/bbin) 进行本地安装。
sh make install
Git 仓库本身就是一个版本历史,每个版本都带有溯源标记——文件的每一次修订按顺序排列,并附有造成该变更的作者。
在 git 仓库内的任何位置使用它:
sh us-vs-them --ours [email protected] README.md
这会得到类似如下的列表:
1-3 0.00 4 1.00 5-7 0.00 8-20 0.46 21-164 0.00
其中 1.0 表示完全由人类作者创作的范围。
0.46 表示最初由人类创作,但被代理在一定程度上修改过的范围。
0.00 表示完全由代理创作。
参数如下:
--ours:这些是人类,其他所有人都被视为代理。
--theirs:这些是代理,其他所有人都被视为人类。
请指定名单较短的那一侧。
同时传入两个参数将被拒绝。
开发
sh make test
行为
理解该行为的最佳方式是查看 caution_test.clj。
相似文章
LineageLens
LineageLens 是一个检测 AI 生成内容的工具,可以证明文本是否由 AI 撰写。
EditLens: 量化文本中AI编辑的程度 (2025)
EditLens是一个回归模型,用于量化文本中AI编辑的程度,在区分人类、AI及混合写作的二元和三元分类任务上达到了最先进的性能。它弥补了检测AI编辑文本而非完全AI生成文本的空白,对作者归属、教育和政策具有重要意义。
Show HN:面向AI代理的Git
re_gent 是一个开源的版本控制系统,专为AI代理活动设计,记录每一次工具调用及其相关提示,使开发者能够审查和回滚代理的变更。
@lagerskoy:一个GitHub仓库彻底解决了“AI听起来像AI”的问题。大多数AI文本失败只有一个原因:它太完美…
一个名为Humanizer的GitHub仓库通过为AI生成的文本添加句子变化、自然节奏和微小瑕疵,解决了“AI听起来像AI”的问题,使其与人类写作难以区分。该工具承诺将编辑层压缩到几秒钟,颠覆了SEO、新闻通讯、脚本和代笔等内容创作工作流程。
证明内容由人类撰写
作者反思了自己在编程中使用AI与选择手动写作的对比,强调了在创意表达中保留人类原创性的价值。