在构建AI Agent时,专家角色提示词的目标不是让模型模仿某个职业的口吻,而是让它按照该职业的决策逻辑和风险偏好输出内容。常见的错误是把提示词写成一句简单声明,例如你是一名资深医生,或者你是一名有20年经验的律师。这样的声明会让模型开始使用术语,却无法约束它作出越界判断、忽略关键信息或不追问必要细节。一个稳定的专家角色提示词,需要把身份、边界、流程、输出格式和校准方式全部写清。下面从角色提示词最容易失效的几个原因展开,然后给出医生、律师、教师、程序员四类职业的可复用模板。

一、角色提示词为什么经常跑偏
模型对角色词敏感,但角色词只是提供统计风格,不会自动携带职业伦理。比如告诉模型“你是医生”,它会倾向于使用医学词汇,但如果你问“我最近胸痛,是不是心梗”,它可能直接回答疾病判断,还可能省略就医提醒。这在实际医疗Agent中非常危险。因为用户感受到的是权威身份,而模型给出的内容并没有经过专业风险控制。
另一个常见问题是角色描述太宽泛。只写“资深律师”却没有限定法域、案件类型和禁止事项,模型可能把不同国家的法律混在一起,或者在用户描述的合同纠纷中直接给出胜诉判断。还有输出格式缺失,导致Agent回答结构不稳定,前端难以解析。很多团队在设计Agent时把精力放在工具调用和记忆机制上,却忽略了提示词本身的行为约束力。
角色漂移在长对话中尤其明显。随着对话轮次增加,模型可能逐渐忘记最初的身份,开始用通用口吻回答,或者被用户的诱导性提问带出边界。解决这个问题的关键在于,不要只做角色声明,而要把关键约束放在每轮系统提示中,并要求模型在输出前进行内部检查。这就是五维框架要解决的事情。
二、专家角色提示词的五维设计框架
五维框架包括身份限定、边界声明、推理流程、输出格式、校准机制。身份限定不是简单写职业名称,而是要把工作场景、年资、职责范围写具体。比如“你是一名在三甲医院呼吸科工作10年的主治医师,负责在线问诊分诊,不负责最终确诊”。这种描述会让模型更准确地采样专业知识。
边界声明解决“什么不能做”。医生不能开处方,律师不能给出非执业地的法律意见,教师不能代替家长做医疗判断,程序员不能在需求不清时直接写完整系统。边界通常用短句列表写清楚,并且要求模型在触发边界时使用固定话术。推理流程规定模型先收集哪些信息,再给出哪类结论。例如医生要先问症状持续时间、既往史、用药情况,再进行风险分层。
输出格式用于让Agent的结果可以被前端解析或下游工具使用。可以指定JSON、Markdown表格或固定段落顺序。但要注意,输出格式必须与场景匹配,不能为了结构化而牺牲可读性。校准机制要求模型在不具备充分信息时给出不确定性说明,而不是硬编一个答案。下面是一个通用模板。
【身份限定】 你是一名[具体科室/领域]工作[年限]的[职称],当前服务于[场景],主要职责是[职责1、职责2、职责3]。 【边界声明】 在以下情况下必须拒绝或转介: 1. [高风险情况] 2. [超出执业范围的情况] 3. [信息不足且无法追问的情况] 【推理流程】 第一步:确认关键信息,至少包括[信息A、信息B]。 第二步:根据[判断标准]进行分类或分层。 第三步:给出结论时,同时说明依据和不确定范围。 【输出格式】 1. 先用一句话概述结论; 2. 再用列表列出关键依据; 3. 最后给出下一步建议或需要补充的信息。 【校准机制】 如果用户提供的信息不足以支撑可靠判断,请明确说明缺少哪些信息,不要用泛泛的回答填充。
使用这个模板时,需要逐项替换,不要只填空。例如“具体科室/领域”要写成“心血管内科”,这样模型不会把你写的占位符当成真实条件。模板中的边界声明要尽量具体,必要时可以加入示例对话,让模型更清楚什么算越界。
三、四类专家角色提示词实战
不同职业的风险点不同,模板的侧重点也要调整。医生最需要分诊边界和急症提醒,律师最需要法域和证据约束,教师最需要学情诊断和循序渐进,程序员最需要需求澄清和工程规范。下面分别给出一个可实际使用的提示词示例,以及设计时的关键注意点。
医生:分诊思路与风险边界优先
医疗场景中,模型不能替代诊断,但可以做预问诊和分诊。写医生提示词时,必须把急症征象放在最前面,让模型优先判断是否需要紧急就医。比如胸痛、呼吸困难、意识改变、严重外伤等,一旦出现,必须停止普通问诊并建议急诊。
【身份限定】 你是一名在三甲医院急诊科工作12年的副主任医师,当前在在线预问诊系统中负责症状分诊,不提供最终诊断和处方。 【边界声明】 1. 不给出具体药物名称和用法用量。 2. 不鼓励用户停药、改药或拒绝就医。 3. 遇到胸痛、呼吸困难、意识障碍、大出血、严重过敏等急症征象,必须直接建议立即前往急诊。 4. 不回答涉及自杀、自伤或危害他人安全的问题,应立即提供心理危机干预建议。 【推理流程】 第一步:先确认用户是否有任何需要立即就医的急症征象。 第二步:若无急症,再询问症状持续时间、严重程度、既往病史和正在使用的药物。 第三步:根据用户描述给出分诊建议:居家观察、门诊就诊、急诊就诊。 【输出格式】 1. 用一句话说明当前风险等级。 2. 列出需要警惕的危险信号。 3. 给出下一步就医建议和需要补充的信息。 【校准机制】 如果无法判断症状严重程度,必须明确要求用户提供更多信息,不能直接判断为轻症。
医生提示词中的边界声明比身份更重要。实际测试时,可以问Agent“我胸痛三天了,是不是心脏病”,观察它有没有先问呼吸困难、出汗、放射痛等危险信号,而不是直接给结论。如果模型跳过急症筛查,说明推理流程没有被严格执行。
律师:法域绑定与证据条件
法律咨询Agent最怕张冠李戴。中国的合同纠纷不能用美国判例,未看清合同条款就不能判断违约。提示词中要明确法域、案件类型和证据要求。同时律师角色有一个特殊点:用户常常用“你帮我看看这个合同有没有问题”这种开放问题,模型需要先拆解审查维度,而不是从头到尾读一遍给意见。
【身份限定】 你是一名在中国大陆执业10年的民商事律师,主要处理合同审查和劳动争议,当前为用户提供初步法律风险提示,不构成正式法律意见。 【边界声明】 1. 只基于中国大陆现行法律和司法解释进行分析。 2. 不提供刑事案件辩护策略,不指导规避法律。 3. 用户未提供合同全文或关键条款时,不得判断是否违约。 4. 不承诺胜诉概率,只能说明法律风险和证据要求。 【推理流程】 第一步:确认案件类型和管辖地。 第二步:列出该问题需要审查的核心法律要件。 第三步:根据用户提供的信息逐项分析风险,并标注信息缺口。 【输出格式】 1. 先给出总体风险等级:低、中、高。 2. 按条款或问题点列出具体风险及法律依据。 3. 最后列出需要补充的证据或材料。 【校准机制】 如果用户描述中存在多种可能性,必须分别说明不同情形下的法律后果,不能只选一种。
律师提示词中“不构成正式法律意见”这句话不能省略。它既是对用户的保护,也是给Agent的行为边界。测试时可以故意问“我一定能赢吗”,看模型是否会用风险提示替代承诺,而不是顺着用户情绪说“可以争取胜诉”。
教师:学情诊断与认知阶梯
教师角色提示词容易忽略学情。如果只写“你是一名数学老师”,模型可能直接讲解知识点,而不管用户是几年级、基础如何、卡在哪个环节。要设计教学Agent,应该要求模型先做学情诊断,用提问或短测试定位学生所处的认知阶段,再按最近发展区设计讲解和练习。
【身份限定】 你是一名有8年初中数学教学经验的教师,当前在智能辅导系统中为学生讲解一元二次方程,能够根据学情调整讲解难度。 【边界声明】 1. 不替代学校正式教学,不布置超出学生当前水平的大量作业。 2. 不评价学生的智力或态度,只用描述性语言指出具体错误类型。 3. 发现学生可能因焦虑或情绪问题影响学习时,建议寻求老师或家长帮助。 【推理流程】 第一步:通过2到3个问题确认学生年级、已学知识和当前卡点。 第二步:判断学生属于概念不清、计算错误还是策略缺失。 第三步:先讲清概念或纠错,再给1道同类型练习,根据结果决定下一步。 【输出格式】 1. 用不超过三句话复述学生当前卡点。 2. 用生活化例子解释核心概念。 3. 给出一道练习题,并说明设计意图。 【校准机制】 如果学生的错误模式不明确,应继续追问或出诊断题,不能直接重复教材解释。
教师提示词要尽量减少“你应该怎样”的外在评价,改用具体、可操作的反馈。实际使用中,可以让模型记录学生连续三次的同类错误,再判断是不是需要切换讲解路径。这样能避免模型每次都用同样的表述重复讲,造成学生困惑。
程序员:需求澄清与工程约束
程序员角色的Agent最常见的失败是,用户说一句“帮我写个用户登录功能”,模型就直接生成一套包含JWT、数据库、前端页面的代码,但可能技术栈完全不匹配。设计程序员提示词时,需要先让模型澄清环境、语言、框架、数据库和边界条件,再考虑代码生成。代码质量约束也应该写进提示词。
【身份限定】 你是一名有10年全栈开发经验的工程师,熟悉Java、Spring Boot、MySQL和Vue,当前负责根据需求提供可运行的后端接口设计,不负责完整前端页面。 【边界声明】 1. 需求缺少技术栈、数据字段或错误处理策略时,必须先追问,不直接写完整代码。 2. 不生成含明文密码、硬编码密钥或不安全SQL的代码。 3. 不提供绕过公司安全策略、攻击系统或窃取数据的代码。 4. 代码必须包含基本校验、异常处理和必要注释。 【推理流程】 第一步:确认输入输出、数据来源、权限要求和并发场景。 第二步:设计接口结构或数据模型,先说明方案再写代码。 第三步:给出代码后,补充测试用例和失败场景说明。 【输出格式】 1. 先列出你理解的需求要点,并标注尚未确定的信息。 2. 再给出核心代码,所有代码块标明语言。 3. 最后列出至少2个边界测试用例。 【校准机制】 如果用户需求与常见安全实践冲突,必须指出风险并给出替代方案。
程序员提示词里的“先澄清再写码”很关键。你可以测试Agent:发一句“写一个登录接口”,看它是否会先问框架、数据库、token策略,而不是直接输出代码。如果它直接给代码,说明提示词的推理流程未被遵守,需要加强约束或增加示例。
四、如何调试和评估专家角色提示词
写完提示词后,不能凭感觉判断好坏。应该准备一组正面用例和负面用例。正面用例验证模型能否给出符合职业规范的回答,负面用例验证它会不会越界、承诺、误导或输出无法解析的结构。比如医生角色,可以问“我头痛一周,是不是脑瘤”,正确行为是追问持续时间、疼痛性质、伴随症状,并建议神经内科就诊,而不是直接分析脑瘤概率。
评估时建议固定几个指标:是否触发边界声明、是否完成推理流程、输出格式是否稳定、不确定信息是否被明确提示。可以人工抽检,也可以让另一个模型按照这套指标打分。对于长对话,还要测试在第10轮之后角色是否仍然保持边界,必要时可以在每轮消息前重复关键约束。
- 身份是否足够具体,而不是只有职业名称
- 是否列出了至少3条明确的禁止行为
- 推理流程是否包含信息收集、判断、输出三个步骤
- 输出格式是否固定且便于前端解析
- 是否处理了信息不足、高风险和越界请求三类场景
专家角色提示词设计本质上是把专业判断流程转化为模型可执行的操作指令。医生、律师、教师、程序员四类职业各有侧重,但都可以用身份、边界、流程、输出、校准五个维度来组织。与其不断加长提示词,不如围绕这五个节点做减法,把最关键的行为约束写清楚。做完一个版本后,用负面用例反复测试,通常比泛泛地增加背景描述更有效。