如何用 LLM 写作

查看原文 HN 讨论

文章摘要

作者是安全研究者、HN 老用户 Thomas Ptacek(tptacek),文章发表于 2026 年 9 月 17 日,副标题是:”两条简单规则,让 LLM 精简和改进你的文字,而不是把它巴氏消毒、再灌上玉米糖浆。”

他先自嘲写”关于写作的文章”很别扭——听起来像在炫耀自己写得好,而网上总有一群人认为你写得很烂——但他认为这条建议重要、难以反驳而且直截了当,所以还是写了下来。

坏消息先说:你必须自己写。 “读者能以万亿分之一的浓度检测出 LLM 的文字。无论你花多大力气去磨毛、去人性化,一段 LLM 写的段落在你很大一部分读者眼里都不是写作,而是输出。”但 LLM 依然极其有用,只是要把它当文字编辑(copyeditor)而不是代笔人(ghostwriter)来用。他的方法分两步:第一步,自己写完;第二步,交给一个好模型去找毛病。在此之前要先理解两条规则,它们能挡住那种会把你推进”表达与输出之间的恐怖谷”、让读者走神的 LLM 渗透。

规则一:LLM 建议的任何一个词都不许用。 原因是前沿模型挑选悦耳措辞的能力”超自然地好,这差不多就是它们的全部本事”。问题很微妙:前沿模型陷在一种”写什么都像杂志标题”的模式里,标题本身不坏,但如果一篇文章里有几十个标题,你会怀疑作者出了什么问题。所以他建议把这条规则当作”智力上的个人防护装备”严格执行:任何 LLM 建议的具体措辞一律禁用。前提在于,你不可能可靠地识别出前沿模型把你的文字变成 Velveeta(一种美国加工奶酪)的所有方式——哪怕你喜欢那些词、哪怕你确信它们比你原来的好,也一律取消资格。

规则二:拒绝鼓励。 这是一种更隐蔽的”影响力行动”。你把任何文字交给 LLM,它都会回复”这是金子啊,Jerry!”但你需要听的不是这个。初稿里大多数段落都很烂,话题推进不连贯,至少有 750 个词是多余的;模型却会先鼓励你的整体结构,然后是段落和过渡,然后是用词和比喻、流行文化梗。”它们都很烂!全都烂!别听!”这样会害你在所有初稿冲动上加倍下注,而正常情况下你会编辑、重想、替换段落——”这些重想正是你的声音中承重(load-bearing)的部分。读者说不出哪里不对,但会感觉到你被人工调味了。”他坦承有好几年都在每个编辑提示词开头撒谎,说自己不是作者而是某网络刊物的编辑、在筛选投稿;这有帮助,但模型常常矫枉过正,过度拟合所谓”刊物的目标”。所以目前最实用的建议是:禁止模型鼓励,并对表扬保持高度警惕。

模型真正擅长的是找问题。 它们不会疲劳,比你更擅长注意到:被动语态用得太多(或者,如果你事事听 LLM 的,可能太少)、把动词名词化或把动作埋起来、重复同样的措辞;”very”“unfortunately”“really”“actually”像粘在工作台上的锯末一样撒得到处都是;几乎肯定有两三段挪个位置就能立刻让文章更清晰(”这些编辑真的、实在、非常令人满足”——他故意这么写)。

他向程序员推荐 Joseph Williams 的《Style: Lessons in Clarity and Grace》:如果你希望有一本像 Hanson 的《C Interfaces and Implementations》那样给散文编辑提供”原理图”的书,那就是它,”我发誓它把文字编辑变成了 Java 编程,完全一样的枯燥,完全一样的有效”。他是从 Richard Gabriel 那里听说这本书的。建议读《Style》或类似的书,边读边记笔记,整理出一份提示词清单,然后分轮次跑在自己的稿子上:让模型指出问题;针对每个问题自己重写那一段(或句、节);再把原文和新版本交给模型问哪个更好。这里会撞上规则二的变体——模型知道你刚改过,也知道你想听新版本更好——所以要把两个版本交给一个不知道你编辑过程的模型来判断。

他厌倦了在标签页之间来回切换、说服模型”我不是作者而是一位严厉的写作教练”,于是用 LLM 搭了个工具,并给出了开场提示词:用 Python、HTMX、SQLite 和本地构建的 Tailwind,做一个 Notion 风格的散文编辑器,支持高亮、Genius 风格的侧栏批注、在建议之间前后翻动、多文档与修订追踪。然后把整理好的编辑提示词交给它,通过 Codex、Claude 或 Antigravity 的命令行逐一运行。”不管你做出什么,都会比我的好,因为每个人自己做的东西对他自己来说都更好。”

总结:别让 LLM 替你选词;别让它骗你觉得初稿比实际更好;然后把最枯燥的活外包给它——你的声音保持完整,但工作更快、更好、更少痛苦。最后一条是规则二的推论:别采纳模型所有的编辑建议。他一分钟前把这篇文章喂给 GPT-5(”这不是我写的”),模型说整篇长了 20%,”它大概是对的。但我不打算改。我就做我自己。”

HN 评论精华

416 条评论,是本期讨论最热烈的帖子之一。作者 tptacek 本人在评论区非常活跃,贡献了不少比原文更具体的细节;但讨论的相当一部分被两个话题占据:文中那个 “load-bearing” 到底是不是故意的,以及”如果你不肯花时间写,凭什么让人读”。

“load-bearing” 之争。 这个词是公认的 LLM 口头禅之一,而作者恰好在规则二那段用了 “Those rethinks are load-bearing parts of your voice”。置顶评论 jamiejquinn 说”喜欢这个(可能并非有意的)反讽”,ameliaquining 立刻回:”这不可能不是故意的玩笑。”SupremumLimit 则认真批评,认为那句话和开头”巴氏消毒、灌玉米糖浆”的比喻都是 AI 式的怪异(”巴氏消毒是好事,玉米糖浆是坏事,我该怎么理解?”),并提出一个更深的担忧:”你可能告诉自己你很自律、只用 LLM 做审阅,但你阅读它们输出的时候,slop 直接进了你的脑子,然后又滴到你的文字里。”simonw 说他一看就认为 Thomas 是在故意示范:只要用得有效,被 LLM 污染的词也可以用;他还补充”我很恼火 load-bearing 变成了 LLM 标志,它本来是个很有用的比喻”。tptacek 本人确认:”那是个玩笑。”inkcapmushroom 解释了笑点所在:那一整段都故意写得像 LLM,最后一句”读者说不出哪里不对,但会感觉到你被人工调味了”就是让你亲身体验这种感觉。jameshart 认为熟悉作者的人都知道这是”我懂你在干什么”的时刻,但”这是个冒险的做法”——不熟悉他的人会产生怀疑;RichardChu 就说这个词把他拽出了文章。politician 也坦白,读到这个词后大脑就”断开连接”了,一路扫到结尾。

作者在评论区补充的具体方法,是整个帖子最有价值的部分。 有人问他搭的工具如何避免模型表扬,他贴出了系统提示词:

和我一起打磨一篇文章。不要鼓励。鼓励毫无用处,唯一有用的是修改建议。不要替我写文案。你给出的任何词都会被取消资格,所以如果你想出了好词,我就惨了,因为我不能用。告诉我应该改什么。假设我非常了解我的读者。我们会分多轮进行,把建议锁定在当前这一轮。注意错别字,但不要基于错别字展开长篇结构批评,记下来然后继续,假设我本意是写对的。

他说自己每篇文章跑 8 到 12 轮,大约回应 60% 的建议,其余 40% 是”不,我就想让它这么读”;而改动中大约一半是直接重写整段,另一半才大致照建议做(比如去掉 “just” 或 “very”、换掉句子主语)。他举例说这篇文章里就删了 7 个 “just”。grey-area 批评”你这是在抹掉自己,不是在改进写作,想写得更好就多读书”,tptacek 反驳:”你错了。一个显而易见的理由:在有模型之前我自己也会删掉这些 just,只是要花更久。”

对”这会漂白个人风格”的普遍担忧,他解释说自己根本不是在问模型”你觉得这样写怎么样、怎么更有风格”。他事先决定的目标是清晰——”这不是模型告诉我的,是 Joseph Williams 几十年前告诉我的”——并据此写了一份校对清单:找过度使用的词;删掉”需要记住的是”这类清嗓子式的填充;每段要有明确的主题句;别把真正的动词埋在名词里。”这些是技术性的,而不是主观判断。一个句子的主语要么是你所讲故事里采取行动的角色,要么不是。”Semiapies 说这种活根本用不着 LLM,已有的人写的程序(如 LanguageTool,甚至 Emacs 的 artbollocks-mode)就能做;tptacek 反问:”有什么人写的程序能检测动词名词化、验证句子主语是动作中的角色、确保新信息放在句子的强调位置、并检查每段都有清晰的主题句?我很想知道,我会买。”他还透露这篇文章只用了约 45 分钟写成、没给任何人看过,”所以很多人没看懂我不意外”。

“如果你不肯花时间写,凭什么让人读?” S-E-P 的这句话引出了帖子里最长的子线程。他说即使作者叮嘱一个词都别用,他读的时候仍会不自觉地检查有没有 AI 痕迹,这让阅读不再愉快。反方立场也很鲜明:siscia 认为写作的价值在于传达的想法而非纸上的字,”政客的演讲有撰稿人润色,就不值得听了吗?”(graemep 回:”通常确实会让它信息更少、诚意更低。”)CuriouslyC 提醒,一篇 1500 字文章背后的提示词可能是 1 万字的研究、数据收集和论点检验;wkjagt 则认为,如果 AI 文章只是几十个词的提示词被膨胀成几千字,作者还不如直接分享提示词。JimDabell 挑衅地指出那句话本身就是网上被重复了无数遍的格言、并非原创,引发了一长串关于”格言是否需要原创”的口水战。LtWorf 提供了一个让人哭笑不得的例子:Debian 最近投票决定是否允许使用 LLM(结果是允许),有人辩称英语不是母语所以需要 LLM 帮忙,结果他那封极长的邮件 LtWorf 根本读不进去,结尾才看到声明说邮件本身就是 LLM 辅助写的。

对”用 LLM 当 A/B 裁判”的质疑。 Retr0id 认为 LLM 的写作品味极差:拿一段你喜欢的文字让 LLM 改写,再开新会话问它哪个好,它几乎总是选自己写的,哪怕那段很烂。tptacek 回应两段都是你写的,不存在模型写的段落;Retr0id 坚持认为关键在于 LLM 偏爱”LLM 形状”的文字,用它做 A/B 测试,就是在朝 LLM 文风优化,哪怕它一个字都没写。ameliaquining 给了折中意见:”LLM 风格并不是和质量负相关的”,只要避开文中说的失效模式,它能充当一个没有你盲点的合格编辑。

用 LLM 做事实核查几乎获得了一致认可。 thombles 说对技术博主来说”请检查这篇文章的事实准确性”能避免出丑,有一次模型给他指出的文档推翻了整篇文章,一周后他写出了好得多的版本。simonw 说”一两年前建议用 LLM 做事实核查会被笑出房间,但今天好的模型(Fable、GPT-5.6/6)开着搜索工具真的非常出色”,它们甚至会去读你链接的文章、检查你有没有曲解。geraneum 提醒 Fable 曾对他们代码库里一小段代码的行为给出后果严重的错误判断,浪费了团队大量时间;simonw 的回应是:”你不是盲信它们的核查结果,你去核对它们指出的地方。”

提交信息和 PR 描述是另一个热点。 semiquaver 说两年前的自己会觉得这很疯狂,但他最近坚持亲手写所有提交信息和 PR 描述(只让智能体核查事实,不许改写),这放慢了速度,”但是以最好的方式”——大大加深了他对智能体生成代码的理解。hannasanarion 说他们团队唯一的 AI 使用政策就是”PR 描述不许用 AI”,效果极好:这是一条容易识别和执行的硬规则;它迫使提交者建立所有权,”你没法给从没见过的领土画地图”;还让审阅者知道改动的意图,更容易发现遗漏的边界情况。反方 LeafItAlone 认为 LLM 的一大贡献是消灭了只写 “fix” “update” 的提交信息;this_user 回敬了一条戏仿的 Claude 提交信息:”重新对齐了承重所有权闸门的形状以缩小设计契约的爆炸半径;已确认,而非假设。”ericbarrett 说:”‘fix’ 至少立刻告诉我该去看 diff;不受约束的 Claude 输出,我得穿过三层油炸过的 LLM 腔才意识到……我还是得去看 diff。”vova_hn2 和 atmosx 指出,基于 diff 生成的提交信息本质上是冗余的,真正有价值的是 diff 里没有的”为什么”。

读者们分享的各种工作流。 felipeerias 建议母语不是英语的人用英语和 LLM 交流、用母语写作,这样规则一自动成立。gyulai 的双语玩法更进一步:让 LLM 用非目标语言写初稿,把它当蓝图自己用目标语言重写,再交回去要编辑建议;他还推荐一个提示词:”预判这段话可能在哪些地方被误解、冒犯别人。”trane_project 更喜欢让模型扮演特定读者,问对方会如何接受论点、会提出什么反驳。zan 的流程是:去散步,用语音转文字记下所有想法,让 LLM 把它们整理成简单的”事实”句子并指出矛盾和待解问题,然后自己搭叙事、写正文。drdaeman 认为规则一可以有例外:想找一个在某种语言里恰好带有特定含义的词时,LLM 是个”基于氛围的高级同义词词典”,”我的选择,我的声音”。brap 警告千万别让 LLM 在闭环里反复”改进”文字,写作不像编程,它会把合理的文字变成没人会写的垃圾。mcv 讲了个真实场景:他要写一封利害攸关的信,发现自己屈服于 Claude 的措辞,Claude 宣布信件完美,结果妻子看了一眼全盘否定,”总算恢复了一点理智”。

当然还有一大批”别用”派。 至少七八条顶层评论只有一个词:”Don’t.”(别。)simonw 对其中一条回复:”文章说的正是这个。”Eddy_Viscosity2 的表述更完整:”给机器写东西(比如写代码)可以用 LLM;写手册、规格这种高度结构化内容也还行;但如果是写给人类大脑去吸收意义的,LLM 就是毒药。”r0ze-at-hn 则替不会写的人说话:”‘用你自己的声音’只对本来就有好声音的人有用,就像亨利·卡维尔给人的约会建议。”zrail 反驳说”天生的好作者”并不存在,写得好的唯一办法是大量写,接受 LLM 的词恰恰让你跳过了从烂作者变成平庸作者必须经历的那段痛苦。tptacek 的回应最简短:”在可以采纳 AI 模型的词之前,普通人一直在写作。”