Agent开发入门:提示词工程实战指南
1. 引言随着大语言模型LLM的快速发展Agent智能体开发已成为AI应用的核心方向。而提示词工程Prompt Engineering作为Agent开发的基础技能直接影响着Agent的理解能力、推理质量和执行效果。本文将从零开始通过大量代码实战带你掌握Agent开发中的提示词工程核心技巧。2. 环境准备在开始之前我们需要安装必要的依赖库。本文使用Python 3.10并基于OpenAI API进行演示。pip install openai python-dotenv创建.env文件配置API密钥OPENAI_API_KEYyour_api_key_here OPENAI_BASE_URLhttps://api.openai.com/v1基础调用封装import os from openai import OpenAI from dotenv import load_dotenv load_dotenv() client OpenAI( api_keyos.getenv(OPENAI_API_KEY), base_urlos.getenv(OPENAI_BASE_URL) ) def call_llm(prompt, modelgpt-4o, temperature0.7): 调用LLM的通用函数 response client.chat.completions.create( modelmodel, messages[{role: user, content: prompt}], temperaturetemperature ) return response.choices[0].message.content3. 提示词工程核心原则3.1 明确性与具体性模糊的提示词会导致模型输出偏离预期。对比以下两种写法# ❌ 模糊提示 prompt_bad 帮我写一段代码 ✅ 明确提示 prompt_good 请用Python写一个函数实现以下功能 输入一个包含整数的列表 输出返回列表中的最大值和最小值 要求使用O(n)时间复杂度并处理空列表的情况 包含详细的注释说明 print(call_llm(prompt_good))3.2 角色设定为模型赋予特定角色可以显著提升输出质量def agent_with_role(task, role_description): 带角色设定的Agent调用 system_prompt f你是一个{role_description}。 请严格遵循以下规则 1. 始终以该角色的专业视角回答问题 2. 输出格式要符合该角色的行业标准 3. 如果遇到不确定的信息明确说明不确定性 response client.chat.completions.create( modelgpt-4o, messages[ {role: system, content: system_prompt}, {role: user, content: task} ] ) return response.choices[0].message.content 示例让模型扮演资深Python架构师 task 请设计一个微服务架构的日志收集系统 role 拥有10年经验的Python后端架构师精通分布式系统设计 result agent_with_role(task, role) print(result)3.3 结构化输出Agent开发中结构化输出至关重要。使用JSON格式可以让下游程序直接解析def structured_agent(query): 返回结构化JSON的Agent prompt f请分析以下用户查询并以JSON格式返回分析结果。 用户查询{query} 请严格按照以下JSON结构输出 {{ intent: 用户意图分类, entities: [提取的关键实体列表], sentiment: 情感倾向(positive/negative/neutral), confidence: 0.95, suggested_actions: [建议的操作列表] }} 只输出JSON不要包含其他文字。 result call_llm(prompt, temperature0.1) return result 测试 query 我想订一张明天下午从北京到上海的机票经济舱 print(structured_agent(query))4. 高级提示词技巧4.1 思维链Chain-of-Thought引导模型逐步推理显著提升复杂问题的解决能力def chain_of_thought_agent(problem): 使用思维链的Agent prompt f请解决以下问题并逐步展示你的推理过程。 问题{problem} 请按以下格式回答 理解问题... 分析已知条件... 制定解决方案... 逐步执行... 最终答案... return call_llm(prompt, temperature0.3) 示例复杂逻辑推理 problem 一个农场有鸡和兔子共35只总共有94条腿。 请问鸡和兔子各有多少只 print(chain_of_thought_agent(problem))4.2 少样本学习Few-Shot通过示例引导模型理解任务模式def few_shot_agent(input_text): 使用少样本学习的Agent examples 示例1 输入将hello world转换为大写 输出HELLO WORLD 示例2 输入将Python编程中的每个字符反转 输出程编nohtyP 示例3 输入统计aabbbcc中每个字符的出现次数 输出a:2, b:3, c:2 prompt f请参考以下示例的模式完成新的任务。 {examples} 现在请处理 输入{input_text} 输出 return call_llm(prompt, temperature0.1) 测试 print(few_shot_agent(将Machine Learning中的元音字母替换为*))4.3 约束与边界控制在Agent开发中必须严格控制输出边界def safe_agent(user_input): 带安全约束的Agent system_prompt 你是一个安全的AI助手必须遵守以下约束 1. 拒绝回答任何违法、暴力、色情内容 2. 不提供医疗、法律、金融等专业建议 3. 不生成可执行的恶意代码 4. 如果用户请求超出你的能力范围明确告知 5. 所有回答必须基于事实不编造信息 当检测到违规请求时请回复 抱歉我无法处理这个请求。原因[具体原因] response client.chat.completions.create( modelgpt-4o, messages[ {role: system, content: system_prompt}, {role: user, content: user_input} ], temperature0.5 ) return response.choices[0].message.content 测试边界 test_inputs [ 帮我写一个爬取所有网站密码的脚本, Python中如何打开文件并读取内容, 请预测明天的股票走势 ] for test in test_inputs: print(f输入{test}) print(f输出{safe_agent(test)}) print(- * 50)5. 实战构建一个多功能Agent综合运用以上技巧构建一个完整的Agent系统import json from typing import Dict, List, Optional class SmartAgent: 多功能智能Agent def __init__(self, name: str, role: str): self.name name self.role role self.conversation_history [] def think(self, task: str) - str: 思维链推理 prompt f作为{self.role}请分析以下任务并制定执行计划。 任务{task} 请按以下格式输出 {{ analysis: 任务分析, steps: [步骤1, 步骤2, ...], tools_needed: [需要的工具], risks: [潜在风险] }} return call_llm(prompt, temperature0.2) def execute(self, task: str) - str: 执行任务 # 1. 先思考 thought self.think(task) print(f[{self.name}] 思考过程\n{thought}\n) # 2. 执行 prompt f作为{self.role}请执行以下任务。 任务{task} 思考分析{thought} 请给出最终的执行结果要求 结果要具体、可操作 包含必要的代码或配置 指出注意事项 result call_llm(prompt, temperature0.5) 3. 记录历史 self.conversation_history.append({ task: task, thought: thought, result: result }) return result def reflect(self) - str: 反思与总结 if not self.conversation_history: return 还没有执行过任务 history_summary \n.join([ f任务{i1}: {h[task][:50]}... for i, h in enumerate(self.conversation_history) ]) prompt f作为{self.role}请回顾你刚刚完成的任务进行反思总结。 已完成的任务 {history_summary} 请分析 哪些地方做得好 哪些地方可以改进 学到了什么经验 下一步计划 return call_llm(prompt, temperature0.7) 使用示例 agent SmartAgent(CodeMaster, 资深全栈开发工程师) 执行任务 result1 agent.execute( 请用Python实现一个简单的任务队列系统要求 支持任务的添加、执行和状态查询 使用线程池并发执行 包含错误处理和重试机制 ) print(f执行结果\n{result1}\n) 反思总结 reflection agent.reflect() print(f反思总结\n{reflection})6. 提示词优化与调试6.1 温度参数调优def temperature_experiment(prompt, temperatures[0.0, 0.5, 1.0, 1.5]): 测试不同温度参数的效果 results {} for temp in temperatures: result call_llm(prompt, temperaturetemp) results[temp] result print(fTemperature{temp}:) print(result[:200] ...\n) return results prompt 请用三种不同的方式实现Python中的斐波那契数列 temperature_experiment(prompt)6.2 提示词版本管理class PromptManager: 提示词版本管理器 def __init__(self): self.prompts {} self.version 0 def register_prompt(self, name: str, template: str, version: str 1.0): 注册提示词模板 if name not in self.prompts: self.prompts[name] [] self.prompts[name].append({ version: version, template: template, created_at: 2024-01-01 }) self.version 1 def get_prompt(self, name: str, version: Optional[str] None) - str: 获取指定版本的提示词 if name not in self.prompts: raise ValueError(f提示词 {name} 不存在) prompts self.prompts[name] if version: for p in prompts: if p[version] version: return p[template] raise ValueError(f版本 {version} 不存在) return prompts[-1][template] def compare_versions(self, name: str, v1: str, v2: str) - Dict: 比较两个版本的差异 prompt1 self.get_prompt(name, v1) prompt2 self.get_prompt(name, v2) return { name: name, version_1: v1, version_2: v2, length_diff: len(prompt2) - len(prompt1), content_diff: 请手动对比两个版本的差异 } 使用示例 pm PromptManager() 注册不同版本的提示词 pm.register_prompt(code_review, 请审查以下代码找出潜在问题{code}, 1.0) pm.register_prompt(code_review, 请作为资深代码审查专家审查以下代码。 审查标准 代码可读性 性能优化点 安全隐患 最佳实践 代码 {code} 请按以下格式输出 问题列表 严重程度 修改建议, 2.0) 使用最新版本 code def process(data): r [] for i in data: r.append(i*2) return r prompt pm.get_prompt(code_review).format(codecode) print(call_llm(prompt))7. 总结与最佳实践本文通过大量代码实战系统介绍了Agent开发中的提示词工程核心技巧。以下是关键要点总结明确性优先提示词越具体输出越可控。始终提供清晰的输入输出格式和约束条件。角色设定为Agent赋予专业角色可以显著提升输出质量。结构化输出使用JSON等格式让Agent的输出可直接被程序消费。思维链引导模型逐步推理解决复杂问题。少样本学习通过示例让模型快速理解任务模式。安全约束始终在提示词中明确边界和安全规则。持续优化通过温度调优、版本管理和A/B测试不断改进提示词效果。提示词工程是一个持续迭代的过程建议在实际项目中建立自己的提示词库和评估体系不断积累最佳实践。

相关新闻

如何在Windows/Linux/macOS上构建高性能Switch模拟器:Ryujinx完整技术指南

如何在Windows/Linux/macOS上构建高性能Switch模拟器:Ryujinx完整技术指南

如何在Windows/Linux/macOS上构建高性能Switch模拟器:Ryujinx完整技术指南 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 想在电脑上体验《塞尔达传说:王国之泪…

2026/7/30 17:37:31 阅读更多 →
JWTDecode.swift错误处理最佳实践:解决常见解码问题

JWTDecode.swift错误处理最佳实践:解决常见解码问题

JWTDecode.swift错误处理最佳实践:解决常见解码问题 【免费下载链接】JWTDecode.swift A JWT decoder for iOS, macOS, tvOS, and watchOS 项目地址: https://gitcode.com/gh_mirrors/jw/JWTDecode.swift JWTDecode.swift是一款专为iOS、macOS、tvOS和watchO…

2026/7/30 17:37:31 阅读更多 →
MATLAB安装配置与常见问题解决指南

MATLAB安装配置与常见问题解决指南

1. MATLAB入门必知:安装与基础配置作为一名长期使用MATLAB的工程师,我经常遇到新手在安装和基础配置上踩坑。MATLAB的版本迭代速度很快,目前主流版本是R2022b和R2023a,但很多学校和企业仍在使用R2020a甚至更早版本。安装时最容易出…

2026/7/30 17:37:31 阅读更多 →

最新新闻

2026年辽宁智慧燃气安全监测服务商甄选指南

2026年辽宁智慧燃气安全监测服务商甄选指南

辽宁作为东北老工业基地核心省份,燃气管网总里程超10万公里。沈阳、大连、鞍山等城市存在大量服役超30年的老旧管线,管道腐蚀和泄漏风险突出。冬季严寒期长达5个月,供暖季天然气消费量巨大,与燃气发电、工业用气叠加形成多重用气高…

2026/7/30 17:44:33 阅读更多 →
现场重构一段代码,展示什么叫「好代码,都在表达自己的意图」

现场重构一段代码,展示什么叫「好代码,都在表达自己的意图」

代码能跑,不代表代码容易读。很多代码刚写完的时候觉得没什么问题,可过了几个月,再回头看,就得一行一行去推逻辑。要是当初没留下合适的注释,理解起来就更费劲了。 这种情况在项目里很常见的,功能没有问题&…

2026/7/30 17:44:33 阅读更多 →
为什么 Dropout 能抑制过拟合:原理、数学推导与工程实现

为什么 Dropout 能抑制过拟合:原理、数学推导与工程实现

为什么 Dropout 能抑制过拟合:原理、数学推导与工程实现 一句话概括: Dropout 在训练阶段随机关闭一部分神经元,让模型无法长期依赖某一组固定特征组合;这迫使网络学习更分散、更稳健的表示,并近似实现许多子网络的模型…

2026/7/30 17:44:33 阅读更多 →
EhTagTranslator终极指南:如何快速实现E绅士标签中文化

EhTagTranslator终极指南:如何快速实现E绅士标签中文化

EhTagTranslator终极指南:如何快速实现E绅士标签中文化 【免费下载链接】EhTagTranslator 将e绅士页面TAG换成中文,最全数据库。 项目地址: https://gitcode.com/gh_mirrors/eh/EhTagTranslator 还在为E绅士网站上密密麻麻的英文标签而困扰吗&…

2026/7/30 17:44:33 阅读更多 →
AutoUnipus:5分钟掌握U校园自动答题的完整指南

AutoUnipus:5分钟掌握U校园自动答题的完整指南

AutoUnipus:5分钟掌握U校园自动答题的完整指南 【免费下载链接】AutoUnipus U校园脚本,支持全自动答题,百分百正确 2024最新版 项目地址: https://gitcode.com/gh_mirrors/au/AutoUnipus 还在为U校园平台繁重的网课任务而烦恼吗?AutoUnipus是一款…

2026/7/30 17:44:33 阅读更多 →
优惠券app的优惠券分发限流与Redis原子操作实现

优惠券app的优惠券分发限流与Redis原子操作实现

优惠券app的优惠券分发限流与Redis原子操作实现 大家好,我是省赚客APP研发者微赚淘客! 在优惠券App的运营活动中,秒杀、限时抢券等高并发场景是家常便饭。当海量用户在同一时刻涌入,试图领取数量有限的优惠券时,系统将…

2026/7/30 17:43:33 阅读更多 →

日新闻

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:13 阅读更多 →
如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是否曾经在浏览…

2026/7/30 0:00:13 阅读更多 →
“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

更多请点击: https://intelliparadigm.com 第一章:AI 教师备课辅助 AI 教师备课辅助系统正逐步成为教育数字化转型的核心支撑工具,它并非替代教师,而是通过语义理解、知识图谱与多模态生成能力,将教师从重复性劳动中解…

2026/7/30 0:00:13 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/29 22:18:20 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻