Java 后端转 Agent 应用开发:50 天学习路线
更新时间:2026-08-20
适用对象:已有 Java 后端经验,希望在 50 天内形成 AI 应用开发求职能力。
最终目标:做出一个可运行、可演示、可写进简历的 Java Agent 项目,并开始投递相关岗位。
1. 先确定方向
目标岗位
- AI 应用开发工程师
- LLM 应用开发工程师
- Agent 应用开发工程师
- Java AI 应用开发工程师
- 智能客服、企业知识库、AI 办公应用开发工程师
核心定位
Java 后端工程师
+ 大模型调用
+ RAG 知识库
+ Tool Calling
+ Agent 工作流
+ 工程化部署不把目标定为大模型算法工程师,暂时不投入模型训练、强化学习和复杂数学推导。
50 天内不做的事
- 不系统学习前端
- 不学习模型训练和 PyTorch
- 不同时学习多个 Agent 框架
- 不做第二个项目
- 不追求复杂多 Agent 平台
- 不把时间花在偏门八股和框架源码上
2. 固定技术栈
Java + Spring Boot + Spring AI
PostgreSQL + pgvector + Redis
SSE + Docker
RAG + Tool Calling + Agent 工作流框架选择
第一选择:Spring AI。重点学习 ChatClient、Tool Calling、Vector Store、RAG、Memory 和 MCP。可先阅读 3.Spring AI ChatClient,再结合 Spring AI 官方文档 学习。
第二选择:LangChain4j。等第一个项目完成后再了解,不作为 50 天主线。LangChain4j 官方文档
Maven 配置
第 1 天创建项目后,使用 Maven 管理依赖。当前学习项目使用 Java 21、Spring Boot 4.1.1 与 Spring AI 2.0.1;本机 Maven 为 3.9.16,路径为:
/Volumes/data/develop/apache-maven-3.9.16项目未包含 Maven Wrapper 时,可在 IntelliJ IDEA 中将 Maven home 设置为上述路径,或直接使用本机 Maven 执行构建。不要把 API Key 写进 pom.xml 或提交到 Git。
基础 pom.xml 如下;后续学习 Redis、RAG 等能力时,再按对应章节增补依赖。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>4.1.1</version>
<relativePath/>
</parent>
<groupId>com.afyke</groupId>
<artifactId>ai-agent-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<java.version>21</java.version>
<spring-ai.version>2.0.1</spring-ai.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>${spring-ai.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-openai</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>常用命令:
mvn clean compile
mvn spring-boot:run如果后续同时引入 WebMVC 和 WebFlux,须明确项目的 Web 技术栈;入门阶段默认只保留 WebMVC。Maven 依赖更新后,在 IDEA Maven 面板重新加载项目。
岗位参考
公开招聘中已经出现“Java 后台 + AI 应用工程”的组合,常见要求包括 Java/Spring Boot、LLM、RAG、Agent、工具调用、日志和监控。BOSS 职位示例
一些 AI 应用岗位也明确接受 Java、Python 或 Go,并要求完成 LLM 应用后端、RAG、函数/工具调用、权限和监控等工作。来源标注为 BOSS 直聘的岗位
3. 每天固定安排
每天 8 小时:
4 小时:Agent 项目开发
2 小时:Java 八股和项目复盘
1 小时:AI 原理和官方文档
1 小时:整理笔记、模拟表达和复盘每天必须留下至少一种成果:
- 可运行代码
- 新增接口
- 测试用例
- 项目文档
- 面试题答案
- 项目演示截图
每天结束时记录:
今天完成了什么:
今天遇到什么问题:
问题是怎么解决的:
明天要完成什么:4. 50 天每日学习清单
第 1~10 天:模型调用基础
| 天数 | Agent 学习内容 | Java 复习内容 |
|---|---|---|
| 1 | 了解目标岗位,搭建 Spring Boot 项目 | Java 基础、集合 |
| 2 | LLM、Token、上下文窗口、模型参数 | HashMap、ConcurrentHashMap |
| 3 | 2.大模型 API、请求参数与响应结构 | 异常、泛型、反射 |
| 4 | 3.Spring AI ChatClient | Spring IOC、DI |
| 5 | Prompt、System Prompt、Prompt 模板 | Spring AOP、事务 |
| 6 | 结构化输出、JSON Schema | JVM 内存模型 |
| 7 | SSE 流式响应 | GC、类加载 |
| 8 | 8.会话 ID、聊天记录、Redis | 线程、线程池 |
| 9 | 超时、重试、限流、降级 | synchronized、Lock |
| 10 | 10.*完成可运行聊天接口 | Java 第一轮总结 |
第 10 天验收:能通过 Java 接口调用模型,实现流式对话,并保存会话记录。
第 11~20 天:Tool Calling
| 天数 | Agent 学习内容 | Java 复习内容 |
|---|---|---|
| 11 | 11.Function Calling、Tool Calling 原理 | MySQL 索引 |
| 12 | 12.用 Java 方法定义 Tool | MySQL 事务 |
| 13 | 13.工具参数设计和校验 | 隔离级别、锁 |
| 14 | 14.实现订单查询工具 | 慢查询、SQL 优化 |
| 15 | 15.实现物流查询工具 | Redis 数据结构 |
| 16 | 16.实现库存查询工具 | Redis 缓存问题 |
| 17 | 17.多个工具自动选择 | 缓存击穿、穿透与雪崩 |
| 18 | 18.工具异常、超时、重试 | Redis 分布式锁 |
| 19 | 权限校验和人工确认 | MQ 基础 |
| 20 | 完成 Tool Calling 小项目 | MQ 丢消息、重复消费 |
建议实现的工具:
queryOrderStatus:查询订单状态queryLogistics:查询物流信息queryInventory:查询库存createAfterSaleTicket:创建售后工单
第 20 天验收:模型能调用真实 Java 方法;参数错误、无权限和工具异常都能被正确处理;写操作必须经过人工确认。
第 21~30 天:RAG 知识库
| 天数 | Agent 学习内容 | Java 复习内容 |
|---|---|---|
| 21 | RAG 原理、Embedding | MQ 顺序消息 |
| 22 | PDF、Markdown 文档解析 | MQ 最终一致性 |
| 23 | 文本清洗和切片 | 分布式事务 |
| 24 | 向量数据库、pgvector | 分布式锁 |
| 25 | 文档向量化和入库 | 接口幂等 |
| 26 | 相似度检索 | 限流、熔断、降级 |
| 27 | Top-K、元数据过滤 | 微服务调用 |
| 28 | 把检索内容注入 Prompt | 服务雪崩 |
| 29 | 引用来源和防止幻觉 | 高并发接口设计 |
| 30 | 完成知识库问答 | Java 第二轮总结 |
RAG 链路:
上传文档
→ 文档解析
→ 清洗和切片
→ Embedding
→ 向量入库
→ 相似度检索
→ Prompt 组装
→ 返回答案和引用来源第 30 天验收:上传文档后,系统可以基于文档回答问题并返回引用来源;至少准备 20 条问题作为评测集。
第 31~40 天:Agent 工作流
| 天数 | Agent 学习内容 | Java 复习内容 |
|---|---|---|
| 31 | 工作流和自主 Agent 的区别 | JVM 综合题 |
| 32 | State 状态管理 | Spring 启动流程 |
| 33 | 意图识别和任务路由 | Spring Bean 生命周期 |
| 34 | RAG 和 Tool 组合 | 事务传播机制 |
| 35 | 多步骤任务执行 | MySQL 综合题 |
| 36 | 循环、最大步数、终止条件 | Redis 综合题 |
| 37 | 工具失败重试和降级 | MQ 综合题 |
| 38 | 会话记忆和中间状态 | 线程池实战 |
| 39 | 人工审批、审计日志 | 接口幂等实战 |
| 40 | 完成售后 Agent 主流程 | Java 第三轮总结 |
主流程:
识别用户意图
├─ 制度问题 → RAG 检索
├─ 订单问题 → 查询订单
├─ 物流问题 → 查询物流
└─ 售后问题 → 查询订单 → 生成工单 → 人工确认第 40 天验收:一个问题可以连续调用多个工具,能够保存中间状态,限制最大执行次数,工具失败后不会无限循环。
第 41~50 天:部署、面试和投递
| 天数 | Agent 学习内容 | Java 复习内容 |
|---|---|---|
| 41 | Docker、环境变量、配置管理 | JVM 高频题 |
| 42 | 日志、Trace、请求链路 | Spring 高频题 |
| 43 | Token 成本、延迟统计 | MySQL 高频题 |
| 44 | RAG 评测集、回答质量 | Redis 高频题 |
| 45 | 工具调用测试、异常测试 | MQ 高频题 |
| 46 | 项目架构图、流程图、README | 分布式综合题 |
| 47 | 准备 3 分钟项目介绍 | Java 项目问题 |
| 48 | 模拟 Agent 面试 | RAG、Tool Calling |
| 49 | 修改简历,开始投递 | 系统设计题 |
| 50 | 完整模拟面试和项目演示 | 查漏补缺 |
第 50 天验收:拥有完整项目、项目文档、简历、3 分钟项目介绍和一轮模拟面试记录,并开始投递岗位。
5. 唯一实战项目
项目名称
企业售后与知识库 Agent
项目目标
用户可以用自然语言:
- 查询企业制度
- 查询订单状态
- 查询物流信息
- 查询库存
- 创建售后工单
最小功能范围
知识库
- 支持 PDF 或 Markdown
- 文档清洗、切片和向量化
- 基于知识库回答问题
- 返回引用文档和段落
业务工具
- 订单查询
- 物流查询
- 库存查询
- 售后工单创建
安全控制
- 用户权限校验
- 文档权限过滤
- 写操作人工确认
- 工具调用审计
- 写操作幂等
- 敏感信息脱敏
项目技术栈
Java、Spring Boot、Spring AI
PostgreSQL、pgvector、Redis
SSE、Docker、JWT项目最终演示链路
用户提问
→ Agent 判断意图
→ RAG 检索或调用业务工具
→ 后端校验权限
→ 多步骤处理
→ 写操作人工确认
→ 返回结果并保存审计日志6. Java 八股复习范围
第一优先级
- JVM 内存模型、GC、类加载
- HashMap、ConcurrentHashMap
- 线程池、锁、并发工具
- Spring IOC、AOP、事务
- MySQL 索引、事务、隔离级别、慢查询
- Redis 数据结构、缓存击穿、穿透与雪崩
第二优先级
- MQ 可靠性、重复消费、消息丢失
- 分布式锁
- 接口幂等
- 限流、降级、熔断
- 微服务调用和服务治理
- 高并发接口设计
面试题回答格式
先说结论
↓
解释原理
↓
结合项目场景
↓
说明异常情况和解决方案不要求 50 天内背完整套八股,优先准备目标岗位最可能问到的内容。
7. Agent 面试重点
RAG
- 为什么使用 RAG,而不是直接把文档放进 Prompt?
- 文档应该如何切片?
- 召回结果不准确如何排查?
- 向量检索和关键词检索如何组合?
- 如何处理文档权限?
- 如何评测 RAG 效果?
Tool Calling
- Tool Calling 的完整流程是什么?
- 工具参数如何校验?
- 如何防止模型调用没有权限的工具?
- 工具超时和重复调用如何处理?
- 写操作为什么需要人工确认?
- 如何保证工具幂等?
Agent 工作流
- Agent 和普通聊天接口有什么区别?
- 什么时候使用固定工作流?
- 什么时候让模型自主选择工具?
- 如何限制循环和最大执行步数?
- 多 Agent 是否一定更好?
- 如何保存中间状态和恢复任务?
工程化
- 如何控制 Token 成本?
- 如何降低模型调用延迟?
- 如何记录一条完整的 Trace?
- 模型不可用时如何降级?
- 如何做内容安全和敏感数据脱敏?
8. 简历项目模板
企业售后与知识库 Agent
技术栈:Java、Spring Boot、Spring AI、PostgreSQL、pgvector、Redis、Docker
1. 基于 Spring AI 搭建企业知识库 Agent,完成 PDF/Markdown 文档解析、切片、Embedding、向量检索和引用返回。
2. 将订单查询、物流查询和售后工单封装为 Tool,实现模型根据用户意图调用 Java 业务接口。
3. 针对创建工单等写操作增加权限校验、幂等控制和人工确认机制,避免模型直接执行高风险操作。
4. 增加会话状态、Prompt 版本、工具调用日志和 RAG 评测集,支持分析回答质量、响应时间和 Token 成本。
5. 使用 Docker 完成服务和数据库部署,并通过 SSE 提供流式对话接口。数字必须使用真实测量结果,不要虚构准确率、性能提升或用户数量。
9. 最终检查清单
- 能在 Spring Boot 中调用大模型
- 能实现 SSE 流式响应
- 能把 Java 方法封装为 Tool
- 能处理参数、权限、超时和异常
- 能完成一个 RAG 知识库
- 理解 Embedding、切片、召回和重排
- 能实现多步骤 Agent 工作流
- 能实现人工审批和敏感操作拦截
- 能保存会话和中间状态
- 能记录模型、工具和检索调用链
- 能建立至少 20 条评测问题
- 能用 Docker 启动项目
- 能用 3 分钟讲清楚项目
- 能回答 Java 高频面试题
- 能回答 RAG、Tool Calling 和 Agent 面试题