ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

别把AI当神也不当玩具:从提示词工程到Agent的实战指南

别把AI当神也不当玩具:从提示词工程到Agent的实战指南 1. AI代码工具的真实能力边界别把它当神也别把它当玩具先聊点扎心的。这两年我身边但凡还在写代码的几乎都经历过同一个心路历程第一次用上AI辅助编程时惊为天人觉得自己马上就能一晚上干完一周的活用了一个月后发现它经常一本正经地胡说八道又开始骂骂咧咧说这玩意儿就是人工智障。其实这两种极端感受我都理解但说实话问题不在AI在于我们对AI能干什么这件事的预期从一开始就错了。先说结论以目前主流代码大模型的能力它在已知问题的已知解法这个区间内确实强得离谱——你给它一个明确的任务比如写一个Python脚本批量重命名某个文件夹下的所有图片文件按拍摄时间排序它能秒出正确率极高的代码。但一旦涉及问题本身还没被定义清楚的场景比如帮我优化一下系统性能这种开放需求它就抓瞎了。这不是模型笨而是你给的输入本身就不够格。我自己的实际体感是AI代码工具真正适合干的事情有三类。第一类是样板代码和胶水代码比如数据格式转换、API封装、配置文件的增删改查这些活高度模式化写起来无聊但AI做得又快又好。第二类是查文档-写调用这种死记硬背型任务比如某个第三方库的最新API该怎么用你让它帮你对着文档写调用代码比你自己一行行读文档效率高出十倍。第三类是测试代码和数据构造这块很多人忽略但AI其实非常擅长根据一个函数的输入输出约束生成边界测试用例。但它的短板同样明显。首先是技术栈越新越不靠谱——你让AI帮你写一个刚发布两周的框架的集成代码它大概率把旧版本的API和新的混在一起给你编出来。其次是业务上下文理解AI并不真的懂你的系统架构、历史包袱和团队约定它只是根据提示词里的只言片语在猜。第三是安全与边界意识AI默认会走最简单能跑通的路线不会主动考虑注入攻击、权限校验、数据脱敏这些非功能性需求。所以我对AI代码工具的定位特别简单它是一个能力极强的结对程序员但这个人有个毛病——自信且健忘你让它干活可以但验收和兜底必须是你自己来。把它当搜索引擎用你会觉得它弱爆了把它当实习生用你得给它讲清楚需求背景把它当成一个对技术栈很熟但不懂你业务的老同事你就会找到最舒服的协作节奏。2. 让AI听懂人话从我要写代码到我要这个效果的输出方式转变我发现大部分人用AI写代码的姿势从一开始就错了。他们习惯这样提问用Python写一个爬虫然后AI给出一坨代码他们复制粘贴试运行报错了就再把报错信息摔给AIAI改完再试……来回折腾十几次最后骂一句AI写的代码就是垃圾。这个流程看着没问题但你回想一下你跟人类同事是怎么协作的你会直接甩一句给我写个爬虫然后等结果吗正常人至少会说我要爬什么网站、数据存哪里、大概多久跑一次、对方的反爬机制厉不厉害、有没有登录鉴权。你给同事的信息量是什么水平你给AI的信息量至少也得是那个水平这事才能干成。我现在的习惯是把需求描述分成四个层次来喂给AI。第一个层次是结果目标用一句话说清楚我要达成什么效果——我需要把S3上的所有日志文件按日期归档到本地目录。注意不要急着说用什么技术方案先讲业务目标。第二个层次是约束条件比如运行环境、依赖版本、性能指标、安全要求——这个脚本必须在Python 3.10环境下运行不能依赖内网之外的任何服务处理10万条记录要控制在5分钟以内。第三个层次是验收标准你要明确告诉AI怎么算做完了——输出文件必须按YYYY/MM/DD目录结构存放同时生成一份归档清单CSV里面包含文件名、原始路径、归档时间。第四个层次是负面清单——不能删除原始文件不能使用管理员权限不能用正则解析HTML。这些人类默认的常识AI并不默认你不说它就会随手给你写个最省事的实现。举个例子我上周要用AI写一个批量图像压缩的脚本。如果我直接说写个脚本把图片压缩了它大概率给我端出一个用PIL硬压缩所有图片到统一尺寸的方案。但当我加上保持原始尺寸和宽高比输出质量控制在85%超过200KB的图片才压缩低于的跳过用多线程并行处理这些约束之后产出的代码基本就是可上线水平。还有一个很容易被忽略的点让AI先讲思路再写代码。你可以加一句先别急着写代码把我的需求拆成几个步骤告诉我每个步骤要做什么——这一步非常管用。因为AI在复述需求的过程中你一眼就能看出它有没有真正理解你的目标。如果它复述出来的思路跟你想要的差了十万八千里那此刻改思路只需要几秒钟而不是等它写完两百行代码后才发现方向错了。这套先对齐思路再动手实现的流程其实就是敏捷开发里backlog细化那套逻辑的AI版。3. 上下文工程决定AI输出质量的那个隐藏变量如果你已经能把自己的需求说得很清楚但发现AI的水平还是忽高忽低那问题大概率出在上下文管理上。我见过太多人把AI对话窗口当成一个无底洞从帮我写个冒泡排序开始一路聊到优化下这个电商系统的架构中间的对话跨度累计超过几万字。这时候AI早就忘了最开始你项目的技术栈是Java还是Go也忘了你之前说过的某个业务规则。你还在那儿怪它前面不是说了吗你怎么又错了——问题是Transformer的注意力窗口就那么大它记得住才怪。我自己的经验是两个原则。第一个原则是一次对话只解决一个任务。如果我的目标从写一个数据清洗脚本演变成了给这个脚本加上定时调度再加个监控告警我不会在同一个会话里继续加需求而是新开一个会话把前一个会话中最终可用的脚本和本次新增需求一起作为初始上下文。第二个原则是关键信息反复锚定。对于项目里真正重要的约束比如技术栈版本、必须兼容的浏览器、核心业务流程我一般会在每次提出新需求的时候重新粘贴一遍别嫌啰嗦AI在长对话里遗忘重点信息的概率远比你想象中高。这里要特别讲一下如何把AI变成你的项目专属助手。很多人不知道你可以用比较结构化的方式给AI建立一份项目档案每次开始新任务时先花三十秒钟把这份档案贴给它。我一般包括这样几块项目背景这是个做什么的系统给谁用当前处于什么阶段技术栈后端语言和版本、前端框架、数据库类型、部署方式代码风格缩进标准、命名约定、是否有Lombok/是否用函数式编程架构约束分层方式、依赖注入方式、统一异常处理是否存在已知坑点这个项目里容易出错的模块、历史遗留的奇怪约定有了这份档案AI输出的代码风格会非常贴近团队现有代码几乎不需要额外调整。我甚至看到有些团队把这个档案固化成了团队内部的AI提示词规范新成员上手项目时直接复制粘贴就能得到一个懂这个项目的AI助手。最后补充一个技巧当AI的输出开始脱离你的控制时果断打断并重述上下文。有时候你自己都忘了前面某个需求细节描述得含糊AI在含糊的基础上做了错误的假设然后一路滚雪球。这时候千万别试着在现有对话里掰回来我经常直接对它说我们重新来忽略刚才所有内容然后把需求重新描述一遍效率和正确率反而更高。4. 真正拉开差距的技能从写代码到改代码、审代码、拆任务很多人以为AI时代软件工程师的核心技能变成了写提示词我觉得这完全是误读。我的观察很简单会写提示词只是入门真正值钱的是你拿AI产出的代码之后干了什么。说白了AI能写出正确的代码但写不出合适的代码。这里的合适包括性能是否达标、异常处理是否完备、是否遵循了团队规范、是否考虑到了后续扩展、是否有安全隐患——这些恰恰是一个资深软件工程师的价值所在。先说代码审查能力。AI生成的代码你逐行去读了吗我犯过一次错让AI帮我写一个给客户导数据的脚本它用了一种很取巧的写法一次性把整个Excel文件加载进内存然后用pandas处理。本地测试数据量小看不出来问题一上生产面对几百万行数据直接内存溢出。那之后我就形成了一个习惯AI写完代码我先不急着让它跑而是自己拿着代码做一轮Code Review重点关注四件事——边界条件空列表、超大值、并发冲突、异常路径网络超时、权限失败、磁盘满了怎么办、资源管理文件句柄是否关闭、连接池是否释放、性能陷阱隐含的嵌套循环、内存全量加载、批量调用N次API。再说定义任务的能力。这个能力比写代码本身更难也更值钱。举个例子你的老板说帮我把系统登录模块的日志补全一下你第一步不是去写代码而是自己先把这个需求拆一遍哪些操作需要记日志日志级别怎么定要不要记录请求参数参数里有密码怎么办要不要做脱敏日志存哪里保留多久需不需要联动现有的告警系统把这个拆解结果变成一个个原子任务再逐个丢给AI去实现每个任务给足上下文最后你自己做集成和联调。这个流程里AI干的是码农的活你干的是软件工程师的活。很多初级开发者不知道怎么拆任务这里我给一个通用的思路按堡垒原则来拆。每个任务必须是一个独立的堡垒——输入明确、输出明确、边界清晰、不依赖任务之外的其他状态。例如把登录日志结构化地写到本地文件是一个合格的任务而完善登录模块就是一个不合格的任务。合格的原子任务越细AI的完成质量越好你自己复核也越轻松。把大目标逐步拆成原子任务的过程其实就是传统软件工程里WBS工作分解结构那套方法论在新场景下的复现。审代码和拆任务这两个能力合起来才是驾驭AI的真正含义。工具给的只是砖块绘图的是你。5. 用AI Agent串起整个工作流从问一句答一句到交给它跑完整流程聊到这儿很多人可能会觉得那跟我之前用AI写几个函数也没啥区别啊。确实如果你只停留在让AI写代码、改报错这个层面那AI对你来说顶多是个高级版Google。真正让我觉得软件工程师的物种进化这件事已经发生的是AI Agent——那种可以连续执行多步骤任务的智能体。举个我自己实际用过的场景。以前让我做定时去某个数据源拉数据清洗后写到数据库再发一封邮件给业务方这种活我得自己写一套完整的调度脚本。现在我用AI Agent的方式来做跟智能体说清楚这个任务的完整链路它可以自己去选工具、自己写代码、自己执行、出错了自己修、修完自己重跑整个过程我能旁观它在干什么必要的时候插一句这一步用另一种方式试试。这里我想重点说下AI Agent对软件工程师的真正意义——它把编程从写代码变成了指挥系统。你不需要事无巨细地把每一行代码都写出来你描述的是这件事该怎么完成的目标和路径工具负责把路径变成代码并执行。但Agent有一个非常大的坑我摔过一次才明白**Agent的每一句话都是你给它画的地图它走歪了一点点不可怕可怕的是你给了它一张太粗糙的地图。**你怎么让Agent可靠地完成一个复杂任务其实有非常细腻的活儿。我的经验是任务链路尽量在初始指令里说清楚别指望它自己悟出来每一步之间尽量有明确的验收节点让Agent每走一步停下来检查一下对Agent可能犯的错要有预判常见的就是路径写错权限不够依赖缺失这些提前在指令里写上如果出现FileNotFoundError请先检查路径是否存在而不是直接报错如果说普通对话式AI是你雇了一个远程程序员但它只在你问它问题时才干活那AI Agent就是你雇了一个有自主行动力的执行者。前者改变的是你写代码的效率后者改变的是你做事的方式。这个领域的工具链还在快速迭代我不推荐你现在就开始追着框架跑。我的建议是把你手头最高频、最痛苦、规则最清晰的重复性工作挑出来尝试用Agent的方式重构一遍跑通一个你自然就理解它的魔力了。技术创新这种东西听过一百遍不如亲手做一遍。6. 转型的真正路径三个技术栈方向与一个核心策略说到从写代码到驾驭AI很多人第一反应是恐慌觉得自己要被替代了。我的真实判断是替代你的不是AI而是那个会用AI的同事。整个行业的工作总量并不会消失但工作内容确实在发生剧烈的转移。那么问题来了打工人应该怎么做我的建议是别慌按照自己的技术底子选一个方向扎进去。第一个方向是MLOps/LLMOps方向。这是最稳的路因为它的本质是把AI技术落进现有工程体系。企业不缺大模型缺的是能把模型部署到生产环境、能做推理加速、能监控模型效果、能管理提示词版本、能把RAG流程调到靠谱的人。这个方向的技术栈包括向量数据库、LangChain或Dify这类编排工具、模型微调和评估流程、GPU推理优化核心目标是让公司里那些炫酷的AI想法真正能跑、能稳、能维护。第二个方向是AI原生应用开发方向。说白了就是用大模型API做新一代软件。这里面有很广阔的天地AI客服、AI写作助手、AI知识库问答、AI内容审核、AI教育产品。这个方向最重要的能力是最近大模型能力边界和产品设计你必须知道哪些体验能做出来、哪些还会幻觉、哪些成本太高同时还得懂一点传统的服务端工程负责做数据管道、权限系统、调用频率控制和成本管理。第三个方向是深度算法优化方向。这个路最陡但天花板也最高。适合本身数学和算法功底扎实的朋友。包括模型蒸馏、量化、RLHF、多模态对齐这些偏研究向的领域。如果你没有读博的打算我个人不太建议这一条路它的投入产出比对于普通打工人来说不划算岗位数量也比前两个少一个数量级。除了选方向我想强调一个核心策略不要只学技能要找场景去实践。学AI最好的方式不是看一堆课程而是从你目前的工作里挖出一个真实的痛点然后尝试用AI技术把它解决掉。比如你手头有个数据报表生成的活特别烦那就试着用大模型把它做成自动的你维护的系统的日志分析很费人力那就试着做个智能日志摘要的Agent。搞定一个真实场景你对AI技术的理解会远超别人刷十个教程的效果。别想着等自己准备好了再动手AI这个领域你不亲手写一行代码、不亲手踩一个坑就永远停留在知道了很多道理依然过不好这一生的阶段。我从开始大幅度把AI引入工作流到现在最大的体会就一句话在AI面前保持判断力比保持手速重要得多。它负责快你得负责对。这个行业永远不会消失被淘汰的是那些只会敲键盘不懂业务的人和那些把AI当搜索引擎用却不相信它的人。未来的软件工程师可能代码审得比写得还多可能一半时间在跟工具描述需求而不是跟机器较劲可能得懂点心理学和沟通学才能让AI输出你想要的东西——但这份工作的核心依然是用技术解决真实问题只是工具变了手艺没变。
返回列表