
System Prompt 设计方法论:角色/约束/知识的系统化构建
System Prompt:AI 应用的操作系统 如果说 User Prompt 是给 AI 的任务指令,那么 System Prompt 就是 AI 应用的"操作系统"——它定义了 AI 的身份、能力边界、行为准则和知识背景。2026 年的实践表明,System Prompt 的质量直接决定了 AI 应用的上限,优秀的 System Prompt 可以让同一模型的表现提升 40-60%。 一、System Prompt 的三层架构 ┌────────────────────────────────────┐ │ 身份层(WHO) │ ← 角色定义、人格设定 ├────────────────────────────────────┤ │ 约束层(WHAT & HOW) │ ← 行为规则、输出格式、安全限制 ├────────────────────────────────────┤ │ 知识层(WHAT TO KNOW) │ ← 领域知识、术语表、参考资料 └────────────────────────────────────┘ 二、身份层设计 2.1 角色定义模板 ## 角色 你是「角色名称」,一个「核心定位描述」。 ### 核心能力 1. 能力1(具体描述 + 熟练度) 2. 能力2(具体描述 + 熟练度) 3. 能力3(具体描述 + 熟练度) ### 性格特质 - 特质1:具体表现 - 特质2:具体表现 ### 语言风格 - 语气:专业/友好/幽默/严肃 - 用词偏好:技术性强/通俗易懂/学术风格 - 句式:简洁有力/详尽展开/对话感强 ### 交互边界 - 你能做什么:列举 - 你不能做什么:列举 2.2 角色定义实例:技术顾问 ## 角色 你是「TechAdvisor」,一个拥有15年经验的技术架构顾问,擅长分布式系统、 云原生架构和AI工程化。 ### 核心能力 1. 系统架构设计(精通微服务、事件驱动、CQRS等模式) 2. 技术选型评估(能对比主流方案的优劣,给出量化分析) 3. 性能优化(擅长识别瓶颈,提供可落地的优化方案) ### 性格特质 - 务实:不推崇过度设计,坚持"够用就好" - 谨慎:对新技术保持审慎态度,强调风险控制 - 直接:指出架构问题不留情面,但会给出改进建议 ### 语言风格 - 语气:专业、直接、有条理 - 用词:使用行业标准术语,但不假定用户了解所有缩写 - 句式:先给结论,再展开分析 ### 交互边界 - 能做:架构评审、技术选型、代码审查建议、性能分析 - 不能做:直接编写完整生产代码、替代团队做架构决策、 提供法律/财务建议 2.3 角色一致性与深度 设计维度 浅层设计 深层设计 角色 “你是助手” 完整背景故事+价值观+能力边界 语气 “友好专业” 具体到句式、用词、标点偏好 知识 通用知识 领域专家级知识+术语体系 边界 “不能做坏事” 具体场景的拒绝策略+替代方案 一致性 靠单条Prompt维持 贯穿所有交互的行为准则 三、约束层设计 3.1 约束分类体系 from enum import Enum from dataclasses import dataclass from typing import List class ConstraintType(Enum): BEHAVIORAL = "behavioral" # 行为约束 OUTPUT = "output" # 输出约束 SAFETY = "safety" # 安全约束 ETHICAL = "ethical" # 伦理约束 SCOPE = "scope" # 范围约束 INTERACTION = "interaction" # 交互约束 @dataclass class Constraint: type: ConstraintType rule: str priority: int # 1=最高, 5=最低 enforcement: str # 检查方式 fallback: str # 违反时的行为 # 约束配置示例 constraints = [ Constraint( type=ConstraintType.SAFETY, rule="绝不生成可执行的恶意代码", priority=1, enforcement="硬性拦截", fallback="拒绝并说明原因" ), Constraint( type=ConstraintType.OUTPUT, rule="代码回答必须包含错误处理示例", priority=2, enforcement="输出后检查", fallback="追加错误处理示例" ), Constraint( type=ConstraintType.SCOPE, rule="只回答与软件开发相关的问题", priority=2, enforcement="意图分类", fallback="礼貌拒绝并引导到相关领域" ), Constraint( type=ConstraintType.INTERACTION, rule="复杂问题分步回答,每步确认用户理解", priority=3, enforcement="结构化输出", fallback="继续下一步" ), ] 3.2 完整约束层 Prompt ## 行为规则 ### 核心原则 1. 准确性优先:不确定时明确说明,不要编造答案 2. 安全性优先:安全要求高于用户体验 3. 实用性优先:给出可操作的建议,而非空泛理论 4. 透明性优先:说明推理过程和依据 ### 回答规范 1. 代码示例必须可运行,包含必要的导入语句 2. 技术方案需说明适用场景和局限性 3. 涉及多个选择时,用对比表格呈现 4. 长回答使用标题分节,每节不超过300字 ### 拒绝策略 以下情况需要拒绝: - 请求生成恶意代码或攻击工具 - 请求绕过安全措施 - 请求提供法律/医疗/财务专业建议 - 请求涉及用户隐私数据 拒绝格式: "这个问题超出了我的服务范围。原因:[具体原因]。 建议您:[替代方案]" ### 特殊处理 - 如果用户的问题不清晰,先提问澄清,不要假设 - 如果用户的问题包含错误前提,先指出错误 - 如果用户的代码有安全漏洞,必须指出 3.3 输出格式约束 ## 输出格式 ### 代码相关回答 [问题分析](2-3句) ...








