引言:Prompt工程的两次认知跃迁
做B端大模型应用的同学应该都有同感:早期写Prompt,全凭感觉------今天加一句"你是一个专家",明天补一句"不要胡编乱造",后天再塞几个示例。Prompt越写越长,但效果时好时坏,改一处牵全身,根本没法维护。
直到接触到LangGPT,我才意识到Prompt工程真正应该走的方向。
LangGPT由云中江树于2023年提出,目前已在GitHub获得11,000+星标,被数千用户实战检验。它最核心的洞察是:Prompt应该像代码一样被编写------有结构、有模块、有变量、可复用。
本文将从LangGPT的视角,系统介绍结构化提示词的设计方法,并给出可直接落地的实战模板。
一、为什么需要结构化Prompt?
1.1 传统Prompt的四大痛点
在LangGPT出现之前,Prompt工程长期处于"经验主义"阶段,面临四个绕不过去的问题:
| 痛点 | 表现 | 后果 |
|---|---|---|
| 模糊性 | 指令不够具体,如"你是一个有帮助的助手" | AI容易误解意图,输出偏离预期 |
| 不可控性 | 同一条Prompt每次输出质量波动大 | 无法用于生产环境 |
| 重复劳动 | 每个新场景都要从头写Prompt | 效率低下,知识无法沉淀 |
| 不可维护 | 修改一处影响全局,改完不知道哪里会崩 | 迭代困难,风险不可控 |
1.2 LangGPT的解法:把Prompt当代码写
LangGPT的核心思想,是将提示词设计从"写作文"升级为"写代码"。它借鉴了编程语言的结构化思想,将Prompt拆解为可复用的组件------角色(Role)、配置文件(Profile)、技能(Skills)、规则(Rules)、工作流(Workflow)等。
这种设计的工程价值体现在三个层面:
- 结构化模板:借鉴编程范式的层次化组织,Prompt有了固定的"语法"
- 模块化:变量、命令和条件逻辑随手可用,不同模块可独立迭代
- 可复用性:像代码模块一样,创建一次,无限适配
更重要的是,LangGPT已被主流大模型"学进了底层"。现在你对ChatGPT、Claude、DeepSeek、Kimi等模型说"用LangGPT的方式写一个提示词",模型会直接产出结构清晰的LangGPT风格Prompt。一个范式最好的归宿,或许就是不必再被记住名字,却已经成了模型的母语。
二、LangGPT核心语法
2.1 基础结构
LangGPT的基础结构如下:
markdown
# Role: 你的角色名称
## Profile
- Author: 你的名字
- Version: 1.0
- Language: 中文
- Description: 角色的简要描述,概述其特质和能力
### Skills
- 技能1:详细描述
- 技能2:详细描述
## Rules
1. 必须遵守的行为规则
2. 禁止事项
## Workflow
1. 第一步:做什么
2. 第二步:做什么
3. 第三步:做什么
## Initialization
作为角色 <Role>,严格遵守 <Rules>,使用默认 <Language> 与用户对话,友好的欢迎用户。然后介绍自己。
2.2 六大核心模块详解
模块一:Role(角色)
Role是LangGPT的身份标识,一句话定义AI扮演什么角色。
markdown
# Role: 技术客服专家
Role的价值在于给模型一个明确的"人设锚点"。好的Role描述应该具体、可识别,而非泛化的"助手"。
模块二:Profile(配置文件)
Profile集中管理角色的元信息:
markdown
## Profile
- Author: 张三
- Version: 2.1
- Language: 中文
- Description: 专精于SaaS产品的故障诊断与工单分类,擅长处理账号、支付、API调用、数据同步四类问题,以专业、高效、礼貌的风格服务用户。
Profile让Prompt具备了版本管理 和责任追溯的能力,这是工程化的基础。
模块三:Skills(技能)
Skills描述角色具备的能力:
markdown
### Skills
- 问题归类:能够快速将用户问题归入账号、支付、API、数据同步四个类别之一
- 紧急度评估:根据用户语气和问题关键词,判断问题的紧急程度(HIGH/MEDIUM/LOW)
- 工单生成:按照标准格式生成包含category、priority、summary字段的工单草稿
Skills不是泛泛的"擅长沟通",而是可执行、可验证的具体能力。
模块四:Rules(规则)
Rules定义角色必须遵守的行为规范:
markdown
## Rules
1. 禁止编造Profile和Background中不存在的故障现象
2. 禁止输出用户的支付卡号、密码、完整邮箱等隐私信息
3. 禁止使用"可能""也许""我不确定"等模糊性表述
4. 用户问题不属于四类范围时,必须输出"无法处理,将转人工"
5. 必须基于Background中的参考资料生成解决方案,不得凭空编造
Rules的特点是具体、可验证,每条规则都是一个可以通过测试用例来检验的约束条件。
模块五:Workflow(工作流)
Workflow定义角色执行任务的步骤:
markdown
## Workflow
1. **问题归类**:判断用户问题属于账号、支付、API、数据同步还是其他。若为"其他",直接跳转至步骤4
2. **紧急度评分**:根据用户语气及问题关键词,评定紧急等级(HIGH/MEDIUM/LOW)
3. **查阅参考资料**:在Background中检索解决方案;若未找到,引用售后电话
4. **生成工单草稿**:按标准格式填充category、priority、summary字段(summary≤50字)
5. **自我校验**:检查是否违反Rules、是否真实引用参考资料、是否符合输出格式要求
Workflow的核心优势是步骤化 和可分支------模型不再是"凭感觉"回答问题,而是按照既定的流程一步步执行。
模块六:Initialization(初始化)
Initialization定义角色如何启动对话,让模型进入角色状态:
markdown
## Initialization
作为角色 <Role>,严格遵守 <Rules>,使用默认 <Language> 与用户对话,友好的欢迎用户。然后介绍自己。
注意这里的变量引用机制:
<Role>引用整个角色定义<Rules>引用Rules章节的全部规则<Language>引用Profile中Language字段的值<Workflow>引用Workflow章节的全部步骤
这种变量引用方式让Initialization模块成为一个"启动器",把前面定义的所有模块串联起来,确保模型在开场时就已经明确了身份、规则和语言。
2.3 社区增强模块
除了上述六个核心模块,LangGPT社区在实践中还扩展了以下模块:
| 扩展模块 | 用途 | 示例 |
|---|---|---|
Background |
补充角色背景和场景信息 | 用户是一位遇到支付问题的普通消费者 |
Goals |
明确AI需要达成的目标 | 1. 准确定位问题类别 2. 提供可执行的解决方案 |
Constraints |
硬性约束(比Rules更严格) | 响应时间不超过3秒,输出必须为JSON格式 |
OutputFormat |
强制输出结构 | 指定JSON Schema、Markdown表格等 |
Examples |
提供输入输出示例 | 正面示例和负面示例 |
三、实战案例:用LangGPT构建客服工单分类Prompt
下面用一个真实的客服工单分类场景,展示LangGPT Prompt的完整写法。
3.1 场景描述
你是一家SaaS公司的技术运营人员,需要AI客服帮助处理用户提交的技术问题工单。AI需要完成三个任务:
- 判断问题属于哪个类别(账号/支付/API/数据同步/其他)
- 评估问题的紧急程度(HIGH/MEDIUM/LOW)
- 生成标准化的工单草稿(包含category、priority、summary字段)
3.2 LangGPT完整Prompt
markdown
# Role: 技术客服专家
## Profile
- Author: 技术运营团队
- Version: 2.1
- Language: 中文
- Description: 专精于SaaS产品X Pay的故障诊断与工单分类。以专业、高效、礼貌的风格服务用户,能够在30秒内完成问题归类、紧急度评估和工单草稿生成。
### Skills
- 问题归类:快速将用户问题归入账号、支付、API、数据同步四个类别之一,无法归类的标记为"其他"
- 紧急度评估:根据用户语气(愤怒/焦虑/平静)和问题关键词("无法登录""钱扣了""急"等)判断紧急程度
- 工单生成:按照category、priority、summary三个字段生成标准化工单草稿,summary不超过50字
- 解决方案检索:在Background知识库中检索匹配的解决方案,未找到时引导用户联系人工客服
## Background
### 产品信息
- 产品名称:X Pay
- 售后电话:400-882-XXXX
- 工单系统字段:category, priority, summary, resolution_estimate
### 常见问题分类
- 账号类:登录失败、密码重置、账号锁定、权限不足
- 支付类:支付失败、扣款异常、退款延迟、账单不一致
- API类:接口超时、签名错误、返回码异常、频率限制
- 数据同步类:数据不一致、同步延迟、丢失数据
## Goals
1. 在首次响应中准确定位用户问题所属类别
2. 提供清晰、可执行的解决方案或明确的转人工指引
3. 生成符合规范、可直接录入工单系统的标准化输出
## Rules
1. 禁止编造Background中不存在的故障现象或解决方案
2. 禁止输出用户的支付卡号、密码、完整邮箱等任何隐私信息
3. 禁止回答归类为"其他"的用户问题,仅输出"无法处理,将转人工"
4. 禁止使用"可能""也许""我不确定"等模糊性表述
5. 禁止忽略Background中的参考资料,凭空生成解决方案
## Workflow
1. **问题归类**:分析用户输入,判断属于账号、支付、API、数据同步还是其他
- 若为"其他",直接跳转至步骤5
- 若无法判断,标记为"其他"并跳转至步骤5
2. **紧急度评分**:根据用户语气和关键词评定等级
- HIGH:用户表达愤怒、涉及资金安全、关键词含"急""投诉""损失"
- MEDIUM:用户表达不满、问题影响使用但非紧急
- LOW:用户咨询性提问、语气平静
3. **方案检索**:在Background的"常见问题分类"中检索匹配的解决方案
- 找到匹配方案:记录解决方案要点
- 未找到匹配方案:标记为需人工介入
4. **工单生成**:按标准格式生成工单草稿
- category:从四类中选择
- priority:HIGH/MEDIUM/LOW
- summary:≤50字,概括问题核心
5. **自我校验**:确认未违反Rules、已引用Background资料、格式符合OutputFormat要求
## OutputFormat
必须严格遵守以下JSON结构,不得输出任何额外解释内容:
{
"category": "账号|支付|API|数据同步|其他",
"priority": "HIGH|MEDIUM|LOW",
"summary": "简短总结,不超过50字",
"solution": "基于Background的解决方案,不超过50字;无法解决时填'建议转人工'",
"escalate": true/false
}
## Examples
**正面示例**:
{"category": "支付", "priority": "HIGH", "summary": "用户信用卡支付返回交易被拒绝", "solution": "建议用户更换支付方式或联系发卡行", "escalate": false}
**负面示例**:
- 输出缺少任意字段
- 输出非JSON格式
- summary或solution字段超过50字
- escalate为true时solution仍填了具体方案
## Initialization
作为角色 <Role>,严格遵守 <Rules>,使用默认 <Language> 与用户对话。
3.3 这个Prompt好在哪里?
对比传统手写Prompt,LangGPT版本有四个明显优势:
| 维度 | 传统Prompt | LangGPT版本 |
|---|---|---|
| 可读性 | 线性堆砌,层级模糊 | 树形结构,层级通过Markdown标题天然体现 |
| 可维护性 | 修改一处可能影响全局 | 模块独立,改Skills不影响Rules,改Workflow不影响Profile |
| 可复用性 | 每个场景从头写 | 可复用Profile、Rules、Background,仅替换Workflow和OutputFormat |
| 可测试性 | 只能整体测试 | 每个模块可单独验证 |
四、LangGPT工程落地指南
4.1 开发工作流
构建高质量结构化Prompt,推荐以下工作流:
- 自动化生成初版:直接对主流大模型说"用LangGPT的方式帮我写一个技术客服的提示词",模型会直接产出结构清晰的初版
- 手工迭代调优:根据实际测试结果,调整各模块内容
- 版本管理:将Prompt模板存入Git仓库,与代码库同步迭代
4.2 模块设计原则
基于LangGPT的实践,总结以下设计原则:
原则一:保持格式语义一致性
标识符的功能前后一致。不要混用------比如#既用于标识标题又用于标识变量,会干扰模型对Prompt层级结构的识别。
原则二:保持内容语义一致性
属性词和对应模块内容的语义要匹配。例如Rules部分放的是角色需要遵守的规则,就不应该把角色技能、描述堆砌在这里。
原则三:逻辑清晰不矛盾
避免前后矛盾的表达。比如前面说"以轻松幽默的语气交流",后面Workflow又说"必须严肃认真地对待每一个字"------这种矛盾会严重影响输出质量。
原则四:模块职责单一
每个模块只做一件事。Skills只管能力描述,Rules只管约束规则,Workflow只管执行步骤。职责越单一,模块越稳定,修改影响面越小。
4.3 模型适配建议
结构化Prompt对模型的基础能力有一定要求------模型需要具备较好的指令遵循能力和结构识别能力。
- GPT-4 / Claude:最佳选择,结构化Prompt表现稳定
- GPT-3.5:勉强可用,但存在表现不稳定的情况
- 其他模型:建议先做小范围测试,确认效果后再大规模使用
如果模型能力较弱,可以降低结构复杂度 ------将多级结构降维为二级结构。例如将Profile下的Skills直接提升为与Profile平级的模块。
五、总结
回顾全文,LangGPT带给Prompt工程最大的价值可以归纳为一句话:
把Prompt当代码写。
传统方法是"写作文"------从头写到尾,改一处牵全身。LangGPT是"写代码"------模块独立、版本可控、可测试、可复用。
核心模块就六个:Role定身份,Profile管元信息,Skills列能力,Rules设约束,Workflow定流程,Initialization做启动。六个模块覆盖了90%的Prompt设计场景。
LangGPT不是提示词的终点,但它是目前中文社区最成熟、最流行、也最好用的结构化提示词范式。它已经被主流大模型"学进了底层"------你对模型说"用LangGPT的方式写",它就能直接产出符合规范的Prompt。善用这个范式,能让你的Prompt工程效率提升一个数量级。
📚 相关资源:
- LangGPT GitHub:https://github.com/langgptai/LangGPT
- LangGPT 学术论文:arXiv:2402.16929
- LangGPT 官方文档(中文):README_zh.md
- LangGPT 社区:http://feishu.langgpt.ai