提示工程架构师如何玩转Agentic AI?这8个案例告诉你答案
Agentic AI是具备“自主感知-决策-行动”能力的AI系统感知(Perception):获取外部信息(用户输入、工具输出、环境数据);记忆(Memory):存储历史信息(对话记录、任务状态、用户偏好);决策(Decision):根据感知和记忆生成行动方案(思考步骤、工具选择);行动(Action):执行具体操作(调用工具、生成文本、与其他Agent通信);反馈(Feedback):根据行动结
提示工程架构师如何玩转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要包含:
- Role定义:明确Agent的身份(资深Python调试专家);
- CoT流程:引导Agent分步骤思考(复现问题→分析异常→定位根因→修复方案→原理解释);
- 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:
- 法律Agent:负责回答合规问题(如《个人信息保护法》要求);
- 技术Agent:负责回答技术问题(如Python爬虫框架选择);
- 协调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”**,核心能力:
- 能调用SQL工具查询数据库;
- 能调用Python工具进行统计分析;
- 能调用绘图工具生成可视化图表;
- 能解释结果的业务含义。
核心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”**,核心能力:
- 能存储历史对话(用户提到的“降噪功能”);
- 能检索历史购买记录(用户买过的“无线耳机”);
- 能结合记忆推荐(推荐“降噪无线耳机”或“无线充电板”)。
核心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”**,核心能力:
- 能生成初始文案;
- 能收集用户反馈(如“不够有紧迫感”);
- 能自动优化Prompt(如在Prompt中加入“限时优惠”);
- 能迭代生成文案直到用户满意。
核心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”**,核心能力:
- 能生成文字文案(公众号文章);
- 能生成图片(封面图,风格与文字一致);
- 能生成音频(朗读文案,音色与风格匹配);
- 能整合多模态内容(文字+图片+音频)。
核心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”**,核心能力:
- 能理解合规规则(如《反洗钱法》《个人贷款管理暂行办法》);
- 能分析用户数据(如收入、征信、交易记录);
- 能生成合规决策(如“批准/拒绝贷款”);
- 能解释决策原因(如“拒绝原因:用户近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系统”**,核心架构:
- 入口Agent:负责接收用户请求,
更多推荐
所有评论(0)