学习 AI Agent 开发

学习 AI Agent 开发

记录最近学习 AI Agent 开发过程中的一些理解与思考。

从“找实习”开始的一次尝试

暑假回到家后,我开始思考能不能找一份实习。不过连续投递了几天,结果并不理想。看着还有一段比较完整的暑假时间,我不想把它荒废掉,于是决定接触一下最近比较热门的 AI Agent 智能应用开发。

这不是一篇教程

这篇文章只是我的阶段性学习记录,主要分享学习路线、一些初步理解和过程中遇到的想法。如果其中有不准确的地方,欢迎指出。

先补了一遍 Python

在正式学习 AI 之前,我先花了三四天快速过了一遍 Python。因为之前已经学习过 Java,所以 Python 的基础语法并没有花太长时间就能看懂,主要参考了廖雪峰老师的教程。

这一步对我来说更像是熟悉工具。真正开始学习之后,我发现 Python 生态里的很多 AI 工具都比较成熟,先把基本语法和常用写法过一遍,后面阅读示例代码会轻松很多。

我接触到的学习内容

这段时间的学习内容比较多,刚开始接触时也有些稀里糊涂。好在课程会围绕一个个小项目展开,所以我没有只停留在概念层面。

  • Transformer 架构和大模型应用的基本原理
  • Token、上下文窗口和模型推理参数
  • Prompt 工程与大模型 API 调用
  • 结构化输出、Function Calling 与工具调用
  • 对话记忆、RAG 知识库和向量检索
  • embeddingtop-krewritererank 等概念
  • LangChain、Agent、工具调用和多模态能力
  • LangGraph 中的 nodeedgestate 与工作流编排
  • Agent 的安全、评估、调试与成本控制

从大模型调用到 RAG

最开始学习的是如何调用大模型完成普通对话,然后逐步加入对话记忆和知识库能力。学习 RAG 时,我接触到了文本向量化、相似度检索和结果重排,也了解了 Chroma 这类向量数据库。

简单来说,RAG 解决的是“模型不知道我的资料”这个问题:先从资料中找到相关内容,再把这些内容交给模型,让模型基于资料回答问题。

让模型学会“做事”

学习 Agent 之后,我才开始真正理解“让模型做事”是什么意思。通过 @tool 等方式,可以把普通函数包装成模型能够调用的工具。模型先根据用户意图选择工具,工具执行后再把结果交回模型,最后生成回复。

我目前对 Agent 的简化理解

Agent 不只是一个会聊天的模型,而是一个围绕目标不断执行任务的流程:

  1. 理解用户的问题。
  2. 判断是否需要调用工具。
  3. 执行工具并观察结果。
  4. 根据结果决定下一步,或者直接回复用户。

这是我目前为了方便理解做的简化,实际项目中还需要考虑状态管理、异常处理、权限和循环终止等问题。

多模态与 LangGraph

之后我又学习了多模态大模型,尝试让模型解析图片和表格。相比普通文本对话,多模态让我更直观地感受到模型输入不只可以是文字,也可以是图片、文件等其他内容。

LangGraph 则更偏向工作流编排。通过 nodeedgestate,可以把多个步骤组织成一个更加清晰、可控的流程,也比单纯依赖一段 Prompt 更容易调试。

从“能跑”到“可用”

刚开始学习时,只要模型能够返回结果、工具能够被调用,我就觉得功能已经完成了。但继续了解之后,我发现一个真正可用的 Agent 还需要解决很多工程问题。

首先是输出稳定性。如果下游程序需要读取模型结果,就不能只依赖一段自然语言,而是要通过结构化输出或 Function Calling,让模型按照约定的格式返回数据。

其次是安全性和边界。工具调用不能完全交给模型自由发挥,需要限制工具权限、参数范围和最大执行次数,还要防止 Prompt Injection 等恶意内容影响模型决策。

最后是效果评估和成本控制。回答是否正确、检索内容是否相关、工具调用是否成功,都需要通过日志、测试样例和运行结果进行判断。同时还要关注 Token 消耗、响应延迟和失败重试,不能只看“这次能不能跑通”。

我目前的一个新认识

Agent 的难点不只是让模型变得更聪明,而是把模型放进一个可观察、可控制、可恢复的系统里。

Python 和 Java 的差异

在 Python 相关内容学习完成后,我又快速看了一遍 Spring AI。两边的 API 名称和具体写法不完全一样,但底层思路基本一致。

主要使用 LangChain 这类框架,开发示例比较多,验证想法的速度也比较快。

对我来说,先用 Python 理解概念,再用 Java 了解如何接入现有后端项目,是比较适合自己的学习方式。

一个阶段性小项目

课程最后把前面的内容串了起来,完成了一个简单的多功能聊天 Bot,具备以下能力:

  • 普通对话聊天
  • 解析 CSV 表格
  • 分析图片内容
  • 根据用户意图选择不同功能

这个项目并不算复杂,但它让我第一次把模型调用、工具、知识库和多模态能力放到了一起。相比单独学习某一个知识点,完成一个能运行起来的小项目更容易发现真正的问题。

AI 也成了我的学习工具

整个学习过程中,我一直在使用 ChatGPT 和 Codex。遇到看不懂的代码,我会先尝试自己理解,再让 AI 帮我解释;遇到报错时,也会把错误信息和上下文整理后交给 AI 分析。

不得不说,GPT plus也是很香的。

目前的想法

这次学习大约持续了二十多天。后面我准备开始整理项目,等大三之后继续尝试投递实习。

我感觉目前 Java 后端的就业竞争并不轻松,从零开始准备到能够找到实习,可能需要几个月甚至更长时间。因为学历和经验方面都还有不足,我投递时也遇到过不少被筛掉的情况。结合招聘信息,我也反复修改过简历,但目前效果还不算明显。

因此,智能应用开发对我来说暂时不是完全转行,而是作为 Java 后端之外的一条拓展路线。多学习一些方向,至少能让自己以后多一些选择。

写在最后

这篇文章只是一次学习记录,不代表我已经真正掌握了 AI Agent 开发。很多概念我仍然处在入门阶段,后面还需要通过更多项目去验证和巩固。

如果你也在学习相关内容,欢迎和我交流;如果文章中有理解不准确的地方,也欢迎指出。希望我们都能在不断实践中,把“听懂了”慢慢变成“做出来了”。

新故事即将发生
新华三 NX30 Pro 免拆机刷 ImmortalWrt 保姆级教程

评论区

评论加载中...