别再收藏“万能提示词”:把 AI 任务做成可复用工作流的完整方法
别再收藏“万能提示词”:把 AI 任务做成可复用工作流的完整方法
你明明已经让 AI 成功完成过一次任务,第二天换一份材料,它却像完全没学过一样。
于是,你重新解释背景、重新修改提示词、重新检查格式。标题昨天给了三个,今天只给一个;上次知道不能编数据,这次又顺手补了一个不存在的发布日期。
所谓 AI 提效,最后变成了每天重复调教 AI。
问题通常不在于提示词不够长,而在于你只保存了“怎么问”,却没有固定任务的完整执行方式。
真正可复用的 AI 工作流,不是一段万能提示词,而是一套包含标准化输入、模型路由、固定输出和验收机制的可执行模板。
下面用一个贯穿全文的案例,把“原始资料 → 结构化摘要 → 可发布文章初稿”搭成一套能够反复运行的工作流。
---
一、为什么你每次都在重新教 AI 做事
很多人的日常用法是:
帮我总结下面这份产品更新说明,再写成一篇文章。
看起来很清楚,实际上至少缺少五项关键信息:
- 写给谁看?
- 发布到哪里?
- 需要多长?
- 哪些内容不能出现?
- 什么样的结果才算合格?
于是,同一句话连续执行三次,可能得到三种结果:一次是项目符号,一次是长篇新闻稿,还有一次补充了材料中根本不存在的背景。
一个典型的混乱输入
假设原始资料只有这些内容:
v2.3 更新:
增加批量导出功能,支持 Markdown;
优化移动端显示;
已知问题:部分大尺寸图片上传失败;
发布时间没有写,定价没有变化。
如果直接要求 AI“写成产品更新文章”,不合格输出很容易出现:
近日,该产品正式发布 v2.3 版本,并全面升级图片处理能力……
问题至少有两个:
1. 原文没有发布日期,“近日正式发布”属于擅自补充。
2. 原文只说图片上传存在问题,并没有“升级图片处理能力”。
这不是文风问题,而是事实边界没有进入工作流。
一套完整工作流必须明确四个环节:
原始资料
↓
输入校验与清洗
↓
任务分类/模型选择
↓
事实提取
↓
内容生成
↓
规则验收+AI 审校
↓
人工抽检
↓
合格结果/退回重试
其中任何一环缺失,最终结果都可能“看起来不错,但不能直接用”。
建议配图 1:原始提问与三次不同格式输出的对话截图。
---
二、先定义输入规范,让垃圾输入无法进入工作流
工作流的第一步不是选模型,也不是写提示词,而是规定:什么样的输入才允许进入任务。
一份合格的输入至少应包含四类字段:
- 任务目标:到底要完成什么。
- 原始材料:模型可以使用的事实来源。
- 背景约束:读者、渠道、语气、长度等要求。
- 预期输出:返回哪些字段、采用什么格式。
可直接复制的“工作流输入卡”
# 任务目标
将原始资料整理为一篇面向中国普通 AI 用户的文章初稿。
原始资料
{{source_content}}
背景信息
- 内容类型:{{content_type}}
- 目标读者:{{target_audience}}
- 发布渠道:{{channel}}
- 期望长度:{{word_count}}
硬性约束
- 不得虚构原始资料中没有的事实、数字和引用
- 无法确认的信息标记为“待核实”
- 必须区分事实、推测与建议
- 输出必须遵循指定格式
输出格式
1. 标题候选
2. 核心摘要
3. 正文大纲
4. 正文初稿
5. 待核实信息
6. 引用来源
套入前面的案例后,输入会变成:
# 任务目标
将产品更新说明整理为微信公众号文章初稿。
原始资料
v2.3 增加批量导出功能,支持 Markdown;优化移动端显示;
已知问题:部分大尺寸图片上传失败;
资料未提供发布时间,定价没有变化。
背景信息
- 内容类型:产品更新解读
- 目标读者:非技术用户
- 发布渠道:微信公众号
- 期望长度:800—1200 字
硬性约束
- 不得自行补充发布日期
- 不得将已知问题描述成新增能力
- 未提供的信息必须列入“待核实”
此时,AI 不再需要猜测你的业务规则。
必填项、选填项和默认值要分开
推荐这样设计字段:
| 字段 | 类型 | 处理方式 | | 任务目标 | 必填 | 缺失则停止执行 | | 原始材料 | 必填 | 为空则停止执行 | | 目标读者 | 必填 | 决定解释深度 | | 发布渠道 | 选填 | 默认使用通用文章格式 | | 期望长度 | 选填 | 使用预设长度范围 | | 发布日期 | 选填 | 缺失时标记“待核实” |小白可以用 Markdown 表单;需要接入程序时,则可以改成 JSON。关键不在格式多高级,而在于业务规则、参考材料和临时要求不能混成一大段话。
超长资料还要先做预处理
当输入来自网页、PDF 或会议记录时,建议增加四个预处理动作:
1. 删除导航栏、广告、页脚等网页噪声。
2. 统一日期、单位和标题格式。
3. 检查必填字段是否缺失。
4. 超长材料按章节或语义边界分段,而不是机械截断。
配图 2:标准化输入卡填写前后的对比截图。
---
三、不要迷信最强模型,要按任务阶段选模型
模型并不是越强越适合所有环节。
让高能力模型删除 HTML 标签,就像请资深编辑整理快递单;让轻量模型处理复杂事实冲突,又像让计算器代替审稿人。
模型选择至少应看五个维度:
| 任务类型 | 质量要求 | 速度要求 | 成本敏感度 | 上下文需求 | 结构化输出要求 | |---|---:|---:|---:|---:|---:| | 去噪、分类 | 中 | 高 | 高 | 中 | 高 | | 事实提取 | 高 | 中 | 中 | 高 | 高 | | 大纲生成 | 高 | 中 | 中 | 中 | 高 | | 正文写作 | 高 | 中 | 中 | 高 | 中 | | 格式检查 | 中 | 高 | 高 | 低 | 高 | | 风险审校 | 高 | 中 | 中 | 高 | 高 |这张表不是模型排行榜,而是一张质量—速度—成本决策矩阵。
具体选择 GPT、Claude、Gemini、Deepseek、千问或其他模型时,应以实际接口提供情况、上下文限制和任务测试结果为准,而不是只看热度。
三档可落地配置
#### 1. 单模型稳妥版
所有步骤使用同一个模型,但拆成多轮执行:
1. 提取事实;
2. 生成大纲;
3. 撰写正文;
4. 自检修订。
它最适合小白,优点是配置简单,缺点是成本和速度未必最优。
#### 2. 质量与成本平衡版
- 清洗、分类、格式检查:使用速度快、结构化输出稳定的模型。
- 事实提取、核心写作:使用能力更强的模型。
- 最终验收:再切回成本较低的模型。
这是大多数日常内容任务更实用的组合。
#### 3. 多模型路由版
程序先判断任务类型、材料长度和失败原因,再自动选择模型。例如:
- 短资料直接进入写作模型;
- 长资料先分段提取;
- JSON 连续解析失败,切换结构化输出更稳定的模型;
- 核心事实冲突,升级到更强模型复核;
- 主模型超时或限流,进入备用模型。
这里的重点不是“多”,而是每次切换都对应一种明确的失败类型。
---
四、把提示词升级为可执行模板
一份真正可执行的模板,通常包含六部分:
- 系统角色
- 输入变量
- 执行步骤
- 输出格式
- 异常处理
- 禁止事项
不要让模型在一次调用中同时理解材料、核对事实、设计结构、完成写作并自我审校。任务越复杂,“一步到位”越容易把错误藏进流畅文字里。
更可靠的节点是:
理解材料 → 提取事实 → 生成结构 → 撰写初稿 → 自检修订
对话框复制版
你是内容工作流执行助手。
请严格按照以下步骤处理输入:
1. 检查原始材料是否缺少日期、数字、来源等关键字段。
2. 只从原始材料中提取事实,不得补充常识性信息。
3. 将无法确认的信息放入“待核实信息”。
4. 根据目标读者生成文章大纲。
5. 按照大纲撰写初稿。
6. 检查是否存在虚构事实、字段缺失和格式错误。
如果必填输入缺失,不要继续写作,返回:
- 缺失字段
- 缺失字段对结果的影响
- 建议补充方式
输出必须包含:
1. 标题候选
2. 核心摘要
3. 正文大纲
4. 正文初稿
5. 待核实信息
6. 引用来源
按照这个模板处理案例,合格结果应主动写明:
待核实信息:
- 原始资料未提供 v2.3 的具体发布时间。
- 原始资料未说明大尺寸图片的判断标准。
这比生成一篇“无比顺滑”的错误文章更有价值。
API 变量化调用版
下面的 Python 示例不写死接口地址、密钥和模型名称。具体请求字段、返回结构和可用模型,应以所使用平台的实时文档为准。
import os
import json
import time
import logging
import requests
API_URL = os.getenv("AI_API_URL")
API_KEY = os.getenv("AI_API_KEY")
MODEL_NAME = os.getenv("AI_MODEL")
if not all([API_URL, API_KEY, MODEL_NAME]):
raise RuntimeError("请先配置 AI_API_URL、AI_API_KEY 和 AI_MODEL")
logging.basicConfig(
filename="workflow.log",
level=logging.INFO,
format="%(asctime)s %(levelname)s %(message)s"
)
source_content = """
v2.3 增加批量导出功能,支持 Markdown;
优化移动端显示;
已知问题:部分大尺寸图片上传失败;
资料未提供发布时间,定价没有变化。
"""
user_prompt = f"""
请按照固定工作流处理以下资料。
任务目标:生成面向普通用户的产品更新文章初稿。
原始资料:
{source_content}
硬性约束:
- 不得补充资料中不存在的日期、数字和引用
- 无法确认的信息标记为“待核实”
- 输出包含 title、summary、outline、draft、pending、sources
- 只返回合法 JSON
"""
payload = {
"model": MODEL_NAME,
"messages": [
{
"role": "system",
"content": "你是内容处理助手,不得补充输入材料中不存在的事实。"
},
{
"role": "user",
"content": user_prompt
}
],
"temperature": 0.2
}
required_fields = {
"title", "summary", "outline",
"draft", "pending", "sources"
}
def call_api(max_retries=3):
for attempt in range(max_retries):
try:
response = requests.post(
API_URL,
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
},
json=payload,
timeout=60
)
if response.status_code == 429:
wait_seconds = 2 ** attempt
logging.warning("触发限流,等待 %s 秒", wait_seconds)
time.sleep(wait_seconds)
continue
response.raise_for_status()
result = response.json()
# 返回字段应根据实际接口文档调整
content = result["choices"][0]["message"]["content"]
parsed = json.loads(content)
missing = required_fields - set(parsed.keys())
if missing:
raise ValueError(f"缺少字段:{sorted(missing)}")
usage = result.get("usage", {})
logging.info(
"model=%s usage=%s status=passed",
MODEL_NAME,
json.dumps(usage, ensure_ascii=False)
)
return parsed
except (
requests.Timeout,
requests.ConnectionError,
json.JSONDecodeError,
KeyError,
ValueError
) as error:
logging.error(
"attempt=%s error=%s",
attempt + 1,
str(error)
)
if attempt == max_retries - 1:
raise
time.sleep(2 ** attempt)
result = call_api()
print(json.dumps(result, ensure_ascii=False, indent=2))
这段代码体现了几个工作流必须具备的基础能力:
- 输入变量替换;
- API Key 使用环境变量;
- 请求超时与自动重试;
- 429 限流后的指数退避;
- JSON 解析;
- 必填字段校验;
- Token 用量日志留存。
生产环境还可以继续加入 JSON Schema、模型降级、成本上限和验收失败后的自动返工。
配图 3:API 请求与返回结果截图。
配图 4:JSON 解析失败、字段缺失及重试日志截图。
如果一个工作流只能在对话框里手动复制,它仍然很难批量运行和稳定复现。模板完成后,可以前往 api.884819.xyz,结合平台实际接口文档和可用模型,串联输入变量、模型调用与验收逻辑。
平台使用用户名和密码即可注册,不需要邮箱验证;没有月租和订阅,采用按量付费方式,国产模型如 Deepseek、千问等可免费使用。平台也内置了 AI 对话功能,注册后可以直接测试模板。
新用户注册即送体验token。建议先用 3—5 份固定样本跑通流程,再考虑批量执行。模型名称、价格、限额和兼容格式,请以平台实时页面为准。
---
五、结果验收,才是长期复用的关键
很多提示词“第一次很好用”,是因为用户在结果出来后进行了大量人工修补,却没有把修改标准写回模板。
没有验收机制,错误就不会变成规则。
一张可复制的验收表
| 验收项 | 合格标准 | 检查方式 | 不合格处理 | | 事实准确性 | 关键事实均能在原文定位 | AI 审校+人工抽检 | 退回重写 | | 格式完整性 | 必填字段全部存在 | 程序校验 | 自动重试 | | 指令遵循 | 无禁用内容,长度符合要求 | 规则检查 | 局部修订 | | 引用可靠性 | 不生成不存在的来源 | 来源核验 | 删除或标记待核实 | | 语言质量 | 无明显重复、空话和病句 | AI 评分+人工检查 | 二次润色 | | 风险内容 | 不泄露隐私、密钥或内部信息 | 规则扫描+人工确认 | 阻止发布 |验收标准需要分成两类。
硬性门槛
只要失败,就不能进入下一环节:
- JSON 无法解析;
- 必填字段缺失;
- 标题数量不符合要求;
- 出现原文不存在的日期或数字;
- 引用无法定位;
- 输出包含 API Key 等敏感信息。
主观评分
可以使用 1—5 分记录:
- 表达自然度;
- 信息密度;
- 结构合理性;
- 标题吸引力;
- 读者适配程度。
主观分不宜直接交给单一模型决定,最好结合人工抽检。
三层验收机制
1. 程序规则检查:验证格式、字段、长度和敏感词。
2. AI 二次审校:对照原文寻找事实偏差与指令遗漏。
3. 人工抽检:重点检查关键事实、表达边界和发布风险。
前面的错误发布日期,就应该在第一层或第二层被拦截,而不是等读者指出。
---
六、如何做一场不自欺的对比实验
不要因为换了模板后“感觉更稳定”,就得出工作流已经有效的结论。
可以准备一组 12 份演示性测试材料:
- 4 份产品更新说明;
- 4 份行业资料;
- 4 份采访或会议记录。
对每份材料分别执行三种方案:
1. 临时自然语言提问;
2. 标准化提示词;
3. 完整工作流模板。
记录四项核心指标:
| 指标 | 记录方法 | | 首次可用率 | 首次输出通过全部硬性门槛的样本数 ÷ 总样本数 | | 格式合格率 | JSON 可解析且必填字段齐全的样本数 ÷ 总样本数 | | 平均人工修改时间 | 使用计时器记录每份结果修改到可发布所需时间 | | Token 或调用成本 | 读取接口返回的 usage 数据与平台实际计费记录 |建议再记录失败类型:
- 虚构事实;
- 字段缺失;
- 格式错误;
- 长度超限;
- 引用失真;
- 内容重复;
- 请求超时。
本文不填写未经实际运行的“漂亮数字”。这类小样本只能用于验证自己的模板,不能包装成普遍结论。即使 12 份材料全部通过,也只能说明它适合当前样本和当前模型。
配图 5:三种方案的测试记录表,以及相同输入在不同模型下的输出对比。
每次修改模板后,还要保留以下信息:
模板版本:V1.1
模型名称:按实际调用记录
测试样本:sample-001 至 sample-012
通过情况:从真实日志统计
主要失败:字段缺失/事实补充/格式错误
修改内容:增加日期缺失检查
回归测试:重新执行全部固定样本
这一步会把“凭感觉改提示词”,变成真正的版本迭代。
---
从今天开始,做出你的第一个 V1
当输入、模型、输出和验收都被固定下来,你保存的不再是一段提示词,而是一套可以交给同事、接入程序、批量运行并持续优化的数字资产。
今天不必搭建复杂自动化,只做四件事:
1. 选一个每周至少重复两次的 AI 任务;
2. 用输入卡固定任务材料和背景字段;
3. 把输出改成明确、可检查的结构;
4. 连续运行 5 次,记录失败原因并更新到 V1.1。
你也可以复制本文的输入卡和验收表,在 api.884819.xyz 跑通第一版。不要一开始就追求多模型、全自动和大批量,先确认同一套模板能够连续产出合格结果。
模板搭好后,下一个问题会立刻出现:同一个任务应该固定使用一个模型,还是根据难度、成本和失败类型自动切换?
下一篇将严格聚焦“多模型自动路由与降级机制”,拆解任务分类、模型打分、失败降级和成本上限控制,并给出可以直接运行的 API 示例。
本文由8848AI原创,转载请注明出处。关注8848AI,带你从零开始学AI。#AI教程 #AI工作流 #提示词 #API调用 #人工智能 #效率工具 #8848AI #Prompt技巧