- 专栏系列第 4 篇 · 智能体纪元
- 在 AI Agent 时代,提示工程不再是“修修补补”的技巧,而是通往智能涌现的钥匙。
一、引言:为什么提示工程决定 Agent 的上限?
我们常说“大模型很聪明”,但其实它是否聪明,很大程度取决于你怎么提问。
对 AI Agent 来说,提示不仅是指令,更是策略规划、工具调用、任务分解等能力的触发器。
好的提示,能引导 Agent 自主规划、判断、执行;糟糕的提示,则可能让它“自我崩溃”。
本篇文章,我们将深入探索:
- 提示工程如何塑造 Agent 的推理能力
- ReAct 框架中提示的核心结构
- 实战演练:构造高效提示的技巧与案例
二、核心原理:提示是 Agent 的“导航图”
在 LangChain 的 ReAct 智能体中,提示(Prompt)不是一个简单的问题,而是包含示例、格式模板、任务约束的组合文本。
ReAct(Reasoning + Acting)框架中的提示通常包括以下几个部分:
-
任务设定(Task Instruction)
清晰告诉 Agent 它的角色和目标。 -
操作规范(Action Format)
明确要求 Agent 的行为遵循某种格式,如:Thought: xxx Action: xxx Observation: xxx
-
Few-shot 示例(Few-shot Examples)
用几个示例“教会”Agent如何分步骤解决问题。 -
动态插槽(Input Variable)
将用户输入插入到提示模板中,驱动执行。
例如,LangChain 默认使用的 ReAct 提示格式如下(简化版):
Answer the following questions as best you can. You have access to the following tools:
{tools_list}
Use the following format:
Question: the input question you must answer
Thought: you should always think about what to do
Action: the action to take, should be one of [{tool_names}]
Action Input: the input to the action
Observation: the result of the action
... (this Thought/Action/Action Input/Observation can repeat N times)
Thought: I now know the final answer
Final Answer: the final answer to the original question
三、实战演练:构建更聪明的提示
我们以一个具体案例为例:让智能体搜索并整理“2024 年值得关注的 AI Agent 开源项目”。
3.1 默认提示运行结果
使用 LangChain 默认 ReAct 提示:
agent.invoke({
"input": "请用中文列举一些 2024 年值得关注的 AI Agent 开源项目。"
})
输出:
{'input': '请用中文列举一些 2024 年值得关注的 AI Agent 开源项目。',
'output': '根据2024年最新信息,以下是一些值得关注的AI Agent开源项目: \n'
'\n'
'1. **AutoGPT** - 通用型自主Agent,支持任务自动化和自我优化 \n'
'2. **GPT Engineer** - 专注于代码生成的开发助手,可构建完整代码库 \n'
'3. **AI-legion** - 多Agent协作系统,适用于复杂任务分工 \n'
'4. **AutoGen**(微软) - 支持智能体交互的协作框架 \n'
'5. **BabyAGI** - 基于目标驱动的任务规划Agent \n'
'6. **LangChain Agents** - 结合LLM的灵活Agent开发框架 \n'
'7. **Camel** - 学术导向的多Agent通信研究项目 \n'
'8. **AgentGPT** - 浏览器部署的个性化AI助手 \n'
'9. **SuperAGI** - 带可视化界面的Agent开发平台 \n'
'10. **OpenAgents** - 支持多模态(文本/图像)任务的开源平台 \n'
'\n'
'这些项目覆盖了自动化、软件开发、多智能体协作等前沿方向,部分项目如AutoGen和GPT '
'Engineer已在GitHub获得超5万星标,反映了2024年AI Agent领域的活跃发展态势。'}
你可能会看到 Agent 执行搜索,但结果可能是:
- 输出不连贯
- 只返回英文内容
- 无法正确总结
为什么?因为提示没有明确约束“语言”和“信息整理方式”。
3.2 优化提示:加上角色设定和语言要求
我们尝试构造一个更清晰的 Prompt:
agent.invoke({
"input": """
你是一个专业的中文技术助手,善于使用工具搜索并总结高质量信息。
请执行以下任务:
任务:请使用可用工具搜索并总结 2024 年值得关注的 AI Agent 开源项目。
要求:
1. 用中文回答;
2. 每个项目简要介绍功能和特点;
3. 如果无法找到信息,请说明原因。
"""
})
import os
from pprint import pprint
from langchain_community.tools import DuckDuckGoSearchRun
from langchain_community.chat_models import ChatOpenAI
from langchain.agents import initialize_agent, AgentType
from langchain.prompts import PromptTemplate
# 搜索工具实例
search = DuckDuckGoSearchRun()
tools = [search]
API_KEY = os.getenv('DEEPSEEK_API_KEY')
# 初始化语言模型
llm = ChatOpenAI(
model='deepseek-chat',
openai_api_key=API_KEY,
openai_api_base='https://api.deepseek.com/v1'
)
# 自定义 Prompt 模板
custom_prompt = PromptTemplate.from_template("""
你是一个专业的中文技术助手,擅长使用工具搜索并总结信息。
请执行以下任务:
任务:{user_task}
要求:
1. 用中文回答;
2. 每个项目简要介绍功能和特点;
3. 如果找不到信息,也请说明原因;
4. 遇到复杂问题请多次 Thought / Action 循环后再给出 Final Answer;
5. 使用普通的文本格式输出,不需要markdown格式。
请使用如下格式回答:
Question: 任务原文
Thought: 你的思考
Action: 使用的工具
Action Input: 工具的输入
Observation: 工具返回的结果
...(可以多次循环)
Final Answer: 总结输出
""")
# 初始化 Agent
agent = initialize_agent(
tools=tools,
llm=llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True,
agent_kwargs={"prefix": custom_prompt.format(user_task="{input}")}, # 插入到上下文中
handle_parsing_errors=True
)
# 调用 Agent,输入任务
response = agent.invoke({
"input": "列举 2024 年值得关注的 AI Agent 开源项目"
})
print("\n🤖 Agent 回答:\n")
pprint(response)
输出:
> Entering new AgentExecutor chain...
我需要搜索2024年值得关注的AI Agent开源项目,并简要介绍它们的功能和特点。由于AI领域发展迅速,我需要查找最新的开源项目信息。
Action: duckduckgo_search
Action Input: "2024 值得关注 AI Agent 开源项目"
Observation: AI Agent 的出现,不仅解决了这些融合难题,还为两者的结合提供了全新的可能性。可以预见,AI Agent 注定将在 2025 年成为最具潜力且备受瞩目的板块之一。在展望 2025 年之前,Odaily 星球日报将带大家回顾 2024 年下半年 AI Agent 板块迅猛发展的代表性头部项目。 文章浏览阅读3.6k次,点赞15次,收藏27次。通过对这 10 个Github热门开源 AI Agent 项目的详细介绍,我们可以看到 AI Agent 技术正在快速发展,并在各个领域展现出巨大的潜力。从通用型的自主 Agent 如 AutoGPT,到专注于特定领域的工具如 GPT Engineer,再到支持多 Agent 协作的系统如 AI-legion,这些项目展示了 ... 开源之光:主流 AI Agent 框架 langgraph:灵活的智能构建大师 核心特性. 状态管理:提供有状态的多参与者应用程序构建能力; 循环控制:支持复杂的循环和条件流程定义; 细粒度控制:对应用程序流程和状态提供精确控制; 内置持久性:支持高级人机循环和记忆功能; 技术优势 ... AI Agent 开源和创业项目全盘点,编程,工作流,应用程序,agent. ... Clerk 在 2024 年 1 月获得了包括 a16z,Stripe,Madrona 在内的 3,000 万美金 B 轮投资。"授权一直是我们产品愿景的一部分,但我们需要一个成功的身份验证产品来构建它",Clerk 正在和 Stripe 进行深度合作 ... AI Agent的开源和创业项目全盘点,包括Agent领域的研究进展、平台、记忆、规划和编排、执行和应用等层次的详细解析,以及多个相关项目的介绍和分析。文章探讨了AI Agent及其基础设施的发展状况,并展望了未来的趋势。 ... Clerk 在 2024 年 1 月获得了包括 a16z ...
Thought:从搜索结果中可以看到一些2024年值得关注的AI Agent开源项目,但信息比较分散。我需要进一步整理和确认这些项目的具体信息。
Action: duckduckgo_search
Action Input: "2024 github热门AI Agent开源项目"
Observation: Get insights on the latest trends from GitHub experts while catching up on these exciting new projects. 文章浏览阅读3.6k次,点赞15次,收藏27次。通过对这 10 个Github热门开源 AI Agent 项目的详细介绍,我们可以看到 AI Agent 技术正在快速发展,并在各个领域展现出巨大的潜力。从通用型的自主 Agent 如 AutoGPT,到专注于特定领域的工具如 GPT Engineer,再到支持多 Agent 协作的系统如 AI-legion,这些项目展示了 ... 本文盘点了2024年12月 GitHub 十大热门项目,涵盖AI、翻译、TTS等多个领域,展示最新技术与创新,适合开发者和科技爱好者深入探索与贡献。欢迎来到2024年12月的 GitHub 热门项目前十排行榜!这些项目在 GitHub 上引起了广泛关注,无论你是开发者、数据科学家,还是科技爱好者,下面的项目都在不同领域 项目描述: Auto_Jobs_Applier_AI_Agent aims to easy job hunt process by automating the job application process. Utilizing artificial intelligence, it enables users to apply for multiple jobs in an automated and personalized way. 在当前 AI 技术飞速发展的浪潮中,多个开源项目为开发者提供了强大的功能和灵活性,尤其是在多代理系统(Multi-Agent Systems)领域。以下是五个最受欢迎的 Agent 项目(GitHub目前Star最高-截止当前),涵盖了从开发平台到框架的多种选择,帮助你更好地构建智能应用。 1. langgenius
Thought:Final Answer: 根据搜索结果,以下是2024年值得关注的AI Agent开源项目及其简要介绍:
1. AutoGPT - 通用型自主AI Agent,能够自动执行复杂任务,具有自我学习和迭代能力。
2. GPT Engineer - 专注于代码生成的AI Agent,可以根据自然语言描述自动生成代码。
3. AI-legion - 支持多Agent协作的系统,能够协调多个AI Agent共同完成任务。
4. langgraph - 灵活的智能构建框架,提供状态管理、循环控制和细粒度流程控制能力。
5. Auto_Jobs_Applier_AI_Agent - 自动化求职应用Agent,可以个性化地自动申请多个工作岗位。
6. langgenius - 多代理系统开发平台,帮助构建复杂的智能应用。
这些项目展示了AI Agent技术在不同领域的应用潜力,从通用任务到特定领域解决方案,再到多Agent协作系统。由于AI领域发展迅速,建议定期查看GitHub趋势页面获取最新热门项目信息。部分项目信息可能不够全面,因为搜索结果中有些内容重复且不够具体。
> Finished chain.
🤖 Agent 回答:
{'input': '列举 2024 年值得关注的 AI Agent 开源项目',
'output': '根据搜索结果,以下是2024年值得关注的AI Agent开源项目及其简要介绍:\n'
'\n'
'1. AutoGPT - 通用型自主AI Agent,能够自动执行复杂任务,具有自我学习和迭代能力。\n'
'\n'
'2. GPT Engineer - 专注于代码生成的AI Agent,可以根据自然语言描述自动生成代码。\n'
'\n'
'3. AI-legion - 支持多Agent协作的系统,能够协调多个AI Agent共同完成任务。\n'
'\n'
'4. langgraph - 灵活的智能构建框架,提供状态管理、循环控制和细粒度流程控制能力。\n'
'\n'
'5. Auto_Jobs_Applier_AI_Agent - 自动化求职应用Agent,可以个性化地自动申请多个工作岗位。\n'
'\n'
'6. langgenius - 多代理系统开发平台,帮助构建复杂的智能应用。\n'
'\n'
'这些项目展示了AI '
'Agent技术在不同领域的应用潜力,从通用任务到特定领域解决方案,再到多Agent协作系统。由于AI领域发展迅速,建议定期查看GitHub趋势页面获取最新热门项目信息。部分项目信息可能不够全面,因为搜索结果中有些内容重复且不够具体。'}
执行效果显著提升,Agent:
- 按要求回答中文
- 总结结构清晰
- 能自我反思未找到的信息
四、进阶技巧:提示工程中的黄金法则
在 ReAct 框架中构建高质量提示,可遵循以下原则:
1. 明确角色和目标
❌ “告诉我……” → ✅ “你是……,请执行以下任务:……”
让 Agent 清楚它是谁,它要完成什么。
2. 引导格式而非控制内容
使用“格式锚点”引导 Agent 行为流程,例如 Thought / Action / Observation 循环。
3. 增加约束减少歧义
指明输出语言、信息数量、格式结构等,让 Agent 不走偏。
4. 使用动态上下文
结合 ChatPromptTemplate
或自定义 Prompt 类,动态生成上下文结构,提高泛化能力。
五、小结与展望
在本篇文章中,我们通过原理讲解 + 实战示例,深入理解了:
- 提示是智能体推理与行为的“剧本”
- ReAct 中提示的标准格式与作用
- 如何通过设计提示提升 Agent 的可靠性与智能度
下篇文章中,我们将深入探讨 工具使用的策略与规划 —— 探索 Agent 如何选择、组合工具完成更复杂任务。