开发者用 LLM 写博客:从提示词到内容验证的完整工作流

开发者用 LLM 写博客:从提示词到内容验证的完整工作流 为什么开发者会用 LLM 写博客最近我被反复问过这个问题。有人想拿它批量生成内容有人只想让它帮忙整理笔记也有人担心用完之后博客变成千篇一律的 AI 味。我的判断是对大多数开发者来说LLM 写博客最大的价值不是“自动把文章写完”而是把写作里最消耗精力、最需要重复劳动的环节接过去比如列大纲、做初稿、整理代码示例、统一语气。真正决定文章能不能发的仍然是人的验证和判断。这篇文章不讨论哪家模型更强也不讨论某个工具的广告只聊一个务实的问题在真实开发环境下一个写技术博客的人为什么要用 LLM以及怎么把这件事用稳。1. 先看清楚LLM 写博客到底解决什么不解决什么不要把“用 LLM 写博客”看成单一动作。它其实是“收集素材、整理信息、组织表达、写代码、配图、发布”这条长链路里的一段辅助。搞清楚这一点就不会出现“模型什么都能写为什么我拿到的还是垃圾”或“模型写得不对说明这方法没用”这类误判。1.1 技术写作最耗时的是上下文整理而不是打字我见过不少开发者连续写了三个月技术博客最后停更的原因不是缺主题也不是不会写而是整理信息的时间太长。一个排查 bug 的过程终端里可能有几十条命令、多次报错、几个改动版本。把这些内容重新组织成一篇别人能看懂的文章需要把上下文从“当时怎么想的”切回“现在怎么讲”。这种切换成本比单纯写句子高得多。LLM 在这里的作用特别明显你把零散的笔记、命令、报错信息贴给它它能快速生成一版有条理的初稿。你不需要从白纸开始只需要在一份可读文本上修改。对开发者来说这相当于把编辑器的“从零到一”写作改成了“从一到十”修正。我一般会把一篇技术博客的产出分成四块选题和角度文章结构和大纲正文初稿代码示例、配置、验证结果其中块与块之间切换的成本通常比单个块本身更大。LLM 能帮你减少的是“块与块之间的切换”而不是替你完成最后的事实核对。这也是为什么很多写了几年博客的人不会让模型一步到位生成全文而是按功能点分步使用。1.2 能替代的部分大纲、初稿、改写、代码格式化具体来说以下环节适合交给 LLM根据关键词生成选题清单和内容角度。把碎片笔记扩展成段落。把一段口语化描述改成书面表达。把代码示例整理成带注释的版本。把冗长内容压缩成摘要或扩展成详细说明。把同一篇内容改写成适合不同平台风格的版本。这些任务共同点是“上下文已存在只是表达不够到位”。LLM 擅长处理这种确定性不高的文字重组它能提供多个版本供你选择。比如你一段话写不好可以让它给五个改写方案再组合出最自然的一版。1.3 不能替代的部分体验判断和事实验证凡是涉及“这条命令在我的环境里真的能跑”“这个参数是不是最新版本”“这个结论有没有误导性”的内容必须由人来确认。LLM 生成的代码示例经常看起来正确实际运行时缺一个 import少一个参数或者针对的是旧版本 API。开发者的核心竞争力不是打字而是判断力。所以我的建议是把 LLM 当成“快速产生草稿的同事”不要当成“最后把关的编辑”。最终发布的责任人是你。2. 开发者的实际使用场景从选题到发布的完整链路技术博客的产出流程通常可以拆成六段定选题、定大纲、写初稿、补代码示例、润色排版、发布推广。其中每一步都能用得上 LLM但用法完全不同。2.1 用 LLM 做选题和热词挖掘很多博主写不下去第一步就卡在“不知道写什么”。其实选题可以从几个方向挖近期踩过的坑、项目里重复解决过的问题、某个工具的核心参数体系、新版本带来的变化。把这些问题用自然语言抛给 LLM它很容易给出 10 到 20 个角度。但这里有个关键LLM 给出的热词和选题只适合做候选不适合直接当结论。我在实际使用中会把自己最近真正处理过的问题写进提示词让模型围绕我的经历给出更细的角度。比如“我最近在做离线环境下的大模型推理写了几个脚本分别处理模型转换、量化、批量推理。请围绕这个经历给我 10 个博客选题每个选题要说明解决什么问题目标读者是谁。”这样得到的选题会比“请给我 10 个 AI 热门话题”靠谱得多。原因很简单模型没有你的项目经验必须靠你提供一手信息。选题阶段最忌讳的就是让模型自由发挥因为自由发挥会偏向大众化最后写出来的内容往往没有差异化。2.2 大纲生成把零散笔记变成结构化框架大纲是 LLM 最有用的环节。你可以把之前的笔记、报错记录、代码片段直接贴进去要求它输出一个带有目标读者、前置条件、操作步骤、验证方式、常见问题的结构。模型不需要理解你所有细节只需要识别出“主题、顺序、依赖关系”就能给出不错的结构。我在这一步一般会要求模型输出两层结构一级标题和二级标题并在每个标题后面用一句话说明这一段要解决什么问题。然后我再删改。大纲阶段改结构成本最低等文章写了一半再改结构代价就大了。如果你有自己偏爱的文章格式可以把一篇旧文的目录贴进提示词作为示例。比如你习惯先写“现象”再写“原因”最后写“解决步骤”让 LLM 按这个顺序生成大纲它会比默认的“介绍-原理-实操-总结”更接近你的风格。2.3 初稿扩写和代码示例加工有结构以后可以逐段让 LLM 扩写。实际操作时我更推荐把同一段内容分成多次请求而不是一次性让模型生成五千字。原因很简单输出越长越容易出现重复、跑题和前后矛盾。分段的另一个好处是你可以检查完一段再生成下一段避免整篇推倒重来。代码示例部分要特别小心。LLM 生成代码的速度很快但很容易犯两类错误一是导入路径和版本号对不上二是把配置项写得过于理想化。我的习惯是让模型先输出不带代码的文字部分代码部分我自己写或者让模型生成后立刻复制到本地项目里跑一遍。代码能不能运行只有跑过才知道。3. 让 LLM 真正可用的工作流提示词、工程和内容验证如果只是偶尔写一篇博客直接打开聊天工具提问就行。但如果想把写作流程稳定化尤其是同时维护几个平台账号或一套系列文章就需要一个带提示词、输出规范、验证步骤的工作流。3.1 提示词需要包含上下文、约束和示例很多人用 LLM 写文章效果差不是因为模型不行而是提示词里只有一句话“帮我写一篇关于 xx 的文章”。这种指令得到的只能是泛泛而谈。更稳的提示词至少包含四部分背景读者是谁博客主题是什么我掌握哪些素材。约束文章长度、语气、是否需要代码、是否要给出排查步骤。结构至少列出二级标题的大纲。示例如果你有自己过去写过的段落放进去作为风格参考。例如我会这样要求模型你是技术博客编辑读者是熟悉 Linux 基本命令的开发者。 我写一篇关于磁盘占用的排查文章。 要求 1. 先讲常见现象再给排查命令最后给出预防建议。 2. 不要使用营销语气。 3. 代码要能直接复制。 4. 结构用二级标题每个标题下一段话解释为什么这么做。 5. 只输出正文不要输出开场白和结尾。把示例放进去尤其重要。因为 LLM 对“风格”的理解最可靠的参照就是你提供的文本样本。没有示例时它只会生成“默认的 AI 风格”也就是那种到处是“首先、其次、值得注意的是”的说明文。3.2 先跑单篇再跑批量不要一开始就做流水线有些开发者习惯把 LLM 接进一个自动化流程输入关键词输出文章再自动发布。我不是反对批量化但强烈建议先手动跑通一篇再考虑批量。原因有两点。第一写作任务不是简单转发任何一步的输出格式、长度、语气异常都会影响后续流程。第二批量任务会放大错误。单篇生成 5 条大纲你有时间逐条检查批量生成 50 条你就只能靠抽样一旦模型在某个阶段跑偏可能会连续产生几十篇内容相似的文章。如果你确实要用代码来管理流程可以考虑用 LangChain、LlamaIndex 这类 LLM 框架统一管理模型接口、提示词模板和输出解析。但前提是你的使用场景足够稳定固定输入格式、固定输出结构、固定模型。否则先别急着上框架用官方 API 写一个几十行脚本处理最核心的调用往往更容易维护。下面是一个示例脚本的大致样子def generate_outline(topic, notes, style_segment): prompt f你是技术博主编排主题{topic}。 素材{notes}。 参考我的写作风格{style_segment}。 输出Markdown 两级标题每个标题下用一句话说明该部分要写什么。 # 调用模型接口将 prompt 作为输入获得返回结果后解析 response call_llm_api(prompt) return response这里的代码只是示意。实际使用时你需要根据所选模型 API 的请求格式、返回结构、鉴权方式调整。不要照搬到一个没有验证过的环境里。3.3 代码、命令、日志和截图必须回到真实环境验证这是整个流程里最不能省略的一步。我见过一些博客文字流畅、结构清晰但命令运行后直接报错或者配置文件与正文描述不一致。对读者来说这样的文章比不写更有害。验证分成三层代码层把文章里的代码复制到真实项目里跑一遍确认所有命令、参数、路径都对。环境层确认文章里提到的操作系统、软件版本、依赖版本是否与你的运行环境一致。结果层把所有输出结果保存下来避免之后想改文章时还要重新跑一遍。我在写这类文章时会把数据和输出结果分成独立文件存好正文里只放必要部分。这样即使模型给出的草稿有偏差我也可以用验证后的内容替换掉错误段落。4. 内容质量与 SEO如何判断一篇文章是否值得发布用 LLM 写博客容易碰到一个典型问题内容看起来像样但读者读完没印象搜索引擎也不喜欢。根本原因在于很多作者只关注“生成速度”没有关注“信息密度”。4.1 发布前检查清单我发布前会过一遍清单不复杂但每条都要回答“是”才发读者看完第一章是否知道这篇文章能解决什么问题每一步操作是否给出判断标准而不仅仅是命令代码有没有在真实环境里验证过文章有没有明确写出适用于什么版本、什么系统是否清掉了所有模板句、空话和营销表达有没有读者会卡住但文章没解释的步骤这个清单不一定适合所有人但能避免“写完即发布发布即修改”的循环。如果你写的是参数类文章我会额外检查参数表是否完整默认值是否标清楚修改参数后的预期效果是否明确。这些都是读者最容易照着做也最容易踩坑的地方。4.2 热搜词和关键词自然出现比堆砌重要写作时把关键词自然放进标题、开头、二级标题和结论里比机械叠加更有效。搜索引擎会看用户停留时间和完读率如果读者进来看两秒就走段落里堆再多关键词也没用。像“LLM 框架”“LLM 使用场景”“为什么开发者用 LLM 写博客”这类词可以放在正文里但不要在每个段落都重复。标题里出现核心词正文第一次提到时给出一个清晰解释然后再进入细节通常就够用了。还有一种做法是参考“LLM wiki”式的知识整理把同一主题的多篇文章互相关联形成专题。这样既方便读者持续阅读也能让搜索引擎把你在细分领域的覆盖度评估得更高。这里说的 wiki 不是让你真的搭一个百科系统而是让文章之间形成结构关系。比如你写过“日志排查”下一篇文章可以写“日志采集”再下一篇写“日志监控”三篇互链形成一个小专题。这种结构比三篇孤立文章更容易被持续阅读。4.3 常见的“AI味”需要手动清理AI 生成的文本有自己的习惯喜欢用“首先、其次、最后”喜欢每段都做总结喜欢用“总而言之”收尾。这些表达不是不能用但如果全篇都是读者很快会失去耐心。我在修正阶段会专门搜索这些词首先、其次、最后、值得注意的是、总的来说、不仅、而且。如果发现连续两段都出现直接改写。另一个调整点是段落节奏。LLM 生成的段落通常长度均匀人工写作常有“长段展开 短句制动词”的节奏差异。把几段里最长的内容拆短给关键结论单独一行读起来会更像真人写作。5. 边界、风险与常见误判什么情况下别用 LLM 写博客用 LLM 提升效率没问题但对边界没有认知才会翻车。下面这些场景我会比平时更谨慎。5.1 版本和配置信息必须以验证为准LLM 训练数据不是实时更新的它很可能给出旧版本 API、旧参数名或已经废弃的命令。写博客时如果涉及版本号、新特性、依赖名称必须重新核对官方文档和本地环境。我在正文里一般会写“以下内容基于 xx 版本验证”如果没有验证就写“建议你落地时先确认依赖版本”。这种表达比直接给出一个可能过时的配置更负责任。另一个常见问题是跨平台差异。同一个命令在 Linux 上能跑在 macOS 上可能参数不同在 Windows 的 PowerShell 里更可能是另一种写法。LLM 在没有明确指定系统环境时默认答案很可能只覆盖一种平台。所以提示词里一定要写清楚你的目标平台正文也要标注这个限制。5.2 LLM 服务部署本地和 API 不是只能选一个“ComfyUI 与 LLM 必须在同一台电脑上么”这类问题说明很多开发者在工具部署上仍有困惑。答案是否定的。ComfyUI 是图像生成工作流工具LLM 是文本生成模型它们各自有不同的运行环境可以单独部署。是否放在同一台电脑取决于你的资源、任务和调用方式。如果你只是写博客根本没有必要为每个任务都部署本地大模型。常见做法有两种使用云侧 API适合快速生成草稿、批量处理素材成本低、上手快但对网络环境和数据隐私有要求。使用本地模型适合处理不能外发的内容或需要离线工作的情况但需要准备 GPU、显存、内存和磁盘空间且速度通常不如云端服务。两种方式也可以组合把不敏感的内容交给 API 快速处理把敏感信息留在本地模型里。核心不是追求“全本地”或“全云端”而是根据任务选择可用方案。如果你要在本地管理多个模型和提示词可以关注一些 LLM 框架项目它们通常能帮你统一模型调用方式和输出解析。但框架本身也是一层复杂度。每引入一个抽象层你就多一个需要维护的依赖。对普通博客写作场景来说直接调用接口往往更省事。5.3 原创性、平台规则与品牌风险如果一个账号里的内容全部依赖 LLM 生成且没有充分加工它很难形成稳定的读者信任。正规博客平台通常允许使用 AI 工具辅助创作但要求内容有实际价值同时要求对明显错误负责。我自己的原则是能亲自验证的必须有真实输出不能验证的要么不做要么明确说明是假设。文章可以借助 AI 生成但署名和责任感必须在人身上。还要考虑一个更实际的问题长期依赖 LLM 生成内容会让自己的写作能力生疏。写作不只是输出它也是思考工具。很多技术判断是在写文章的过程中才逐渐清晰的。如果你把所有环节都交给模型自己只负责发布那你的知识体系也会慢慢变得依赖外部生成。写技术博客的长期价值有一部分恰好在“写”本身。6. 我自己的实践建议从一篇技术博客的诞生说起最后说一个实际流程。我最近写一篇关于某开发工具在低配机器上跑推理的博客整个流程大概是这样。6.1 一个具体主题的完整处理流程第一步我先把所有实践记录贴给 LLM内容包括机器配置、安装过程、启动参数、测试结果、报错信息。要求它输出一个文章大纲目标读者是“想在低配机器上试运行的新手”。第二步根据大纲检查结构。重点看顺序是否合理环境准备、最小示例、参数调整、常见报错、扩展场景。这一段不需要文字只需要确认骨架。第三步让它逐段生成初稿。每一段我控制在 300 到 500 字生成后先读一遍把明显错误的地方直接改掉再抽空运行代码验证。第四步补充真实环境的截图或运行结果。图片和日志是我手动准备的因为 LLM 无法代替真实终端输出。第五步整体通读去掉 AI 味精简段落调整关键词位置。这个过程通常需要一小时左右但它决定了文章是否有信息密度。6.2 新手最容易忽略的细节新手用 LLM 写博客最常见的问题是“贴素材太少”。拿一句话让我写一篇技术文章效果必然差。正确做法是把原始素材尽量完整地贴进去包括终端输出、配置文件、报错信息。LLM 能利用的上下文越多结果越接近你的预期。另一个细节是输出格式。写博客不同于聊天最好在提示词里明确“不要给开场白直接生成内容”“用 Markdown 输出”“代码块要带语言标识”。否则你会得到大量“好的我现在为你整理一篇关于……”的赘余内容。还有一个容易被忽略的地方处理长文章时最好按章节分开生成然后拼接。一次性让模型生成很大篇幅很容易出现前后重复或风格不一致。分章生成每章检查最后再统一润色既能减少风险也方便调整。6.3 长期维护和系列化写作的优化思路如果打算长期使用这套方法我会建议把历史文章和写作偏好整理成一个知识库按类目存放。每次写新文章时把相关旧文或笔记作为示例输入给 LLM让它在风格和结构上保持一致性。这相当于给模型提供一份“个人写作说明书”。这个过程中不一定需要复杂的 LLM 框架。早期用一个 Markdown 文件维护个人风格规范就已经够用等到文章量上来再考虑用脚本或框架做检索增强。保持简单是所有工具能长期用下去的前提。如果你经常写同一个领域的博客也可以把所有已发布文章的标题和目录汇总成一个索引每次生成大纲时先把这个索引贴进去。模型会从你过去的写作习惯里推断结构偏好写出来的内容衔接性会强很多。你最终会得到一个自己的判断哪些环节用 LLM 能明显提速哪些环节还是要自己动手。这种判断比任何一个现成流程都重要。技术博客的核心始终是信息准确、步骤可复现、读者能解决问题。LLM 只是把通往这个结果的路变得稍微好走一点。