云计算百科
云计算领域专业知识百科平台

幻想简历!博主本人期望的 AI Agent 全栈简历:Java + Python + Vue3 跨语言实战,代码已开源!

幻想简历!博主本人期望的 AI Agent 全栈简历:Java + Python + Vue3 跨语言实战,代码已开源!

AI Agent 面试八股文100问,点击我跳转!!!

大家好,我是 CSDN 上累计浏览量百万的技术博主 👋 过去一年,我从持续输出 Java/前端/AI 技术文章,逐步转向 工程化落地 AI Agent 系统 的实战开发。 如今,我将自己打磨数月的 Agent 实习生简历 完整公开—— 不仅包含 跨语言全栈技术栈(Java + Python + Vue3),还附带 两个已开源的生产级项目(金融信贷平台 + AI 刷题系统),代码、文档、部署方案一应俱全。

这篇简历不是“纸上谈兵”,而是 从 0 到 1 搭建、上线、优化的真实产物。 现诚邀各位同行、前辈、HR 大佬们 狠狠“拷打”: 👉 技术架构是否合理? 👉 项目亮点是否突出? 👉 还有哪些可以优化的空间?

你的每一条建议,对我都极其珍贵! 同时也欢迎内推或交流机会 🙏(联系我的话直接评论,我每天都会看)

GitHub 开源地址已附在每个项目下,欢迎 Star & Fork!

资源类型链接
GitHub 主页 github.com/CelestialVisionary
金融项目 wwCredit – GitHub
助学项目 studyforge – GitHub

求职意向

期望职位:Agent实习生

教育背景

  • 广州天河区的破二本 👋

👉2024-09至2028-09(记得我的毕业时间,目前我在写这篇博客的时候我还没有毕业) 🙏

  • 计算机学院·计算机科学与技术专业

我高二的时候chat-GPT横空出世,现在2026年Agent爆火,我打算抓住AI时代风口,又比较爱玩而弱化学历提升,所以目前学历比较差

尽管学校平台有限,但我始终相信:在 AI 时代,工程能力与项目成果才是最好的学历。 因此,我将大量时间投入实战——通过开源项目、技术博客、全栈开发不断验证和提升自己。 过去一年,我的 GitHub 提交超过大部分同龄人,CSDN 原创文章阅读量破百万,两个 Agent 项目都是自己手把手培养的。 我用代码和文档,为自己重新定义了“简历”。

这是跳转链接,如果觉得在线简历太长就跳转后续内容:

  • 幻想简历!博主本人期望的 AI Agent 全栈简历:Java + Python + Vue3 跨语言实战,代码已开源!
    • 求职意向
    • 教育背景
    • 牛客网在线简历
    • 自我评价
    • 个人技能
      • 一、AI Agent 核心技术(Python 栈)
      • 二、Java 后端核心技术(工程化底座,业务支撑)
      • 三、TypeScript 前端技术(交互界面,用户入口)
      • 四、中间件与数据存储
    • 项目经历
      • 威武金融信贷管理微服务平台 · Agent全栈开发
        • 技术栈:
        • 项目描述:
        • 主要工作:
      • AI 助学刷题系统 · Agent全栈开发
        • 技术栈:
        • 项目描述:
        • 主要工作:
    • 🙌 最后的话

牛客网在线简历

在这里插入图片描述


自我评价

  • 专注跨语言全栈 AI Agent 系统设计与落地,精通「Java 后端工程化 + Python AI Agent 开发 + TypeScript 前端开发」的完整技术栈,具备从 0 到 1 搭建生产级多语言 Agent 系统的实战能力;

#mermaid-svg-jikojr9cofLnsuWr{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-jikojr9cofLnsuWr .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-jikojr9cofLnsuWr .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-jikojr9cofLnsuWr .error-icon{fill:#552222;}#mermaid-svg-jikojr9cofLnsuWr .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-jikojr9cofLnsuWr .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-jikojr9cofLnsuWr .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-jikojr9cofLnsuWr .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-jikojr9cofLnsuWr .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-jikojr9cofLnsuWr .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-jikojr9cofLnsuWr .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-jikojr9cofLnsuWr .marker{fill:#333333;stroke:#333333;}#mermaid-svg-jikojr9cofLnsuWr .marker.cross{stroke:#333333;}#mermaid-svg-jikojr9cofLnsuWr svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-jikojr9cofLnsuWr p{margin:0;}#mermaid-svg-jikojr9cofLnsuWr .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-jikojr9cofLnsuWr .cluster-label text{fill:#333;}#mermaid-svg-jikojr9cofLnsuWr .cluster-label span{color:#333;}#mermaid-svg-jikojr9cofLnsuWr .cluster-label span p{background-color:transparent;}#mermaid-svg-jikojr9cofLnsuWr .label text,#mermaid-svg-jikojr9cofLnsuWr span{fill:#333;color:#333;}#mermaid-svg-jikojr9cofLnsuWr .node rect,#mermaid-svg-jikojr9cofLnsuWr .node circle,#mermaid-svg-jikojr9cofLnsuWr .node ellipse,#mermaid-svg-jikojr9cofLnsuWr .node polygon,#mermaid-svg-jikojr9cofLnsuWr .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-jikojr9cofLnsuWr .rough-node .label text,#mermaid-svg-jikojr9cofLnsuWr .node .label text,#mermaid-svg-jikojr9cofLnsuWr .image-shape .label,#mermaid-svg-jikojr9cofLnsuWr .icon-shape .label{text-anchor:middle;}#mermaid-svg-jikojr9cofLnsuWr .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-jikojr9cofLnsuWr .rough-node .label,#mermaid-svg-jikojr9cofLnsuWr .node .label,#mermaid-svg-jikojr9cofLnsuWr .image-shape .label,#mermaid-svg-jikojr9cofLnsuWr .icon-shape .label{text-align:center;}#mermaid-svg-jikojr9cofLnsuWr .node.clickable{cursor:pointer;}#mermaid-svg-jikojr9cofLnsuWr .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-jikojr9cofLnsuWr .arrowheadPath{fill:#333333;}#mermaid-svg-jikojr9cofLnsuWr .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-jikojr9cofLnsuWr .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-jikojr9cofLnsuWr .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-jikojr9cofLnsuWr .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-jikojr9cofLnsuWr .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-jikojr9cofLnsuWr .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-jikojr9cofLnsuWr .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-jikojr9cofLnsuWr .cluster text{fill:#333;}#mermaid-svg-jikojr9cofLnsuWr .cluster span{color:#333;}#mermaid-svg-jikojr9cofLnsuWr div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-jikojr9cofLnsuWr .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-jikojr9cofLnsuWr rect.text{fill:none;stroke-width:0;}#mermaid-svg-jikojr9cofLnsuWr .icon-shape,#mermaid-svg-jikojr9cofLnsuWr .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-jikojr9cofLnsuWr .icon-shape p,#mermaid-svg-jikojr9cofLnsuWr .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-jikojr9cofLnsuWr .icon-shape rect,#mermaid-svg-jikojr9cofLnsuWr .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-jikojr9cofLnsuWr .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-jikojr9cofLnsuWr .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-jikojr9cofLnsuWr :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

前端交互层Vue3 + TypeScript + Pinia

后端业务层Java 21 + Spring Boot 3 + 微服务

AI 智能层Python + LangChain + LangGraph + RAG

向量库Milvus/Chroma

数据库MySQL/Redis

  • 运营百万浏览量 CSDN 技术账号,持续输出跨语言 Agent 开发、Java 后端架构、TypeScript 前端工程化等技术干货;GitHub 维护多套开源跨语言 Agent+Web 全栈项目,编码规范、文档完善,具备极强的工程化思维与项目交付能力; (我是Steam的Watt出了才加速进github的,没翻墙)
  • 精通 Spring 生态、微服务等 Java 后端技术,精通 LangChain、RAG 与 Python Agent 生态,精通 Vue 3+TypeScript 前端开发,可独立完成「前端交互 — 后端业务 — Agent 能能」的全链路开发与跨语言协作架构设计; 我知道精通这个词相当逆天,但是我希望我能做到,毕竟现在有vibe coding的加持,能达到以前精通这些技术栈的工程师的水平🙇‍♂️
能力维度Java 后端Python AgentVue3 前端
核心框架 Spring Boot 3, MyBatis-Plus LangChain, LangGraph, FastAPI Vue3, Pinia, Vite
工程化重点 微服务治理、事务管理、接口规范 工作流编排、RAG、工具调用 类型安全、状态管理、性能优化
典型产出 86+ 金融级 RESTful API 7 步 ReAct 智能体工作流 32+ 页面 + 56+ 业务组件
协作方式 提供 gRPC/REST 接口给前端 & Agent 通过 FastAPI 被 Java 调用 通过 Axios 调用 Java 后端
  • 持续深耕技术,日常通过 LeetCode 算法刷题、开源项目迭代夯实技术功底,具备极强的快速学习能力与复杂问题拆解能力。

  • 还有牛客网和关注了AI的抖音号日常看一看,最近openclaw和网易有道的LobsterAI横空出世,我也有在尝试,但感觉都是调个Api Key体验别人的产品,不得劲。


个人技能

一、AI Agent 核心技术(Python 栈)

  • 智能体框架:精通 LangChain、LangGraph 等 Python Agent 开发框架,熟练掌握 ReAct、CoT、Few-shot 等主流工作流,具备单智能体编排、多智能体协作的完整设计与开发能力;
  • 核心技术栈:熟练掌握 RAG 检索增强生成、Function Call 工具调用、Prompt 工程、会话记忆管理、向量检索(Chroma/Milvus)等 Agent 核心技术,可基于 Python 生态快速落地复杂智能体逻辑;
  • 服务化封装:可基于 FastAPI/Flask 将 Python Agent 能力封装为标准化 RESTful/gRPC 接口,供 Java 后端调用,实现 AI 能力与业务系统的解耦。

#mermaid-svg-Qy9NMG52Lowf9u1K{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-Qy9NMG52Lowf9u1K .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-Qy9NMG52Lowf9u1K .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-Qy9NMG52Lowf9u1K .error-icon{fill:#552222;}#mermaid-svg-Qy9NMG52Lowf9u1K .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Qy9NMG52Lowf9u1K .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-Qy9NMG52Lowf9u1K .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Qy9NMG52Lowf9u1K .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Qy9NMG52Lowf9u1K .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-Qy9NMG52Lowf9u1K .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Qy9NMG52Lowf9u1K .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Qy9NMG52Lowf9u1K .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Qy9NMG52Lowf9u1K .marker.cross{stroke:#333333;}#mermaid-svg-Qy9NMG52Lowf9u1K svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Qy9NMG52Lowf9u1K p{margin:0;}#mermaid-svg-Qy9NMG52Lowf9u1K .mermaid-main-font{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-Qy9NMG52Lowf9u1K .exclude-range{fill:#eeeeee;}#mermaid-svg-Qy9NMG52Lowf9u1K .section{stroke:none;opacity:0.2;}#mermaid-svg-Qy9NMG52Lowf9u1K .section0{fill:rgba(102, 102, 255, 0.49);}#mermaid-svg-Qy9NMG52Lowf9u1K .section2{fill:#fff400;}#mermaid-svg-Qy9NMG52Lowf9u1K .section1,#mermaid-svg-Qy9NMG52Lowf9u1K .section3{fill:white;opacity:0.2;}#mermaid-svg-Qy9NMG52Lowf9u1K .sectionTitle0{fill:#333;}#mermaid-svg-Qy9NMG52Lowf9u1K .sectionTitle1{fill:#333;}#mermaid-svg-Qy9NMG52Lowf9u1K .sectionTitle2{fill:#333;}#mermaid-svg-Qy9NMG52Lowf9u1K .sectionTitle3{fill:#333;}#mermaid-svg-Qy9NMG52Lowf9u1K .sectionTitle{text-anchor:start;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-Qy9NMG52Lowf9u1K .grid .tick{stroke:lightgrey;opacity:0.8;shape-rendering:crispEdges;}#mermaid-svg-Qy9NMG52Lowf9u1K .grid .tick text{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;fill:#333;}#mermaid-svg-Qy9NMG52Lowf9u1K .grid path{stroke-width:0;}#mermaid-svg-Qy9NMG52Lowf9u1K .today{fill:none;stroke:red;stroke-width:2px;}#mermaid-svg-Qy9NMG52Lowf9u1K .task{stroke-width:2;}#mermaid-svg-Qy9NMG52Lowf9u1K .taskText{text-anchor:middle;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-Qy9NMG52Lowf9u1K .taskTextOutsideRight{fill:black;text-anchor:start;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-Qy9NMG52Lowf9u1K .taskTextOutsideLeft{fill:black;text-anchor:end;}#mermaid-svg-Qy9NMG52Lowf9u1K .task.clickable{cursor:pointer;}#mermaid-svg-Qy9NMG52Lowf9u1K .taskText.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-Qy9NMG52Lowf9u1K .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-Qy9NMG52Lowf9u1K .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-Qy9NMG52Lowf9u1K .taskText0,#mermaid-svg-Qy9NMG52Lowf9u1K .taskText1,#mermaid-svg-Qy9NMG52Lowf9u1K .taskText2,#mermaid-svg-Qy9NMG52Lowf9u1K .taskText3{fill:white;}#mermaid-svg-Qy9NMG52Lowf9u1K .task0,#mermaid-svg-Qy9NMG52Lowf9u1K .task1,#mermaid-svg-Qy9NMG52Lowf9u1K .task2,#mermaid-svg-Qy9NMG52Lowf9u1K .task3{fill:#8a90dd;stroke:#534fbc;}#mermaid-svg-Qy9NMG52Lowf9u1K .taskTextOutside0,#mermaid-svg-Qy9NMG52Lowf9u1K .taskTextOutside2{fill:black;}#mermaid-svg-Qy9NMG52Lowf9u1K .taskTextOutside1,#mermaid-svg-Qy9NMG52Lowf9u1K .taskTextOutside3{fill:black;}#mermaid-svg-Qy9NMG52Lowf9u1K .active0,#mermaid-svg-Qy9NMG52Lowf9u1K .active1,#mermaid-svg-Qy9NMG52Lowf9u1K .active2,#mermaid-svg-Qy9NMG52Lowf9u1K .active3{fill:#bfc7ff;stroke:#534fbc;}#mermaid-svg-Qy9NMG52Lowf9u1K .activeText0,#mermaid-svg-Qy9NMG52Lowf9u1K .activeText1,#mermaid-svg-Qy9NMG52Lowf9u1K .activeText2,#mermaid-svg-Qy9NMG52Lowf9u1K .activeText3{fill:black!important;}#mermaid-svg-Qy9NMG52Lowf9u1K .done0,#mermaid-svg-Qy9NMG52Lowf9u1K .done1,#mermaid-svg-Qy9NMG52Lowf9u1K .done2,#mermaid-svg-Qy9NMG52Lowf9u1K .done3{stroke:grey;fill:lightgrey;stroke-width:2;}#mermaid-svg-Qy9NMG52Lowf9u1K .doneText0,#mermaid-svg-Qy9NMG52Lowf9u1K .doneText1,#mermaid-svg-Qy9NMG52Lowf9u1K .doneText2,#mermaid-svg-Qy9NMG52Lowf9u1K .doneText3{fill:black!important;}#mermaid-svg-Qy9NMG52Lowf9u1K .crit0,#mermaid-svg-Qy9NMG52Lowf9u1K .crit1,#mermaid-svg-Qy9NMG52Lowf9u1K .crit2,#mermaid-svg-Qy9NMG52Lowf9u1K .crit3{stroke:#ff8888;fill:red;stroke-width:2;}#mermaid-svg-Qy9NMG52Lowf9u1K .activeCrit0,#mermaid-svg-Qy9NMG52Lowf9u1K .activeCrit1,#mermaid-svg-Qy9NMG52Lowf9u1K .activeCrit2,#mermaid-svg-Qy9NMG52Lowf9u1K .activeCrit3{stroke:#ff8888;fill:#bfc7ff;stroke-width:2;}#mermaid-svg-Qy9NMG52Lowf9u1K .doneCrit0,#mermaid-svg-Qy9NMG52Lowf9u1K .doneCrit1,#mermaid-svg-Qy9NMG52Lowf9u1K .doneCrit2,#mermaid-svg-Qy9NMG52Lowf9u1K .doneCrit3{stroke:#ff8888;fill:lightgrey;stroke-width:2;cursor:pointer;shape-rendering:crispEdges;}#mermaid-svg-Qy9NMG52Lowf9u1K .milestone{transform:rotate(45deg) scale(0.8,0.8);}#mermaid-svg-Qy9NMG52Lowf9u1K .milestoneText{font-style:italic;}#mermaid-svg-Qy9NMG52Lowf9u1K .doneCritText0,#mermaid-svg-Qy9NMG52Lowf9u1K .doneCritText1,#mermaid-svg-Qy9NMG52Lowf9u1K .doneCritText2,#mermaid-svg-Qy9NMG52Lowf9u1K .doneCritText3{fill:black!important;}#mermaid-svg-Qy9NMG52Lowf9u1K .vert{stroke:navy;}#mermaid-svg-Qy9NMG52Lowf9u1K .vertText{font-size:15px;text-anchor:middle;fill:navy!important;}#mermaid-svg-Qy9NMG52Lowf9u1K .activeCritText0,#mermaid-svg-Qy9NMG52Lowf9u1K .activeCritText1,#mermaid-svg-Qy9NMG52Lowf9u1K .activeCritText2,#mermaid-svg-Qy9NMG52Lowf9u1K .activeCritText3{fill:black!important;}#mermaid-svg-Qy9NMG52Lowf9u1K .titleText{text-anchor:middle;font-size:18px;fill:#333;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-Qy9NMG52Lowf9u1K :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

2024年09月

2024年10月

2024年11月

2024年12月

2025年01月

2025年02月

2025年03月

2025年04月

2025年05月

2025年06月

Spring Boot 基础

微服务与中间件

Vue3 + TypeScript

Pinia + Vite 工程化

LangChain 入门

工程化与部署实践

LangGraph 工作流

全栈联调实践

RAG 与工具调用

Java 后端工程化

Python AI Agent

Vue3 前端工程化

2024–2026 跨语言全栈能力成长路径

二、Java 后端核心技术(工程化底座,业务支撑)

  • 基础与框架:熟练掌握 Java 基础类库、IO、集合、并发编程、理解 JVM 内存模型与 GC 调优;精通 Spring、SpringBoot、SpringCloud、MyBatis/Plus 等主流框架,深入理解 Spring 底层原理;
  • 架构设计:熟悉微服务架构(Nacos、OpenFeign、Gateway、Sentinel),可完成多模块后端系统的拆分与设计;熟练使用 Redis、RabbitMQ 等中间件,实现分布式缓存、异步任务调度与系统解耦;
  • 工程化能力:具备接口标准仕设计、权限管控、日志管理、单元测试、容器化部署的完整后端工程化能力,保障系统的高性能、稳定性与可维护性。

#mermaid-svg-KAQ7iZMhl27nYuqr{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-KAQ7iZMhl27nYuqr .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-KAQ7iZMhl27nYuqr .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-KAQ7iZMhl27nYuqr .error-icon{fill:#552222;}#mermaid-svg-KAQ7iZMhl27nYuqr .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-KAQ7iZMhl27nYuqr .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-KAQ7iZMhl27nYuqr .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-KAQ7iZMhl27nYuqr .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-KAQ7iZMhl27nYuqr .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-KAQ7iZMhl27nYuqr .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-KAQ7iZMhl27nYuqr .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-KAQ7iZMhl27nYuqr .marker{fill:#333333;stroke:#333333;}#mermaid-svg-KAQ7iZMhl27nYuqr .marker.cross{stroke:#333333;}#mermaid-svg-KAQ7iZMhl27nYuqr svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-KAQ7iZMhl27nYuqr p{margin:0;}#mermaid-svg-KAQ7iZMhl27nYuqr .pieCircle{stroke:#000000;stroke-width:2px;opacity:0.7;}#mermaid-svg-KAQ7iZMhl27nYuqr .pieOuterCircle{stroke:#000000;stroke-width:1px;fill:none;}#mermaid-svg-KAQ7iZMhl27nYuqr .pieTitleText{text-anchor:middle;font-size:25px;fill:#000000;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-KAQ7iZMhl27nYuqr .slice{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;fill:#000000;font-size:17px;}#mermaid-svg-KAQ7iZMhl27nYuqr .legend text{fill:#000000;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:17px;}#mermaid-svg-KAQ7iZMhl27nYuqr :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

40%

35%

20%

5%

技术栈投入占比(2025–2026)

Java 后端工程化

Python AI Agent 开发

Vue3 前端工程化

DevOps – 部署 – 文档

三、TypeScript 前端技术(交互界面,用户入口)

  • 前端框架:精通 Vue3、TypeScript、Element Plus/Ant Design Vue 等前端技术栈,熟练掌握 Vue3 组合式 API、Pinia 状态管理、Vue Router 路由管理;
  • 工程化:熟练使用 Vite 构建工具,具备 TypeScript 类型安全开发、ESLint 代码规范、前端性能优化的工程化能力;
  • 全栈对接:可基于 Axios/Fetch 完成与 Java 后端 API 的无缝对接,实现会话管理、数据可视化、Agent 配置等复杂交互功能。

四、中间件与数据存储

  • 数据库:MySQL(InnoDB 引擎、索引优化、分库分表)、Redis(分布式锁、多级缓存)、Milvus/Chroma(向量数据库);
  • 消息队列:RabbitMQ(异步任务、消息解耦);
  • 开发工具:Maven/Gradle、Git、Docker、Docker Compose、Postman、Junit5。

软件测试和运维相关的技术栈,我打算根据人才培养方案里的走,等大三大四那会学校教的时候,我再进行专项突破!


项目经历

两大项目核心指标对比:

指标威武金融信贷平台AI 助学刷题系统
技术架构 Java 微服务 + Python Agent Java 单体 + 独立 AI Module
AI 准确率提升 61% → 88%(金融问答) 85%(题目解析)
性能优化 查询耗时 ↓86%,响应效率 ↑85% 接口响应速度 ↑30%
用户规模 内部测试(金融合规要求) 200+ 学生
部署方式 Docker + K8s(规划中) docker-compose 一键部署

威武金融信贷管理微服务平台 · Agent全栈开发

项目地址:https://github.com/CelestialVisionary/wwCredit

技术栈:

Java 21、Spring Boot 3、Spring Cloud Alibaba、MyBatis-Plus、MySQL、Redis、Nacos、Vue3、TypeScript、Vue Router、Pinia、Python、LangChain、LangGraph、FastAPI、JWT、Maven、RESTful API

项目描述:

主要开发的普惠金融背景全链路信贷管理微服务平台,覆盖「端用户借款 / 流程全生命周期、B 端管理端风险审批 / 运营管理全流程。采用 Java 微服务与工程底座、Python AI Agent 为智能核心、TypeScript 前端为交互入口的跨语言全栈架构,支撑借款配置、用户积分、风控审批、公告管理、智能金融助手等核心功能,适配多端交互并满足金融级接口安全与数据合规要求。

#mermaid-svg-cyf4XBWk7d2VyStd{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-cyf4XBWk7d2VyStd .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-cyf4XBWk7d2VyStd .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-cyf4XBWk7d2VyStd .error-icon{fill:#552222;}#mermaid-svg-cyf4XBWk7d2VyStd .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-cyf4XBWk7d2VyStd .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-cyf4XBWk7d2VyStd .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-cyf4XBWk7d2VyStd .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-cyf4XBWk7d2VyStd .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-cyf4XBWk7d2VyStd .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-cyf4XBWk7d2VyStd .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-cyf4XBWk7d2VyStd .marker{fill:#333333;stroke:#333333;}#mermaid-svg-cyf4XBWk7d2VyStd .marker.cross{stroke:#333333;}#mermaid-svg-cyf4XBWk7d2VyStd svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-cyf4XBWk7d2VyStd p{margin:0;}#mermaid-svg-cyf4XBWk7d2VyStd .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-cyf4XBWk7d2VyStd .cluster-label text{fill:#333;}#mermaid-svg-cyf4XBWk7d2VyStd .cluster-label span{color:#333;}#mermaid-svg-cyf4XBWk7d2VyStd .cluster-label span p{background-color:transparent;}#mermaid-svg-cyf4XBWk7d2VyStd .label text,#mermaid-svg-cyf4XBWk7d2VyStd span{fill:#333;color:#333;}#mermaid-svg-cyf4XBWk7d2VyStd .node rect,#mermaid-svg-cyf4XBWk7d2VyStd .node circle,#mermaid-svg-cyf4XBWk7d2VyStd .node ellipse,#mermaid-svg-cyf4XBWk7d2VyStd .node polygon,#mermaid-svg-cyf4XBWk7d2VyStd .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-cyf4XBWk7d2VyStd .rough-node .label text,#mermaid-svg-cyf4XBWk7d2VyStd .node .label text,#mermaid-svg-cyf4XBWk7d2VyStd .image-shape .label,#mermaid-svg-cyf4XBWk7d2VyStd .icon-shape .label{text-anchor:middle;}#mermaid-svg-cyf4XBWk7d2VyStd .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-cyf4XBWk7d2VyStd .rough-node .label,#mermaid-svg-cyf4XBWk7d2VyStd .node .label,#mermaid-svg-cyf4XBWk7d2VyStd .image-shape .label,#mermaid-svg-cyf4XBWk7d2VyStd .icon-shape .label{text-align:center;}#mermaid-svg-cyf4XBWk7d2VyStd .node.clickable{cursor:pointer;}#mermaid-svg-cyf4XBWk7d2VyStd .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-cyf4XBWk7d2VyStd .arrowheadPath{fill:#333333;}#mermaid-svg-cyf4XBWk7d2VyStd .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-cyf4XBWk7d2VyStd .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-cyf4XBWk7d2VyStd .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-cyf4XBWk7d2VyStd .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-cyf4XBWk7d2VyStd .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-cyf4XBWk7d2VyStd .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-cyf4XBWk7d2VyStd .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-cyf4XBWk7d2VyStd .cluster text{fill:#333;}#mermaid-svg-cyf4XBWk7d2VyStd .cluster span{color:#333;}#mermaid-svg-cyf4XBWk7d2VyStd div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-cyf4XBWk7d2VyStd .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-cyf4XBWk7d2VyStd rect.text{fill:none;stroke-width:0;}#mermaid-svg-cyf4XBWk7d2VyStd .icon-shape,#mermaid-svg-cyf4XBWk7d2VyStd .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-cyf4XBWk7d2VyStd .icon-shape p,#mermaid-svg-cyf4XBWk7d2VyStd .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-cyf4XBWk7d2VyStd .icon-shape rect,#mermaid-svg-cyf4XBWk7d2VyStd .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-cyf4XBWk7d2VyStd .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-cyf4XBWk7d2VyStd .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-cyf4XBWk7d2VyStd :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

AI Agent 服务

Java 微服务

用户端

HTTP/JSON

gRPC/REST

Vue3 前端

Spring Cloud Gateway

User Service

Loan Service

Risk Service

MySQL + Redis

FastAPI Agent

LangGraph 工作流

RAG + Milvus

Function Tools

主要工作:
  • 后端开发:基于 Spring Boot 3+MyBatis-Plus 实现用户管理、积分等级、借款管理、出借管理等核心业务模块的 CRUD 操作,开发用户登录记录 TOP50 高频查询接口,通过 QueryWrapper 技术动态查询条件,优化索引将接口响应效率提升 85%;手动注册 BorrowInfoMapper Bean,优化 MyBatis 映射配置,手写借款信息多表关联查询 SQL,替代循环子查询方案查询耗时降低 86%;封装 RequestHelper 通用工具类实现请求参数标准化转换,新增 BatchSqlGrammarException 等 11 类业务异常全局统一处理,提升接口容错性与标准化程度;基于 Spring Cloud Alibaba 完成微服务架构拆分,通过 Nacos 实现服务注册发现与配置中心管理,Gateway 网关实现统一路由与流量控制,构建完整微服务治理体系;

// Java 后端调用 Python Agent 的安全封装(Spring Boot)
@Service
public class AiAgentService {

@Value("${agent.service.url:http://ai-agent:8000/query}")
private String agentUrl;

private final RestTemplate restTemplate;

public AiAgentService(RestTemplateBuilder builder) {
this.restTemplate = builder.setConnectTimeout(Duration.ofSeconds(2))
.setReadTimeout(Duration.ofSeconds(5))
.build();
}

public String queryFinancialAssistant(String question, Long userId) {
Map<String, Object> payload = Map.of(
"question", question,
"user_id", userId,
"domain", "finance" // 标识金融领域
);

try {
ResponseEntity<AgentResponse> response = restTemplate.postForEntity(
agentUrl, payload, AgentResponse.class
);
return response.getBody().getAnswer();
} catch (Exception e) {
log.warn("AI Agent 调用失败,启用兜底回答", e);
return "当前智能助手繁忙,请稍后重试或联系客服。";
}
}

// DTO 类(简化版)
public static class AgentResponse {
private String answer;
// getter/setter 省略
}
}

  • AI Agent 全栈开发:从零搭建 Python AI 微服务模块,基于 FastAPI 构建标准化 AI 推理接口,通过 WeChatClient 实现 Java 后端与 Python 服务的跨语言通信,设计服务健康检查与断路器级机制,保障服务可用性达 99.95%;基于 LangChain+LangGraph 构建金融领域专属 ReAct 智能体工作流,设计 7 步核心执行链路,大幅降低大模型幻觉,保障金融场景输出的专业性与合规性;完成金融领域大模型微调全流程落地,基于 10w + 条高质量金融标注数据优化模型超参数,微调后金融专业问答准确率从 61% 提升至 88%;自研 RAG 检索增强模块,基于 Milvus 向量数据库建立嵌套结构知识库,实现文档向量化与混合检索,知识库召回率达 92%;封装 12 + 金融场景专属工具插件,实现 Agent 与业务系统深度打通,支持自主调用接口完成资质校验、风险评估、理财推荐等复杂任务;设计 AI 服务不可用时的自动回退兜底机制,保障系统核心功能不中断;

#mermaid-svg-UJwiAGikYWF0ZC9H{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-UJwiAGikYWF0ZC9H .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-UJwiAGikYWF0ZC9H .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-UJwiAGikYWF0ZC9H .error-icon{fill:#552222;}#mermaid-svg-UJwiAGikYWF0ZC9H .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-UJwiAGikYWF0ZC9H .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-UJwiAGikYWF0ZC9H .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-UJwiAGikYWF0ZC9H .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-UJwiAGikYWF0ZC9H .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-UJwiAGikYWF0ZC9H .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-UJwiAGikYWF0ZC9H .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-UJwiAGikYWF0ZC9H .marker{fill:#333333;stroke:#333333;}#mermaid-svg-UJwiAGikYWF0ZC9H .marker.cross{stroke:#333333;}#mermaid-svg-UJwiAGikYWF0ZC9H svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-UJwiAGikYWF0ZC9H p{margin:0;}#mermaid-svg-UJwiAGikYWF0ZC9H .pieCircle{stroke:#000000;stroke-width:2px;opacity:0.7;}#mermaid-svg-UJwiAGikYWF0ZC9H .pieOuterCircle{stroke:#000000;stroke-width:1px;fill:none;}#mermaid-svg-UJwiAGikYWF0ZC9H .pieTitleText{text-anchor:middle;font-size:25px;fill:#000000;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-UJwiAGikYWF0ZC9H .slice{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;fill:#000000;font-size:17px;}#mermaid-svg-UJwiAGikYWF0ZC9H .legend text{fill:#000000;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:17px;}#mermaid-svg-UJwiAGikYWF0ZC9H :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

30%

25%

20%

15%

10%

AI Agent 能力组成

RAG 与向量检索

LangChain LangGraph 工作流

Function Call 工具调用

Prompt 工程与记忆管理

服务封装与兜底机制

  • 前端开发:基于 Vue3+TypeScript+Vite 完成用户前台与管理后台两个前端项目的核心开发,采用 Pinia 全局状态管理、Vue Router 做路由管理,累计开发 32 个核心页面与 56 个通用业务组件;封装 Axios 请求 / 响应拦截器,实现 JWT Token 自动携带、过期刷新与全局异常处理,基于 TypeScript 实现全链路类型安全,杜绝 any 类型滥用,制定统一代码规范提升项目可维护性;配合后端完成全模型页面联调,实现借款申请、授信列表、智能金融助手、审批管理等核心功能的前端交互与数据渲染;

  • 接口与安全:基于 JWT 实现接口无状态认证,配合前端完成路由级别的权限控制,针对不同角色实现精细化菜单与操作权限管控,保障金融系统访问安全;遵循 RESTful API 设计规范,基于 Swagger/OpenAPI 3.0 生成标准化接口文档,累计完成 86 个业务接口的设计与开发,适配 Java 21 版本新特性,通过 Maven 实现多模块项目统一构建、依赖管理与版本控制,保障后端服务稳定运行;基于 SLF4J+Logback 实现全链路日志管理,满足金融系统合规审计要求。


#mermaid-svg-RCrdLreRXiWF7edO{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-RCrdLreRXiWF7edO .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-RCrdLreRXiWF7edO .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-RCrdLreRXiWF7edO .error-icon{fill:#552222;}#mermaid-svg-RCrdLreRXiWF7edO .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-RCrdLreRXiWF7edO .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-RCrdLreRXiWF7edO .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-RCrdLreRXiWF7edO .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-RCrdLreRXiWF7edO .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-RCrdLreRXiWF7edO .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-RCrdLreRXiWF7edO .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-RCrdLreRXiWF7edO .marker{fill:#333333;stroke:#333333;}#mermaid-svg-RCrdLreRXiWF7edO .marker.cross{stroke:#333333;}#mermaid-svg-RCrdLreRXiWF7edO svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-RCrdLreRXiWF7edO p{margin:0;}#mermaid-svg-RCrdLreRXiWF7edO .pieCircle{stroke:#000000;stroke-width:2px;opacity:0.7;}#mermaid-svg-RCrdLreRXiWF7edO .pieOuterCircle{stroke:#000000;stroke-width:1px;fill:none;}#mermaid-svg-RCrdLreRXiWF7edO .pieTitleText{text-anchor:middle;font-size:25px;fill:#000000;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-RCrdLreRXiWF7edO .slice{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;fill:#000000;font-size:17px;}#mermaid-svg-RCrdLreRXiWF7edO .legend text{fill:#000000;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:17px;}#mermaid-svg-RCrdLreRXiWF7edO :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

65%

35%

项目开发时间分布

威武金融信贷平台

AI 助学刷题系统

AI 助学刷题系统 · Agent全栈开发

项目地址:https://github.com/CelestialVisionary/studyforge

技术栈:

Java 17、Spring Boot 3.0.5、MyBatis Plus 3.5.3.1、MySQL 8.0+、Redis 6.0+、Spring Cache、JWT、Swagger/Knife4j、GPT-3.5-turbo、Kimi AI、阿里云百炼(qwen3-max)、Ollama(mgegemma)、FastAPI、LangChain、LangGraph、PEFT、LoRA、Vue 3、Vite、Element Plus、Axios、Pinia、Vue Router、Docker、docker-compose

模型类型具体实现优势使用场景
云端大模型 GPT-3.5-turbo, qwen3-max 强推理能力,知识广 复杂题目解析、知识点拓展
国产模型 Kimi AI, 阿里云百炼 中文优化,合规安全 敏感内容过滤、教育场景
本地模型 Ollama (mgegemma) 无网络依赖,隐私保护 离线环境、基础答疑
统一接口 标准 OpenAI API 格式 无缝切换,降低维护成本 所有场景
项目描述:

独立开发的 AI + 单体架构 Java 实战项目,聚焦学生复习痛点,搭建「知识点检索 – 智能刷题 – 错题复盘」核心流程。后端基于 Spring Boot 实现题库管理、用户练习记录等基础接口,前端基于 Vue3+Element Plus 完成交互,自研独立 AI Module(FastAPI + LangChain+LangGraph),支持本地 Ollama 与云端 GPT-3.5 / 阿里云百炼多模型切换,实现智能答疑、知识点解析、实时语义响应等功能。小范围服务 200 + 学生,帮助复习效率提升 40%。

主要工作:
  • 后端开发:基于 Spring Boot + MyBatis Plus 实现题库 CRUD、知识标签管理、用户练习记录、错题本等核心业务接口,使用 @Transactional 注解管理事务;用 Redis+Spring Cache 缓存高频访问的知识点数据与热门排行榜,接口响应速度提升 30%;基于 JWT 实现接口无状态认证与授权机制,保障系统安全;遵循 RESTful API 设计规范,基于 Swagger/Knife4j 生成标准化接口文档;

以下为基于 LangGraph 构建的教育领域智能体核心工作流代码示例:

# Python: 教育场景 ReAct Agent 工作流(LangGraph 实现)
from langgraph.graph import StateGraph, END
from typing import TypedDict, List

class StudyState(TypedDict):
question: str # 用户提问(如“牛顿第二定律是什么?”)
thought_steps: List[str] # 思考链
tool_results: List[dict] # 工具调用结果(题库/知识点)
final_answer: str # 最终回答

def plan(state: StudyState):
"""Step 1: 让 LLM 分步思考"""
prompt = f"""你是一名资深教师。请分步解答:
问题:
{state['question']}
要求:1. 判断知识点类别 2. 决定是否需查题库或知识点库"""

response = llm.invoke(prompt)
state["thought_steps"].append(response.content)
return state

def execute_tools(state: StudyState):
"""Step 2: 根据思考结果调用工具"""
last_step = state["thought_steps"][1]
if "知识点" in last_step:
# 调用 RAG 检索知识点库
knowledge = rag_retriever.search(state["question"])
state["tool_results"].append({"type": "knowledge", "content": knowledge})
elif "题目" in last_step:
# 调用题库 API 获取类似题
similar_questions = question_db.find_similar(state["question"])
state["tool_results"].append({"type": "questions", "items": similar_questions})
return state

def generate_answer(state: StudyState):
"""Step 3: 融合工具结果生成教学式回答"""
context = "\\n".join([
item.get("content", "") or str(item.get("items", ""))
for item in state["tool_results"]
])
final_prompt = f"""基于以下教学资料,用通俗易懂的方式回答:
{context}
问题:
{state['question']}
要求:分点解释,避免专业术语堆砌"""

state["final_answer"] = llm.invoke(final_prompt).content
return state

# 编译状态图
workflow = StateGraph(StudyState)
workflow.add_node("plan", plan)
workflow.add_node("tools", execute_tools)
workflow.add_node("answer", generate_answer)
workflow.set_entry_point("plan")
workflow.add_edge("plan", "tools")
workflow.add_edge("tools", "answer")
workflow.add_edge("answer", END)

study_agent = workflow.compile() # 可直接用于 FastAPI 接口

  • AI 功能全栈落地:对接 GPT-3.5 API 与 Kimi AI API 实现智能答疑功能,针对知识点解析、题目解答场景优化 Prompt 模板,让 AI 答题准确率达 85%;从零搭建独立 AI Module 微服务,基于 FastAPI 构建标准化 AI 接口,集成 LangChain+LangGraph 构建智能对话流程,实现 PEFT 参数高效微调,支持 LoRA 技术适配自定义学习数据;集成本地 Ollama(mymega)模型,同时支持阿里云百炼(qwen3-max)与 OpenAI(gpt-3.5-turbo)云端模型,采用标准 OpenAI API 格式兼容多模型切换;实现实时流式响应与思考过程提取,优化用户交互体验;设计智能回退机制,当高级模型不可用时自动回退到内置模型,保障服务可用性;

Tool

RAG

Python Agent

Java Backend

Frontend

User

Tool

RAG

Python Agent

Java Backend

Frontend

User

#mermaid-svg-RdQW6JdOAJwPk2LX{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-RdQW6JdOAJwPk2LX .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-RdQW6JdOAJwPk2LX .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-RdQW6JdOAJwPk2LX .error-icon{fill:#552222;}#mermaid-svg-RdQW6JdOAJwPk2LX .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-RdQW6JdOAJwPk2LX .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-RdQW6JdOAJwPk2LX .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-RdQW6JdOAJwPk2LX .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-RdQW6JdOAJwPk2LX .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-RdQW6JdOAJwPk2LX .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-RdQW6JdOAJwPk2LX .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-RdQW6JdOAJwPk2LX .marker{fill:#333333;stroke:#333333;}#mermaid-svg-RdQW6JdOAJwPk2LX .marker.cross{stroke:#333333;}#mermaid-svg-RdQW6JdOAJwPk2LX svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-RdQW6JdOAJwPk2LX p{margin:0;}#mermaid-svg-RdQW6JdOAJwPk2LX .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-RdQW6JdOAJwPk2LX text.actor>tspan{fill:black;stroke:none;}#mermaid-svg-RdQW6JdOAJwPk2LX .actor-line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-RdQW6JdOAJwPk2LX .innerArc{stroke-width:1.5;stroke-dasharray:none;}#mermaid-svg-RdQW6JdOAJwPk2LX .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-RdQW6JdOAJwPk2LX .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-RdQW6JdOAJwPk2LX #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-RdQW6JdOAJwPk2LX .sequenceNumber{fill:white;}#mermaid-svg-RdQW6JdOAJwPk2LX #sequencenumber{fill:#333;}#mermaid-svg-RdQW6JdOAJwPk2LX #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-RdQW6JdOAJwPk2LX .messageText{fill:#333;stroke:none;}#mermaid-svg-RdQW6JdOAJwPk2LX .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-RdQW6JdOAJwPk2LX .labelText,#mermaid-svg-RdQW6JdOAJwPk2LX .labelText>tspan{fill:black;stroke:none;}#mermaid-svg-RdQW6JdOAJwPk2LX .loopText,#mermaid-svg-RdQW6JdOAJwPk2LX .loopText>tspan{fill:black;stroke:none;}#mermaid-svg-RdQW6JdOAJwPk2LX .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-RdQW6JdOAJwPk2LX .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-RdQW6JdOAJwPk2LX .noteText,#mermaid-svg-RdQW6JdOAJwPk2LX .noteText>tspan{fill:black;stroke:none;}#mermaid-svg-RdQW6JdOAJwPk2LX .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-RdQW6JdOAJwPk2LX .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-RdQW6JdOAJwPk2LX .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-RdQW6JdOAJwPk2LX .actorPopupMenu{position:absolute;}#mermaid-svg-RdQW6JdOAJwPk2LX .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-RdQW6JdOAJwPk2LX .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-RdQW6JdOAJwPk2LX .actor-man circle,#mermaid-svg-RdQW6JdOAJwPk2LX line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-RdQW6JdOAJwPk2LX :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

提问“我能借多少?”

POST /agent/query

调用 FastAPI 接口

检索信贷政策

调用 user/risk API

返回结构化回答

返回 JSON

渲染自然语言答案

  • 前端开发:基于 Vue 3+Vite+Element Plus 搭建前端工程,使用 Pinia 做全局状态管理、Vue Router 做路由管理,开发知识点检索、智能刷题、错题本、练习统计等核心页面;封装 Axios 请求 / 响应拦截器,实现 JWT Token 自动携带与全局异常处理;在智能刷题页面集成 AI 答题按钮,实现流式响应结果的美观展示,优化用户交互流程;

<!– Vue3 + TypeScript: 流式 AI 回答组件 –>
<template>
<div class="ai-response">
<div v-html="streamedAnswer"></div>
<button @click="fetchAIAnswer" :disabled="loading">
{{ loading ? '思考中…' : '问 AI' }}
</button>
</div>
</template>

<script setup lang="ts">
import { ref } from 'vue'

const streamedAnswer = ref('')
const loading = ref(false)

const fetchAIAnswer = () => {
const question = '如何求解一元二次方程?'
streamedAnswer.value = ''
loading.value = true

// 通过 Java 后端代理 SSE 流(/api/ai/stream)
const eventSource = new EventSource(`/api/ai/stream?question=${encodeURIComponent(question)}`)

eventSource.onmessage = (event) => {
const data = JSON.parse(event.data)
if (data.type === 'token') {
streamedAnswer.value += data.text
} else if (data.type === 'end') {
eventSource.close()
loading.value = false
}
}

eventSource.onerror = () => {
eventSource.close()
loading.value = false
streamedAnswer.value += '\\n\\n⚠️ 连接中断,请重试。'
}
}
</script>

<style scoped>
.ai-response {
font-family: 'Courier New', monospace;
white-space: pre-wrap;
}
</style>

  • 部署实践:编写 Dockerfile 完成后端、前端、AI Module 的容器化打包,使用 docker-compose 编排多服务(后端、前端、AI、MySQL、Redis)一键部署;部署至云服务器,配置健康检查与日志管理,支持 200 + 用户稳定访问;

  • 前后端联动:配合前端完成全量页面联调,保障知识点查询、智能刷题、练习记录读取、错题复盘等核心功能正常可用,优化用户体验提升使用效率。

这里是我根据需求文档用相关的Agent写的项目描述,有夸大的成分,但是我也一直在进步,所以其实差距并不大

#mermaid-svg-53BfVDWTdWqmCtLw{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-53BfVDWTdWqmCtLw .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-53BfVDWTdWqmCtLw .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-53BfVDWTdWqmCtLw .error-icon{fill:#552222;}#mermaid-svg-53BfVDWTdWqmCtLw .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-53BfVDWTdWqmCtLw .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-53BfVDWTdWqmCtLw .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-53BfVDWTdWqmCtLw .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-53BfVDWTdWqmCtLw .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-53BfVDWTdWqmCtLw .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-53BfVDWTdWqmCtLw .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-53BfVDWTdWqmCtLw .marker{fill:#333333;stroke:#333333;}#mermaid-svg-53BfVDWTdWqmCtLw .marker.cross{stroke:#333333;}#mermaid-svg-53BfVDWTdWqmCtLw svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-53BfVDWTdWqmCtLw p{margin:0;}#mermaid-svg-53BfVDWTdWqmCtLw .mermaid-main-font{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-53BfVDWTdWqmCtLw .exclude-range{fill:#eeeeee;}#mermaid-svg-53BfVDWTdWqmCtLw .section{stroke:none;opacity:0.2;}#mermaid-svg-53BfVDWTdWqmCtLw .section0{fill:rgba(102, 102, 255, 0.49);}#mermaid-svg-53BfVDWTdWqmCtLw .section2{fill:#fff400;}#mermaid-svg-53BfVDWTdWqmCtLw .section1,#mermaid-svg-53BfVDWTdWqmCtLw .section3{fill:white;opacity:0.2;}#mermaid-svg-53BfVDWTdWqmCtLw .sectionTitle0{fill:#333;}#mermaid-svg-53BfVDWTdWqmCtLw .sectionTitle1{fill:#333;}#mermaid-svg-53BfVDWTdWqmCtLw .sectionTitle2{fill:#333;}#mermaid-svg-53BfVDWTdWqmCtLw .sectionTitle3{fill:#333;}#mermaid-svg-53BfVDWTdWqmCtLw .sectionTitle{text-anchor:start;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-53BfVDWTdWqmCtLw .grid .tick{stroke:lightgrey;opacity:0.8;shape-rendering:crispEdges;}#mermaid-svg-53BfVDWTdWqmCtLw .grid .tick text{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;fill:#333;}#mermaid-svg-53BfVDWTdWqmCtLw .grid path{stroke-width:0;}#mermaid-svg-53BfVDWTdWqmCtLw .today{fill:none;stroke:red;stroke-width:2px;}#mermaid-svg-53BfVDWTdWqmCtLw .task{stroke-width:2;}#mermaid-svg-53BfVDWTdWqmCtLw .taskText{text-anchor:middle;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-53BfVDWTdWqmCtLw .taskTextOutsideRight{fill:black;text-anchor:start;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-53BfVDWTdWqmCtLw .taskTextOutsideLeft{fill:black;text-anchor:end;}#mermaid-svg-53BfVDWTdWqmCtLw .task.clickable{cursor:pointer;}#mermaid-svg-53BfVDWTdWqmCtLw .taskText.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-53BfVDWTdWqmCtLw .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-53BfVDWTdWqmCtLw .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-53BfVDWTdWqmCtLw .taskText0,#mermaid-svg-53BfVDWTdWqmCtLw .taskText1,#mermaid-svg-53BfVDWTdWqmCtLw .taskText2,#mermaid-svg-53BfVDWTdWqmCtLw .taskText3{fill:white;}#mermaid-svg-53BfVDWTdWqmCtLw .task0,#mermaid-svg-53BfVDWTdWqmCtLw .task1,#mermaid-svg-53BfVDWTdWqmCtLw .task2,#mermaid-svg-53BfVDWTdWqmCtLw .task3{fill:#8a90dd;stroke:#534fbc;}#mermaid-svg-53BfVDWTdWqmCtLw .taskTextOutside0,#mermaid-svg-53BfVDWTdWqmCtLw .taskTextOutside2{fill:black;}#mermaid-svg-53BfVDWTdWqmCtLw .taskTextOutside1,#mermaid-svg-53BfVDWTdWqmCtLw .taskTextOutside3{fill:black;}#mermaid-svg-53BfVDWTdWqmCtLw .active0,#mermaid-svg-53BfVDWTdWqmCtLw .active1,#mermaid-svg-53BfVDWTdWqmCtLw .active2,#mermaid-svg-53BfVDWTdWqmCtLw .active3{fill:#bfc7ff;stroke:#534fbc;}#mermaid-svg-53BfVDWTdWqmCtLw .activeText0,#mermaid-svg-53BfVDWTdWqmCtLw .activeText1,#mermaid-svg-53BfVDWTdWqmCtLw .activeText2,#mermaid-svg-53BfVDWTdWqmCtLw .activeText3{fill:black!important;}#mermaid-svg-53BfVDWTdWqmCtLw .done0,#mermaid-svg-53BfVDWTdWqmCtLw .done1,#mermaid-svg-53BfVDWTdWqmCtLw .done2,#mermaid-svg-53BfVDWTdWqmCtLw .done3{stroke:grey;fill:lightgrey;stroke-width:2;}#mermaid-svg-53BfVDWTdWqmCtLw .doneText0,#mermaid-svg-53BfVDWTdWqmCtLw .doneText1,#mermaid-svg-53BfVDWTdWqmCtLw .doneText2,#mermaid-svg-53BfVDWTdWqmCtLw .doneText3{fill:black!important;}#mermaid-svg-53BfVDWTdWqmCtLw .crit0,#mermaid-svg-53BfVDWTdWqmCtLw .crit1,#mermaid-svg-53BfVDWTdWqmCtLw .crit2,#mermaid-svg-53BfVDWTdWqmCtLw .crit3{stroke:#ff8888;fill:red;stroke-width:2;}#mermaid-svg-53BfVDWTdWqmCtLw .activeCrit0,#mermaid-svg-53BfVDWTdWqmCtLw .activeCrit1,#mermaid-svg-53BfVDWTdWqmCtLw .activeCrit2,#mermaid-svg-53BfVDWTdWqmCtLw .activeCrit3{stroke:#ff8888;fill:#bfc7ff;stroke-width:2;}#mermaid-svg-53BfVDWTdWqmCtLw .doneCrit0,#mermaid-svg-53BfVDWTdWqmCtLw .doneCrit1,#mermaid-svg-53BfVDWTdWqmCtLw .doneCrit2,#mermaid-svg-53BfVDWTdWqmCtLw .doneCrit3{stroke:#ff8888;fill:lightgrey;stroke-width:2;cursor:pointer;shape-rendering:crispEdges;}#mermaid-svg-53BfVDWTdWqmCtLw .milestone{transform:rotate(45deg) scale(0.8,0.8);}#mermaid-svg-53BfVDWTdWqmCtLw .milestoneText{font-style:italic;}#mermaid-svg-53BfVDWTdWqmCtLw .doneCritText0,#mermaid-svg-53BfVDWTdWqmCtLw .doneCritText1,#mermaid-svg-53BfVDWTdWqmCtLw .doneCritText2,#mermaid-svg-53BfVDWTdWqmCtLw .doneCritText3{fill:black!important;}#mermaid-svg-53BfVDWTdWqmCtLw .vert{stroke:navy;}#mermaid-svg-53BfVDWTdWqmCtLw .vertText{font-size:15px;text-anchor:middle;fill:navy!important;}#mermaid-svg-53BfVDWTdWqmCtLw .activeCritText0,#mermaid-svg-53BfVDWTdWqmCtLw .activeCritText1,#mermaid-svg-53BfVDWTdWqmCtLw .activeCritText2,#mermaid-svg-53BfVDWTdWqmCtLw .activeCritText3{fill:black!important;}#mermaid-svg-53BfVDWTdWqmCtLw .titleText{text-anchor:middle;font-size:18px;fill:#333;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-53BfVDWTdWqmCtLw :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

03月

04月

05月

06月

07月

08月

需求分析与架构设计

Java 微服务开发

Python Agent 开发

Vue3 前端联调

系统测试与部署

题库设计与后端接口

LangGraph Agent 开发

多模型集成与流式响应

前端交互与部署

威武金融信贷平台

AI 助学刷题系统

2025–2026 全栈项目开发时间线

这些都是javaweb智能化升级的项目,感觉一般般,我想着做一个纯Agent,然后用java和 ts 做后台管理,这种目前才比较有市场。


🙌 最后的话

从技术博主到全栈 AI Agent 开发者,这条路并不容易—— 既要写得出高并发的 Java 微服务,也要调得动 LangGraph 的多智能体协作; 既要前端类型安全不滥用 any,也要让大模型在金融场景下“不说胡话”。

但正是这种 横跨工程与 AI 的挑战,让我乐在其中。

如果你:

  • 正在探索 AI Agent 工程化落地 的路径
  • 想了解 Java + Python + Vue3 如何协同构建智能系统
  • 或者对我的项目/简历有任何建议

欢迎在评论区狠狠“拷打”我! 💬 我会认真阅读每一条留言,并尽可能回复。

也诚挚期待 Agent 相关的实习机会或技术交流 —— 你的一次内推,可能就是我职业跃迁的关键一步 🙇‍♂️

🔗 GitHub 主页:github.com/CelestialVisionary ⭐ 如果你觉得项目有价值,点个 Star 就是最好的支持!

感谢阅读,我们评论区见!✨


看完觉得不得劲,想要学习,以下是点击可以直接跳转的链接:

(基于简历编写)AI Agent全栈开发实战指南:从Java后端到智能体系统的完整演进路径

AI Agent 面试八股文100问:大模型智能体高频考点全解析(附分类指南和简历模板)

AI Agent项目实战必备:100道高质量场景题全解析(覆盖需求、架构、安全、部署与未来演进)

赞(0)
未经允许不得转载:网硕互联帮助中心 » 幻想简历!博主本人期望的 AI Agent 全栈简历:Java + Python + Vue3 跨语言实战,代码已开源!
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!