研究 Prompt 的这段时间:核心是界定边界,不是堆砌信息
最近因为工作需要我开始认真研究怎么写好一个 Prompt。以前我是想到什么写什么总觉得字写多一点、要求说得全一点总没错。后来发现不是那么回事。这段时间看了一篇讲 Prompt 原则的文章把里面的东西整理成了笔记也结合自己工作中遇到的情况记录一下我现在的理解。先说一下我的情况工作中主要写 Java 后端平时会用 AI 帮忙写代码、排查报错、做技术方案、写单元测试之类的用得不少但一直凭感觉写 Prompt没系统了解过。这次认真研究的契机是有一次排查一个线上问题让 AI 帮忙分析日志Prompt 改了半天输出还是没到点上。回去的路上就在想到底哪里出了问题。先说两个我踩过的坑Prompt 越写越长输出反而越来越差有一次让模型帮忙出一个对接第三方支付的技术方案。需求不复杂——我们的系统要接一个支付网关需要设计接口交互和回调处理。我一开始的 Prompt 写了大概四五百字项目背景、需求说明、技术栈、注意事项全塞进去了。觉得写得挺全的。结果模型输出的东西很散——列了一大堆技术点什么消息队列、分布式锁、幂等性全扯进来了但我真正想让它重点设计的对接流程和回调处理反而一笔带过。我当时第一反应是是不是我写得不够清楚于是又加了一段把对接流程的要求写得更细还加了一句请确保方案可落地。结果更散了模型好像什么技术点都说一点什么都不深最后还给我来了一段综上所述建议采用微服务架构实现解耦——说了跟没说一样。当时已经搞了快两小时了有点烦躁。我停下来想了一下觉得可能不是内容不够是内容太多了。于是试着反过来做——把项目背景删掉只留核心任务和对接流程的要求然后把重点设计对接流程和回调处理方案其他技术点简要提及挪到 Prompt 最前面。输出确实好了一些至少对接流程的篇幅上来了废话也少了一些。这个过程让我意识到问题不在信息量不够在于信息太多重要的东西被淹没了。我一开始觉得写全一点总没错这个想法本身就有问题。后来看那篇文章的时候里面提到信息密度这个说法跟我的感受对上了。Prompt 不是写得越多越安全写得越长真正重要的东西反而越容易被稀释掉。明明写了约束模型就是不照做另一个让我头疼的情况我在 Prompt 里明确写了某个要求模型还是不照做。那次是让模型帮忙写一段 Java 代码处理订单状态流转。我在 Prompt 里写了不要用 Lombok用 Java 8 语法不要用第三方库。结果模型输出的代码里全是 Data、Builder 注解还用了 Java 14 的 record。我以为是表达不够清楚又把不要用 Lombok改成严格不使用 Lombok不要加任何 Lombok 注解还加了请使用 Java 8 语法不要使用 record。还是照样给我加 Data还用了一个 var——Java 10 才有的。我又加了一条注意以上约束必须遵守——然并卵该用还是用。当时挺纳闷的明明白纸黑字写了不要用 Lombok为什么模型就是不照做我换了一个模型试结果差不多。后来看那篇文章的时候里面提到了一个叫 “Lost in the Middle” 的现象——模型对 Prompt 开头和结尾的内容记得比较清楚中间的内容容易被忽略。我回头看了看我那个 Prompt不要用 Lombok和用 Java 8 语法这几个约束被我写在了中间偏后的位置前面还有一大段需求说明和业务逻辑。我试着把约束挪到 Prompt 最末尾重新跑了一遍。这次 Lombok 注解没了语法版本偶尔还会跑偏但比之前好不少。这个坑给我的教训是约束的位置可能比约束的措辞重要。我之前以为只要写了就行没想过放在哪里。不过说实话我也不确定这是不是完全准确的原因解释。“Lost in the Middle” 那个现象我是在讲 Prompt 原则的那篇文章里看到的具体是哪篇不太记得了可能是引用了某个研究。我的理解可能不完全对但把约束放首尾这个做法确实对我有用。我的理解核心是界定边界不是堆砌信息踩完这两个坑之后再看那篇文章有一句话我印象很深一个好的 Prompt 基本由四要素构成——Role角色、Task任务、Context上下文、Format格式。我现在写 Prompt 的时候会先想清楚这四件事让模型扮演谁、要它做什么、有什么背景、结果按什么格式给。四件事想清楚了Prompt 基本就成形了。不需要写很多但每一句都要知道它在四要素里属于哪一块。再结合前面那个Lost in the Middle的教训现在写 Prompt 的时候最重要的约束我会尽量放在开头或者结尾不埋在中间。这个框架对我来说挺有用的至少写 Prompt 的时候心里有数了不用每次都从头想。但也不敢说这是最优写法——那篇文章里讲的东西我还没完全消化有些技巧没实际试过。技巧没有万能的按场景组合那篇文章列了六种技巧角色扮演、思维链CoT、少样本学习Few-shot、任务分解、结构化输出、XML 标签。里面有一句话我印象很深技巧服务于稳定性。我的理解是用技巧是为了让输出稳定而不是时好时坏地碰运气。所以没有一种技巧是万能的得看场景来选。目前我自己的做法大致是简单任务写个短 Prompt 就行复杂一点的推理用思维链让模型把思考过程一步步写出来对格式有严格要求的用 Few-shot 给几个例子或者直接给 JSON Schema任务太长就拆成几步一步步来Prompt Chaining。六种技巧里我实际用过的角色扮演用过一些让模型扮演有 10 年经验的 Java 后端工程师来写代码比不给角色的时候输出专业一点至少不会给我写出一堆不能编译的伪代码。但也不是所有任务都需要——让它格式化一段 SQL 给不给角色区别不大。CoT 用过几次在排查问题的时候效果明显。比如有一次线上接口超时我让模型分析可能的原因加了请一步步分析先列出可能的性能瓶颈点再逐一排查之后输出比直接问为什么接口慢要有逻辑。不过简单任务用不上反而让输出变啰嗦。Few-shot 我用得最多。对代码格式有要求的时候特别管用——给两三个方法示例放进去模型就知道你想要什么风格了。有一次让模型按特定格式生成接口文档我用文字描述了三遍格式它还是不对给了两个示例就对了。那次之后我基本养成习惯格式要求一律用示例说话不再用文字描述了。任务分解偶尔用。需求复杂的时候我会拆成几步来问——第一步先让它出接口设计确认了再让它写实现代码最后再让它补单元测试。不是每次都需要但对于比较复杂的业务逻辑分步来比一次性写完质量好。结构化输出和 XML 标签我没怎么用过。结构化输出偶尔用让模型输出 JSON 格式的接口定义时会指定一下字段。XML 标签不太熟还没研究怎么用。最后落到一句话能用示例就别用文字能拆分就别硬塞进一个 Prompt。这是我自己用下来最大的感受。那篇文章和我的学习顺序我说的那篇文章是一篇讲 Prompt 工程原则的长文具体标题不太记得了是公司技术群里有人分享的。里面讲了四要素、六种技巧、还有Lost in the Middle这些概念。对我帮助最大的是信息密度和约束位置这两个点正好对应我踩的两个坑。如果让我重新学一遍我会先自己踩几次坑这个好像避不开然后看四要素框架再一个一个试六种技巧。不要一上来就全部用——用了才知道哪个场景需要哪个。六种技巧里我觉得最先可以试的是 Few-shot效果最直观格式问题一给示例就解决。其次是 CoT对排查类任务提升明显。其他的看需求。刚学 Prompt 的时候最困惑的几个问题Prompt 到底写多长合适我之前总觉得越长越全面越好后来发现不是。我的经验是能说清楚任务就行别为了全面硬加背景和约束。四要素想清楚每一句知道属于哪一块差不多就够了。我现在的 Prompt 一般在一两百字左右比以前短了不少效果反而好一些。要不要给模型一个角色看任务。需要技术深度的内容写代码、做方案给个角色有点用给有 10 年经验的 Java 工程师角色之后输出的代码至少能看不会给你整一堆不存在的方法。简单任务格式化 SQL、解释报错信息给不给区别不大。我试过给资深架构师角色来格式化 SQL输出反而变啰嗦了加了一堆不需要的架构分析。模型不按约束来怎么办先看约束放在 Prompt 的什么位置。如果是长 Prompt约束可能被中间淹没了试试挪到开头或结尾。还不行就给个示例Few-shot用示例来示范约束比用文字写约束管用。比如不要用 Lombok这个约束与其写三遍不要用 Lombok不如直接给一段没有 Lombok 注解的代码示例模型照着写就不会加。还没搞懂的目前我就到这个程度。那篇文章里有些东西我还没完全消化——比如 XML 标签怎么用、任务分解和 Prompt Chaining 的边界在哪、结构化输出除了 JSON 还有什么场景。还有一点我不确定四要素框架是不是适用于所有类型的任务我感觉复杂任务可能需要更多结构但具体怎么加我还没想清楚。这些都是我从那篇文章里整理出来的理解工作里实际撞过的主要是前面说的这两种情况。

相关新闻

终极直播操作可视化指南:Input Overlay让观众看清你的每一个按键

终极直播操作可视化指南:Input Overlay让观众看清你的每一个按键

终极直播操作可视化指南:Input Overlay让观众看清你的每一个按键 【免费下载链接】input-overlay Show keyboard, gamepad and mouse input on stream 项目地址: https://gitcode.com/gh_mirrors/in/input-overlay 你是否曾经在直播游戏或教学时,…

2026/8/2 10:10:55 阅读更多 →
学术写作AI工具:提升论文质量与效率的智能解决方案

学术写作AI工具:提升论文质量与效率的智能解决方案

1. 项目背景与核心价值作为一名在学术写作领域深耕多年的研究者,我深刻理解学者们在论文撰写过程中面临的痛点:从文献综述的严谨性到实验数据的准确表述,从专业术语的规范使用到学术逻辑的严密构建,每个环节都需要耗费大量精力。传…

2026/8/1 6:40:14 阅读更多 →
day11:C语言指针详解:从概念到应用

day11:C语言指针详解:从概念到应用

2.7 指针1. 指针功能使用指针可以使程序更加简洁高效。2. 概念2.1 地址为了区分内存中不同的空间,计算机对内存空间进行编址,这个空间的编号称为该空间的地址。内存空间按字节编址编址范围(可以被寻址的范围):0x000000…

2026/8/1 6:39:13 阅读更多 →

最新新闻

构建高效被动扫描工作流:Burp Suite与xray联动实战指南

构建高效被动扫描工作流:Burp Suite与xray联动实战指南

1. 项目概述:为什么需要构建被动扫描工作流?在安全测试的日常工作中,我们常常面临一个矛盾:主动扫描工具虽然强大,但“动静”太大,容易触发目标系统的防护机制,甚至可能导致服务中断&#xff1b…

2026/8/2 10:13:29 阅读更多 →
2026年终极指南:如何免费解锁WeMod专业版全部功能

2026年终极指南:如何免费解锁WeMod专业版全部功能

2026年终极指南:如何免费解锁WeMod专业版全部功能 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 还在为WeMod专业版的订阅费用而烦恼吗…

2026/8/2 10:13:29 阅读更多 →
433MHz无线通信实践:从Arduino到树莓派的完整开发指南

433MHz无线通信实践:从Arduino到树莓派的完整开发指南

1. 项目概述:从零开始的433MHz无线通信实践如果你玩过Arduino或者树莓派,肯定对“无线控制”这个概念不陌生。无论是想做个遥控小车,还是想在院子里搞个无线温湿度监测站,摆脱那根烦人的数据线总是第一步。市面上无线方案很多&…

2026/8/2 10:13:29 阅读更多 →
微信小程序集成银联商务支付:替代原生接口的完整实现方案

微信小程序集成银联商务支付:替代原生接口的完整实现方案

1. 项目概述:为什么选择银联商务作为微信小程序的支付通道?在微信小程序的生态里,支付功能几乎是商业类应用的标配。一提到小程序支付,大家的第一反应往往是“微信支付”。这没错,微信支付确实是官方原生的、最直接的方…

2026/8/2 10:13:29 阅读更多 →
Grove VOC传感器SGP40:I2C通信与智能算法实现空气质量监测

Grove VOC传感器SGP40:I2C通信与智能算法实现空气质量监测

1. 项目概述:从“闻”到“测”,聊聊Grove生态下的VOC感知新选择如果你玩过Arduino或者树莓派,对Grove这个模块化电子积木系统应该不陌生。它最大的好处就是把复杂的电路和连线简化成了“即插即用”,让开发者能更专注于功能实现&am…

2026/8/2 10:13:29 阅读更多 →
Reachy Mini机器人麦克风FPC线缆更换与音频故障修复指南

Reachy Mini机器人麦克风FPC线缆更换与音频故障修复指南

1. 项目概述:一次精细的“耳部”手术如果你正在使用Reachy Mini这款灵巧的开源机器人,并且发现它的“听觉”系统——也就是麦克风阵列——出现了问题,比如某个麦克风完全没声音、声音断断续续或者有明显的电流噪音,那么问题很可能…

2026/8/2 10:12:29 阅读更多 →

日新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/2 6:34:16 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/2 2:47:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/2 0:23:22 阅读更多 →