一、先看清痛点:为什么提示词需要做成流程
用Luma AI这类生成工具辅助写公众号文章时,很多人第一反应是把一篇写得不错的提示词收藏起来,下次直接复制粘贴,改几个关键词就继续用。但时间一长就会发现两个明显问题:一是每次改动的地方不一样,改漏了或者改多了,生成结果偏差很大;二是同一套提示词在不同文章主题下表现忽高忽低,很难持续产出及格线以上的内容。

根本原因在于提示词本身没有被当成一个可持续优化的“产品”来对待。如果只是把它看成一段文本,就会陷入既要改结构又要改例子、前后逻辑对不上的混乱。真正能稳定复用的提示词流程,应该像代码工程一样有清晰的模块、参数和版本。换句话说,你要做的不是保存一句话,而是设计一个“提示词函数”,输入不同主题和风格参数,输出符合要求的文章初稿。
所以第一步是把提示词从“一次性文本”升级为“可配置模板”。模板里固定的部分负责控制文章结构、语言风格、信息密度这些底层规则,而变化的部分则用占位符或者变量代替,每次使用时只填充变量,不再手动修改正文逻辑。这样既能保证输出质量的一致性,也能把人的精力从反复调整提示词中解放出来。
二、把提示词拆成可组装的模块
一个完整的公众号文章提示词通常包含角色设定、目标受众、内容要求、格式规范、语气风格、示例参考等部分。直接把这些内容全塞进一段长文本里,后续想要调整某一方面就会牵一发动全身。更合理的做法是按照功能拆分模块,每个模块只负责一件事,模块之间通过接口(变量)通信。
例如可以拆成这样几个固定模块:角色模块用来定义AI扮演的身份,比如“资深科技媒体编辑”;任务模块明确要生成什么,比如“根据下面给出的主题和要点,写一篇公众号推文”;约束模块规定写作要求,如“不堆砌专业术语,每段不超过三行,加入一个具体案例”;输出格式模块写清楚最终交付的文本结构,比如包含标题、导语、三个小标题、结尾引导关注。
把这些模块分别保存成文本片段,使用的时候按顺序拼接,并且用变量替换掉会变化的部分,比如主题、关键词、案例素材等。下面是一个用Python拼接提示词模块的简单示例:
role_block = "你是一名有8年经验的科技类公众号主编,擅长把技术话题写得通俗易懂。"
task_block = "请根据给定的主题和3个关键点,撰写一篇面向中文读者的公众号文章。"
constraint_block = "文章需包含一个生活化案例,每段不超过三行,避免使用过多英文缩写,结尾引导读者点在看。"
format_block = "输出格式:标题、导语、三个小标题(每个标题下2-3段)、结尾。"
def build_prompt(topic, points):
points_text = "\n".join(f"- {p}" for p in points)
return f"{role_block}\n{task_block}\n主题:{topic}\n关键点:\n{points_text}\n{constraint_block}\n{format_block}"
这种模块化的好处是,哪天想调整风格,只需要修改role_block或constraint_block,其他部分不受影响。而且每个模块可以独立做A/B测试,比如换一种角色描述看看生成效果是否有提升,效率比整体重写高得多。
除了文本模块,还可以把参考样例也做成模块。比如准备两三个你认可的公众号文章片段,让AI模仿它们的节奏和用词习惯。这个例子模块可以单独存放,需要时插入到提示词中,相当于是给模型一个“锚点”,减少生成内容的随机性。
三、用变量和模板驱动提示词复用
光把提示词拆开还不够,真正让流程跑起来的是变量系统。变量就是那些每次生成都会改变的信息,比如文章主题、目标读者、产品名称、活动日期等。把这些位置用明确的占位符标记出来,再通过一个简单的模板引擎替换,就能实现一次定义、多次使用。
这里推荐使用JSON作为提示词模板的存储格式,因为它结构清晰、易于解析。下面是一个模板的示例:
{
"template_name": "luma_article_v1",
"blocks": {
"role": "你是Luma AI公众号的内容策划,熟悉AI视频生成领域。",
"task": "写一篇关于{product_feature}的介绍文章,目标读者是{audience}。",
"constraints": "开头用提问引入,中间穿插一个实际使用场景,结尾加上引导关注的话术。",
"format": "标题不超过30字,正文分四个小节,每个小节配一个小标题。"
}
}
使用时,先加载这个JSON,然后把{product_feature}和{audience}替换成具体内容。替换逻辑可以用Python的字符串format方法,或者用Jinja2这类模板引擎处理更复杂的条件逻辑。比如有的文章需要附带数据表格,有的只需要纯文字,模板里就可以加一个条件判断,根据变量值决定是否插入表格模块。
变量命名要规范,最好用语义化的英文或拼音,避免出现{x}、{a1}这种看不出含义的占位符。另外,变量应该有默认值,万一某次没传对应参数,也不至于让整段提示词出现空白。可以在代码里设置一个默认字典,合并进最终参数,保证模板始终完整。
四、建一个自己的提示词库,接入发布流程
当模板和变量都稳定下来后,就可以把它们集中管理起来,形成一个提示词库。这个库可以是一个简单的文件夹,里面按文章类型存放不同的模板文件,也可以用一个轻量级的数据库或者配置中心。关键是要能把每次生成用到的提示词版本记录下来,方便回滚和对比。
具体做法是给每个模板加上版本号,比如luma_article_v1.2,每次调整模板内容后递增版本,同时把旧版本保留在历史记录里。生成文章时,脚本会记录这次用的是哪个模板版本、填入了哪些变量值、最终生成的文本链接。等到想复盘为什么某篇文章质量下滑时,就能快速定位到是哪次模板改动导致的。
接入发布流程也很直接。可以把生成文章的过程封装成一个函数,接收一个主题和关键点列表,内部调用Luma AI的API或者网页自动化工具,把拼接好的提示词发送给模型,拿到返回结果后自动按照格式模板整理成Markdown或HTML,再推送到公众号草稿箱。下面是一个简化版的Python自动化脚本示意:
import json
import requests
def load_template(version="luma_article_v1.2"):
with open(f"prompts/{version}.json", "r", encoding="utf-8") as f:
return json.load(f)
def render_prompt(template, variables):
# 简单的字符串替换,处理所有 {key} 占位符
prompt = json.dumps(template, ensure_ascii=False)
for key, value in variables.items():
prompt = prompt.replace("{" + key + "}", str(value))
return prompt
def generate_article(topic, points, audience="普通读者"):
tpl = load_template()
variables = {
"product_feature": topic,
"audience": audience,
"points": "\n".join(points)
}
final_prompt = render_prompt(tpl, variables)
# 调用Luma AI接口,这里以伪代码示例
response = requests.post("https://api.luma.ai/generate", json={"prompt": final_prompt})
article = response.json().get("content")
return article
实际开发中还需要处理API限流、超时重试、生成结果审核等环节,但整体思路就是把提示词资产化,让写作流程像软件发布一样可追踪、可回滚。团队内部可以共用同一套提示词库,新人上手也只需要填变量,不用从头学习怎么和AI沟通。
五、持续优化:让流程越用越顺手
可复用流程不是一次性搭好就完事了,它需要根据实际生成效果不断迭代。建议每次生成文章后都记录几个关键指标,比如生成时间、输出字数与目标字数的偏差、是否出现事实性错误、人工修改幅度等。这些数据积累起来,就能看出哪些模板的得分稳定,哪些变量组合容易翻车。
优化时优先调整约束模块和示例模块。约束模块决定了AI的发挥空间,写得太死会让文章显得机械,太松又容易跑偏。可以尝试用评分机制,让AI在生成正文之前先输出一个简短的写作提纲,人审一遍提纲再决定是否继续,这样比直接生成全文再修改更省事。示例模块则可以定期更新,把最近写得好的文章片段放进去,让模型模仿最新风格。
另外不要把提示词当成唯一手段,公众号文章的质量还依赖于素材准备和人工润色。一套好的流程应该是AI出初稿,人做判断和打磨,再配合固定的排版和审核规则。当这套循环转起来,提示词复用带来的效率提升才会真正体现出来,而不是为了流程而流程。

