- 文档
- 教程
- 知识库
【免费下载链接】developer-roadmap
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
导读
本文聚焦 developer-roadmap 项目 ai-agents 路线图 中的核心提示工程原则之一——在提示中把需求表达得具体明确。你将从"为什么要具体"的原理出发,掌握目标、格式、限制、受众、排除项、关键数据等维度的完整写法,并通过模糊与具体的案例对比,学会在单轮对话与 Agent 工作流中写出高精度的提示词,从而减少模型猜测、剔除无关输出、显著降低来回追问的成本。
一、为什么"具体明确"是提示工程的第一原则
在 what-is-prompt-engineering@Y8EqzFx3qxtrSh7bWbbV8.md 中,提示工程被定义为"编写清晰的提问或指令,让 AI 系统给出你想要的答案"。而实现这一目标的第一步,就是把话说清楚。
当你用"模糊、宽泛"的语言向 AI 提出请求时,模型只能基于概率去猜测你的真实意图,结果往往是:
- 多余的猜测成本:模型在多个可能的解释之间摇摆,输出覆盖了所有可能性,但每一条都不是你真正想要的;
- 无关的额外细节:模型补全了大量你没有要求的背景、铺垫和延伸内容;
- 后续追问的时间损耗:第一轮输出不达标,你需要反复澄清,一轮轮地把需求"挤"出来。
反之,清晰、精确的措辞能直接给模型划定回答的边界,让它在第一时间命中目标。这一点对 LLM 如此,对承载了工具调用、多步推理的 AI Agent 更是如此——Agent 的每一步行动都由提示词驱动,需求越模糊,Agent 的决策链就越容易偏离方向。
二、核心五要素:目标、格式、限制、受众、排除项
把需求写具体,本质上是在提示开头一次性声明以下五类信息:
| 要素 | 要回答的问题 | 示例 |
|---|---|---|
| 目标(Goal) | 这次任务到底要产出什么? | "帮我列出三个建议,而不是解释概念" |
| 格式(Format) | 输出长什么样? | "用编号列表""用三列表格""输出 JSON" |
| 限制(Limits) | 有哪些硬性约束? | "不超过 200 字""不要涉及财务建议" |
| 受众(Audience) | 答案给谁看? | "面向非技术背景的产品经理" |
| 排除项(Leave out) | 明确不要什么? | "不要包含代码示例""不要列举开源工具" |
关键做法:把目标、格式、限制、受众、排除项放在提示的开头。模型对提示早期内容的权重处理更高,把最重要的约束前置,能确保它不会被后续的补充信息稀释。
这一原则与路线图中的另一篇文档 provide-additional-context@6I42CoeWX-kkFXTKAY7rw.md 互为表里:"提供上下文"解决的是"给足背景信息",而**"写具体"解决的是"把要求说精确"**。前者保证模型不缺料,后者保证模型不跑偏。
三、把关键事实钉死:数字、日期、来源
"具体"不仅体现在结构上,更体现在关键事实的精确化上。凡是可能影响答案正确性的数字、日期和来源,都应当直接点名:
- 数字:数量、金额、比例、时间跨度——"最近 30 天""前 5 大客户""预算 1 万元以内";
- 日期:截止时间、统计区间——"数据截至 2025 年 12 月 31 日""对比 2024 与 2025 年的数据";
- 来源:指定数据出处或口径——"以上市公司年报为准""以官方文档为准"。
这些信息一旦缺失,模型就只能自行假设,而假设一旦错误,整个输出都会建立在错误的地基上。点名关键事实,就是主动替模型消除最大的不确定性来源。
四、模糊 vs 具体:一个案例的完整拆解
原文档给出了最直观的对比示例,我们把它完整展开:
模糊版本:
解释一下第二次世界大战。
具体版本:
列出第二次世界大战的三大关键事件,每个事件附带日期和一句简短说明。
两条提示的差异体现在三个层面:
- 范围收窄:从"解释整场战争"(一个可以写几十万字的话题)收窄为"三个关键事件";
- 格式指定:明确要求"列出",即条目式输出,而非长篇叙述;
- 信息密度指定:每个事件必须附带"日期 + 一句简短说明",限定了每条内容的深度。
再看一个贴近开发者的对比:
模糊版本:
帮我看看这段代码有什么问题。
具体版本:
以下函数在并发调用时会偶发数据错乱。请用编号列表指出:(1) 可能的竞态条件,(2) 每处的修复建议,(3) 修复后的完整代码。不要修改其他无关逻辑,不要讨论代码风格。
可见,"具体"= 明确任务边界 + 明确输出形式 + 明确回答深度 + 明确禁区。这四条写全,模型第一次输出就能达到可用水平。
五、从单轮对话到 AI Agent:具体性在 Agent 场景中的延伸
提示的精确性在 AI Agent 场景中会更加关键。Agent 与普通对话的本质区别在于它会主动执行动作——调用工具、读写文件、发起 API 请求、执行代码(参见路线图中的 agent-loop@Eih4eybuYB3C2So8K0AT3.md)。当指令模糊时,Agent 可能:
- 调用错误的工具:需求没说清楚该用搜索还是该用数据库查询,Agent 凭猜测选择;
- 执行多余的步骤:目标未限定,Agent 会把无关的候选动作也做一遍;
- 以错误的参数发起请求:未指定过滤条件、时间范围、输出字段,工具返回的数据自然对不上。
因此,在 Agent 的系统提示词(system prompt)与任务指令中,"具体化"应当落地为:
- 明确工具选择的判定条件:"当用户提供订单号时,直接调用订单查询工具;当用户只提供客户名时,先调用客户检索工具";
- 明确每一步动作的输入输出:"调用搜索工具时,关键词必须使用用户原话,且每次只搜索一个关键词";
- 明确停止条件:"拿到库存数据后立即停止调用工具,直接汇总结果,不要再发起其他查询"。
这一理念与 tool-definition@qakbxB8xe7Y8gejC5cZnK.md 中"工具定义本身就要写清楚参数与行为"的要求一脉相承:工具定义负责把"能做什么"写清楚,提示词负责把"要它做什么"写清楚,两者共同决定了 Agent 行为的确定性。
六、与提示工程其他原则的组合使用
"写具体"不是孤立技巧,它与 ai-agents 路线图提示工程板块中的其他原则组合使用效果最佳:
- 指定长度与格式:specify-length-format-etc@wwHHlEoPAx0TLxbtY6nMA.md 详细讲解了"120 字以内""用编号列表""列名与顺序""JSON/Markdown"等输出约束。把长度和格式写死,是"具体化"在输出维度上的直接落地,固定格式还能让下游程序或人工直接解析消费结果。
- 提供附加上下文:provide-additional-context@6I42CoeWX-kkFXTKAY7rw.md 主张把主题、目的、受众、语气、关键事实一次性给足,就像带新人一样给够背景——具体性是"怎么说",上下文是"给什么料"。
- 在提示中给示例:use-examples-in-your-prompt@yulzE4ZNLhXOgHhG7BtZQ.md 指出,放一两个"输入→期望输出"的样例,模型会直接模仿其模式。示例本质上是最具体的需求表达——与其描述一百遍"要表格",不如直接放一个两行三列的小表格。
- 使用专业术语:use-relevant-technical-terms@sUwdtOX550tSdceaeFPmF.md 强调用领域内精确词汇代替含糊描述,与"写具体"互为补充:术语解决"用什么词说",具体性解决"把要素说全",两者都能减少歧义、帮助模型检索到正确的知识。
- 迭代与测试:iterate-and-test-your-prompts@noTuUFnHSBzn7GKG9UZEi.md 把第一版提示当作草稿:运行、观察、一次只改一个变量(加一个示例、限一个长度、调一种语气)、再测再记。"写具体"不是一次到位的天赋,而是一轮轮改出来的习惯——每次迭代都朝"更具体"前进一格,直到输出清晰、正确、可复现。
七、可复用的"具体化"提示模板
把本文的原则打包成一个可直接套用的模板:
【任务】<一句话说清要产出什么> 【背景】<给出必要的上下文,一句话到三句话> 【受众】<答案给谁看,用什么深度和语气> 【格式】<列表 / 表格 / JSON / Markdown,必要时给出列名与顺序> 【长度】<字数上限或条数上限> 【必须包含】<关键数字、日期、来源、字段> 【不要包含】<禁区清单,逐条列明> 【示例】<可选:一个输入→期望输出的小样例>填写示例:
【任务】基于以下销售数据,找出营收下滑最严重的一个季度并给出三条可能原因。 【背景】数据为公司 2025 年四个季度的营收,单位万元。 【受众】面向销售总监的季度复盘摘要。 【格式】先给结论,再用编号列表列原因,每条原因不超过两行。 【长度】全文不超过 250 字。 【必须包含】下滑季度、同比下滑百分比、按季度数据。 【不要包含】不要给改进建议,不要展开行业分析。这套模板同时适用于普通对话与 Agent 任务:在 Agent 场景下,把"必须包含"换成"必须调用哪些工具、传入什么参数、何时停止"即可。
八、延伸阅读
以下内容均位于本仓库 ai-agents 路线图的提示工程板块,可与本文组合阅读:
- 提示工程是什么:what-is-prompt-engineering
- 提供附加上下文:provide-additional-context
- 指定长度与格式:specify-length-format-etc
- 在提示中使用示例:use-examples-in-your-prompt
- 使用相关专业术语:use-relevant-technical-terms
- 迭代并测试你的提示词:iterate-and-test-your-prompts
- Agent 主循环:agent-loop
- 工具定义:tool-definition
小结
把需求写具体,是提示工程中投入产出比最高的动作之一:先在提示开头声明目标、格式、限制、受众与排除项,再把数字、日期、来源等关键事实点名,最后用示例和模板把抽象描述变成可执行指令。它削减模型的猜测空间、过滤无关细节、减少追问轮次;而在 AI Agent 场景中,它直接决定工具选择、参数传递与停止条件是否正确。配合上下文、格式、示例、术语与迭代测试等相邻原则,你就可以把一段"碰运气的提示"打磨成稳定、可复现、可被 Agent 忠实执行的精确指令。
- 文档
- 教程
- 知识库
【免费下载链接】developer-roadmap
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
相关推荐
Stream What You Hear(SWYH)重写版 - Rust实现教程
Stream What You Hear(SWYH)重写版 Rust实现教程 项目介绍 SWYH rs 是一个基于 Rust 语言重新编写的“Stream Wh
Payload 登录时提示 "Unauthorized, you must be logged in to make this request" 怎么排查
Payload 登录时提示 "Unauthorized, you must be logged in to make this request" 怎么排查 在
后端CMSAwesome Claude Code 离线使用完整指南:断网也能 5 分钟跑起本地资源库
Awesome Claude Code 离线使用完整指南:断网也能 5 分钟跑起本地资源库 高铁上没有信号,机房做隔离测试,公司内网屏蔽外网——网络一断,依赖在
教程文档
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考