👆 关注「这也终会过去」,获取更多 AI 实践干货。这是本号的第91篇原创。
你的提示词文档,还在自己用手写或是网上找模版吗?
上篇我六轮对话搭出一条绘本流水线。角色提示词到底怎么写?不自己写,也不找模版,那就直接拿别人做好的技能来用?
省事了,但有风险啊。
首先这个技能是从别人的环境里长出来的。驱动模型、命令行、API key、脚本路径,全按别人的习惯写死。你照搬过来,跑不动是小,用的别扭浪费时间浪费Token。
其次验收标准也是别人的。技能里的质量要求,是原作者对「算对」的定义。你的项目该验收什么,有什么不同,它是不知道的。你照单全收,交付结果里有坑没第一时间发现,或者发现结果和自己想要的完全不是一回事……
第三,中间产物的协议就更麻烦。技能把输入输出格式定死了,你的流程对不上,交接处可能掉链子。判断活和体力活的划分,同样是别人的逻辑。抄来的技能里,可能把某个环节交给脚本执行,但你的场景偏偏要 agent 介入判断。照搬它的分工,本该给你省心的环节反而消耗了你大量的精力。
万一遇到恶意提示词注入,给你自动清除根目录,或者上传你的API Key、登录凭证,要么给你电脑里埋个木马,而你恰好图省事没用沙盒,画面太美难以想象🙈……
所以别人的技能别急着拿来就用。理解四块骨架,才能判断技能适不适合你、哪里需要改。或者让 AI 按四块结构搭一个专属于你自己的。
这篇就手把手教你,掌握「四块骨架」和「三个技巧」,如何交给 AI 自己搭技能,学会了从此不愁 skill 不够用。

一份角色文档,四块结构
拿 picture-book-pipeline 里的 story-writer.md 说。这文件是绘本流水线的角色 2,根据大纲写每页故事文本。它分四块。
第一块,身份。标题写「角色 2:story-writer」,驱动模型写 opencode-zen/deepseek-v4-flash-free。两行,告诉 agent 它是谁、用什么模型。
第二块,输入。一行:outline.md(角色 1 产物)。提示词正文嵌 {outline.md 全文},把上一角色的产物整块塞进来。
第三块,输出要求。标题写「输出要求(严格)」。逐条看,全是可判定的短句:
角色文档 · 输出要求
- 每个故事一个 Markdown 表格,表格在 '## 故事N 标题' 标题之后- 表头固定为:| 页 | 画面描述 | 故事文本 |,第二行是分隔行 |:--|:--|:--|- 页号从 1 连续编号- 画面描述:该页画面(中文,供后续转提示词),描写画中有什么 + 动作 + 情绪- 故事文本:一句话,只使用该故事的 vocabulary 词 + 高频词,句式简单- 一个故事一个表格,表与表之间用 # 标题分隔- 只输出表格,不要解释第四块,质量要求。文件末尾单独一节:
角色文档 · 质量要求
- 故事文本只用 vocabulary 词 + 高频词(超范围词必须划掉重写)- 每页一句话 ≤ 10 词- 画面描述与故事文本严格对应(画面描述里出现的东西必须能被故事文本支持,反之亦然)- 页号 1..N 连续(坏表会卡住角色 4 的 verify)四块各回答一个问题:你是谁、用什么材料、做成什么样、怎么算对。
技巧一:写清单,不写形容词
注意,输出要求里没有一个形容词。没有「认真写」「写得好」。全是能验证的短句。
agent 对形容词免疫,对清单敏感。「认真写」三个字,模型读完还是不知道怎么做。「表头固定为 | 页 | 画面描述 | 故事文本 |」,模型读完就知道每列是什么。
Day 13 第 6 轮的测试清单,也是同一个逻辑。验收条件逐项列出,agent 照着做,人照着查。
技巧二:验收标准前置
质量要求就是验收标准。写进提示词,agent 执行时自己对照,省得事后检查。
Day 11 讲过三种验证,正好对得上:格式、内容、一致性。story-writer.md 的质量要求,这三层全覆盖。
判断活和体力活的判据,Day 12 讲过:能不能定下来。判断活不能定成脚本,但能定成提示词里的验收清单。story-writer.md 正好是例子:清单定下来了,内容让 agent 现场写。
技巧三:上一环的产物,嵌进下一环

上一角色的输出,直接变成下一角色的输入。提示词正文嵌 {outline.md 全文},这就是管道式传递。
提示词是协议的第一个消费者。协议定义得越清楚,提示词越省事。outline.md 的格式在 SKILL.md 里定死了,story-writer.md 不用再解释格式,直接嵌进来就行。
prompt-artist.md 也一样。输入是 stories.md,提示词里嵌 {stories.md 全文}。角色 2 的表格,角色 3 直接补第 4 列。前 3 列不许动,协议靠提示词强制执行。
判断活和体力活,落点不同
五角色分工,落点不同。
角色 1/2/3 是判断活,载体是提示词。执行方式按优先级选:当前 agent 直接执行(推荐)、委派 subagent、装 pi 或 opencode 用命令行。
角色 4/5 是体力活,载体是脚本,命令固定。角色 4 调图片生成,一条命令跑完:
输入 · 命令
uv run python3 skill/scripts/pipeline.py run stories.md \ --output-dir output \ --api command\ --cmd "uv run --with httpx python agnes_media.py image --prompt-file {prompt_file}"\ --json-path data.0.url \ --cmd-cwd ~/agnes-ai \ --concurrency 2\ --timeout 300\ --retries 2角色 4 不写提示词,写调用参数。分界线就是 Day 12 的判据:判断活靠提示词,体力活靠脚本。
写角色文档,也是判断活
判断活可以交给 agent。写角色文档也是判断活,所以不必手写。把四块结构写进需求,交给提示词制作技能,比如skill-creator,agent 就会按协议结构生成skill文档。记得把验收标准放进需求提示里,生成的skill文档就不会偏离你的目标。
今日收获
能说出角色文档的四块骨架 会把「如何做」写成可检查清单,不写形容词 会把验收标准前置进质量要求 会用管道式输入:上一角色产物嵌进下一角色提示词 能分清判断活靠提示词、体力活靠脚本
你平时写提示词,是手写还是让 AI 搭?留言聊聊。
这个项目的完整代码在 GitHub,搜索 alexwwang/picture-book-pipeline 就能找到。
更多文章推荐:
AI进阶之路文章合集:AI 新人的能力进阶之路
驾驭工程系列文章合集:Agent 驾驭工程实战
Agent记忆管理实践系列合集:让AI学会反思
如果这篇文章对你有启发,欢迎:
👍 点赞 + ♥️在看 — 让更多人看到
💬 留言 — 说说你的看法或踩过的坑
↗️ 转发 — 分享给需要的朋友
⭐ 设为星标 — 第一时间收到推送
设为星标方法:
点击右上角「···」
点击「设为星标 ⭐」
公众号名称旁出现 ⭐ 即设置成功
📌 关注「这也终会过去」,持续分享 AI 实践、踩坑记录和方法论思考。
版权声明: 本文首发于 这也终会过去,转载请注明出处。点击阅读原文查看博客
夜雨聆风