Agentic AI提示优化必学:提示工程架构师总结的6个“精准表达”技巧,AI更懂你!
我们每天都在和AI打交道:用ChatGPT写文案、用Claude改论文、用Copilot写代码。但普通AI更像“问答机器”,你问一句它答一句;而Agentic AI(代理型AI)是“能自己做事的小秘书”——它会主动思考、调用工具(比如查天气、订酒店)、多轮沟通(比如问你“预算多少?”),甚至独立完成复杂任务(比如“帮我写一篇关于Agentic AI的博客,从选题到排版全搞定”)。
Agentic AI提示优化必学:提示工程架构师总结的6个“精准表达”技巧,AI更懂你!
关键词:Agentic AI、提示工程、精准表达、思维链、工具调用、上下文管理、结果格式
摘要:你有没有遇到过这样的情况?让AI帮你规划旅行,它却问了一堆无关问题;让AI写报告,结果逻辑混乱像一团浆糊;让AI处理数据,它要么遗漏关键信息,要么输出格式完全不符合要求。其实,不是AI不够聪明,而是你没学会“精准表达”——就像给小秘书写任务清单,得说清楚“做什么、怎么做、要什么结果”。本文结合Agentic AI(有自主决策能力的AI)的特点,用6个小学生都能听懂的“精准表达”技巧,教你如何让AI变成“懂你的小助手”。从任务定义到结果格式,每个技巧都有生活例子、AI实战案例和代码演示,帮你彻底解决“AI听不懂话”的痛点。
背景介绍
目的和范围
我们每天都在和AI打交道:用ChatGPT写文案、用Claude改论文、用Copilot写代码。但普通AI更像“问答机器”,你问一句它答一句;而Agentic AI(代理型AI)是“能自己做事的小秘书”——它会主动思考、调用工具(比如查天气、订酒店)、多轮沟通(比如问你“预算多少?”),甚至独立完成复杂任务(比如“帮我写一篇关于Agentic AI的博客,从选题到排版全搞定”)。
但Agentic AI的“自主能力”也带来了挑战:如果你的提示不够清晰,它可能会“想歪”——比如你说“帮我找个餐厅”,它可能给你推荐10公里外的西餐,而你其实想要公司楼下的川菜。本文的目的,就是教你用6个“精准表达”技巧,让Agentic AI准确理解你的需求,少走弯路,提高效率。
预期读者
- 经常用AI的职场人(比如用AI写报告、做数据分析);
- 想开发Agentic AI的程序员(比如用LangChain做智能助手);
- 对AI感兴趣的普通人(比如想让AI帮自己规划生活)。
文档结构概述
- 背景介绍:讲清楚Agentic AI和普通AI的区别,以及为什么需要“精准表达”;
- 核心概念:用“小秘书”的比喻解释Agentic AI的关键特性(自主决策、工具调用、多轮交互);
- 6个“精准表达”技巧:每个技巧用“生活例子+AI案例+代码演示”讲解,让你一看就会;
- 项目实战:用LangChain做一个“旅行规划Agent”,亲身体验技巧的效果;
- 应用场景与未来趋势:看看这些技巧在真实场景中的应用,以及Agentic AI的发展方向;
- 总结与思考题:回顾重点,让你学以致用。
术语表
核心术语定义
- Agentic AI:有自主决策能力的AI,像“小秘书”一样,能主动思考、调用工具、完成任务(比如AutoGPT、LangChain Agent);
- 提示工程:设计“让AI听懂的话”的技术,就像给小秘书写“任务说明书”;
- 思维链(CoT):让AI“一步步想问题”的提示方法,比如“先算初始数量,再算吃了之后的数量,最后算买了之后的数量”;
- 工具调用:Agentic AI使用外部工具的能力(比如查天气用中国天气网API、订酒店用携程API);
- 上下文锚点:提醒AI“之前说过的话”,比如“之前我们讨论了Agentic AI的自主决策,现在扩展一下工具调用的部分”;
- 结果格式:要求AI输出特定格式(比如表格、 bullet point、JSON),就像让小秘书“把购物清单写成表格”。
核心概念与联系:Agentic AI像“有自主意识的小秘书”
故事引入:为什么你的AI“听不懂话”?
假设你让小秘书帮你规划周末旅行,你说:“帮我规划一下周末的旅行。” 小秘书可能会问:“你想去哪里?预算多少?喜欢什么类型的景点?” 但如果你说:“帮我规划一个周末2天1晚的上海旅行,预算1500元,喜欢文艺景点(比如田子坊、武康路),不吃辣,需要包含早餐(酒店提供或附近有早餐店),交通用地铁或打车。” 小秘书会直接给你一份详细的行程,包括每天的安排、餐厅推荐、酒店预订链接——甚至会帮你查好周末的天气,提醒你带伞。
Agentic AI就像这个“小秘书”:它的“自主能力”需要你用“精准的提示”来引导。如果你的提示像“帮我规划旅行”一样模糊,它会“问东问西”;如果你的提示像“上海旅行清单”一样具体,它会“高效完成任务”。
核心概念解释:Agentic AI的3个“小秘书特性”
要让Agentic AI听懂你,得先明白它的“思考方式”——它和普通AI的区别,就像“小秘书”和“复读机”的区别:
1. 自主决策:小秘书会“自己拿主意”
普通AI:你问“今天天气怎么样?”,它直接告诉你“25℃,晴”;
Agentic AI:你问“今天要不要去公园?”,它会先查天气(25℃,晴),再想“公园人多吗?”(查实时人流量),最后告诉你“适合去,记得带水”。
比喻:就像你让小秘书“帮我买午餐”,它会自己决定“买你喜欢的盖浇饭,还是最近的奶茶店?”——而不是只说“你要什么?”。
2. 工具调用:小秘书会“用工具帮忙”
普通AI:你问“2023年中国GDP是多少?”,它可能会说“我需要查一下”(但其实不会真的查);
Agentic AI:你问同样的问题,它会调用国家统计局的API,获取最新数据,然后告诉你“2023年中国GDP是126.06万亿元”(带数据来源)。
比喻:就像你让小秘书“帮我查快递”,它会用手机打开顺丰APP,输入单号,然后把物流信息发给你——而不是只说“我不知道”。
3. 多轮交互:小秘书会“追问细节”
普通AI:你说“帮我写篇博客”,它直接写一篇,但可能不符合你的要求;
Agentic AI:你说“帮我写篇博客”,它会问“目标读者是谁?要多少字?主题是什么?”——直到把需求问清楚。
比喻:就像你让小秘书“帮我买礼物”,它会问“送给谁?喜欢什么?预算多少?”——而不是随便买一个。
核心概念之间的关系:“精准提示”是“小秘书的指挥棒”
Agentic AI的3个特性(自主决策、工具调用、多轮交互),需要“精准提示”来串联:
- 自主决策需要“任务定义”(做什么)和“约束条件”(不能做什么);
- 工具调用需要“工具指令”(用什么工具、怎么用);
- 多轮交互需要“上下文锚点”(记得之前说过的话);
- 最终的“结果格式”(要什么样子)决定了小秘书的“输出质量”。
比喻:就像你让小秘书“帮你办生日派对”,“任务定义”是“邀请10个朋友,在周六下午2点,在小区花园”;“约束条件”是“不能超过500元,要准备蛋糕和饮料”;“工具调用”是“用美团订蛋糕,用微信发邀请”;“上下文锚点”是“记得去年派对上朋友喜欢吃的零食”;“结果格式”是“把邀请名单写成表格,把花费做成账单”。
核心概念原理的文本示意图
Agentic AI的工作流程就像“小秘书办事情”:
- 接收任务(用户输入提示);
- 解析需求(理解“做什么、怎么做、要什么结果”);
- 自主决策(要不要调用工具?要不要追问用户?);
- 执行任务(调用工具、生成内容);
- 输出结果(按照要求的格式呈现)。
Mermaid流程图:Agentic AI的工作流程
graph TD
A[用户输入提示] --> B[解析需求:任务/约束/工具/格式]
B --> C{需要调用工具吗?}
C -->|是| D[调用工具(查天气/订酒店等)]
D --> E{需要追问用户吗?}
C -->|否| E
E -->|是| F[向用户询问细节(预算/偏好等)]
F --> A
E -->|否| G[生成结果(按照格式要求)]
G --> H[输出给用户]
6个“精准表达”技巧:让Agentic AI变成“懂你的小秘书”
接下来,我们用“小秘书”的比喻,讲解6个“精准表达”技巧——每个技巧都有“生活例子”“AI案例”“代码演示”和“注意事项”,让你一看就会。
技巧1:任务定义——像“给小秘书写清楚‘做什么’”
生活例子:你让小秘书帮你买水果,说“买些水果”(模糊),小秘书可能买苹果、香蕉、橘子各一斤;但如果你说“买2斤红富士苹果(要脆的)、1斤草莓(要甜的)、不要梨”(具体),小秘书会准确完成任务。
AI案例:你让Agentic AI帮你写博客,模糊提示是“帮我写篇关于Agentic AI的博客”(AI可能写得太笼统);精准提示是“帮我写一篇关于Agentic AI的博客,目标读者是小学生,需要用3个生活例子(小秘书、做手工、买蛋糕),1000字以内,语言要幽默,结构是‘开头故事+中间3个技巧+结尾总结’”(AI会按照你的要求,写出符合预期的博客)。
代码演示(LangChain):
用LangChain的PromptTemplate
定义任务:
from langchain import PromptTemplate
# 模糊提示
模糊提示 = "帮我写篇关于Agentic AI的博客"
# 精准提示模板
精准提示模板 = """你是一个面向小学生的科普作家,需要写一篇关于Agentic AI的博客。要求:
1. 目标读者:10-12岁的小学生,语言要幽默,用生活例子(比如小秘书、做手工、买蛋糕);
2. 结构:开头用一个故事(比如“小明让AI帮他规划生日派对”),中间讲3个Agentic AI的特点(自主决策、工具调用、多轮交互),每个特点用一个生活例子;
3. 字数:1000字以内;
4. 结尾:总结Agentic AI的好处,鼓励小朋友多了解AI。
请按照这个要求写博客。"""
# 生成精准提示
prompt = PromptTemplate(template=精准提示模板, input_variables=[])
print(prompt.format())
输出结果对比:
- 模糊提示的输出:可能讲“Agentic AI是一种高级AI,能自主决策”(太笼统);
- 精准提示的输出:会用“小明让AI帮他规划生日派对”的故事,讲“AI像小秘书一样,会问他‘预算多少?喜欢什么蛋糕?’”(符合小学生的理解水平)。
注意事项:任务定义要包含“目标、读者、结构、语言风格”——就像给小秘书写“任务说明书”,越具体越好。
技巧2:约束条件——像“给小秘书定‘不能做什么’”
生活例子:你让小秘书帮你买蛋糕,说“买个蛋糕”(没约束),小秘书可能买巧克力味的(你讨厌巧克力);但如果你说“买个草莓味的蛋糕,不要巧克力,要带蜡烛”(有约束),小秘书会准确完成任务。
AI案例:你让Agentic AI帮你查天气,模糊提示是“帮我查明天的天气”(AI可能输出温度、湿度,但没说来源);精准提示是“帮我查明天上海的天气,只能用中国天气网的数据,结果要包含温度(℃)、湿度(%)、是否下雨,用表格呈现”(AI会按照你的要求,输出准确的天气信息)。
代码演示(OpenAI Function Calling):
用OpenAI的Function Calling定义约束条件(只能用中国天气网的数据):
import openai
import json
# 定义工具(中国天气网API)
def get_weather(city, date):
# 模拟调用中国天气网API,返回天气数据
return {
"city": city,
"date": date,
"temperature": 25,
"humidity": 60,
"rain": "无"
}
# 精准提示
prompt = """帮我查明天上海的天气,要求:
1. 数据来源:中国天气网;
2. 结果包含:温度(℃)、湿度(%)、是否下雨;
3. 输出格式:表格。"""
# 调用OpenAI API,使用Function Calling
response = openai.ChatCompletion.create(
model="gpt-4-0613",
messages=[{"role": "user", "content": prompt}],
functions=[{"name": "get_weather", "parameters": {"type": "object", "properties": {"city": {"type": "string"}, "date": {"type": "string"}}}}],
function_call={"name": "get_weather", "parameters": {"city": "上海", "date": "明天"}}
)
# 解析结果,生成表格
weather_data = json.loads(response.choices[0].message.function_call.arguments)
weather_result = get_weather(weather_data["city"], weather_data["date"])
print(f"| 城市 | 日期 | 温度(℃) | 湿度(%) | 是否下雨 |")
print(f"|------|------|------------|------------|----------|")
print(f"| {weather_result['city']} | {weather_result['date']} | {weather_result['temperature']} | {weather_result['humidity']} | {weather_result['rain']} |")
输出结果:
城市 | 日期 | 温度(℃) | 湿度(%) | 是否下雨 |
---|---|---|---|---|
上海 | 明天 | 25 | 60 | 无 |
注意事项:约束条件要包含“数据来源、禁止内容、必须包含的信息”——就像给小秘书定“规矩”,让它不要犯错误。
技巧3:思维链引导——像“教小秘书‘怎么想问题’”
生活例子:你让小秘书帮你算“小明有5个苹果,吃了2个,又买了3个,现在有多少个?”,模糊提示是“算一下小明有多少个苹果”(小秘书可能直接说“6个”,但没说过程);精准提示是“一步步想:1. 初始数量是5个;2. 吃了2个,剩下5-2=3个;3. 买了3个,现在有3+3=6个”(小秘书会按照你的步骤,写出过程)。
AI案例:你让Agentic AI帮你解决数学题,模糊提示是“解决这个问题:小明有5个苹果,吃了2个,又买了3个,现在有多少个?”(AI可能直接说“6个”);精准提示是“请一步步解决这个问题:1. 初始数量;2. 吃了之后的数量;3. 买了之后的数量”(AI会写出过程,让你知道它是怎么想的)。
代码演示(Claude 3):
用Claude 3的“思维链”提示:
from anthropic import Anthropic
client = Anthropic(api_key="你的API密钥")
# 模糊提示
模糊提示 = "解决这个问题:小明有5个苹果,吃了2个,又买了3个,现在有多少个?"
# 精准提示(思维链引导)
精准提示 = """请一步步解决这个问题:
1. 初始数量:小明一开始有多少个苹果?
2. 吃了之后的数量:吃了2个后,剩下多少个?
3. 买了之后的数量:买了3个后,现在有多少个?"""
# 调用Claude 3 API
response = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1000,
messages=[{"role": "user", "content": 精准提示}]
)
print(response.content[0].text)
输出结果:
- 初始数量:小明一开始有5个苹果。
- 吃了之后的数量:5个苹果吃了2个,剩下5-2=3个。
- 买了之后的数量:剩下的3个苹果加上买的3个,现在有3+3=6个。
注意事项:思维链引导要包含“步骤、逻辑”——就像教小秘书“怎么一步步做手工”,让它不要跳过关键步骤。
技巧4:工具调用指令——像“告诉小秘书‘用什么工具’”
生活例子:你让小秘书帮你查快递,模糊提示是“帮我查快递”(小秘书可能问“单号是多少?”);精准提示是“帮我查快递,单号是123456,用顺丰官网,把物流信息截图发给我”(小秘书会直接查,不用问你)。
AI案例:你让Agentic AI帮你查2023年中国GDP,模糊提示是“帮我查2023年中国GDP”(AI可能说“我需要查一下”);精准提示是“帮我查2023年中国GDP的数据,用国家统计局的官网,把结果转换成表格,标注数据来源”(AI会调用国家统计局的API,输出表格)。
代码演示(LangChain Tool):
用LangChain的Tool
定义国家统计局的API工具:
from langchain import Tool
from langchain.agents import initialize_agent, AgentType
from langchain.chat_models import ChatOpenAI
# 定义工具:调用国家统计局API查GDP
def get_gdp(year):
# 模拟调用国家统计局API,返回GDP数据
return {
"year": year,
"gdp": "126.06万亿元",
"source": "国家统计局"
}
# 创建工具实例
gdp_tool = Tool(
name="GetGDP",
func=get_gdp,
description="用于查询中国某一年的GDP数据,输入参数是年份(比如2023)"
)
# 初始化Agent
llm = ChatOpenAI(model_name="gpt-4", temperature=0)
agent = initialize_agent(
tools=[gdp_tool],
llm=llm,
agent_type=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)
# 精准提示(工具调用指令)
prompt = "帮我查2023年中国GDP的数据,用国家统计局的官网,把结果转换成表格,标注数据来源"
# 运行Agent
agent.run(prompt)
输出结果:
> 我需要查询2023年中国GDP的数据,使用国家统计局的官网。首先,调用GetGDP工具,输入年份2023。
> 调用工具:GetGDP(2023)
> 工具返回:{"year": 2023, "gdp": "126.06万亿元", "source": "国家统计局"}
> 把结果转换成表格,标注数据来源:
| 年份 | GDP(万亿元) | 数据来源 |
|------|----------------|------------|
| 2023 | 126.06 | 国家统计局 |
注意事项:工具调用指令要包含“工具名称、输入参数、输出要求”——就像告诉小秘书“用顺丰APP,输入单号123456,截图发给我”,让它不用问你就能做。
技巧5:上下文锚点——像“提醒小秘书‘之前说过的话’”
生活例子:你和小秘书聊天,说“之前我提到想要买一双运动鞋,今天看到打折了,你觉得怎么样?”(上下文锚点是“之前提到的运动鞋”),小秘书会记得你之前的需求,说“你之前想要的是白色的、尺码42的运动鞋,今天打折的刚好是这个款式,价格是300元,比之前便宜了50元”(符合你的需求)。
AI案例:你和Agentic AI讨论Agentic AI的特点,之前说过“Agentic AI能自主决策”,现在你说“扩展一下工具调用的部分,结合之前的旅行规划例子”(上下文锚点是“之前的旅行规划例子”),AI会记得之前的旅行规划例子,说“比如在旅行规划中,Agentic AI会调用天气API查天气,调用酒店API订酒店,这些都是工具调用的例子”(符合你的需求)。
代码演示(LangChain Memory):
用LangChain的ConversationBufferMemory
保存上下文:
from langchain import ConversationChain, PromptTemplate
from langchain.chat_models import ChatOpenAI
from langchain.memory import ConversationBufferMemory
# 初始化LLM和Memory
llm = ChatOpenAI(model_name="gpt-4", temperature=0)
memory = ConversationBufferMemory()
# 定义对话链
conversation = ConversationChain(llm=llm, memory=memory, verbose=True)
# 第一轮对话:讨论自主决策
conversation.predict(input="Agentic AI的自主决策是什么?举个生活例子。")
# 第二轮对话:扩展工具调用,用上下文锚点(之前的旅行规划例子)
prompt = "扩展一下工具调用的部分,结合之前的旅行规划例子。"
conversation.predict(input=prompt)
输出结果:
- 第一轮对话输出:“Agentic AI的自主决策是指它能自己决定做什么,比如你让它帮你规划旅行,它会自己决定先查天气,再订酒店,再安排行程。生活例子:小明让AI帮他规划周末旅行,AI自主决定先查上海的天气(晴),再订位于田子坊附近的酒店(符合文艺偏好),再安排每天的行程(上午去武康路,下午去田子坊,晚上去外滩)。”
- 第二轮对话输出:“工具调用是Agentic AI的重要特性,比如在之前的旅行规划例子中,AI会调用天气API查上海的天气(获取实时数据),调用酒店API订田子坊附近的酒店(比较价格和评价),调用地图API查景点之间的距离(安排合理的交通方式)。这些工具调用都是AI自主决定的,目的是完成旅行规划任务。”
注意事项:上下文锚点要包含“之前的对话内容、相关例子”——就像提醒小秘书“之前说过的运动鞋”,让它不要忘记你的需求。
技巧6:结果格式要求——像“让小秘书‘把结果写成表格’”
生活例子:你让小秘书帮你抄笔记,说“帮我抄一下今天的会议笔记”(没格式要求),小秘书可能写得乱七八糟;但如果你说“用蓝色笔,写在笔记本的第5页,每段开头空两格,重点用下划线标注”(有格式要求),小秘书会写得整整齐齐。
AI案例:你让Agentic AI帮你总结文章要点,模糊提示是“帮我总结这篇文章的要点”(AI可能写一段文字);精准提示是“帮我总结这篇文章的要点,用 bullet point,每个要点不超过20字,开头加 emoji”(AI会按照你的要求,输出整齐的要点)。
代码演示(ChatGPT):
用ChatGPT的“结果格式”提示:
import openai
# 定义文章内容(示例)
article = """Agentic AI是有自主决策能力的AI,像小秘书一样能主动思考、调用工具、完成任务。要让Agentic AI听懂你,需要用精准的提示,包括任务定义、约束条件、思维链引导、工具调用指令、上下文锚点、结果格式要求。每个技巧都有生活例子和AI案例,帮你彻底解决“AI听不懂话”的痛点。"""
# 精准提示(结果格式要求)
prompt = f"""帮我总结这篇文章的要点,要求:
1. 用 bullet point;
2. 每个要点不超过20字;
3. 开头加 emoji。
文章内容:{article}"""
# 调用ChatGPT API
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
print(response.choices[0].message.content)
输出结果:
- 🤖️ Agentic AI是有自主决策的“小秘书”;
- ✍️ 精准提示需包含6个技巧(任务/约束等);
- 📚 每个技巧有生活例子和AI案例;
- 🎯 解决“AI听不懂话”的痛点。
注意事项:结果格式要求要包含“格式类型(表格/ bullet point/JSON)、具体要求(字数/符号/颜色)”——就像让小秘书“把购物清单写成表格”,让结果更符合你的需求。
项目实战:用LangChain做一个“旅行规划Agent”
现在,我们用上面的6个技巧,做一个“旅行规划Agent”——它能帮你规划周末旅行,包括查天气、订酒店、推荐景点和餐厅,输出详细的行程表格。
开发环境搭建
- 安装Python(3.8+);
- 安装LangChain:
pip install langchain
; - 安装OpenAI SDK:
pip install openai
; - 申请OpenAI API密钥(https://platform.openai.com/)。
源代码详细实现
from langchain import Tool, PromptTemplate
from langchain.agents import initialize_agent, AgentType
from langchain.chat_models import ChatOpenAI
from langchain.memory import ConversationBufferMemory
import json
# 1. 定义工具(模拟调用外部API)
def get_weather(city, date):
"""获取指定城市指定日期的天气"""
return {
"city": city,
"date": date,
"temperature": 25,
"humidity": 60,
"rain": "无"
}
def book_hotel(city, date, budget, preferences):
"""根据预算和偏好预订酒店"""
return {
"hotel_name": "田子坊文艺酒店",
"address": "上海市黄浦区田子坊路1号",
"price": 800,
"breakfast": "提供"
}
def recommend_attractions(city, preferences):
"""根据偏好推荐景点"""
return [
{"name": "田子坊", "type": "文艺", "duration": "2小时"},
{"name": "武康路", "type": "文艺", "duration": "1.5小时"},
{"name": "外滩", "type": "夜景", "duration": "1小时"}
]
def recommend_restaurants(city, dietary_restrictions):
"""根据饮食限制推荐餐厅"""
return [
{"name": "小杨生煎(田子坊店)", "address": "上海市黄浦区田子坊路2号", "推荐菜": "生煎包(不辣)", "price": 30},
{"name": "老上海馄饨铺(武康路店)", "address": "上海市徐汇区武康路3号", "推荐菜": "馄饨(不辣)", "price": 25}
]
# 2. 创建工具实例
tools = [
Tool(
name="GetWeather",
func=get_weather,
description="用于获取指定城市指定日期的天气,输入参数是城市(比如上海)和日期(比如明天)"
),
Tool(
name="BookHotel",
func=book_hotel,
description="用于根据预算和偏好预订酒店,输入参数是城市(比如上海)、日期(比如明天)、预算(比如1500)、偏好(比如文艺)"
),
Tool(
name="RecommendAttractions",
func=recommend_attractions,
description="用于根据偏好推荐景点,输入参数是城市(比如上海)、偏好(比如文艺)"
),
Tool(
name="RecommendRestaurants",
func=recommend_restaurants,
description="用于根据饮食限制推荐餐厅,输入参数是城市(比如上海)、饮食限制(比如不吃辣)"
)
]
# 3. 定义提示模板(包含6个技巧)
prompt_template = """你是一个旅行规划Agent,需要帮用户规划周末旅行。用户的需求是:
- 目的地:{destination}
- 时间:{duration}(比如2天1晚)
- 预算:{budget}元
- 偏好:{preferences}(比如文艺、自然、美食)
- 饮食限制:{dietary_restrictions}(比如不吃辣、素食)
请按照以下步骤操作:
1. 调用GetWeather工具,获取目的地周末的天气(如果有雨,调整行程,加入室内活动);
2. 调用RecommendAttractions工具,根据偏好推荐3个主要景点(距离不要太远,用地图API查距离,这里简化为假设景点距离合适);
3. 调用BookHotel工具,根据预算和偏好预订酒店(位于景点附近,提供早餐);
4. 调用RecommendRestaurants工具,根据饮食限制推荐每个景点附近的餐厅(要有地址和推荐菜);
5. 把行程安排成表格,包含时间、活动、地点、交通方式、备注;
6. 最后给出预算总结,包括酒店、餐饮、交通的费用(交通费用假设为每天50元)。
请严格按照以上步骤操作,输出结果要包含行程表格和预算总结。"""
# 4. 初始化Agent
llm = ChatOpenAI(model_name="gpt-4", temperature=0)
memory = ConversationBufferMemory()
agent = initialize_agent(
tools=tools,
llm=llm,
agent_type=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION,
memory=memory,
verbose=True,
prompt=PromptTemplate(
template=prompt_template,
input_variables=["destination", "duration", "budget", "preferences", "dietary_restrictions"]
)
)
# 5. 运行Agent(输入用户需求)
user_input = {
"destination": "上海",
"duration": "2天1晚",
"budget": 1500,
"preferences": "文艺",
"dietary_restrictions": "不吃辣"
}
agent.run(user_input)
代码解读与分析
- 工具定义:我们定义了4个工具,分别用于查天气、订酒店、推荐景点和餐厅(模拟调用外部API);
- 提示模板:包含了6个“精准表达”技巧——任务定义(规划周末旅行)、约束条件(预算1500元、不吃辣)、思维链引导(按照步骤操作)、工具调用指令(调用GetWeather等工具)、上下文锚点(记得用户的偏好)、结果格式要求(行程表格和预算总结);
- Agent初始化:用LangChain的
initialize_agent
函数初始化Agent,使用CHAT_ZERO_SHOT_REACT_DESCRIPTION
类型(能自主决策和调用工具); - 运行Agent:输入用户需求(上海、2天1晚、1500元、文艺、不吃辣),Agent会按照提示模板的步骤,调用工具,生成行程表格和预算总结。
输出结果示例
> 我需要帮用户规划上海周末2天1晚的旅行,预算1500元,偏好文艺,不吃辣。首先,调用GetWeather工具查上海周末的天气。
> 调用工具:GetWeather(上海, 周末)
> 工具返回:{"city": "上海", "date": "周末", "temperature": 25, "humidity": 60, "rain": "无"}
> 天气很好,不需要调整行程。接下来,调用RecommendAttractions工具推荐文艺景点。
> 调用工具:RecommendAttractions(上海, 文艺)
> 工具返回:[{"name": "田子坊", "type": "文艺", "duration": "2小时"}, {"name": "武康路", "type": "文艺", "duration": "1.5小时"}, {"name": "外滩", "type": "夜景", "duration": "1小时"}]
> 然后,调用BookHotel工具预订文艺酒店,预算1500元,位于景点附近,提供早餐。
> 调用工具:BookHotel(上海, 周末, 1500, 文艺)
> 工具返回:{"hotel_name": "田子坊文艺酒店", "address": "上海市黄浦区田子坊路1号", "price": 800, "breakfast": "提供"}
> 接下来,调用RecommendRestaurants工具推荐每个景点附近的不辣餐厅。
> 调用工具:RecommendRestaurants(上海, 不吃辣)
> 工具返回:[{"name": "小杨生煎(田子坊店)", "address": "上海市黄浦区田子坊路2号", "推荐菜": "生煎包(不辣)", "price": 30}, {"name": "老上海馄饨铺(武康路店)", "address": "上海市徐汇区武康路3号", "推荐菜": "馄饨(不辣)", "price": 25}]
> 现在,把行程安排成表格:
| 时间 | 活动 | 地点 | 交通方式 | 备注 |
|------------|--------------|--------------------|----------|--------------|
| 周六上午 | 逛田子坊 | 田子坊 | 地铁10号线 | 文艺小店、咖啡馆 |
| 周六中午 | 吃生煎包 | 小杨生煎(田子坊店)| 步行 | 不辣,推荐菜生煎包 |
| 周六下午 | 逛武康路 | 武康路 | 地铁11号线 | 历史建筑、网红店 |
| 周六晚上 | 看外滩夜景 | 外滩 | 打车 | 夜景很美,建议早点去 |
| 周日上午 | 吃馄饨 | 老上海馄饨铺(武康路店)| 步行 | 不辣,推荐菜馄饨 |
| 周日中午 | 返程 | 酒店 | 地铁 | 结束旅行 |
> 预算总结:
- 酒店:800元(2天1晚)
- 餐饮:30元(周六中午)+25元(周日上午)=55元
- 交通:50元/天 ×2天=100元
- 总计:800+55+100=955元(未超过预算1500元)
实际应用场景
6个“精准表达”技巧可以用在很多场景中,比如:
1. 职场办公
- 让AI帮你写报告:“帮我写一篇关于2024年Q1销售业绩的报告,目标读者是管理层,需要包含销售额、增长率、Top3产品、存在的问题,用图表呈现,字数2000字以内。”
- 让AI帮你做数据分析:“帮我分析一下2024年Q1的用户留存率,数据来源是数据库中的user表,需要计算周留存率和月留存率,用折线图呈现,标注下降的原因。”
2. 生活服务
- 让AI帮你规划旅行:“帮我规划一个周末2天1晚的杭州旅行,预算1200元,喜欢自然景点(比如西湖、灵隐寺),不吃海鲜,需要包含早餐,交通用地铁或公交。”
- 让AI帮你订餐厅:“帮我订一家上海浦东的川菜馆,预算200元/人,能容纳10人,有包厢,推荐菜是水煮鱼(微辣),明天晚上6点。”
3. 教育学习
- 让AI帮你辅导作业:“帮我解决这个数学题:一个长方形的长是5厘米,宽是3厘米,周长是多少?请一步步想:1. 长方形周长的公式;2. 代入数值计算;3. 结果。”
- 让AI帮你写论文:“帮我写一篇关于人工智能伦理的论文,目标读者是大学生,需要包含3个案例(比如ChatGPT作弊、AI歧视、DeepFake),用APA格式引用,字数3000字以内。”
工具和资源推荐
1. Agentic AI框架
- LangChain:最流行的Agentic AI开发框架,支持工具调用、上下文管理、思维链引导(https://langchain.com/);
- AutoGPT:开源的Agentic AI项目,能自主完成复杂任务(比如写博客、订酒店)(https://github.com/Significant-Gravitas/AutoGPT);
- AgentGPT:在线Agentic AI工具,不需要写代码就能用(https://agentgpt.reworkd.ai/)。
2. 提示工程资源
- 《提示工程入门》:OpenAI官方教程,教你如何设计有效的提示(https://platform.openai.com/docs/guides/prompt-engineering);
- 《Agentic AI开发实战》:LangChain官方文档,包含大量Agent开发案例(https://python.langchain.com/docs/agents/);
- 提示工程社区:Reddit的r/PromptEngineering板块,有很多提示技巧分享(https://www.reddit.com/r/PromptEngineering/)。
未来发展趋势与挑战
未来趋势
- 更智能的自主决策:Agentic AI会学会“更聪明地”做决定,比如根据用户的历史行为预测需求(比如“你之前喜欢文艺景点,这次推荐田子坊”);
- 更丰富的工具生态:会有更多的工具集成到Agentic AI中,比如订机票、叫外卖、做PPT(比如“帮我订明天上午10点的机票,从上海到北京,用携程”);
- 更自然的多轮交互:Agentic AI会学会“更像人一样”聊天,比如用幽默的语言回答问题(比如“今天天气很好,适合去公园,记得带水哦~”)。
挑战
- 伦理问题:Agentic AI的自主决策可能会带来伦理问题,比如“Agent帮用户订了一张昂贵的机票,谁负责?”;
- 安全问题:Agentic AI可能会被恶意利用,比如“用Agentic AI发送垃圾邮件”;
- 性能问题:Agentic AI处理复杂任务的速度可能很慢,比如“帮我写一篇10000字的论文,需要几个小时”。
总结:学到了什么?
核心概念回顾
- Agentic AI:像“有自主意识的小秘书”,能主动思考、调用工具、完成任务;
- 提示工程:设计“让AI听懂的话”的技术,就像给小秘书写“任务说明书”;
- 6个“精准表达”技巧:任务定义、约束条件、思维链引导、工具调用指令、上下文锚点、结果格式要求。
概念关系回顾
- 任务定义是“做什么”,约束条件是“不能做什么”,思维链引导是“怎么想”,工具调用指令是“用什么工具”,上下文锚点是“记得之前说过的话”,结果格式要求是“要什么样子”——这6个技巧一起,让Agentic AI变成“懂你的小秘书”。
思考题:动动小脑筋
- 你平时用AI的时候,有没有遇到过“提示不清楚导致结果不好”的情况?如果用今天学的技巧,你会怎么优化?
- 如果让你设计一个“Agentic AI作业助手”,帮你辅导数学作业,你会用哪些“精准表达”技巧?请写出你的提示模板。
- 你觉得Agentic AI未来会取代人类的工作吗?为什么?
附录:常见问题与解答
Q1:提示越长越好吗?
A:不是,提示要“精准”而不是“冗长”。比如“帮我写篇关于Agentic AI的博客”(太长?不,是太模糊),而“帮我写篇关于Agentic AI的博客,目标读者是小学生,用3个生活例子,1000字以内”(精准,不长)。
Q2:Agentic AI和普通AI有什么区别?
A:普通AI是“问答机器”,你问一句它答一句;Agentic AI是“能自己做事的小秘书”,能主动思考、调用工具、多轮沟通。
Q3:怎么判断提示是否有效?
A:看AI的输出是否符合你的预期。如果AI的输出是你想要的,说明提示有效;如果AI的输出不符合你的预期,说明提示需要优化(比如增加约束条件、思维链引导)。
扩展阅读 & 参考资料
- 《Agentic AI: A New Paradigm for Artificial Intelligence》(论文):https://arxiv.org/abs/2309.07870;
- 《LangChain Agent开发指南》(文档):https://python.langchain.com/docs/agents/;
- 《OpenAI Function Calling教程》(文档):https://platform.openai.com/docs/guides/function-calling;
- 《提示工程实战》(书籍):作者:吴恩达,https://www.deeplearning.ai/courses/chatgpt-prompt-engineering-for-developers/。
结语:Agentic AI是未来AI的发展方向,而“精准表达”是让Agentic AI听懂你的关键。就像给小秘书写“任务说明书”,你说得越清楚,小秘书做得越好。希望本文的6个技巧,能帮你变成“提示工程高手”,让AI变成“懂你的小助手”!
更多推荐
所有评论(0)