共计 2547 个字符,预计需要花费 7 分钟才能阅读完成。
背景痛点:为什么需要结构化提示词框架?
在实际 AI 应用开发中,提示词设计常常面临以下典型问题:

- 模糊性 :自然语言描述容易产生歧义,导致模型输出不稳定
- 缺乏系统性 :临时拼凑的提示词难以复用和迭代优化
- 效果不可控 :相同提示词在不同模型版本间表现差异大
- 调试困难 :难以准确定位提示词中导致问题的具体部分
主流框架对比:ROSES vs CO-STAR vs CLEVER
ROSES 框架特点
- Role(角色):明确定义 AI 扮演的角色身份
- Objective(目标):清晰陈述任务的核心目标
- Scenario(场景):设定具体的应用场景和上下文
- Expectation(预期):说明期望的输出格式和质量要求
- Structure(结构):组织提示词的逻辑结构
CO-STAR 框架特点
- Context(上下文)
- Objective(目标)
- Style(风格)
- Tone(语气)
- Audience(受众)
- Response(响应格式)
CLEVER 框架特点
- Context(上下文)
- Length(长度控制)
- Examples(示例)
- Variety(多样性)
- Encoding(编码方式)
- Refinement(优化迭代)
框架选择建议
- ROSES:适合需要严格结构化、面向复杂任务的场景
- CO-STAR:适合内容创作类、需要风格控制的场景
- CLEVER:适合需要精细调优的迭代优化阶段
ROSES 框架核心实现
1. 角色定义(Role)
明确 AI 代理的身份特征和专业领域,例如:
role = """
你是一位拥有 5 年电商客服经验的资深专家,擅长处理订单查询和退换货问题,熟悉公司所有产品线和售后政策。"""
2. 目标设定(Objective)
使用 SMART 原则定义具体目标:
objective = """
在 3 分钟内准确解答客户关于订单状态的查询,提供订单物流信息并解决相关问题,客户满意度需达到 95% 以上。"""
3. 场景构建(Scenario)
定义典型的用户交互场景:
scenario = """客户通过在线聊天窗口咨询:' 我的订单 #12345 显示已发货但三天没有物流更新 '系统已接入订单数据库和物流跟踪 API。"""
4. 预期输出(Expectation)
指定输出的格式和质量标准:
expectation = """
响应应包含:1. 订单当前状态确认
2. 详细物流信息(如快递公司和最新节点)3. 标准化的解决方案选项
4. 礼貌专业的表达方式
"""
5. 结构组织(Structure)
将各要素组合成完整提示词:
def build_roses_prompt(role, objective, scenario, expectation):
return f"""
# 角色
{role}
# 任务目标
{objective}
# 交互场景
{scenario}
# 预期输出要求
{expectation}
"""
完整代码示例:电商客服场景实现
import openai
def generate_customer_service_response(customer_query):
# ROSES 框架组件
role = "资深电商客服专家,熟悉订单和物流系统"
objective = "准确解答订单状态查询,提供解决方案"
scenario = f"客户咨询:'{customer_query}'"expectation ="""
响应需包含:1. 订单状态确认
2. 最新物流信息
3. 可选解决方案
4. 礼貌专业的语气
"""
# 构建完整提示词
prompt = build_roses_prompt(role, objective, scenario, expectation)
# 调用 AI 接口
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "system", "content": prompt}]
)
return response.choices[0].message.content
# 示例调用
customer_query = "我的订单 #67890 显示已发货但五天没有更新"
print(generate_customer_service_response(customer_query))
使用 CLEVER 框架优化提示词
上下文增强(Context)
context = """
公司物流合作方:顺丰(国内)、DHL(国际)正常物流时效:国内 3 - 5 天,国际 7 -10 天
特殊情况:节假日可能延迟 1 - 2 天
"""
示例引导(Examples)
examples = """优秀响应示例:" 您好,查询到订单 #12345 已由顺丰承运,最新记录显示昨日已到达杭州分拣中心。建议您:1) 再等待 1 - 2 天 2) 点击此链接查看详细轨迹 """"
编码优化(Encoding)
# 使用 XML 标签结构化关键信息
enhanced_prompt = f"""
<context>
{context}
</context>
<examples>
{examples}
</examples>
{base_roses_prompt}
"""
生产环境避坑指南
陷阱 1:角色定义过于宽泛
问题 :” 你是一个有帮助的 AI 助手 ” 定义太模糊
解决方案 :
# 改进后
role = """
你是 XX 电商平台的专属客服 AI,精通 2023 年最新版售后政策(v3.2),能准确引用条款第 5.7-5.9 条关于物流延误的规定。"""
陷阱 2:场景缺乏边界条件
问题 :未考虑异常情况处理
解决方案 :
scenario += """
如果物流信息异常(超过 7 天无更新),应主动提供紧急联系渠道和补偿方案。"""
陷阱 3:未考虑模型局限性
问题 :假设模型了解专有知识
解决方案 :
expectation += """
如遇到系统无法验证的信息,应明确告知客户并转接人工客服。"""
性能优化考量
- API 成本控制 :
- ROSES 提示词平均减少 15% 的 token 消耗
-
通过结构优化可降低 10-20% 的 API 调用次数
-
响应时间优化 :
- 结构化提示词使模型理解速度提升 30%
-
清晰的预期输出减少后期处理时间
-
多框架组合建议 :
- 设计阶段:使用 ROSES 建立基础结构
- 优化阶段:应用 CLEVER 进行精细调整
- 创作类任务:可结合 CO-STAR 的风格控制
开放思考题
- 如何设计评估指标来量化不同提示词框架的效果差异?
- 当面对需要多轮交互的复杂任务时,ROSES 框架需要做哪些扩展?
- 提示词工程如何适应不同文化背景的用户需求?
正文完
