当前位置: 首页 > web >正文

Agent开发基础---提示词编写

当前,AI Agent(智能体)的开发热潮正席卷而来。无论是基于LangChain、agno还是AutoGen,开发者们都致力于打造能自主理解、决策和执行任务的AI智能体。然而,许多开发者都会遇到一个共同的痛点:​​为什么同一个大模型,在不同的人手里表现出的能力天差地别?​

答案往往隐藏在​​提示词(Prompt)​​ 中。提示词是与大模型交互的核心接口,是驱动Agent的“灵魂”。它就像是给一个能力超强但需要明确指令的新员工下达的“任务书”。模糊的指令只会得到模棱两可的结果,而精准、清晰的提示词则能彻底激发大模型的潜能,构建出真正高效、可靠的智能体。

本文将抛开理论,直击实战,带你深入掌握Agent开发中提示词编写的核心原则与高级技巧。

一、提示词的核心四要素:构建清晰指令的基石

编写高质量的提示词,就像是在编写一段给AI看的特殊“代码”。它需要包含以下四个关键要素:

1. 角色扮演(Role Playing):给它一个“人设”

这是最重要的一步。通过为模型设定一个明确的角色,你可以将其能力范围聚焦到特定领域,从而得到更专业、更符合预期的结果。

  • ​反面教材​​: “帮我写点代码。”

  • ​正面教材​​: “你是一名资深的全栈安全专家,尤其精通Python和Web安全。你的代码必须符合OWASP安全规范。”

2. 任务定义(Task Definition):清晰、具体、无歧义

任务描述必须像函数定义一样清晰,避免使用模糊的词汇。

  • ​反面教材​​: “处理一下这份数据。”

  • ​正面教材​​: “请对用户提供的JSON数组进行清洗和转换。具体任务:1. 过滤掉‘age’字段小于0或大于120的记录。 2. 将‘name’字段的首字母大写。 3. 计算‘score’字段的平均值。”

​3.高级技巧:Few-Shot(示例学习)​

对于复杂任务,在提示词中提供一两个输入输出的例子,能让模型瞬间理解你的意图,效果远超千言万语。CoT(Chain of Thought,CoT)是一种思维工具,通过逐步延伸和拓展一个主要想法,帮助人们进行更深层次的思考,并得出更复杂、更全面的结论。在一些逻辑推理、数学运算等场景下,考虑使用 CoT 分解问题,通过输出一些推断过程,可以增加模型输出正确结果的概率。

zero-shot:

在 prompt 中加上 Let's think step by step 或者 让我们一步一步分析思考

few-shots:

以下是将用户输入的数字进行一系列加减乘除的例子。

你是一个计算器,请你将用户输入的数字分别加上2,减去3,乘以3,除以2后直接输出计算结果,以','作为分隔符进行返回。
示例如下:
"""
输入:1,2,3,4,5
答案:0, 1.5, 3, 4.5, 6
"""
输入:2,4,6,8,10

我们会发现,模型无法给出正确的答案,所以,让模型处理这种复杂、多步骤的问题时,我们可以遵循以下步骤:提供实例 > 分解问题 > 提供解释。
以下是将 CoT 融入到 prompt 的例子,分步骤地提供解释。

CoT(Chain of Thought,CoT)是一种思维工具,通过逐步延伸和拓展一个主要想法,帮助人们进行更深层次的思考,并得出更复杂、更全面的结论。在一些逻辑推理、数学运算等场景下,考虑使用 CoT 分解问题,通过输出一些推断过程,可以增加模型输出正确结果的概率。

加入cot的示例:

你是一个计算器,请你将用户输入的数字分别加上2,减去3,乘以3,除以2后直接输出计算结果,以','作为分隔符进行返回。
你可以参考以下的计算过程来帮助解决,
"""
对于输入:1,2,3,4,5
计算过程如下。
首先分别对输入1,2,3,4,5加上2,得到:3, 4, 5, 6, 7
然后将3,4,5,6,7分别减去3,得到:0, 1, 2, 3, 4
然后将0,1,2,3,4分别乘以3,得到:0, 3, 6, 9, 12
最后将0,3,6,9,12分别除以2,得到:0, 1.5, 3, 4.5, 6
答案是:0, 1.5, 3, 4.5, 6
"""
输入:2,4,6,8,10

4. 输出格式化(Output Format):让结果可直接使用

对于Agent开发而言,这是至关重要的一环。明确的输出格式能让Agent的后续步骤(如解析、存储、传递)实现无缝自动化。

  • ​示例​​:

    `“请将分析结果以JSON格式输出,必须包含以下字段:

    {

    "risk_level": "高危 | 中危 | 低危",

    "reason": "字符串,简要说明原因",

    "suggestions": ["建议1", "建议2"]

    }”`

二、提示词模版:快速填充提示词

任务型模版
假如你是{某个角色},你将根据{上下文信息},来解决{具体某个任务}。根据以下规则一步步执行:
1.规则1
2.规则2参考例子:
示例1:
问题:{具体问题}
输出:{该问题的结果}示例2:
问题:{具体问题}
输出:{该问题的结果}请回答问题:
问题:{具体问题}
输出:要求:
1 指定输出格式
2 格式中需要满足的详细规范
角色型模版(生成System Prompt)
你是{某个具体人物},人称{xxx},出身于{交代背景信息和上下文}。性格特点:语言风格:人际关系:过往经历:经典版台词or口头禅:{台词1(补充信息: 即你可以将动作、神情语气、心理活动、故事背景放在()中来表示,为对话提供补充信息。)}
{台词2}

三、参数设置:精细调控模型输出的“旋钮”

在使用大语言模型(LLM)调用其API时,我们并非只能被动接受模型的原始输出。实际上,开发者可以通过配置一系列关键参数,像调节“旋钮”一样,精细地控制生成结果的特性,使其更贴合具体应用场景的需求。这些参数直接影响着模型的语言生成策略,理解并掌握它们,是进行高质量Agent开发的必备技能。本节将深入探讨两个最核心的参数:Temperature(温度)和 Top_p(核采样),并阐明其背后的概念与最佳实践。

关键参数详解

​1. Temperature(温度)​

  • ​概念解释​​:该参数用于控制模型输出结果的​​随机性​​(Randomness)和​​创造性​​。它影响着模型在生成下一个词时,对其概率分布进行重新调整的程度。

  • ​工作原理​​:一个较低的Temperature值会锐化模型的概率分布,使得高概率的token被选中的机会远大于低概率的token,从而让输出变得​​更可预测、更稳定、更聚焦​​。反之,一个较高的Temperature值会平滑概率分布,让低概率的token也有更多机会被选中,从而增加输出的​​多样性和出乎意料性​​。

  • ​应用场景​​:

    • ​低温度(如0.1~0.3)​​:非常适合​​分类任务、事实性问答、代码生成、摘要​​等需要高度准确性和一致性的场景。模型会倾向于给出最直接、最确定的答案。

    • ​高温度(如0.7~1.0)​​:非常适合​​诗歌创作、故事编写、头脑风暴、广告文案生成​​等需要创造力和多样性的场景。

​2. Top_p(核采样)​

  • ​概念解释​​:也称为“概率核采样”(Nucleus Sampling)。该参数通过控制候选词集合的大小,来影响生成结果的​​确定性与多样性​​。它定义了从一个累积概率最高的小范围token集合中进行采样的规则。

  • ​工作原理​​:模型会计算所有可能的下一个词的概率,并从高到低排序并累加,直到累积概率刚好超过设定的top_p值。然后,模型仅从这个动态大小的“核”集合中采样下一个词。

    • ​较低的top_p值(如0.5)​​:候选集合很小,仅包含那些最可能、最确定的token,输出结果​​更集中、更保守​​。

    • ​较高的top_p值(如0.9)​​:候选集合更大,包含了一些概率稍低但依然合理的token,输出结果​​更多样、更不可预测​​。

  • ​应用场景​​:Top_p通常与Temperature配合使用。当你的提示词写得非常清晰、具体,为模型提供了充足的上下文时,可以设置较高的top_p(如0.9~1.0),让模型在高质量的候选词中自由发挥。如果提示词很短很模糊,再设置高top_p可能会导致输出偏离主题。

参考配置与实践建议

任务类型

Temperature

Top_p

说明

​通用对话/默认值​

0.7

0.9

在多样性和可靠性间取得良好平衡,适合大多数闲聊场景。

​分类/事实问答/代码​

0.1 ~ 0.3

0.7 ~ 0.9

低温度确保输出稳定、准确,高Top_p可避免结果过于僵化。

​创意生成/写作​

0.7 ~ 0.9

0.9 ~ 1.0

高温度和高Top_p共同作用,激发最大限度的创造性和多样性。

重要提示​​:以上配置仅为参考起点,​​实际效果务必以您的具体业务场景进行实测和调整为准​​。不同的模型、不同的提示词,对参数的敏感度也不同。

关键概念:Token
  • ​定义说明​​:Token是模型处理和生成文本的基本单位。它通常由几个字符组成,可以是一个词、一个字、一个标点或一个词的一部分。例如,中文词语“智能体”、英文单词“apple”、数字“123”或符号“?”通常都被计为1个token。

  • ​为何重要​​:模型的上下文窗口长度(如32K)和API的计费均以​​token数量​​为单位。由于不同模型采用的分词器(Tokenizer)不同,同一段文本可能会被切分成不同数量的tokens。

  • ​最佳实践​​:在编写长提示词或处理长文本时,务必注意token消耗。清晰的提示词和参数设置,最终都是为了在有限的token预算内,获得最优的输出效果。

http://www.xdnf.cn/news/19963.html

相关文章:

  • 【数据分享】土地利用矢量shp数据分享-北京
  • AI Agent重构SOC:下一代智能安全运营平台的能力跃迁
  • 产线自动化效率上不去?打破设备和平台的“数据孤岛”是关键!
  • LeetCode 面试题 16.06.最小差
  • JavaScript原型与原型链:对象的家族传承系统
  • Springboot3+SpringSecurity6Oauth2+vue3前后端分离认证授权-资源服务
  • 单片机键盘接口程序设计(汇编语言)
  • 血缘元数据采集开放标准:OpenLineage Guides 在 Airflow 中使用 OpenLineage Proxy
  • 快速在RK3588上部署运行DeepSeek-R1-Distill-Qwen-1.5B模型并进行板端推理调用流程记录
  • 重生之IOday4————多进程通信
  • Python学习笔记--使用Django修改和删除数据
  • Python学习笔记--使用Django查询数据
  • 网络协议之https?
  • 智能开发新突破:大模型驱动的QAC与TESSY助手实战分享
  • 【工具变量】上市公司绿色供应链管理示范企业DID数据(2010-2024年)
  • phpstorm 操作git 另外的操作在 我的收藏
  • Maven动态控制版本号秘籍:高效发包部署,版本管理不再头疼!
  • Top 10 Kali Linux Tools for Hacking 2025.2
  • 《WINDOWS 环境下32位汇编语言程序设计》第11章 动态链接库和钩子
  • nano banana官方最强Prompt模板来了!六大场景模板详解
  • GEM5学习(4): 运行全系统模式的ARM系统
  • 如何构建企业级RAG知识库?实战方法、关键细节与平台选型
  • 只会刷App?大学生学透Android开发,直接开挂!
  • 【沉浸式解决问题】浮点数计算精度误差,round后值错误,0.1+0.2不等于0.3?
  • Ai Qwen3解答epochs多少为最佳 仅共参考
  • 机器视觉opencv总结
  • NuttX编译流程与config.h生成解析
  • 插入排序及希尔排序
  • AR智慧运维系统介绍
  • 【机器学习】实战:市场增长点分析挖掘项目