提示工程架构师如何玩转Agentic AI?这8个案例告诉你答案

引言:Agentic AI的崛起与提示工程的“角色升级”

2023年以来,Agentic AI(智能体AI)成为继大语言模型(LLM)之后的下一个技术拐点。从AutoGPT的“自主任务规划”到LangChain的“多Agent协作”,从企业级的“智能客服群”到消费级的“个性化助手”,Agentic AI正在将LLM的“文本生成能力”转化为“现实世界的行动能力”。

但对于很多开发者来说,Agentic AI的落地依然是个“黑盒”:

  • 如何让AI像人一样分步骤解决问题
  • 如何让多个AI协作完成跨领域任务
  • 如何让AI记住历史互动并优化行为?

答案藏在提示工程架构师的工作里。

与传统“写Prompt的Prompt工程师”不同,提示工程架构师的核心职责是:设计Agent的“思考框架”“协作规则”和“进化机制”——用Prompt定义Agent的“角色”,用Prompt引导Agent的“思考流程”,用Prompt连接Agent与工具、记忆、其他Agent的交互。

本文将通过8个真实场景的案例,拆解提示工程架构师玩转Agentic AI的底层逻辑。每个案例都包含:

  • 场景背景:真实的业务痛点;
  • 提示设计思路:如何用Prompt定义Agent的行为;
  • 代码实现:基于LangChain的可运行示例;
  • 关键技巧:可复制的经验总结。

基础铺垫:Agentic AI与提示工程的核心逻辑

在进入案例前,我们需要先明确两个关键概念:

1. 什么是Agentic AI?

Agentic AI是具备“自主感知-决策-行动”能力的AI系统,核心组件包括:

  • 感知(Perception):获取外部信息(用户输入、工具输出、环境数据);
  • 记忆(Memory):存储历史信息(对话记录、任务状态、用户偏好);
  • 决策(Decision):根据感知和记忆生成行动方案(思考步骤、工具选择);
  • 行动(Action):执行具体操作(调用工具、生成文本、与其他Agent通信);
  • 反馈(Feedback):根据行动结果调整决策(优化Prompt、更新记忆);
  • 协作(Collaboration):与其他Agent分工完成复杂任务。

用Mermaid图表示Agent的核心流程:

graph TD
    A[感知:获取用户输入/工具输出] --> B[记忆:检索历史对话/任务状态]
    B --> C[决策:生成思考步骤/工具选择]
    C --> D[行动:调用工具/生成结果]
    D --> E[反馈:收集用户评价/调整决策]
    E --> B
    C --> F[协作:与其他Agent通信]

2. 提示工程架构师的核心任务

提示工程架构师的工作,本质是用Prompt“编程”Agent的上述流程

  • Role Prompt定义Agent的身份(比如“资深Python调试专家”);
  • CoT Prompt引导Agent的思考流程(比如“1. 复现问题→2. 分析异常→3. 定位根因”);
  • Tool Prompt连接Agent与工具(比如“当需要执行Python代码时,调用代码执行器”);
  • Memory Prompt整合记忆(比如“先查看用户历史购买记录再推荐产品”);
  • Collaboration Prompt规范多Agent交互(比如“法律Agent输出合规要求,技术Agent输出实现方案”)。

案例1:单Agent任务拆解——代码调试Agent

场景背景

开发者常遇到“代码报错但找不到原因”的问题,传统AI工具(如ChatGPT)会直接给出修复方案,但不解释“为什么错”“怎么找错”,导致开发者无法真正掌握调试能力。

问题痛点

  • AI输出“结论式答案”,缺乏“思考过程”;
  • 无法结合“代码执行结果”动态调整分析;
  • 不解释异常原理,用户无法举一反三。

提示设计思路

我们需要设计一个**“会教用户调试”的Agent**,核心Prompt要包含:

  1. Role定义:明确Agent的身份(资深Python调试专家);
  2. CoT流程:引导Agent分步骤思考(复现问题→分析异常→定位根因→修复方案→原理解释);
  3. Tool调用:让Agent能执行代码并获取异常信息。

代码实现(基于LangChain)

import traceback
from langchain.agents import initialize_agent, Tool
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate

# 1. 定义工具:执行Python代码并捕获异常
def run_python_code(code: str) -> str:
    try:
        exec(code)
        return "代码执行成功,无异常。"
    except Exception as e:
        return (
            f"异常类型:{type(e).__name__}\n"
            f"异常信息:{str(e)}\n"
            f"异常栈:{traceback.format_exc()}"
        )

# 2. 初始化工具集合
tools = [
    Tool(
        name="Python代码执行器",
        func=run_python_code,
        description="用于执行Python代码并捕获异常,帮助定位问题。"
    )
]

# 3. 设计Prompt模板(Role + CoT)
prompt_template = """
你是一位有10年经验的Python调试专家,擅长用“教用户解决问题”的方式回答。请严格按照以下步骤处理:

### 步骤1:复现问题
使用「Python代码执行器」运行用户提供的代码,获取异常信息(若有)。

### 步骤2:分析异常
- 识别异常类型(如SyntaxError/NameError/TypeError);
- 定位异常发生的行号和代码片段;
- 解释异常的字面含义(比如“NameError表示变量未定义”)。

### 步骤3:定位根因
结合代码逻辑,分析“为什么会出现这个异常”(比如“函数调用时传了空列表,导致len(numbers)=0,除法报错”)。

### 步骤4:修复方案
提供**具体的代码修改**,并解释修改的原因(比如“在计算平均值前,先检查列表是否为空”)。

### 步骤5:原理总结
用1句话总结“这类异常的通用避免方法”(比如“涉及除法运算时,一定要先检查分母是否为0”)。

用户的代码:{user_code}
"""

# 4. 初始化Agent
llm = OpenAI(temperature=0)  # 低温度保证思考的严谨性
agent = initialize_agent(
    tools=tools,
    llm=llm,
    agent="zero-shot-react-description",
    prompt=PromptTemplate.from_template(prompt_template)
)

# 5. 测试:用户的错误代码
user_code = """
def calculate_average(numbers):
    total = sum(numbers)
    average = total / len(numbers)
    return average

print(calculate_average([]))  # 传空列表,导致ZeroDivisionError
"""

# 运行Agent
result = agent.run({"user_code": user_code})
print("Agent回复:\n", result)

输出结果与关键技巧

输出结果(简化版)
步骤1:复现问题  
使用Python代码执行器运行代码,得到异常:  
异常类型:ZeroDivisionError  
异常信息:division by zero  
异常栈:... line 4, in calculate_average average = total / len(numbers)

步骤2:分析异常  
ZeroDivisionError表示“除以0”,异常发生在第4行(average = total / len(numbers))。

步骤3:定位根因  
用户传入空列表[],len(numbers)=0,导致分母为0。

步骤4:修复方案  
修改代码,增加空列表检查:
def calculate_average(numbers):
    if not numbers:  # 检查列表是否为空
        return 0  # 或抛出自定义异常
    total = sum(numbers)
    average = total / len(numbers)
    return average

步骤5:原理总结  
涉及除法/取模运算时,必须先检查分母是否为0。
关键技巧
  • Role具象化:用“10年经验的Python调试专家”替代“Python专家”,Agent的输出更专业;
  • CoT步骤化:用序号和明确的步骤引导Agent思考,避免“跳步”;
  • Tool绑定:通过description告诉Agent“什么时候用这个工具”(执行代码→获取异常)。

案例2:多Agent协作——跨领域知识问答系统

场景背景

企业客服常遇到跨领域问题,比如用户问:“用Python开发金融数据爬虫需要注意什么?”——这个问题需要**法律知识(合规要求)技术知识(爬虫实现)**结合,但单一Agent无法覆盖两个领域。

问题痛点

  • 单一Agent的知识边界有限,无法回答跨领域问题;
  • 多Agent协作时容易“职责重叠”或“信息遗漏”;
  • 输出结果缺乏整合,用户需要自己拼接信息。

提示设计思路

我们需要设计一个**“协作型Agent系统”**,包含3类Agent:

  1. 法律Agent:负责回答合规问题(如《个人信息保护法》要求);
  2. 技术Agent:负责回答技术问题(如Python爬虫框架选择);
  3. 协调Agent:负责整合前两个Agent的输出,生成统一答案。

核心Prompt要解决:

  • 角色分工:明确每个Agent的职责;
  • 协作流程:定义“问题→分工→整合”的顺序;
  • 输出规范:要求协调Agent生成结构化结果。

代码实现(基于LangChain)

from langchain.agents import initialize_agent, AgentType, Tool
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
from langchain.utilities import SerpAPIWrapper

# 初始化LLM(使用OpenAI GPT-3.5-turbo)
llm = OpenAI(temperature=0)

# 1. 定义法律Agent(处理合规问题)
legal_prompt = PromptTemplate(
    template="""
你是一位资深金融监管律师,专注于数据合规领域。请回答用户问题的**合规部分**:
- 列出需要遵守的主要法律法规(如中国《个人信息保护法》、欧盟GDPR);
- 针对“金融数据爬虫”的具体合规要求(如用户同意、数据脱敏);
- 可能的法律风险及规避方法。

用户问题:{user_question}
""",
    input_variables=["user_question"]
)

legal_agent = initialize_agent(
    tools=[],  # 法律Agent暂时不需要工具
    llm=llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    prompt=legal_prompt
)

# 2. 定义技术Agent(处理爬虫实现问题)
# 技术Agent需要搜索最新的框架信息,因此整合SerpAPI工具
search = SerpAPIWrapper()
tech_tools = [
    Tool(
        name="网络搜索",
        func=search.run,
        description="用于搜索最新的Python爬虫框架或技术方案。"
    )
]

tech_prompt = PromptTemplate(
    template="""
你是一位资深Python爬虫工程师,专注于合规爬虫开发。请回答用户问题的**技术部分**:
- 推荐合适的Python爬虫框架(如Scrapy/Requests+BeautifulSoup)及原因;
- 具体实现步骤(如请求头设置、反爬处理);
- 确保合规的技术措施(如尊重robots协议、限制爬取频率)。

用户问题:{user_question}
""",
    input_variables=["user_question"]
)

tech_agent = initialize_agent(
    tools=tech_tools,
    llm=llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    prompt=tech_prompt
)

# 3. 定义协调Agent(整合结果)
coordinator_prompt = PromptTemplate(
    template="""
你是一位跨领域问题协调专家,需要将法律Agent和技术Agent的结果整合成**结构化答案**。要求:
1. 分“合规要求”和“技术实现”两个部分;
2. 每个部分用 bullet point 列出关键点;
3. 语言通俗,避免专业术语堆砌。

法律Agent结果:{legal_result}
技术Agent结果:{tech_result}
""",
    input_variables=["legal_result", "tech_result"]
)

coordinator_agent = initialize_agent(
    tools=[],
    llm=llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    prompt=coordinator_prompt
)

# 4. 定义协作流程:问题→法律Agent→技术Agent→协调Agent
def run_multi_agent_system(user_question: str) -> str:
    # 第一步:法律Agent分析合规问题
    legal_result = legal_agent.run(user_question)
    # 第二步:技术Agent分析实现问题
    tech_result = tech_agent.run(user_question)
    # 第三步:协调Agent整合结果
    final_result = coordinator_agent.run({
        "legal_result": legal_result,
        "tech_result": tech_result
    })
    return final_result

# 5. 测试:用户问题
user_question = "用Python开发合规的金融数据爬虫需要注意什么?"
result = run_multi_agent_system(user_question)
print("最终答案:\n", result)

输出结果与关键技巧

输出结果(简化版)
### 合规要求
- 需遵守《个人信息保护法》(中国)、GDPR(欧盟)等法律法规;
- 采集金融数据前必须获得用户明确同意(如弹窗授权);
- 存储数据时需脱敏处理(如隐藏身份证后4位);
- 禁止爬取敏感数据(如用户账户密码、交易明细)。

### 技术实现
- 推荐使用Scrapy框架(支持异步爬取、反爬机制);
- 设置合理的请求头(如User-Agent、Referer),模拟浏览器行为;
- 限制爬取频率(如每10秒爬取1次),避免触发网站反爬;
- 尊重robots协议(通过Scrapy的ROBOTSTXT_OBEY设置为True)。
关键技巧
  • 角色隔离:每个Agent只处理自己领域的问题,避免“越界”;
  • 流程闭环:用“顺序执行”确保每个环节的结果都被整合;
  • 输出规范:协调Agent的Prompt明确要求“结构化”,避免结果混乱。

案例3:工具调用型Agent——智能数据分析师

场景背景

业务人员需要分析销售数据(如“2023年各月平均销售额”),但不懂SQL查询或Python统计,传统BI工具(如Tableau)操作复杂,学习成本高。

问题痛点

  • 业务人员无法直接操作数据库或代码;
  • 传统BI工具需要“拖拽式”配置,效率低;
  • 无法自动生成“业务解释”(比如“3月销售额高是因为春季促销”)。

提示设计思路

我们需要设计一个**“会用工具的数据分析Agent”**,核心能力:

  1. 调用SQL工具查询数据库;
  2. 调用Python工具进行统计分析;
  3. 调用绘图工具生成可视化图表;
  4. 解释结果的业务含义。

核心Prompt要解决:

  • 工具选择:引导Agent根据需求选择合适的工具(查询→统计→绘图);
  • 结果关联:将工具输出与业务场景结合(比如“月均销售额”→“促销活动效果”)。

代码实现(基于LangChain)

import pandas as pd
import matplotlib.pyplot as plt
from langchain.agents import initialize_agent, Tool
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
from langchain.utilities import SQLDatabase
from langchain_experimental.sql import SQLDatabaseChain

# 1. 初始化数据库(SQLite示例)
db = SQLDatabase.from_uri("sqlite:///sales.db")  # 假设sales.db包含sales表(date, product, sales)
sql_chain = SQLDatabaseChain(llm=OpenAI(temperature=0), database=db)

# 2. 定义工具集合
tools = [
    # 工具1:SQL查询(从数据库获取原始数据)
    Tool(
        name="SQL查询工具",
        func=lambda query: sql_chain.run(query),
        description="用于从销售数据库中查询原始数据,支持SQL语句(如SELECT * FROM sales WHERE date LIKE '2023%')。"
    ),
    # 工具2:Python统计(计算月均销售额)
    Tool(
        name="Python统计工具",
        func=lambda data: pd.DataFrame(eval(data)).groupby(pd.Grouper(key='date', freq='M'))['sales'].mean().to_dict(),
        description="用于对查询到的原始数据进行统计分析(如计算月均销售额)。"
    ),
    # 工具3:绘图工具(生成柱状图)
    Tool(
        name="图表绘制工具",
        func=lambda data: (
            pd.Series(data).plot(kind='bar', title='2023年各月平均销售额'),
            plt.savefig('sales_chart.png'),
            "图表已保存为sales_chart.png"
        )[2],
        description="用于将统计结果可视化(如生成柱状图)。"
    )
]

# 3. 设计Prompt模板(工具选择+业务解释)
prompt_template = """
你是一位智能数据分析师,负责帮助业务人员分析销售数据。请按照以下步骤处理:

### 步骤1:理解需求
明确用户需要的指标(如“月均销售额”)和时间范围(如“2023年”)。

### 步骤2:选择工具
- 需要原始数据?用「SQL查询工具」;
- 需要统计分析?用「Python统计工具」;
- 需要可视化?用「图表绘制工具」。

### 步骤3:执行操作
按顺序调用工具(查询→统计→绘图),确保前一个工具的输出是后一个工具的输入。

### 步骤4:解释结果
结合业务场景解释统计结果(如“3月销售额最高,可能是因为春季促销活动”)。

用户需求:{user_request}
"""

# 4. 初始化Agent
llm = OpenAI(temperature=0.5)  # 适度温度增加结果的灵活性
agent = initialize_agent(
    tools=tools,
    llm=llm,
    agent="zero-shot-react-description",
    prompt=PromptTemplate.from_template(prompt_template)
)

# 5. 测试:用户需求
user_request = "分析2023年各月的平均销售额,并生成柱状图。"
result = agent.run({"user_request": user_request})
print("Agent回复:\n", result)

输出结果与关键技巧

输出结果(简化版)
步骤1:理解需求  
用户需要“2023年各月平均销售额”及柱状图。

步骤2:选择工具  
1. 用「SQL查询工具」获取2023年的销售数据;
2. 用「Python统计工具」计算月均销售额;
3. 用「图表绘制工具」生成柱状图。

步骤3:执行操作  
- SQL查询:SELECT date, sales FROM sales WHERE date LIKE '2023%';
- 统计结果:{1月: 12000, 2月: 15000, 3月: 20000, ..., 12月: 18000};
- 图表:已保存为sales_chart.png。

步骤4:解释结果  
2023年3月平均销售额最高(20000元),可能是因为春季促销活动;11月次之(19000元),可能是双十一活动的影响。
关键技巧
  • 工具链设计:按“查询→统计→绘图”的顺序定义工具,Agent会自动按流程调用;
  • 输入输出衔接:工具的输出格式要与下一个工具的输入格式匹配(比如SQL输出DataFrame,Python统计工具接受DataFrame);
  • 业务关联:Prompt要求Agent“结合业务场景解释结果”,避免输出“纯数据”。

案例4:带记忆的Agent——个性化用户运营助手

场景背景

电商平台的用户运营需要个性化推荐(比如用户之前买过无线耳机,推荐无线充电板),但传统推荐系统依赖“用户画像”,无法实时结合历史对话(比如用户说“我喜欢降噪功能”)。

问题痛点

  • 无法记住用户的即时偏好(如对话中提到的“降噪功能”);
  • 推荐结果“千人一面”,缺乏个性化;
  • 无法关联历史购买记录(如用户买过无线耳机,推荐配件)。

提示设计思路

我们需要设计一个**“有记忆的用户运营Agent”**,核心能力:

  1. 存储历史对话(用户提到的“降噪功能”);
  2. 检索历史购买记录(用户买过的“无线耳机”);
  3. 结合记忆推荐(推荐“降噪无线耳机”或“无线充电板”)。

核心Prompt要解决:

  • 记忆检索:引导Agent先查看历史对话和购买记录;
  • 记忆应用:要求Agent将记忆与当前需求结合(比如“用户喜欢降噪→推荐降噪耳机”)。

代码实现(基于LangChain)

from langchain.agents import initialize_agent, Tool
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
from langchain.memory import ConversationBufferMemory

# 1. 模拟用户数据(实际中从数据库获取)
user_data = {
    "user_id": "123",
    "purchase_history": [{"product": "无线耳机", "date": "2023-01-15"}],
    "conversation_history": []
}

# 2. 定义工具集合
tools = [
    # 工具1:查询购买记录
    Tool(
        name="购买记录查询",
        func=lambda user_id: str(user_data["purchase_history"]),
        description="用于查询用户的历史购买记录,需要用户ID作为参数。"
    ),
    # 工具2:推荐产品
    Tool(
        name="产品推荐",
        func=lambda preferences: [
            "降噪无线耳机", "无线充电板", "蓝牙音箱"
        ] if "降噪" in preferences else ["运动T恤", "休闲鞋"],
        description="用于根据用户偏好推荐产品,需要用户偏好(如“降噪”“运动”)作为参数。"
    )
]

# 3. 设计Prompt模板(记忆检索+记忆应用)
prompt_template = """
你是一位个性化用户运营助手,需要结合用户的**历史对话**和**购买记录**提供服务。请遵循以下步骤:

### 步骤1:检索记忆
- 查看历史对话({chat_history}),提取用户偏好(如“喜欢降噪”);
- 调用「购买记录查询」工具,获取用户的历史购买产品(如“无线耳机”)。

### 步骤2:理解当前需求
明确用户现在的需求(如“推荐产品”“咨询售后”)。

### 步骤3:结合记忆推荐
将用户偏好、购买记录与当前需求结合,生成个性化回复(如“您之前买过无线耳机,推荐配套的无线充电板”)。

用户当前问题:{input}
"""

# 4. 初始化记忆(存储历史对话)
memory = ConversationBufferMemory(memory_key="chat_history")

# 5. 初始化Agent
llm = OpenAI(temperature=0.7)  # 适度温度增加回复的自然度
agent = initialize_agent(
    tools=tools,
    llm=llm,
    agent="zero-shot-react-description",
    prompt=PromptTemplate.from_template(prompt_template),
    memory=memory
)

# 6. 测试:多轮对话
# 第一轮:用户提到“喜欢降噪”
user_input1 = "我喜欢降噪功能的电子设备,有推荐吗?"
result1 = agent.run({"input": user_input1, "user_id": "123"})
print("回复1:\n", result1)

# 第二轮:用户问“有没有配套的配件?”(Agent需要记住“降噪”和“无线耳机”)
user_input2 = "有没有配套的配件?"
result2 = agent.run({"input": user_input2, "user_id": "123"})
print("回复2:\n", result2)

输出结果与关键技巧

输出结果(简化版)
回复1:  
您喜欢降噪功能的电子设备,推荐以下产品:  
1. 降噪无线耳机(主动降噪,续航20小时);  
2. 无线充电板(兼容您之前购买的无线耳机);  
3. 蓝牙音箱(支持降噪通话)。

回复2:  
您之前购买过无线耳机,推荐配套的无线充电板(支持快速充电,兼容大部分无线设备)。
关键技巧
  • 记忆组件:使用ConversationBufferMemory存储历史对话,Agent会自动检索;
  • 记忆关联:Prompt要求Agent“结合购买记录和对话历史”,避免“断片”;
  • 个性化触发:工具的推荐逻辑依赖“用户偏好”和“购买记录”,确保推荐的相关性。

案例5:自优化Agent——迭代式文案生成系统

场景背景

营销人员需要生成高转化率的文案(如“无线耳机的朋友圈广告”),但传统文案生成工具无法根据用户反馈迭代优化(比如用户说“文案不够有紧迫感”,工具无法自动调整)。

问题痛点

  • 生成的文案“一次性”,无法根据反馈优化;
  • 需要人工修改Prompt,效率低;
  • 无法学习“成功文案”的规律(如“加入限时优惠”转化率更高)。

提示设计思路

我们需要设计一个**“会自我优化的文案生成Agent”**,核心能力:

  1. 生成初始文案
  2. 收集用户反馈(如“不够有紧迫感”);
  3. 自动优化Prompt(如在Prompt中加入“限时优惠”);
  4. 迭代生成文案直到用户满意。

核心Prompt要解决:

  • 反馈循环:引导Agent根据反馈修改Prompt;
  • 优化方向:要求Agent明确“如何改进”(如“增加限时优惠”)。

代码实现(基于LangChain)

from langchain.agents import initialize_agent, Tool
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate

# 1. 定义工具集合
tools = [
    # 工具1:生成文案
    Tool(
        name="文案生成工具",
        func=lambda prompt: OpenAI(temperature=0.8)(prompt),
        description="用于根据Prompt生成营销文案。"
    ),
    # 工具2:优化Prompt
    Tool(
        name="Prompt优化工具",
        func=lambda input: OpenAI(temperature=0)(f"""
你是一位Prompt优化专家,需要根据用户反馈修改原Prompt。要求:
- 明确写出“优化点”(如“增加限时优惠”);
- 输出优化后的Prompt。

原Prompt:{input["original_prompt"]}
用户反馈:{input["feedback"]}
"""),
        description="用于根据用户反馈优化原Prompt,需要原Prompt和反馈作为参数。"
    )
]

# 2. 设计Prompt模板(迭代流程)
prompt_template = """
你是一位迭代式文案生成助手,需要根据用户反馈不断优化文案。请遵循以下步骤:

### 步骤1:生成初始文案
使用「文案生成工具」和原Prompt生成文案。

### 步骤2:收集反馈
获取用户对文案的反馈(如“不够有紧迫感”“需要增加情感词”)。

### 步骤3:优化Prompt
使用「Prompt优化工具」,根据反馈修改原Prompt。

### 步骤4:迭代生成
用优化后的Prompt重新生成文案,直到用户满意。

当前原Prompt:{original_prompt}
用户反馈:{user_feedback}
"""

# 3. 初始化Agent
llm = OpenAI(temperature=0)
agent = initialize_agent(
    tools=tools,
    llm=llm,
    agent="zero-shot-react-description",
    prompt=PromptTemplate.from_template(prompt_template)
)

# 4. 测试:迭代过程
# 初始Prompt
original_prompt = "生成一条关于无线耳机的朋友圈广告,突出音质好。"

# 第一轮反馈:“不够有紧迫感”
user_feedback1 = "文案不够有紧迫感,需要加入限时优惠(如“前50名下单立减50元”)。"
optimized_prompt1 = agent.run({
    "original_prompt": original_prompt,
    "user_feedback": user_feedback1
})
print("优化后的Prompt1:\n", optimized_prompt1)

# 第二轮反馈:“情感不够”
user_feedback2 = "文案情感不够,需要加入“沉浸式”“告别噪音”等词。"
optimized_prompt2 = agent.run({
    "original_prompt": optimized_prompt1,
    "user_feedback": user_feedback2
})
print("优化后的Prompt2:\n", optimized_prompt2)

# 生成最终文案
final_copy = OpenAI(temperature=0.8)(optimized_prompt2)
print("最终文案:\n", final_copy)

输出结果与关键技巧

输出结果(简化版)
优化后的Prompt1:  
生成一条关于无线耳机的朋友圈广告,突出音质好,加入限时优惠(如“前50名下单立减50元”)。

优化后的Prompt2:  
生成一条关于无线耳机的朋友圈广告,突出音质好(用“沉浸式”描述),加入限时优惠(前50名下单立减50元),强调“告别噪音”的情感。

最终文案:  
【沉浸式音质,告别噪音!】  
这款无线耳机,让你仿佛置身演唱会现场,每一个音符都清晰到心跳。  
前50名下单立减50元!手慢无!  
👉点击链接:xxx
关键技巧
  • 反馈闭环:用“生成→反馈→优化→再生成”的循环,让Agent自我进化;
  • 优化明确化:Prompt要求Agent写出“优化点”,避免模糊的修改;
  • 温度控制:生成文案时用高温度(0.8)增加创意,优化Prompt时用低温度(0)保证严谨。

案例6:跨模态Agent——多媒体内容创作平台

场景背景

内容创作者需要生成多模态内容(如“微信公众号文章”:文字+封面图+音频),但传统工具需要分别使用“文案生成器”“图片生成器”“音频合成器”,操作繁琐。

问题痛点

  • 多模态工具“各自为战”,无法协同;
  • 内容风格不一致(如文字是“治愈系”,图片是“科技风”);
  • 需要人工拼接多模态内容,效率低。

提示设计思路

我们需要设计一个**“跨模态协作Agent”**,核心能力:

  1. 生成文字文案(公众号文章);
  2. 生成图片(封面图,风格与文字一致);
  3. 生成音频(朗读文案,音色与风格匹配);
  4. 整合多模态内容(文字+图片+音频)。

核心Prompt要解决:

  • 风格统一:要求所有模态的内容风格一致(如“治愈系”);
  • 模态协同:引导Agent用文字的关键词生成图片(如文字提到“猫咪”,图片包含猫咪)。

代码实现(基于LangChain+Stable Diffusion+TTS)

import requests
from langchain.agents import initialize_agent, Tool
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate

# 1. 定义工具集合(整合第三方API)
def generate_text(prompt: str) -> str:
    """生成文字文案(使用OpenAI)"""
    return OpenAI(temperature=0.7)(prompt)

def generate_image(prompt: str) -> str:
    """生成图片(使用Stable Diffusion API)"""
    response = requests.post(
        "https://api.stability.ai/v1/generation/stable-diffusion-v1-5/text-to-image",
        headers={"Authorization": "Bearer YOUR_API_KEY"},
        json={"text_prompts": [{"text": prompt}], "width": 512, "height": 512}
    )
    return response.json()["artifacts"][0]["base64"]  # 返回Base64编码的图片

def generate_audio(text: str) -> str:
    """生成音频(使用Azure TTS API)"""
    response = requests.post(
        "https://eastus.tts.speech.microsoft.com/cognitiveservices/v1",
        headers={
            "Ocp-Apim-Subscription-Key": "YOUR_API_KEY",
            "Content-Type": "application/ssml+xml",
            "X-Microsoft-OutputFormat": "audio-16khz-128kbitrate-mono-mp3"
        },
        data=f"<speak version='1.0' xml:lang='zh-CN'><voice name='zh-CN-XiaoxiaoNeural'>{text}</voice></speak>"
    )
    return response.content  # 返回MP3二进制数据

tools = [
    Tool(name="文字生成工具", func=generate_text, description="用于生成文字文案"),
    Tool(name="图片生成工具", func=generate_image, description="用于生成图片,需要风格关键词(如“治愈系”)"),
    Tool(name="音频生成工具", func=generate_audio, description="用于生成音频,需要文字文案")
]

# 2. 设计Prompt模板(跨模态协同)
prompt_template = """
你是一位多模态内容创作助手,需要生成**风格统一**的文字、图片和音频。请遵循以下步骤:

### 步骤1:定义风格
明确内容的风格(如“治愈系”“科技风”“搞笑风”),确保所有模态一致。

### 步骤2:生成文字
使用「文字生成工具」生成文案,包含核心关键词(如“猫咪”“阳光”“下午茶”)。

### 步骤3:生成图片
用文字的**核心关键词+风格**作为Prompt,调用「图片生成工具」(如“治愈系猫咪在阳台晒太阳,下午茶,温暖色调”)。

### 步骤4:生成音频
用文字文案作为输入,调用「音频生成工具」,选择与风格匹配的音色(如“治愈系”用温柔的女声)。

### 步骤5:整合内容
输出文字文案、图片Base64编码、音频MP3数据。

用户需求:{user_request}
"""

# 3. 初始化Agent
llm = OpenAI(temperature=0.5)
agent = initialize_agent(
    tools=tools,
    llm=llm,
    agent="zero-shot-react-description",
    prompt=PromptTemplate.from_template(prompt_template)
)

# 4. 测试:用户需求
user_request = "生成一篇治愈系的微信公众号文章,主题是“周末和猫咪一起下午茶”,需要封面图和朗读音频。"
result = agent.run({"user_request": user_request})
print("文字文案:\n", result["text"])
print("图片Base64:\n", result["image"])
print("音频MP3:\n", result["audio"])

输出结果与关键技巧

输出结果(简化版)
  • 文字文案:“周末的午后,阳光透过窗帘洒在沙发上,猫咪蜷在腿上打盹,手边是一杯热可可和刚烤好的曲奇……”
  • 图片:治愈系风格,猫咪在阳台的藤椅上晒太阳,旁边有热可可和曲奇;
  • 音频:温柔的女声朗读文案,背景有轻缓的钢琴声。
关键技巧
  • 风格锚点:Prompt要求“定义风格”,所有模态都围绕这个风格生成;
  • 关键词传递:文字的核心关键词(如“猫咪”“阳光”“下午茶”)直接作为图片的Prompt,确保内容一致;
  • 模态绑定:音频的输入是文字文案,确保“读的内容”与“写的内容”一致。

案例7:安全合规Agent——金融风控决策助手

场景背景

金融机构需要合规的风控决策(如“是否批准用户的贷款申请”),但传统风控系统依赖“规则引擎”,无法处理模糊的合规要求(如“是否符合反洗钱规定”)。

问题痛点

  • 合规规则“模糊化”(如“可疑交易”没有明确定义);
  • 风控决策“黑盒化”,无法解释“为什么拒绝贷款”;
  • 无法实时更新合规规则(如监管政策变化)。

提示设计思路

我们需要设计一个**“懂合规的风控Agent”**,核心能力:

  1. 理解合规规则(如《反洗钱法》《个人贷款管理暂行办法》);
  2. 分析用户数据(如收入、征信、交易记录);
  3. 生成合规决策(如“批准/拒绝贷款”);
  4. 解释决策原因(如“拒绝原因:用户近3个月有2次逾期,违反《个人贷款管理暂行办法》第11条”)。

核心Prompt要解决:

  • 规则嵌入:将合规规则写入Prompt,引导Agent遵守;
  • 决策解释:要求Agent明确“引用的规则”和“对应的用户数据”。

代码实现(基于LangChain)

from langchain.agents import initialize_agent, Tool
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate

# 1. 模拟用户数据和合规规则
user_data = {
    "user_id": "456",
    "income": 8000,
    "credit_score": 650,
    "late_payments": 2,  # 近3个月逾期2次
    "transaction_history": ["2023-10-01 转账10000元", "2023-10-05 取现5000元"]
}

compliance_rules = """
1. 《个人贷款管理暂行办法》第11条:借款人信用记录良好,近3个月逾期次数不超过1次;
2. 《反洗钱法》第23条:可疑交易(如短期内频繁转账/取现)需上报;
3. 机构内部规则:借款人月收入需≥5000元。
"""

# 2. 定义工具集合
tools = [
    # 工具1:查询用户数据
    Tool(
        name="用户数据查询",
        func=lambda user_id: str(user_data),
        description="用于查询用户的收入、征信、交易记录等数据。"
    ),
    # 工具2:查询合规规则
    Tool(
        name="合规规则查询",
        func=lambda rule_id: compliance_rules,
        description="用于查询金融合规规则(如《个人贷款管理暂行办法》)。"
    )
]

# 3. 设计Prompt模板(合规嵌入+决策解释)
prompt_template = """
你是一位金融风控合规专家,负责根据**合规规则**和**用户数据**做出决策。请严格遵循以下步骤:

### 步骤1:查询规则
调用「合规规则查询」工具,获取相关的合规规则(如贷款审批的规则)。

### 步骤2:查询用户数据
调用「用户数据查询」工具,获取用户的收入、征信、交易记录等数据。

### 步骤3:匹配规则与数据
- 检查用户数据是否符合每一条合规规则;
- 标记“违反的规则”和“对应的用户数据”(如“违反规则1:近3个月逾期2次”)。

### 步骤4:生成决策
- 若所有规则都符合:批准贷款;
- 若有规则违反:拒绝贷款,并明确说明拒绝原因。

### 步骤5:解释决策
用“规则+数据”的格式解释决策(如“拒绝原因:违反《个人贷款管理暂行办法》第11条(近3个月逾期2次)”)。

用户需求:是否批准用户{user_id}的贷款申请?
"""

# 4. 初始化Agent
llm = OpenAI(temperature=0)  # 低温度保证决策的严谨性
agent = initialize_agent(
    tools=tools,
    llm=llm,
    agent="zero-shot-react-description",
    prompt=PromptTemplate.from_template(prompt_template)
)

# 5. 测试:用户需求
user_id = "456"
result = agent.run({"user_id": user_id})
print("风控决策:\n", result)

输出结果与关键技巧

输出结果(简化版)
步骤1:查询规则  
获取到合规规则:  
1. 《个人贷款管理暂行办法》第11条:近3个月逾期次数不超过1次;  
2. 《反洗钱法》第23条:可疑交易需上报;  
3. 机构内部规则:月收入≥5000元。

步骤2:查询用户数据  
用户数据:月收入8000元,信用分650,近3个月逾期2次,交易记录包含“转账10000元”“取现5000元”。

步骤3:匹配规则与数据  
- 违反规则1:近3个月逾期2次;  
- 符合规则2:交易记录无频繁转账/取现;  
- 符合规则3:月收入8000元≥5000元。

步骤4:生成决策  
拒绝贷款申请。

步骤5:解释决策  
拒绝原因:违反《个人贷款管理暂行办法》第11条(近3个月逾期2次)。
关键技巧
  • 规则显性化:将合规规则写入Prompt,Agent会严格遵守;
  • 决策可解释:要求Agent用“规则+数据”的格式解释决策,符合监管要求;
  • 风险隔离:低温度设置确保Agent不会“创造性”地违反规则。

案例8:大规模Agent群体——虚拟客服运营系统

场景背景

企业需要大规模的虚拟客服(如“电商平台的100个客服Agent”),但传统客服系统无法处理:

  • 负载均衡(如高峰时段分配更多Agent处理咨询);
  • 角色分层(如“初级客服”处理简单问题,“高级客服”处理复杂问题);
  • 知识同步(如“新活动规则”需要快速同步给所有Agent)。

问题痛点

  • 大规模Agent“各自为战”,无法协同;
  • 无法动态调整Agent的负载;
  • 知识更新困难,Agent容易输出过时信息。

提示设计思路

我们需要设计一个**“分层协作的客服Agent系统”**,核心架构:

  1. 入口Agent:负责接收用户请求,
Logo

更多推荐