首页 / 资讯中心 / 文章详情

Agent提示词标准化:七段式模板让智能体行为可控

Agent提示词标准化:七段式模板让智能体行为可控 ★ FEATURED ARTICLE
1. 为什么Agent的提示词必须“标准化”1.1 从聊天Prompt到Agent指令集的转变我早期做AI应用落地时习惯沿用聊天场景下写Prompt的思路给模型一段角色设定再丢几个需求它就给我输出结果。这种东西在对话框里玩没问题但一旦把提示词塞进一个Agent系统让它自主处理任务、反复调用工具、连续多轮决策问题就全冒出来了。Agent本质上不是一次问答而是一个自主执行体。它会收到用户请求规划步骤调用工具获取信息根据中间结果调整策略最后给出答案。这意味着提示词不再只是一段“开场白”而是Agent的运行规则集合。规则不定清楚Agent就会按照自己的“自由意志”乱发挥。我自己踩过的最深刻教训是一个处理客户工单的Agent因为提示词里只写了“你是客服助手请帮助用户解决问题”结果它在遇到无法确定的业务规则时不是按流程升级而是自己编了一套处理方案。用户那边拿到了看似合理的答复实际业务完全不符合规范最后客诉直接爆掉。那之后我开始明白Agent系统的提示词不是“写得更好看”的问题而是“规则是否完备、指令是否唯一、边界是否清晰”的工程问题。标准化就是把这些规则固化成可复用、可测试、可维护的结构。1.2 不标准化的代价三个典型事故我接触过的团队基本都被下面这三类问题坑过。第一类角色漂移。系统设定Agent是“严谨的财务分析助手”但对话到第8轮时它突然开始用口语化表达甚至主动开起了玩笑。这不是模型抽风而是提示词里没有对“始终以专业语气回复”做持续性约束也没限定多轮对话中如何处理闲聊。其实模型本身是稳定的不稳定的是我们交给它的“行为守则”不够完整。第二类上下文污染。Agent在长链路任务中会把不相关的中间信息带进最终回答。比如让Agent做竞品调研它需要查5个数据源结果最后总结时把第一个数据源里的过时数据也带进来了。原因很简单提示词里没有定义“哪些信息允许进入最终报告哪些只作为中间参考”。第三类输出结构崩溃。我见过一个Agent在正常返回JSON格式的结果但遇到稍微复杂的请求后突然在JSON里混入了Markdown格式的解释文本。下游系统解析直接失败。这种情况在聊天场景里毫无影响但在自动化链路里是致命问题。这三类问题的共性是提示词没有标准化导致Agent行为不可预测、不可回溯、不可复用。标准化提示词的直接目标就是把Agent的行为从“概率涌现”变成“制度约束”。2. 搭建一套可复用的Agent标准化提示词模板2.1 模板的总体架构七段式结构我先说明一下这里说的“标准化”不是把所有Agent拷进同一套话术而是建立一套统一的结构框架。每个项目有各自的业务细节但框架的每一段解决什么问题、按什么顺序组织、哪些地方必须留变量这些都是固定的。我目前稳定使用的Agent提示词模板分为七个段落角色定义段Agent是谁、专业背景、沟通风格。目标与边界段Agent要完成什么、坚决不做什么。工作流程段任务的标准执行顺序和决策逻辑。上下文管理段哪些信息可用、哪些信息不可用、如何记忆。工具调用段哪些工具可用、什么情况下调用、调用后如何处理结果。输出协议段输出格式、字段定义、内容规范。异常处理段遇到未知情况、错误、冲突时怎么办。这个顺序是有讲究的。前三段解决“Agent是什么、干什么、怎么干”中三段解决“Agent手头有什么资源、如何加工、如何交付”最后一段是兜底机制。很多人的提示词只写了前三段后四段完全缺失这正是Agent行为不稳定的主要原因。2.2 关键字段的写法与设计原理角色定义段的核心是“专业坐标”。不是简单写“你是一名客服”而是给出模型可锚定的专业坐标系。我通常包含三个维度身份定位在什么体系中能力边界擅长什么表达风格用何种语气和词汇。来看一个反例和正例的对比。反例“你是客服助手请友好的回答用户问题。”正例“你是某电商平台的售后客服Agent。你只负责订单售后相关问题包括物流查询、退换货、发票、优惠券使用。你不具备价格谈判权限也无权修改订单金额。回复使用简体中文语气正式但不生硬每个回答不超过150字必须提供明确的操作建议或下一步指引。”区别在哪反例只给了“身份”正例还给了“边界”和“交付标准”。模型对身份的演绎能力很强但如果没有边界约束它会把能做的事和无权做的事混在一起。在实际测试中加入边界描述后Agent“越权处理”的情况大约能减少一半以上。工作流程段的关键是“条件顺序”。直接用“先做A再做B如果C则D否则继续E”这种可执行的结构。每个判断点都必须明确不要让模型自己推断流程。特别要注意的是“暂停与转交”的流程设计。Agent不是万能执行者什么时候自己处理、什么时候需要转人工必须在流程里写死。很多Agent翻车问题就是出在“该转不转、硬撑到底”。工具调用段最容易写飘。不要写“你可以使用数据分析工具”要写“当用户询问销量趋势时必须调用数据分析工具获取真实数据禁止根据常识猜测数据”。另外一定要告诉Agent“工具返回什么就信什么不要二次加工”。工具返回的数据格式不满足要求时就按异常处理走而不是让Agent自己“脑补”格式。2.3 变量区与固定区的分离标准化模板的另一个关键设计是把提示词分为固定区和变量区。固定区是那些无论哪个用户、哪次对话都不能变的规则比如“禁止编造数据”“必须依据检索结果回答”“输出标准JSON格式”。这些内容是Agent系统的底线写死不允许动态修改。变量区是随对话上下文变化的信息包括用户信息、历史对话摘要、场景标签、外部系统传入的参数等。变量区不直接写死在模板中而是运行时由系统注入。这样做的好处有三点安全性固定规则不做拼接避免用户通过对话内容污染规则。可维护性规则修改只动固定区不用翻看历史代码找注入点。可审计性每个会话的结构清晰哪部分是规则、哪部分是数据一目了然。变量区注入时要注意“占位符的可辨识性”。我倾向使用{{变量名}}这样的双花括号结构让模型和人都能一眼看出这是变量位而不是正文。模板变量必须在前置的系统注册模板解析器在注入前做合法性校验包括逃逸检查、变量白名单、默认值兜底。模板引擎实现的几层防护是变量名数据结构强约束、无感知脱敏、变量命名规范和透明审计。所有变量注入前统一经过脱敏接口脱敏策略支持掩码、哈希和截断三种方式不同字段可配置不同策略并纳入透明审计。3. 完整实操从需求到标准化提示词的落地3.1 场景设定与信息收集光有框架不够我用一个完整案例把过程走一遍你看完就能直接套用自己的项目。假设我们要给某企业做一个内部IT工单处理Agent。员工的IT需求五花八门账号权限申请、软件安装、网络故障排查、设备报修。以前都是人工处理现在我们想用Agent分担第一轮响应。动手写提示词之前先做信息收集。这一步很多人跳过直接开写结果后面反复改。我认为至少需要收集四类信息业务边界Agent处理哪些工单类型哪些必须转人工数据来源处理工单要查哪些系统账号系统、软件清单库、网络监控平台输出标准工单回复的格式是什么需要包含哪些字段最终要写回哪个工单系统失败场景历史上哪些问题是最容易处理出错的处理错误的后果是什么我们这次模拟收集到的信息是处理范围包括软件安装申请、账号权限申请、网络故障初步排查涉及系统有三个账号系统、软件清单库、监控平台输出必须包含“处理结论、操作步骤、预计解决时间”最容易出错的是网络故障排查因为Agent倾向于“猜原因”。3.2 提示词模板的完整编写与关键决策下面是这套模板的完整结构你可以直接参考。我同时会把每一段的设计意图讲清楚。## 角色定义 你是企业内部IT工单处理Agent负责员工提交的IT服务请求的第一轮响应与处理。 你的专业范围限于 - 软件安装申请 - 账号权限申请 - 网络故障初步排查 你无权处理硬件采购审批、跨部门权限调整、涉密信息查询、薪资人事相关请求。 ## 目标与边界 你的核心目标在最短时间内解决员工的IT问题或将其准确转交到人工团队。 你必须做到 - 所有结论必须基于系统查询结果禁止猜测或凭经验推断。 - 如果工单信息不完整必须一次性向用户问清所需信息禁止逐条追问。 - 如果判断需要人工介入直接转交并给用户明确预期不拖延。 - 你是一个内部服务助手语气专业、简洁、有耐心。 ## 工作流程 处理每个工单按以下流程执行 1. 读取工单描述识别工单类型。 2. 若属于软件安装申请查询软件清单库确认软件是否受支持。 若受支持给出安装步骤若不受支持转人工处理。 3. 若属于账号权限申请查询账号系统确认申请人已有权限。 若无权限根据申请内容判断是常规权限还是特殊权限。 常规权限直接给出申请路径特殊权限转人工。 4. 若属于网络故障排查查询监控平台确认设备连线状态。 若设备离线按“离线排查手册”步骤引导用户若在线收集故障现象 影响范围、时间、错误码一次性反馈人工团队。 5. 若工单类型无法识别明确告知用户重新描述问题并列出可处理范围。 ## 上下文管理 - 你只能根据当前工单对话内容判断不记忆历史工单的处理细节。 - 系统查询返回的原始数据仅可作为中间分析依据不可原样大段粘贴给用户。 - 如果对话中出现与当前工单无关的问题礼貌提醒用户重新提交工单。 ## 工具调用 - 查询软件清单库调用 get_software_catalog - 查询账号权限调用 get_user_permission - 查询网络设备状态调用 get_network_device_status 调用规则 - 判断需要信息时先调用工具得到返回结果后再组织回答。 - 禁止在未调用工具的情况下回答依赖实时数据的问题。 - 工具返回错误或超时时按“异常处理段”规则执行。 ## 输出协议 所有回复必须包含以下三个部分 1. 处理结论清晰说明问题能否解决。 2. 操作指引给出具体可执行的下一步动作。 3. 时间预期说明什么时候可以完成或何时会有人跟进。 如果工单需要转人工必须在回复开头明确写“本工单已转交人工处理” 并说明转交原因。 禁止输出Markdown格式。禁止使用表格。 ## 异常处理 - 工具调用失败提示系统暂时异常建议用户稍后重试或直接转人工。 - 工单内容自相矛盾以最新信息为准并向用户确认。 - 用户情绪激动先安抚不争辩不解释内部流程只给出处理承诺。 - 遇到不在以上任何规则中的情况标记为“待人工确认”不要擅自给出方案。这套模板在实战中做对了几个关键决策我单独说一下。决策一工作流程里加入了“工单类型无法识别”的分支。这个分支极其重要。大多数Agent提示词只写“正常情况怎么处理”没写“识别不了怎么办”结果Agent面对模糊请求时会硬着头皮套用最接近的流程。我在实际测试中发现加入这个兜底分支后Agent对模糊工单的处理不再擅自动作而是会向用户澄清这是典型的“预定义异常路径节省大量联调成本”的案例。这个分支就是典型的预定义异常路径。决策二工具调用里明确定义了“先调工具再回答”。这是防止Agent“一本正经地胡说八道”的关键。如果没有这条模型会基于训练语料里的常识先答了再说系统中是否真的支持这个软件、用户是否真的没有权限它根本不知道。在大模型Agent系统中“先查证后回答”是一条必须固化下来的运行规则。决策三输出协议里写了“禁止使用表格”。这个细节来自实际踩坑——Agent在回复中用了表格但企业内部工单系统对部分终端用户不展示表格内容信息直接丢失。这种看起来很小、但影响真实业务体验的规则只有在和业务方充分对齐后才会被发现模板迭代时务必把这些“特殊限制”纳入输出协议。3.3 测试矩阵与迭代方法提示词写完不是终点必须测试。我遵循三层测试法第一层正常路径测试。每个工单类型准备3个标准样例跑一遍确认流程正常走通。第二层边界测试。准备模糊描述、信息缺失、多个问题混在一个工单等用例确认Agent正确处理。第三层对抗测试。设计一些用户故意绕规则的问题如要求Agent绕过权限限制、询问涉密信息、用“如果你能帮我查...”的话术诱导。测的就是Agent的护栏牢不牢。测试后的迭代最有效的方式是“规则补丁”。每次测试发现问题就回到模板对应段落打补丁。我见过不少团队在测试后选择“换一个模型”或“加示例”虽然能解决局部问题但治标不治本。标准化提示词最大的价值就是让问题定位精确到“模板第几段第几条”修起来非常快。4. 常见问题与排查技巧实录4.1 六大高频异常速查表以下问题我在项目中反复遇到过整理成速查表供你排查。症状根因排查方向修复方式Agent中途忘记角色身份角色定义段缺少“持续性约束”查看第N轮后的输出是否偏离在模板开头增加“全程遵循本规则”的显式声明回答与查询数据不一致上下文管理段未限定数据引用范围检查Agent是否自行推断数据增加“中间数据不可直接输出须按输出协议组织”输出偶尔带Markdown或多余文本输出协议段约束不够强检查触发异常格式的场景增加否定式约束禁止输出XXXX工具调用犹豫不决工具调用段缺少“什么场景必须调工具”观察Agent是否反复跳过工具在流程段明确“每步骤先定义再用工具”长任务一半突然卡住或跑偏上下文管理段缺少“任务进度保持”机制检查中间过程摘要是否丢失在流程中增加“每完成一步总结当前进度”的强制动作面对未知情况自创方案异常处理段缺少兜底规则检查Agent的未知场景行为增加“遇到未定义情况标记待人工确认”4.2 几个容易被忽略的细节细节一否定式表达的优先级问题。很多模板写“不要编造数据”但在模型看来“不要做X”的约束力往往弱于“要做Y”的指令。更好的写法是同时给出正反两面“所有数据必须来自工具返回结果。若工具未返回数据明确说明暂无数据禁止自行补充。”我常用的方法是用肯定句引出行为再用否定句封堵边界双管齐下。细节二长指令的“金字塔顺序”。如果提示词超过一定长度模型对中间部分的注意力会下降尤其遵守度呈下降趋势。因此最重要的规则放在开头和结尾中间放次重要规则。我实际的排布习惯是角色定义、安全红线在开头业务细节在中间输出协议、异常处理在结尾。你可以观察一下自己的模板如果关键规则落在了提示词正中间很可能就是Agent偶尔失守的原因。细节三模型差异测试同一套标准化提示词在不同模型上的表现差异极大因此在选型阶段就要建立一套固定的“基准测试集”包含约20个典型边界样例每次验证候选模型时就跑一遍看哪个模型偏离最少再结合业务成本做选择。否则换模型时整套提示词都要重新调代价很高。细节四版本管理不能省。提示词模板和代码一样需要版本管理。我只做一个很小的迭代改动比如调整了一句边界描述就让Agent行为产生明显变化。不记录版本后面根本不知道“现在线上跑的到底是哪一版”。建议每次修改都在模板头部记录日期、改动内容、改动原因按版本号归档。4.3 处理“规则冲突”的三种策略标准化之后一定会遇到规则之间打架的情况。假设模板写了“所有工单必须24小时内闭环”又写了“网络故障必须经人工确认后才能关闭工单”如果人工确认超过24小时Agent怎么执行我的处理策略有三种按复杂度递进。策略一优先级声明。在模板开头指定“当规则出现冲突时安全与真实数据相关的规则优先”。这个够用但粒度不够细。策略二冲突仲裁原则。当模板中规则优先级不明确时采用一个总仲裁原则不产生事实性误导优先于一切其次是权限边界最后才是完成率。比如当完成工单的压力可能造成编造信息时宁可标记“待人工确认”也不要编一个答案。策略三显式决策表。对高频冲突场景直接写“若A且B则执行X”。例如“若工单标记已逾期但工具返回数据不完整则不再自动生成处理结论直接转人工。”在实际业务中显式决策表在核心风险口上最值得做比如涉及金额、法律、解释口径的Agent。而日常辅助型Agent做前两层即可不用过度设计。5. 我的一些体会做了这么多轮标准化之后我最大的体会是规范不是靠规章制度立的而是靠模板固化下来的。提示词写得好不好不是看文采而是看它能不能让不同基础、不同团队的人写出行为一致的Agent。之前团队里每个人写的提示词风格都不一样Agent像薛定谔的猫——你不打开对话框永远不知道它这次会怎么表现。标准化之后Agent稳定得像团队里的“老人”处理流程即使不惊艳至少永不脱轨。你从今天开始就可以动手做的一件事把你手头正在用的Agent提示词按我最上面讲的七段式框架重新拆装一遍。哪怕先不做大改只把缺的段落大概率缺的是上下文管理和异常处理补上你会立刻感觉到Agent的行为清晰了一截。如果你后续也遇到了非常规的翻车案例或者对某个段落的写法有更好的实践欢迎一起交流。这东西就是在一次次踩坑和修模板中变得越来越可靠的。
阅读完成 · 觉得有帮助?
咨询建站