后端程序员如何拥抱AI Agent:从Java到Python的思维模式转变与实战

发布时间:2026/10/23 7:52:42
后端程序员如何拥抱AI Agent:从Java到Python的思维模式转变与实战
本文是一位后端程序员从Java转向学习AI Agent的心得。作者分享了使用Cursor、Claudecode等AI编码工具的体验以及初次使用时遇到的挑战如幻觉问题和参数错误。文章深入分析了AI生成代码的特点强调验证的重要性并提出了“回到定义”的学习方法。最后作者通过Python示例展示了Agent的基本框架和循环控制对比了Java和Agent工程的思维模式差异鼓励后端开发者积极学习新事物发挥自身工程优势转型AI领域。跳出舒适圈总是一件不太容易的事情。作为一个老后端习惯了Java的严丝合缝和确定性再切换到AI Agent的略带跳跃、充满随机性的世界就像重拳手一拳打在棉花上的感觉那种无法完全掌控全局的挫败感总会让人有点抓狂。尤其当本人是一个在工程实践中极度追求熵最小化、追求逻辑收敛之美的人。为什么还是要去学agent呢大概是拥抱变化 对新事物的极度好奇。2024年开始自己陆续接触了一些prompt的知识并很早就在日常使用ChatGPT、豆包。2025开始我开始接触cursor、Claudecode这些AI编码工具并很快爱上了指挥AI干活的感觉。本文主要介绍下对agent编码工具的感触 入门agent时做的东西。对agent编码工具的感悟2025年开始在自己电脑上用cursor自己鼓捣些springboot项目。发现一些很坑的地方1第一次用 Cursor代码能跑我就以为改对了。我让 Cursor 给商品列表加一个分页功能。它很快改完了接口正常返回页面也能翻页我觉得这效率确实高。但调试的时候发现它顺手重构了查询逻辑把原来默认带着的“只查询当前租户”条件弄丢了。分页做出来了数据隔离也被一起“优化”掉了。2第一次让 Agent 调 API它猜对了意思却填错了参数。我的提示词核心意思是“帮我查一下昨天退款失败的订单。”Agent 正确选择了订单查询接口参数也生成得像模像样日期是昨天状态是FAILED。接口返回空列表它回答“昨天没有退款失败的订单。”但我们系统的FAILED表示支付失败。退款失败要查的是另一个字段refundStatusFAIL。HTTP 200JSON 合法整条链路没有报错业务答案却错了。如果说问题2有一部分是因为我自己的提示词给的不够清晰而产生的锅。那么问题1就完全不能忍了。你能容忍同事新增一个功能而把原来的“破水管”改坏嘛。这是典型的幻觉问题即模型生成了一个看起来合理的答案却没有充分依据来保证它正确。对于我们常用的问答、代码生成的场景来说大模型的核心是一个基于概率的文本生成器当然它的能力不止于此。我们可以从2个层面来理解1模型学到的是大量规律知识没有以精确数据库的形式保存。当你问某个框架如何开启重试时它可能组合出一个符合命名习惯的方法.findAllForPageList(pageable);这个名字很合理甚至配套解释也很通顺但对应版本里可能根本没有它。模型可以根据规律推断答案但语言和代码形式上的合理性不足以证明某个方法真实存在。如果没有查文档、读取依赖或编译验证错误就可能保留下来。第二完成当前任务需要的上下文可能并不完整。回到“加分页却丢掉租户条件”的例子。模型可能主要看到了// 原代码return orderRepository.findByTenantId(tenantId);它为了增加分页改成// 修改后return orderRepository.findAllForPageList(pageable);新代码满足了分页要求也能通过编译。但是用户明确提出的要求增加分页.而原系统已经存在的要求只能查询当前租户的数据而原系统的要求可能散落在其他代码、团队规范甚至开发者脑子里。模型可能没有获取到也可能在重写过程中没有保留。即使相关代码进入了上下文模型仍可能遗漏约束。看到一个条件不等于能在每次修改中可靠地维护这个条件。所以对后端开发者来说AI 生成的是一个需要验证的实现方案。方案写得完整、解释得流畅并不代表业务正确性已经得到证明。虽然现在AI编程工具的【记忆功能】、【上下文工程】越来越强大也会在修改当前代码之前进行单元测试、验证但开发者作为【最终把关】的那个终审人还是要心存敬畏为最终代码提交负责。常怀敬畏之心这是作为一个开发者应该遵守的非常重要的“道”。至于编写skill、设置memory这些技巧更多是“术”这些会在以后的文章中逐步讲到。入门agent的实践1概述怎么学习一个新东西呢上高中的时候教数学的H老师在讲证明题的时候经常说的一句话是“回到定义”这句话深刻影响了多年后我的学习模式通过若干概念/术语的学习像拼积木一样搭建一个整体的「思维框架」。这就是我的MetaData。Agent的框架是这样的Agent LLM决策 工具行动 记忆状态 循环控制流。里面的名词我就不逐一解释了有不懂的自行检索即可。2实践举例这里我想去展示一下【工具】【循环】所以用下面的例子进行说明。代码是Python习惯Java的同学可能需要跳出一下“舒适圈”毕竟现在Agent工程用Python的更多。背景是查询转账的金额、处理状态。 前置准备python -m pip install openaiexport DEEPSEEK_API_KEY你的 DeepSeek API Key python scripts/bank_agent_loop_demo.py这里提供三个工具工具输入返回内容query_summary流水号金额、处理状态query_record流水号进度查询编号query_progress进度查询编号金额、处理状态模型有两条查找【金额、处理状态】的路径路径 A模型 → query_summary → 模型回答共 2 轮模型调用路径 B模型 → query_record → 模型 → query_progress → 模型回答共 3 轮模型调用选择哪条路径由模型决定程序负责执行、反馈和控制上限。 两条路径使用一致的虚构数据金额和状态应该保持一致。下面是脚本中循环部分的核心逻辑摘录# 外层Agent 循环最多请求模型 5 轮for round_no in range(1, 6): print(f第 {round_no} 轮请求模型) response client.chat.completions.create( modelmodel, messagesmessages, toolsTOOLS, temperature1.0, max_tokens512, extra_body{thinking: {type: disabled}}, ) message response.choices[0].message messages.append(message.model_dump(exclude_noneTrue)) # 模型不再调用工具尝试结束任务 if not message.tool_calls: if not has_status: raise RuntimeError(尚未查到状态模型提前结束) return message.content # 内层执行本轮模型请求的工具 for call in message.tool_calls: name call.function.name arguments json.loads(call.function.arguments) function, _, _ SPECS[name] result function(arguments) has_status has_status or bool(result.get(status)) # 关键把执行结果加入上下文 messages.append({ role: tool, tool_call_id: call.id, content: json.dumps(result, ensure_asciiFalse), }) # 进入下一轮模型将看到刚才的工具结果 raise RuntimeError(达到 5 轮上限任务未完成)实验时发现会走两条不同的路径实验 1第1轮 → query_summary第2轮 → 最终回答 实验 2第1轮 → query_record第2轮 → query_progress第3轮 → 最终回答Agent 的循环是每次执行完工具后都把结果交回模型重新决定下一步。它可能直接查汇总也可能先查记录、再查进度。 开发者需要同时处理两件事允许模型在可行路径中选择以及用程序明确规定执行边界。例如编号必须来自查询结果、没有拿到状态就不能算完成、循环超过上限必须停止。其中【执行边界】就是我们在后端开发中经常要考虑的异常场景这属于【工程能力】的一部分在Agent开发中是可以复用的。 自己的感受是以Springboot为代表的Java项目作为一种高度追求健壮性的工程每一个不确定性的容忍度很低要么在各种if分支中cover住要么在异常捕获中进行try-catch。以抚养小孩进行类比像是一种“圈养”模式条条框框很多。而Agent工程更多是只在整体层面进行兜底允许模型发散对不确定性接受度很高像是一种“散养”模式。总结软件工程的发展总是日新月异IT这个行业对快速学习新事物、接受新事物的能力要求都很高这也是这个行业的魅力之一。从一种思维模式切换到另一种思维模式需要我们带着探索、求变的精神去积极尝试。另一方面工程落地能力仍然是Java、Go这些后端开发的优势这方面的能力是harness工程的重要体现。所以传统开发的转型是有自身优势的。至于语言的切换是最不值得一提的东西。和思维模式、框架的重塑相比这算什么难事呢。如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线科技企业深耕十二载见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事早已在效率与薪资上形成代际优势我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包✅ 从零到一的 AI 学习路径图✅ 大模型调优实战手册附医疗/金融等大厂真实案例✅ 百度/阿里专家闭门录播课✅ 大模型当下最新行业报告✅ 真实大厂面试真题✅ 2026 最新岗位需求图谱所有资料 ⚡️ 朋友们如果有需要《AI大模型入门进阶学习资源包》下方扫码获取~① 全套AI大模型应用开发视频教程包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点② 大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通③ 大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。④ AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。⑤ 大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。⑥ 大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。以上资料如何领取为什么大家都在学大模型最近科技巨头英特尔宣布裁员2万人传统岗位不断缩减但AI相关技术岗疯狂扩招有3-5年经验大厂薪资就能给到50K*20薪不出1年“有AI项目经验”将成为投递简历的门槛。风口之下与其像“温水煮青蛙”一样坐等被行业淘汰不如先人一步掌握AI大模型原理应用技术项目实操经验“顺风”翻盘这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。以上全套大模型资料如何领取