📚 学习教程

【高级应用】Day5:Prompt工程–5种核心框架让AI更懂你

· 2026-04-12 · 7 阅读

【高级应用】Day5:Prompt工程–5种核心框架让AI更懂你

👤 龙主编 📅 2026-04-12 👁️ 7 阅读 💬 0 评论

章节导语

同样问AI”帮我写代码”,有人写出来能用,有人写出来报错。为啥?Prompt不一样。

Prompt工程不是玄学,是有章可循的技术。好的Prompt能让AI准确理解意图,输出你需要的内容。

本文系统讲解5种核心Prompt框架,每种都有完整代码和案例。

一,前置说明

1.1 学习路径

阶段 内容
基础 Prompt基础
进阶 5种核心框架

1.2 读者需要的基础

  • 大模型调用:知道怎么用OpenAI API
  • Python基础:会写函数

1.3 学习目标

学完本文,你将能够:

  • 掌握5种核心Prompt框架
  • 写出清晰、准确、稳定的Prompt
  • 针对不同场景优化Prompt

二、Prompt的本质

2.1 什么是Prompt

Prompt是你给AI的指令。AI根据这个指令生成输出。

类比

  • 传统编程:代码 → 编译器 → 输出
  • Prompt编程:自然语言指令 → LLM → 输出

2.2 影响效果的因素

  • 清晰度:指令是否明确、无歧义
  • 完整性:是否提供必要的上下文
  • 具体性:约束条件是否具体
  • 格式:输出格式是否明确

三、ICIO框架:最基础的框架

3.1 框架结构

ICIO = Instruction + Context + Input + Output。

  • Instruction(指令):告诉AI要做什么
  • Context(上下文):提供背景信息
  • Input(输入):具体的数据或问题
  • Output(输出):期望的输出格式

3.2 代码实现

from openai import OpenAI

client = OpenAI()

def icio_prompt(instruction, context, input_text, output_format):
    """ICIO框架 Prompt构建
    
    参数:
        instruction: 指令(做什么)
        context: 上下文(背景信息)
        input_text: 输入内容
        output_format: 输出格式要求
    返回:
        完整的Prompt
    """
    prompt = f"""{instruction}

【背景】
{context}

【输入】
{input_text}

【输出格式】
{output_format}"""
    return prompt

def ask(prompt):
    """发送请求"""
    response = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": prompt}]
    )
    return response.choices[0].message.content

# 示例:翻译任务
if __name__ == "__main__":
    prompt = icio_prompt(
        instruction="你是一个翻译专家,负责将英文翻译成中文",
        context="这是硅谷科技公司的产品介绍",
        input_text="Our AI platform helps businesses automate workflows",
        output_format="中文翻译,保持专业语气"
    )
    
    print("Prompt:\n", prompt)
    print("\n" + "=" * 50)
    print("AI回复:\n", ask(prompt))

3.3 运行结果

$ python icio_example.py

Prompt:
你是一个翻译专家,负责将英文翻译成中文

【背景】
这是硅谷科技公司的产品介绍

【输入】
Our AI platform helps businesses automate workflows

【输出格式】
中文翻译,保持专业语气

AI回复:
我们的AI平台帮助企业自动化工作流程。

3.4 适用场景

  • 简单翻译、摘要、改写
  • 格式化输出
  • 一次性任务

3.5 小结

ICIO是最基础的框架,适合简单任务。

3.6 练习题

基础题:用ICIO框架写一个”代码审查”的Prompt。

四、CRISPE框架:复杂任务利器

4.1 框架结构

CRISPE = Capacity + Role + Insight + Statement + Predicate + Experiment。

  • Capacity/Role:设定AI的角色
  • Insight:提供背景和洞察
  • Statement:明确任务声明
  • Predicate:指定输出格式
  • Experiment:可选的实验/示例

4.2 代码实现

from openai import OpenAI

client = OpenAI()

def crispe_prompt(role, capability, insight, statement, output_format, examples=None):
    """CRISPE框架 Prompt构建
    
    适合复杂任务,需要深度专业知识的场景
    """
    prompt = f"""【角色】
{role}

【能力说明】
{capability}

【背景洞察】
{insight}

【任务声明】
{statement}

【输出格式】
{output_format}"""

    if examples:
        prompt += f"\n\n【示例】\n{examples}"

    return prompt

def ask(prompt):
    response = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": prompt}]
    )
    return response.choices[0].message.content

# 示例:资深架构师代码审查
if __name__ == "__main__":
    prompt = crispe_prompt(
        role="你是一位有15年经验的Python架构师,专注于代码可维护性和性能优化",
        capability="你擅长发现代码中的问题,提供改进建议,评估代码是否符合Pythonic风格",
        insight="用户正在开发一个数据处理服务,需要处理大量并发请求,当前实现可能存在性能瓶颈",
        statement="请审查以下Python代码,指出:1)潜在bug 2)性能问题 3)可改进之处 4)代码风格建议",
        output_format="分点回答,每点包含:问题描述、严重程度(高/中/低)、改进建议"
    )
    
    print("Prompt长度:", len(prompt))
    print("\nAI回复:\n", ask(prompt))

4.3 适用场景

  • 需要深度专业知识的任务
  • 复杂分析和决策
  • 专业领域咨询

4.4 小结

CRISPE适合复杂任务,需要AI具备特定专业能力时使用。

4.5 练习题

进阶题:设计一个”职业规划顾问”的CRISPE Prompt。

五、CO-STAR框架:结构化输出

5.1 框架结构

CO-STAR = Context + Objective + Style + Tone + Audience + Response。

  • Context:提供背景
  • Objective:明确目标
  • Style:指定风格
  • Tone:指定语气
  • Audience:明确受众
  • Response:指定响应格式

5.2 代码实现

CO-STAR框架
图1:CO-STAR框架分解
from openai import OpenAI

client = OpenAI()

def co_star_prompt(context, objective, style, tone, audience, response_format):
    """CO-STAR框架 Prompt构建
    
    适合需要特定风格和格式的输出
    """
    prompt = f"""【背景】
{context}

【目标】
{objective}

【风格】
{style}

【语气】
{tone}

【受众】
{audience}

【响应格式】
{response_format}"""
    return prompt

def ask(prompt):
    response = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": prompt}]
    )
    return response.choices[0].message.content

# 示例:写商务邮件
if __name__ == "__main__":
    prompt = co_star_prompt(
        context="我是XX公司的技术总监,想联系YY公司的CEO李明,讨论技术合作事宜",
        objective="预约一个30分钟的电话会议",
        style="商务正式,使用专业术语但不过度",
        tone="友好但专业,有合作诚意",
        audience="对方是中型科技公司的CEO,技术背景深厚",
        response_format="邮件格式,包含:主题行、称呼、正文(3段以内)、结束语、签名"
    )
    
    print("AI回复:\n", ask(prompt))

5.3 运行结果

$ python co_star.py

AI回复:

主题:关于技术合作探讨 - 预约30分钟电话会议

尊敬的李明先生:

您好!

我是XX公司的技术总监,长期关注YY公司的发展,对贵司在XX领域的技术积累印象深刻...

此致
敬礼

XX公司技术总监 张三

5.4 适用场景

  • 商务沟通、正式写作
  • 需要特定文风的任务
  • 面向特定受众的内容

5.5 小结

CO-STAR适合需要精确控制风格和语气的场景。

5.6 练习题

基础题:用CO-STAR框架设计”小红书种草文案”的Prompt。

六、BROKE框架:目标导向

6.1 框架结构

BROKE = Background + Role + Objectives + Key Results + Evolve。

  • Background:描述背景
  • Role:设定角色
  • Objectives:明确目标
  • Key Results:关键结果(可量化)
  • Evolve:评估和改进

6.2 代码实现

BROKE框架
图2:BROKE目标达成模型
from openai import OpenAI

client = OpenAI()

def broke_prompt(background, role, objectives, key_results, evolve=None):
    """BROKE框架 Prompt构建
    
    适合目标明确、需要量化结果的场景
    """
    prompt = f"""【背景】
{background}

【角色】
{role}

【目标】
{objectives}

【关键结果】(请量化)
{key_results}"""

    if evolve:
        prompt += f"\n\n【评估改进】\n{evolve}"

    return prompt

def ask(prompt):
    response = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": prompt}]
    )
    return response.choices[0].message.content

# 示例:制定OKR
if __name__ == "__main__":
    prompt = broke_prompt(
        background="公司是一家中型电商企业,目前月活用户100万,计划拓展下沉市场",
        role="你是一个OKR战略顾问,擅长帮助企业制定可执行的OKR",
        objectives="在3个月内将月活用户从100万增长到150万",
        key_results="""KR1:新增下沉市场用户30万(可通过地推、电商平台合作)
KR2:提升用户留存率10%(优化产品体验、会员体系)
KR3:提高用户活跃度15%(推送策略优化、签到激励)""",
        evolve="请分析这个OKR的可行性,并提出调整建议"
    )
    
    print("AI回复:\n", ask(prompt))

6.3 适用场景

  • 战略规划、OKR制定
  • 项目管理
  • 需要量化评估的任务

6.4 小结

BROKE适合目标导向、需要量化结果的任务。

6.5 练习题

进阶题:用BROKE框架为”一个月内学会Python基础”制定执行计划。

七、SCRIPTS框架:流程任务

7.1 框架结构

SCRIPTS = Background + Constraints + Role + Instructions + Process + Output + Scoring。

  • Background:背景
  • Constraints:约束条件
  • Role:角色
  • Instructions:指令
  • Process:流程
  • Output:输出格式
  • Scoring:评分标准

7.2 代码实现

def scripts_prompt(background, constraints, role, instructions, process, output, scoring):
    """SCRIPTS框架 Prompt构建
    
    适合流程性任务,需要明确步骤和评分标准
    """
    prompt = f"""【背景】
{background}

【约束条件】
{constraints}

【角色】
{role}

【指令】
{instructions}

【流程】
{process}

【输出格式】
{output}

【评分标准】
{scoring}"""
    return prompt

def ask(prompt):
    response = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": prompt}]
    )
    return response.choices[0].message.content

# 示例:代码评审
if __name__ == "__main__":
    prompt = scripts_prompt(
        background="团队正在开发一个电商后端服务,使用Python+Django",
        constraints="代码需要符合PEP8规范,不能有安全漏洞",
        role="你是一个代码评审专家",
        instructions="请对提交的代码进行全面评审",
        process="1.检查代码规范 2.检查安全 3.检查性能 4.检查可维护性",
        output="分四个维度打分(1-10分),并给出具体改进建议",
        scoring="总分40分,低于24分需要重写"
    )
    
    print("AI回复:\n", ask(prompt))

7.3 适用场景

  • 流程性任务
  • 需要评分和评估的任务
  • 需要明确步骤的复杂任务

7.4 小结

SCRIPTS适合流程性任务,能明确评估标准。

八、实战:构建Prompt优化助手

8.1 需求分析

综合运用以上框架,构建一个Prompt优化工具:

  • 输入粗糙Prompt
  • 自动分析问题
  • 生成优化后的Prompt
  • 支持多种框架选择

8.2 完整代码

Prompt优化助手
图3:Prompt优化流程
from openai import OpenAI

client = OpenAI()

class PromptOptimizer:
    """Prompt优化器
    
    综合运用5种框架,自动优化Prompt
    """
    
    def analyze(self, prompt):
        """分析Prompt问题"""
        analysis_prompt = f"""请分析以下Prompt的问题:

{prompt}

请指出:
1. 是否清晰(指令是否明确)
2. 是否完整(上下文是否足够)
3. 是否具体(约束条件是否明确)
4. 输出格式是否清晰
5. 其他问题"""
        
        response = client.chat.completions.create(
            model="gpt-3.5-turbo",
            messages=[{"role": "user", "content": analysis_prompt}]
        )
        return response.choices[0].message.content
    
    def optimize(self, prompt, framework='ICIO'):
        """优化Prompt"""
        framework_guide = {
            'ICIO': "使用ICIO框架优化:Instruction + Context + Input + Output",
            'CRISPE': "使用CRISPE框架优化:角色 + 能力 + 洞察 + 任务 + 格式 + 示例",
            'CO-STAR': "使用CO-STAR框架优化:背景 + 目标 + 风格 + 语气 + 受众 + 格式",
            'BROKE': "使用BROKE框架优化:背景 + 角色 + 目标 + 关键结果 + 演化",
            'SCRIPTS': "使用SCRIPTS框架优化:背景 + 约束 + 角色 + 指令 + 流程 + 输出 + 评分"
        }
        
        optimize_prompt = f"""请将以下Prompt优化为{framework}格式。

原始Prompt:
{prompt}

优化要求:
{framework_guide.get(framework, '')}

请提供:
1. 优化后的完整Prompt
2. 优化说明"""
        
        response = client.chat.completions.create(
            model="gpt-3.5-turbo",
            messages=[{"role": "user", "content": optimize_prompt}]
        )
        return response.choices[0].message.content
    
    def chat(self, rough_prompt, action='optimize', framework='ICIO'):
        """对话入口"""
        print(f"📝 原始Prompt:{rough_prompt}\n")
        
        if action == 'analyze':
            result = self.analyze(rough_prompt)
            print(f"🔍 分析结果:\n{result}")
        else:
            result = self.optimize(rough_prompt, framework)
            print(f"✨ 优化结果({framework}框架):\n{result}")
        
        return result
    
    def run_demo(self):
        """演示"""
        rough_prompts = [
            "帮我写代码",
            "写一封邮件给老板请假",
            "分析一下这个数据"
        ]
        
        frameworks = ['ICIO', 'CRISPE', 'CO-STAR']
        
        for i, prompt in enumerate(rough_prompts):
            framework = frameworks[i % len(frameworks)]
            print(f"\n{'='*60}")
            print(f"[案例{i+1}] 框架:{framework}")
            print("="*60)
            self.chat(prompt, action='optimize', framework=framework)

# 测试
if __name__ == "__main__":
    optimizer = PromptOptimizer()
    optimizer.run_demo()

8.3 框架选择指南

场景 推荐框架
简单任务、快速输出 ICIO
复杂任务、需要专业深度 CRISPE
需要特定风格 CO-STAR
目标导向、需要量化 BROKE
流程性任务 SCRIPTS

九、总结与练习

9.1 要点回顾

  • ICIO:最基础,通用场景
  • CRISPE:复杂任务,专业深度
  • CO-STAR:结构化输出,特定风格
  • BROKE:目标导向,量化结果
  • SCRIPTS:流程任务,评分标准

9.2 Prompt优化检查清单

□ 指令是否清晰?(让AI知道要做什么)
□ 上下文是否足够?(让AI知道背景)
□ 约束是否具体?(限制条件明确)
□ 输出格式是否清晰?(期望的格式/长度/风格)
□ 有无歧义?(避免AI误解)
□ 示例是否必要且正确?(帮助AI理解)

9.3 延伸阅读

  • OpenAI Prompting Guide:官方Prompt编写指南
  • Anthropic Prompt Engineering:Claude的Prompt工程指南

9.4 课后练习

基础题:用ICIO框架优化”帮我写代码”这个Prompt。

进阶题:为你自己的工作场景设计专属的CRISPE Prompt模板。

挑战题:构建一个Prompt评估系统,能自动给Prompt打分并提供改进建议。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

微信公众号二维码

扫码关注公众号

QQ
QQ二维码

扫码添加QQ