[{"data":1,"prerenderedAt":335},["ShallowReactive",2],{"content:\u002F2026\u002Fai-agent-learning-note":3,"surround:\u002F2026\u002Fai-agent-learning-note":329},{"id":4,"title":5,"body":6,"categories":302,"date":304,"description":305,"draft":306,"extension":307,"image":308,"meta":309,"navigation":311,"path":312,"permalink":313,"published":313,"readingTime":314,"recommend":319,"references":313,"seo":320,"sitemap":321,"stem":322,"tags":323,"type":327,"updated":304,"__hash__":328},"content\u002Fposts\u002F2026\u002Fai-agent-learning-note.md","学习 AI Agent 开发",{"type":7,"value":8,"toc":284},"minimark",[9,14,18,26,30,33,36,39,42,100,105,108,111,115,122,148,152,155,166,170,173,181,188,195,202,206,209,225,228,231,234,250,253,257,260,263,266,269,272,275,278,281],[10,11,13],"h2",{"id":12},"从找实习开始的一次尝试","从“找实习”开始的一次尝试",[15,16,17],"p",{},"暑假回到家后，我开始思考能不能找一份实习。不过连续投递了几天，结果并不理想。看着还有一段比较完整的暑假时间，我不想把它荒废掉，于是决定接触一下最近比较热门的 AI Agent 智能应用开发。",[19,20,23],"alert",{"title":21,"type":22},"这不是一篇教程","info",[15,24,25],{},"这篇文章只是我的阶段性学习记录，主要分享学习路线、一些初步理解和过程中遇到的想法。如果其中有不准确的地方，欢迎指出。",[10,27,29],{"id":28},"先补了一遍-python","先补了一遍 Python",[15,31,32],{},"在正式学习 AI 之前，我先花了三四天快速过了一遍 Python。因为之前已经学习过 Java，所以 Python 的基础语法并没有花太长时间就能看懂，主要参考了廖雪峰老师的教程。",[15,34,35],{},"这一步对我来说更像是熟悉工具。真正开始学习之后，我发现 Python 生态里的很多 AI 工具都比较成熟，先把基本语法和常用写法过一遍，后面阅读示例代码会轻松很多。",[10,37,38],{"id":38},"我接触到的学习内容",[15,40,41],{},"这段时间的学习内容比较多，刚开始接触时也有些稀里糊涂。好在课程会围绕一个个小项目展开，所以我没有只停留在概念层面。",[43,44,45],"card-list",{},[46,47,48,52,55,58,61,64,81,84,97],"ul",{},[49,50,51],"li",{},"Transformer 架构和大模型应用的基本原理",[49,53,54],{},"Token、上下文窗口和模型推理参数",[49,56,57],{},"Prompt 工程与大模型 API 调用",[49,59,60],{},"结构化输出、Function Calling 与工具调用",[49,62,63],{},"对话记忆、RAG 知识库和向量检索",[49,65,66,70,71,70,74,70,77,80],{},[67,68,69],"code",{"code":69},"embedding","、",[67,72,73],{"code":73},"top-k",[67,75,76],{"code":76},"rewrite",[67,78,79],{"code":79},"rerank"," 等概念",[49,82,83],{},"LangChain、Agent、工具调用和多模态能力",[49,85,86,87,70,90,70,93,96],{},"LangGraph 中的 ",[67,88,89],{"code":89},"node",[67,91,92],{"code":92},"edge",[67,94,95],{"code":95},"state"," 与工作流编排",[49,98,99],{},"Agent 的安全、评估、调试与成本控制",[101,102,104],"h3",{"id":103},"从大模型调用到-rag","从大模型调用到 RAG",[15,106,107],{},"最开始学习的是如何调用大模型完成普通对话，然后逐步加入对话记忆和知识库能力。学习 RAG 时，我接触到了文本向量化、相似度检索和结果重排，也了解了 Chroma 这类向量数据库。",[15,109,110],{},"简单来说，RAG 解决的是“模型不知道我的资料”这个问题：先从资料中找到相关内容，再把这些内容交给模型，让模型基于资料回答问题。",[101,112,114],{"id":113},"让模型学会做事","让模型学会“做事”",[15,116,117,118,121],{},"学习 Agent 之后，我才开始真正理解“让模型做事”是什么意思。通过 ",[67,119,120],{"code":120},"@tool"," 等方式，可以把普通函数包装成模型能够调用的工具。模型先根据用户意图选择工具，工具执行后再把结果交回模型，最后生成回复。",[123,124,127,130,145],"folding",{":open":125,"title":126},"true","我目前对 Agent 的简化理解",[15,128,129],{},"Agent 不只是一个会聊天的模型，而是一个围绕目标不断执行任务的流程：",[131,132,133,136,139,142],"ol",{},[49,134,135],{},"理解用户的问题。",[49,137,138],{},"判断是否需要调用工具。",[49,140,141],{},"执行工具并观察结果。",[49,143,144],{},"根据结果决定下一步，或者直接回复用户。",[15,146,147],{},"这是我目前为了方便理解做的简化，实际项目中还需要考虑状态管理、异常处理、权限和循环终止等问题。",[101,149,151],{"id":150},"多模态与-langgraph","多模态与 LangGraph",[15,153,154],{},"之后我又学习了多模态大模型，尝试让模型解析图片和表格。相比普通文本对话，多模态让我更直观地感受到模型输入不只可以是文字，也可以是图片、文件等其他内容。",[15,156,157,158,70,160,162,163,165],{},"LangGraph 则更偏向工作流编排。通过 ",[67,159,89],{"code":89},[67,161,92],{"code":92}," 和 ",[67,164,95],{"code":95},"，可以把多个步骤组织成一个更加清晰、可控的流程，也比单纯依赖一段 Prompt 更容易调试。",[10,167,169],{"id":168},"从能跑到可用","从“能跑”到“可用”",[15,171,172],{},"刚开始学习时，只要模型能够返回结果、工具能够被调用，我就觉得功能已经完成了。但继续了解之后，我发现一个真正可用的 Agent 还需要解决很多工程问题。",[15,174,175,176,180],{},"首先是",[177,178,179],"strong",{},"输出稳定性","。如果下游程序需要读取模型结果，就不能只依赖一段自然语言，而是要通过结构化输出或 Function Calling，让模型按照约定的格式返回数据。",[15,182,183,184,187],{},"其次是",[177,185,186],{},"安全性和边界","。工具调用不能完全交给模型自由发挥，需要限制工具权限、参数范围和最大执行次数，还要防止 Prompt Injection 等恶意内容影响模型决策。",[15,189,190,191,194],{},"最后是",[177,192,193],{},"效果评估和成本控制","。回答是否正确、检索内容是否相关、工具调用是否成功，都需要通过日志、测试样例和运行结果进行判断。同时还要关注 Token 消耗、响应延迟和失败重试，不能只看“这次能不能跑通”。",[19,196,199],{"title":197,"type":198},"我目前的一个新认识","question",[15,200,201],{},"Agent 的难点不只是让模型变得更聪明，而是把模型放进一个可观察、可控制、可恢复的系统里。",[10,203,205],{"id":204},"python-和-java-的差异","Python 和 Java 的差异",[15,207,208],{},"在 Python 相关内容学习完成后，我又快速看了一遍 Spring AI。两边的 API 名称和具体写法不完全一样，但底层思路基本一致。",[210,211,213,220],"tab",{":tabs":212},"[\"Python 生态\",\"Java 生态\"]",[214,215,217],"template",{"v-slot:tab1":216},"",[15,218,219],{},"主要使用 LangChain 这类框架，开发示例比较多，验证想法的速度也比较快。",[214,221,222],{"v-slot:tab2":216},[15,223,224],{},"主要使用 Spring AI和LangChain4j，能够和熟悉的 Spring Boot、Java 后端项目结合起来。",[15,226,227],{},"对我来说，先用 Python 理解概念，再用 Java 了解如何接入现有后端项目，是比较适合自己的学习方式。",[10,229,230],{"id":230},"一个阶段性小项目",[15,232,233],{},"课程最后把前面的内容串了起来，完成了一个简单的多功能聊天 Bot，具备以下能力：",[43,235,236],{},[46,237,238,241,244,247],{},[49,239,240],{},"普通对话聊天",[49,242,243],{},"解析 CSV 表格",[49,245,246],{},"分析图片内容",[49,248,249],{},"根据用户意图选择不同功能",[15,251,252],{},"这个项目并不算复杂，但它让我第一次把模型调用、工具、知识库和多模态能力放到了一起。相比单独学习某一个知识点，完成一个能运行起来的小项目更容易发现真正的问题。",[10,254,256],{"id":255},"ai-也成了我的学习工具","AI 也成了我的学习工具",[15,258,259],{},"整个学习过程中，我一直在使用 ChatGPT 和 Codex。遇到看不懂的代码，我会先尝试自己理解，再让 AI 帮我解释；遇到报错时，也会把错误信息和上下文整理后交给 AI 分析。",[15,261,262],{},"不得不说，GPT plus也是很香的。",[10,264,265],{"id":265},"目前的想法",[15,267,268],{},"这次学习大约持续了二十多天。后面我准备开始整理项目，等大三之后继续尝试投递实习。",[15,270,271],{},"我感觉目前 Java 后端的就业竞争并不轻松，从零开始准备到能够找到实习，可能需要几个月甚至更长时间。因为学历和经验方面都还有不足，我投递时也遇到过不少被筛掉的情况。结合招聘信息，我也反复修改过简历，但目前效果还不算明显。",[15,273,274],{},"因此，智能应用开发对我来说暂时不是完全转行，而是作为 Java 后端之外的一条拓展路线。多学习一些方向，至少能让自己以后多一些选择。",[10,276,277],{"id":277},"写在最后",[15,279,280],{},"这篇文章只是一次学习记录，不代表我已经真正掌握了 AI Agent 开发。很多概念我仍然处在入门阶段，后面还需要通过更多项目去验证和巩固。",[15,282,283],{},"如果你也在学习相关内容，欢迎和我交流；如果文章中有理解不准确的地方，也欢迎指出。希望我们都能在不断实践中，把“听懂了”慢慢变成“做出来了”。",{"title":216,"searchDepth":285,"depth":285,"links":286},4,[287,289,290,296,297,298,299,300,301],{"id":12,"depth":288,"text":13},2,{"id":28,"depth":288,"text":29},{"id":38,"depth":288,"text":38,"children":291},[292,294,295],{"id":103,"depth":293,"text":104},3,{"id":113,"depth":293,"text":114},{"id":150,"depth":293,"text":151},{"id":168,"depth":288,"text":169},{"id":204,"depth":288,"text":205},{"id":230,"depth":288,"text":230},{"id":255,"depth":288,"text":256},{"id":265,"depth":288,"text":265},{"id":277,"depth":288,"text":277},[303],"技术","2026-08-06","记录最近学习 AI Agent 开发过程中的一些理解与思考。",false,"md","https:\u002F\u002Fimg.chiyu.cyou\u002Ffile\u002F1785949483751_spiderman.webp",{"slots":310},{},true,"\u002F2026\u002Fai-agent-learning-note",null,{"text":315,"minutes":316,"time":317,"words":318},"10 min read",9.565,573900,1913,1,{"title":5,"description":305},{"loc":312},"posts\u002F2026\u002Fai-agent-learning-note",[324,325,326],"AI","Agent","学习记录","tech","DI6buNcUzhFcrP3sbFulCaoouanwS0Y734XHn9pS2oA",[330,313],{"title":331,"path":332,"stem":333,"date":334,"type":327,"children":-1},"新华三 NX30 Pro 免拆机刷 ImmortalWrt 保姆级教程","\u002F2026\u002Fnx30pro","posts\u002F2026\u002Fnx30pro","2026-06-30 21:33:02",1785949771561]