资讯动态

AI Agent提示工程实战:从模糊指令到结构化提示词的设计与调优

发布时间:2026/10/3 11:18:43 来源:尧图企业网站定制
1. 为什么同样的大模型别人用起来像天才你用起来像人工智障我刚开始接触 AI Agent 那会儿踩过一个特别典型的坑。当时想做一个自动整理会议纪要的小工具需求很明确把一段杂乱的会议记录丢给大模型让它输出结构化的待办事项。我信心满满地写下了第一版提示词大概就是“请帮我整理以下会议内容提取待办事项”。结果呢模型返回的东西不能说完全没用但基本没法直接用——有时候把讨论过程也当成待办列进去了有时候漏掉了关键的责任人和截止时间有时候格式每次都不一样我还得手动再整理一遍。后来我花了整整一个周末把同一段会议记录反复喂给模型前后改了三十多版提示词才终于让它稳定输出我想要的结构。这个过程让我彻底明白了一件事大模型的能力上限很高但你能不能把它用好几乎完全取决于你怎么跟它说话。提示词不是随便打几个字就完事的它本质上是你和模型之间的一份“接口协议”写得好不好直接决定了整个 AI Agent 的成败。这篇文章是“AI Agent 学习之路”系列的第二篇专门聊提示词和提示工程。如果你正在搭建自己的 AI Agent或者想让大模型在具体业务场景里真正干活那这篇内容就是写给你的。我会从底层逻辑讲起把提示词为什么有效、怎么设计、怎么调优、怎么避坑全部拆开揉碎讲清楚。不管你是刚入门的新手还是已经写过一些提示词但效果不稳定的朋友都能从这里拿到可以直接用的方法和思路。2. 提示词到底在做什么从“下指令”到“设计上下文”2.1 大模型不是搜索引擎它是在“续写”很多人第一次用大模型的时候潜意识里把它当成了一个更聪明的搜索引擎——输入关键词期待它返回准确答案。但大模型的工作机制完全不是这样。它本质上是一个“下一个词预测器”你给它一段文字它根据训练时学到的模式预测接下来最可能出现的词是什么然后一个词一个词地往外蹦。这个机制决定了提示词的核心作用你不是在“搜索”你是在“设定上下文”让模型在这个上下文里续写出你想要的内容。举个生活化的类比大模型就像一个知识渊博但完全没有主动性的实习生你告诉他“帮我写个方案”他可能写出一份跟你预期完全不同的东西但如果你告诉他“帮我写一份面向中小企业的 CRM 选型方案重点对比三个产品的价格和核心功能用表格呈现控制在 800 字以内”他就能给你一份相当靠谱的初稿。所以提示词的第一层认知就是你给的信息越具体、越结构化、越有约束模型的输出就越接近你的预期。这不是模型“笨”而是它的工作方式决定了它需要足够清晰的上下文才能发挥出真正的能力。2.2 提示工程的本质是“信息压缩与意图对齐”提示工程这个词听起来很玄但说白了就是一件事把你脑子里的需求翻译成模型能准确理解的自然语言指令。这个翻译过程之所以难是因为人和模型之间存在巨大的“信息不对称”。你脑子里想的是“帮我分析一下这份销售数据找出问题”但你真正想要的可能是一份包含同比环比对比、异常值标注、原因推测和改进建议的结构化报告。模型不知道你心里那些没说出口的期待它只能根据你写出来的文字去猜。提示工程要做的就是把这些隐含的期待显性化、结构化、可操作化。我习惯把提示工程分成三个层次来理解。第一个层次是“指令清晰”就是让模型知道你要它做什么这是最基础的。第二个层次是“上下文充分”就是给模型足够的背景信息让它知道在什么场景下、面向什么对象、达到什么标准。第三个层次是“输出可控”就是通过格式约束、示例引导、分步推理等方式让模型的输出稳定、可预期、可直接使用。大部分人在第一个层次就卡住了写出来的提示词模棱两可模型只能靠猜而真正高效的 AI Agent提示词往往在第二和第三个层次上下了大量功夫。2.3 一个真实的对比模糊提示词 vs 结构化提示词为了让你直观感受到差距我拿一个实际场景来对比。假设你要让模型帮你从一段用户反馈里提取关键信息。模糊版提示词是这样的请分析以下用户反馈提取重要信息。结构化版提示词是这样的你是一名产品经理助理需要从用户反馈中提取结构化信息。请按照以下要求处理识别反馈中提到的具体问题每个问题单独列出判断问题类型从以下选项中选择功能缺陷、体验问题、性能问题、建议需求提取用户提到的具体场景或操作步骤标注情绪倾向正面、中性、负面输出格式为 JSON 数组每个元素包含 problem、type、scenario、sentiment 四个字段用户反馈内容如下 [粘贴反馈内容]我实测过这两个版本模糊版每次输出的格式都不一样有时候是段落有时候是列表字段也时多时少结构化版基本能稳定输出可解析的 JSON直接丢给下游程序处理就行。这就是提示工程的价值——它不是让模型变聪明而是让模型的输出变得可用。3. 提示词设计的核心要素一份可以直接抄的框架3.1 角色设定给模型一个“身份锚点”角色设定是提示词里最容易被低估的部分。很多人觉得“你是一个专业的分析师”这种话是废话模型又不会真的变成分析师。但实际上角色设定是在给模型提供一个“身份锚点”帮助它激活训练数据中与这个身份相关的知识和表达模式。我做过一个测试同一个问题“请解释一下什么是复利”用两种不同的角色设定来问。第一种是直接问模型给了一个比较学术化的定义。第二种是“你是一位给小学生讲理财课的老师请用孩子能听懂的方式解释复利”模型立刻换了一种表达方式用了“钱生钱”“利息也会生利息”这样的说法还举了存钱罐的例子。角色设定的关键不是写得多花哨而是要跟你的任务场景匹配。做代码审查就用“资深工程师”做文案润色就用“有十年经验的编辑”做数据分析就用“商业分析师”。角色越具体模型激活的知识模式就越精准。但要注意一点角色设定不要跟任务本身冲突。比如你让模型扮演“一个说话随意的朋友”然后又要求它输出严格的 JSON 格式这就自相矛盾了。3.2 任务描述把“做什么”拆到不能再拆任务描述是提示词的核心也是最容易出问题的地方。我见过太多人写提示词的时候脑子里想的是 A写出来的是 B模型理解成 C最后输出的是 D。避免这种偏差的唯一办法就是把任务拆到不能再拆。举个例子如果你想让模型帮你写一封客户跟进邮件不要只写“帮我写一封跟进邮件”。你可以拆成邮件目的是什么确认需求、推进签约、维护关系、收件人是谁决策人、技术负责人、采购、语气风格是什么正式、亲切、简洁、需要包含哪些信息上次沟通要点、本次跟进事项、下一步行动建议、字数限制是多少。把这些都写清楚模型输出的邮件基本就能直接用了。我自己的习惯是用“动词对象标准”的结构来写任务描述。比如“提取动词用户反馈中的问题点对象每个问题点包含问题描述、影响范围和优先级标准”。这种写法的好处是模型能清楚地知道你要它做什么、做到什么程度。3.3 上下文注入让模型知道“在什么情况下做”上下文是提示词里最容易被忽略的部分但它往往决定了输出的质量上限。所谓上下文就是跟任务相关的背景信息、约束条件、参考材料。模型不知道你的业务背景、不知道你的用户画像、不知道你的行业术语你不告诉它它就只能靠通用知识去猜。上下文注入有几个常用的方式。第一种是直接粘贴相关材料比如你要让模型分析一份合同就把合同内容贴进去。第二种是提供背景说明比如“我们的产品是一款面向中小企业的 SaaS 工具主要解决报销流程繁琐的问题”。第三种是给出约束条件比如“输出内容不能超过 500 字”“不能使用专业术语”“必须引用原文中的具体条款”。这里有个实操心得上下文不是越多越好。模型的上下文窗口是有限的你塞太多无关信息进去反而会稀释关键信息的权重。我一般会把上下文分成“必须知道”和“最好知道”两类必须知道的放在前面最好知道的放在后面如果篇幅不够就砍掉后面的。3.4 输出格式约束让结果“开箱即用”输出格式约束是提示工程里最实用的技巧之一。如果你只是自己看看格式随意一点没关系但如果你要把模型的输出接入下游程序或者要给团队成员使用那格式就必须稳定可控。最常用的格式约束方式是 JSON。你可以在提示词里明确写出 JSON 的字段名、字段类型、嵌套结构模型基本能按照你的要求输出。比如{ summary: 一句话总结, key_points: [要点1, 要点2], sentiment: positive/neutral/negative, confidence: 0.85 }除了 JSONMarkdown 表格、有序列表、特定分隔符也是常用的格式约束方式。关键是要在提示词里把格式规则写清楚最好给一个示例。模型对示例的敏感度很高你给一个格式示例它就能照着模仿。3.5 示例引导少样本学习的威力示例引导也就是常说的 few-shot prompting是我认为性价比最高的提示词技巧。你不需要解释太多只需要给模型两三个“输入-输出”的示例它就能理解你想要什么。比如你要做一个情感分类的任务与其写一大堆规则说明不如直接给示例输入这个产品太好用了强烈推荐 输出正面输入还行吧没什么特别的。 输出中性输入质量太差了用了两天就坏了。 输出负面输入物流很快但包装有点破损。 输出模型看到前面的示例自然就知道该输出什么。示例引导的关键是示例要典型、要覆盖边界情况、格式要一致。我一般会准备三到五个示例其中至少一个是有一定难度的边界案例这样模型的泛化能力会更好。4. 进阶技巧让提示词从“能用”到“好用”4.1 思维链让模型“先想再答”思维链Chain of Thought是我在复杂任务里最常用的技巧。它的核心思想很简单不要让模型直接给答案而是让它先把推理过程写出来再给出结论。这样做的好处是模型在推理过程中会激活更多的相关知识减少“拍脑袋”式的错误。具体操作就是在提示词里加一句“请一步一步思考”或者“请先分析再给出结论”。比如做数学题的时候直接问“123 乘以 456 等于多少”模型可能会算错但如果你说“请一步一步计算 123 乘以 456先算个位再算十位”它就能算对。在 AI Agent 的场景里思维链特别适合那些需要多步推理的任务比如故障排查、方案对比、风险评估。你可以让模型先列出所有可能的原因再逐一排除最后给出最可能的结论。这种“先发散再收敛”的方式比直接要答案靠谱得多。4.2 分步拆解把大象装进冰箱复杂任务直接丢给模型效果往往不好。更好的做法是把任务拆成多个步骤每一步只让模型做一件小事然后把结果串起来。这就是 AI Agent 里常说的“任务分解”。举个例子你要让模型帮你写一份竞品分析报告。直接说“帮我写一份竞品分析报告”模型可能会给你一篇泛泛而谈的东西。但如果你拆成几步第一步列出需要分析的竞品清单第二步针对每个竞品提取其核心功能、定价策略、目标用户第三步对比这些竞品的优劣势第四步给出差异化建议。每一步单独执行最后汇总输出的质量会高很多。这种分步拆解的思路在搭建 AI Agent 的时候尤其重要。因为 Agent 的本质就是“让模型自己决定下一步做什么”而提示词就是告诉它“每一步该怎么做”的操作手册。4.3 自我检查让模型自己挑自己的毛病自我检查是我最近半年用得越来越多的技巧。它的思路是让模型先输出一版结果然后让它自己检查这版结果有没有问题最后根据检查结果进行修正。具体操作可以是在提示词里加一段“请先给出你的答案然后检查这个答案是否满足以下条件是否遗漏了关键信息、是否有逻辑矛盾、是否符合格式要求。如果发现问题请给出修正后的版本。”这个技巧在代码生成、文案撰写、数据分析等场景里特别有效。模型第一次输出可能有一些小毛病但经过自我检查后质量会明显提升。而且这个过程不需要你手动干预完全可以在一次调用里完成。4.4 温度参数与提示词的配合温度temperature是模型的一个关键参数它控制输出的随机性。温度越低输出越确定、越保守温度越高输出越多样、越有创意。很多人只关注提示词忽略了温度参数的影响结果同样的提示词在不同温度下表现差异很大。我的经验是做数据提取、格式转换、代码生成这类需要精确的任务温度调到 0 到 0.3 之间做创意写作、头脑风暴、方案策划这类需要发散的场景温度调到 0.7 到 1.0 之间。提示词里也可以配合温度做一些设计比如低温时提示词可以更简洁因为模型不会乱发挥高温时提示词要加更多约束防止模型跑偏。5. 实操过程从零搭建一个稳定的提示词工作流5.1 需求分析先想清楚你要什么在写提示词之前我建议你先花十分钟把需求想清楚。具体来说回答以下几个问题这个任务的输入是什么用户输入、数据库查询结果、文档内容输出是什么一段文字、一个 JSON、一个文件输出的使用者是谁你自己、下游程序、终端用户成功的标准是什么准确率、格式合规率、用户满意度这些问题看起来简单但很多人跳过这一步直接写提示词结果写到一半发现方向不对又得推倒重来。我自己的习惯是拿一张纸把输入、输出、约束、示例都画出来形成一个“提示词规格说明书”然后再动手写。5.2 初版编写先跑通再优化初版提示词不要追求完美先把基本框架搭起来能跑通就行。我一般会按照“角色-任务-上下文-格式-示例”的结构写第一版然后拿几条测试数据跑一下看看输出大概是什么样子。这个阶段最重要的是观察模型的“默认行为”。你不加约束的时候模型会怎么输出它会自动补充哪些信息它会忽略哪些要求这些观察结果会告诉你哪些地方需要加强约束哪些地方可以放手让模型发挥。5.3 迭代调优每次只改一个变量迭代调优是提示工程里最耗时的环节但也是最关键的。我的经验是每次只改一个变量然后对比输出变化。如果你一次改了好几个地方输出变好了你也不知道是哪个改动起了作用输出变差了你也不知道是哪个改动导致的。我一般会准备一个测试集包含十到二十条代表性输入覆盖正常情况、边界情况、异常情况。每次修改提示词后用同一个测试集跑一遍记录输出质量的变化。这个过程可能需要重复十几次甚至几十次但每次迭代都会让你对模型的行为有更深的理解。5.4 版本管理别把好用的版本弄丢了提示词是需要版本管理的。我吃过这个亏调了半天终于调出一个效果很好的版本结果第二天又改了几版发现越改越差想回到之前那个版本却找不到了。现在我养成了一个习惯每次提示词有重大改进就保存一个版本命名规则是“任务名_版本号_日期”比如“会议纪要提取_v3_20250115”。同时在版本说明里记录这次改了什么、为什么改、效果如何。这样即使后面改坏了也能快速回滚到之前的版本。5.5 效果评估怎么判断提示词好不好评估提示词的效果不能只看一两个案例要有系统的评估方法。我常用的评估维度包括准确率输出是否正确、格式合规率输出是否符合格式要求、稳定性同样的输入是否每次输出都差不多、鲁棒性异常输入是否能正确处理。对于简单任务人工抽查就可以了对于复杂任务我建议建一个评估脚本自动跑测试集并统计各项指标。这样每次修改提示词后都能快速看到效果变化而不是凭感觉判断。6. 常见问题与排查技巧实录6.1 模型不按格式输出怎么办这是最常见的问题之一。你明明在提示词里写了要输出 JSON模型却给你返回了一段带解释的文字。遇到这种情况我一般按以下顺序排查首先检查格式要求是否足够明确。不要只说“输出 JSON”要给出完整的字段定义和示例。其次检查提示词里是否有冲突的要求。比如你让模型“详细解释每一步”又要求它“只输出 JSON”模型可能会困惑。最后可以在提示词末尾加一句“请直接输出 JSON不要添加任何额外说明”用强指令来约束。如果还是不行可以试试在提示词开头就给出格式示例让模型一开始就进入“格式模式”。或者用“输出必须以 { 开头以 } 结尾”这样的硬约束。6.2 模型输出太啰嗦或太简略怎么办输出长度控制是另一个高频问题。模型有时候会过度解释有时候又惜字如金。控制长度的方法有几个直接指定字数范围比如“控制在 200 字以内”指定输出结构比如“只输出三个要点每个要点不超过 50 字”用示例引导给一个简洁的示例让模型模仿。如果模型输出太简略可以在提示词里加“请详细说明”“请给出具体例子”“请分步骤解释”。如果模型输出太啰嗦可以加“请精简表达”“去掉客套话”“只保留核心信息”。6.3 模型“幻觉”问题怎么缓解幻觉是指模型编造不存在的信息。在 AI Agent 场景里这个问题特别危险因为 Agent 可能会根据错误信息做出错误决策。缓解幻觉的方法有几个一是提供充分的上下文让模型有据可依二是在提示词里明确要求“如果信息不足请说明无法确定不要编造”三是用思维链让模型把推理过程写出来方便你检查哪一步出了问题四是设置验证环节让另一个模型或规则来检查输出的真实性。6.4 提示词被标记为违规怎么办有时候你写了一个完全正常的提示词却收到“提示词被标记为潜在违规”的报错。这种情况通常是因为提示词里包含了一些敏感词或敏感模式触发了平台的安全机制。遇到这种情况先检查提示词里有没有可能引起误会的词汇尝试换一种表达方式。如果确认内容没问题可以尝试拆分提示词把敏感部分单独处理或者调整措辞重新提交。6.5 常见问题速查表问题现象可能原因排查方向解决技巧输出格式不稳定格式约束不明确检查是否有完整字段定义和示例在开头给出格式示例末尾加强指令输出内容太泛任务描述太模糊检查是否缺少具体要求和约束用“动词对象标准”结构重写任务模型忽略部分要求提示词太长或要求冲突检查是否有矛盾指令拆分任务分步执行输出长度不可控缺少长度约束检查是否指定字数或结构给出字数范围或输出结构示例模型编造信息上下文不足检查是否提供了足够背景要求模型在信息不足时明确说明同样输入输出差异大温度参数过高检查温度设置精确任务调低温度至 0-0.3提示词被标记违规触发安全机制检查敏感词或表达方式调整措辞拆分提示词7. 我在实际项目中积累的几条硬核经验7.1 提示词不是越长越好但关键信息一个都不能少刚开始写提示词的时候我总觉得写得越多越好恨不得把所有的要求都塞进去。后来发现提示词太长反而会让模型“抓不住重点”。模型处理长文本的时候注意力是会被稀释的你写了二十条要求它可能只记住了前五条。现在我写提示词的原则是结构清晰、重点突出、该省的省、该细的细。角色设定一句话就够了任务描述要具体但不要啰嗦上下文只放跟任务直接相关的信息格式约束和示例要完整。整体长度控制在模型上下文窗口的 30% 以内留出足够的空间给实际输入内容。7.2 用“反向提示”排除你不想要的结果除了告诉模型“要做什么”告诉它“不要做什么”同样重要。我习惯在提示词里加一段“禁止事项”比如“不要使用专业术语”“不要输出与主题无关的内容”“不要编造数据”“不要使用第一人称”。这些反向约束能有效减少模型跑偏的概率。反向提示的写法要注意不要用“不要”开头太多否则模型可能会被负面指令搞晕。更好的方式是用正面表达替代负面表达比如把“不要写得太长”改成“控制在 300 字以内”把“不要用专业术语”改成“用日常语言表达”。7.3 给模型“思考时间”比催它快答更有效很多人用模型的时候很着急希望它秒回。但实际上对于复杂任务给模型足够的“思考时间”反而能提升质量。这里的“思考时间”不是指真的等它而是在提示词里引导它先分析再回答。我常用的一个技巧是在提示词末尾加一句“请先仔细分析上述信息确认理解无误后再给出答案。”这句话看起来简单但能显著减少模型“抢答”导致的错误。在 AI Agent 的多步任务里我还会在每一步之间加一个“确认环节”让模型确认上一步的输出没问题后再进入下一步。7.4 提示词要跟着模型版本更新这是一个容易被忽略的点你调好的提示词可能在模型升级后就失效了。不同版本的模型对提示词的敏感度不一样有的版本更听话有的版本更“有个性”。我遇到过好几次模型小版本更新后之前调好的提示词输出质量明显下降又得重新调。所以我的建议是每次模型版本更新后用你的测试集重新跑一遍看看效果有没有变化。如果有变化及时调整提示词。另外不要把提示词写得太“依赖”某个特定模型的特性尽量用通用的表达方式这样换模型的时候迁移成本会低一些。7.5 建立自己的提示词库别每次都从零开始提示工程做久了你会发现很多任务是相似的。比如“提取信息”“分类打标”“格式转换”“内容生成”这些任务的提示词框架是可以复用的。我建议你建一个自己的提示词库把常用的提示词模板保存下来下次遇到类似任务的时候直接改改就能用。我的提示词库按任务类型分类每个模板包含角色设定、任务描述、格式约束、示例这几个部分。用的时候只需要替换具体内容效率能提升好几倍。而且随着你积累的模板越来越多你会发现自己对提示词的理解也在不断加深。8. 提示工程在 AI Agent 里的特殊考量8.1 Agent 的提示词是“动态”的普通场景下的提示词是静态的你写好了就固定不变。但 AI Agent 的提示词往往是动态的需要根据上下文、历史对话、工具返回结果来实时调整。这就要求你在设计提示词的时候预留出“变量插槽”让程序可以在运行时把具体信息填进去。比如一个客服 Agent 的提示词可能是这样的“你是一名客服助手当前用户是 {user_name}他的订单号是 {order_id}订单状态是 {order_status}。请根据这些信息回答用户的问题。”这里的 {user_name}、{order_id}、{order_status} 就是变量插槽程序在调用模型之前会把实际值填进去。8.2 工具调用的提示词设计AI Agent 经常需要调用外部工具比如搜索、计算、数据库查询。工具调用的提示词设计有两个关键点一是让模型知道有哪些工具可用、每个工具是干什么的二是让模型知道什么时候该调用工具、什么时候该直接回答。我一般会在提示词里用列表的形式列出所有可用工具每个工具包含名称、功能描述、参数说明。然后加一段决策规则“如果问题需要实时信息请调用搜索工具如果问题需要计算请调用计算工具如果问题可以直接回答请不要调用工具。”这样模型就能根据问题类型自主决策。8.3 多轮对话中的提示词管理在多轮对话场景里提示词管理会变得更复杂。因为每一轮对话都会产生新的上下文如果全部塞进提示词里很快就会超出模型的上下文窗口。我的做法是保留系统提示词不变对历史对话进行摘要压缩只保留关键信息。同时在每一轮对话开始时把当前的任务状态和关键约束重新强调一遍防止模型“忘记”最初的要求。8.4 并发场景下的提示词稳定性当 AI Agent 需要处理大量并发请求时提示词的稳定性就变得特别重要。同样的提示词在高并发下可能会出现输出不一致的情况。这时候除了调低温度参数还可以在提示词里加入更强的格式约束和自检环节确保每次输出都符合预期。另外建议对关键任务做输出校验如果格式不对就自动重试这样能大幅提升整体稳定性。9. 从提示词到提示工程一个持续迭代的过程写了这么多其实核心就一句话提示工程不是一锤子买卖而是一个持续迭代的过程。你今天调好的提示词明天可能因为模型更新、业务变化、数据分布变化而失效。真正重要的不是某一版提示词写得多好而是你有一套方法能快速定位问题、快速迭代、快速验证。我自己的习惯是每周花半个小时回顾一下这周用到的提示词看看哪些效果好、哪些效果差、有没有可以复用的模式。这个习惯坚持了半年多我的提示词库从最初的几个模板扩展到了几十个覆盖了大部分常见任务。现在遇到新任务我基本能在半小时内写出一个可用的初版提示词然后花一两个小时调优就能达到生产可用的水平。如果你也在做 AI Agent 相关的事情我的建议是别急着追求“完美提示词”先跑起来然后在实践中不断打磨。每一次失败都是一次学习机会每一次调优都会让你对模型的行为有更深的理解。提示工程这门手艺说到底就是“跟模型打交道”的经验积累做得多了自然就有感觉了。最后分享一个我最近在用的技巧当你觉得提示词怎么写都不对的时候试着换一个角度把自己想象成模型看看这段提示词如果给一个完全不了解背景的人看他能不能准确理解你的意图。如果人看了都迷糊模型大概率也会迷糊。这个“换位思考”的方法帮我解决了不少棘手的提示词问题你也可以试试。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑