news 2026/6/25 13:53:05

Spring AI 实战指南(十五):AI Agent 中台源码级设计——从零实现自己的 Agent Framework

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring AI 实战指南(十五):AI Agent 中台源码级设计——从零实现自己的 Agent Framework

前言

系列:Spring AI 企业级开发实战
项目名称:EduAgentX Agent Framework
技术栈:Java 21 + Spring Boot 3.5 + Spring AI + Redis + PostgreSQL + PGVector + MCP
难度:⭐⭐⭐⭐⭐
阅读时间:90分钟+
关键词:Agent Framework、LangGraph、AutoGen、Agent SDK、Agent Engine、Spring AI源码设计


前面的文章我们一直在:

使用Agent

例如:

ChatClientToolCallingAgent

但是:

你有没有想过一个问题?


Spring AI:

为什么能够支持:

Tool Calling Memory RAG MCP Agent

LangChain:

为什么能支持:

Chain Agent Workflow

AutoGen:

为什么能支持:

Multi-Agent

本质上:

因为它们背后都有:

Agent Framework

而真正的高级工程师:

不仅会:

使用框架

更要理解:

框架如何设计

这一篇:

我们从零设计:

EduAgentX Agent Framework


一、Agent Framework是什么?

简单理解:

Agent Framework就是:

Agent运行时

类似:

Spring = Java应用运行框架

而:

Agent Framework = Agent运行框架

负责:

Agent管理 Tool调用 Prompt管理 Memory管理 Workflow执行 模型调用

二、框架总体架构

整体架构:

User │ Agent Engine │ ┌────────┬────────┬────────┐ │ │ │ Prompt Memory Tool Engine Engine Engine │ Workflow Engine │ Model Engine │ DeepSeek/OpenAI

核心思想:

所有能力插件化

三、Agent生命周期设计

一个Agent:

实际上有生命周期。


类似:

Spring Bean

生命周期:

Create ↓ Init ↓ Execute ↓ Destroy

接口:

publicinterfaceAgent{voidinit();AgentResultexecute(AgentContextcontext);voiddestroy();}

所有Agent:

统一规范。


四、AgentContext设计

Agent执行时:

需要上下文。


设计:

publicclassAgentContext{privateStringuserId;privateStringsessionId;privateStringquestion;privateMap<String,Object>vars;}

作用:

运行环境

五、AgentResult设计

统一返回结果。


publicclassAgentResult{privatebooleansuccess;privateStringcontent;privateObjectdata;}

避免:

返回格式混乱

六、Agent Registry设计

所有Agent:

统一注册。


接口:

publicinterfaceAgentRegistry{voidregister(Agentagent);AgentgetAgent(Stringname);}

实现:

Map<String,Agent>

管理所有Agent。


七、Agent Factory设计

工厂模式。


publicclassAgentFactory{publicAgentcreate(Stringtype){}}

支持:

LearningAgent InterviewAgent CodingAgent

动态创建。


八、Prompt Engine设计

不要:

Stringprompt="";

写死。


设计:

publicinterfacePromptEngine{StringloadPrompt(StringpromptName);}

支持:

数据库 文件 MCP Resource

动态加载。


九、Memory Engine设计

长期记忆核心。


接口:

publicinterfaceMemoryEngine{voidsave(Stringkey,Stringvalue);Stringquery(Stringkey);}

实现:

Redis

或者:

PostgreSQL

十、Tool Engine设计

所有工具:

统一管理。


接口:

publicinterfaceTool{ToolResultexecute(ToolContextcontext);}

注册:

toolRegistry.register(scoreTool);

Agent动态调用。


十一、Tool Router设计

Agent有很多Tool。


例如:

ResumeTool ScoreTool CourseTool CodeTool

如何选择?


设计:

ToolRouter

作用:

智能路由

例如:

问题:

查询成绩

自动:

ScoreTool

十二、Model Engine设计

统一模型调用。


接口:

publicinterfaceModelEngine{Stringchat(Stringprompt);}

实现:

DeepSeek OpenAI Claude Gemini

统一封装。


十三、Workflow Engine设计

复杂任务:

不能一次完成。


例如:

生成学习报告

拆解:

查成绩 ↓ 分析 ↓ 推荐课程 ↓ 生成报告

设计:

publicinterfaceWorkflow{WorkflowResultexecute();}

十四、Node设计

工作流:

由节点组成。


publicinterfaceNode{NodeResultexecute();}

例如:

ScoreNode AnalysisNode ReportNode

组合:

Workflow

十五、Workflow DAG设计

企业级:

必须支持:

DAG

有向无环图。


例如:

Score / \ Analysis Course \ / Report

并行执行。


性能更高。


十六、Reasoning Engine设计

Agent核心能力。


负责:

思考

例如:

用户:

帮我制定学习计划

Reasoning:

分析需求 ↓ 拆分步骤 ↓ 执行Agent ↓ 汇总结果

类似:

Planner

十七、Task Engine设计

每个Agent任务:

统一管理。


数据库:

CREATETABLEai_task(idBIGINTPRIMARYKEY,task_nameVARCHAR(100),statusVARCHAR(20));

状态:

PENDING RUNNING SUCCESS FAILED

十八、Event Bus设计

Agent之间:

不要直接调用。


采用:

事件驱动

例如:

eventBus.publish("REPORT_CREATED");

其他Agent:

监听。


解耦。


十九、Plugin机制设计

企业必须支持:

插件扩展

例如:

新增:

EmailTool

无需改源码。


注册:

@AgentPluginpublicclassEmailTool{}

自动发现。


二十、SDK设计

未来:

其他团队:

也要接入。


提供:

AgentClientclient=AgentSDK.create();

调用:

client.execute("learning-agent");

开放生态。


二十一、监控体系设计

必须统计:

Agent调用次数 Workflow耗时 Tool耗时 Token消耗 失败率

数据库:

CREATETABLEai_metrics(idBIGINTPRIMARYKEY,module_nameVARCHAR(100),execute_timeBIGINT,token_countBIGINT);

二十二、框架最终架构

User │ Agent SDK │ Agent Engine │ ┌────────┬────────┬────────┐ │ │ │ Prompt Memory Tool Engine Engine Engine │ Reasoning Engine │ Workflow Engine │ Task Engine │ Event Bus │ Model Engine │ DeepSeek/OpenAI

二十三、与主流框架对比

功能LangChainAutoGenEduAgentX Agent Framework
Tool Calling
Memory
Workflow
MCP部分部分
多租户××
SaaS××
Spring生态一般

面试官最爱问的问题

Agent Framework核心组成有哪些?

回答:

Agent Engine Prompt Engine Memory Engine Tool Engine Workflow Engine Model Engine

为什么需要Tool Router?

回答:

实现工具自动选择, 避免Agent硬编码调用。

Workflow和Agent有什么区别?

回答:

Agent负责执行任务。 Workflow负责组织任务。

为什么引入Event Bus?

回答:

实现Agent解耦, 提升扩展性。

架构师成长路线

Spring Boot ↓ Spring Cloud ↓ Redis ↓ MQ ↓ RAG ↓ Agent ↓ MCP ↓ Multi-Agent ↓ Workflow ↓ AI OS ↓ Agent Framework

总结

当你能设计出:

Agent生命周期 Tool框架 Memory框架 Workflow引擎 Reasoning引擎 Agent SDK

你已经不只是 Spring AI 使用者,而是在思考:

如何构建下一代AI基础设施

这已经接近 AI 平台架构师的工作范畴。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/25 13:51:07

市面上哪款降重工具,既能降重复率,又能消除论文的 AI 写作特征?

2026年的毕业季&#xff0c;论文审核正式进入了“双重红线时代”——查重率要达标&#xff0c;AIGC疑似率更要达标。知网、维普等主流检测系统全面升级AIGC检测算法&#xff0c;不仅查文字相似度&#xff0c;更查句式逻辑、写作指纹和人机混合痕迹。很多同学发现&#xff0c;传…

作者头像 李华
网站建设 2026/6/25 13:46:29

MDP建模与RL落地:AI决策系统的七步实战方法论

1. 这不是理论考试&#xff0c;是帮你把AI决策模型真正用起来的实战笔记 你手头有个业务场景&#xff1a;库存要动态调拨、客服工单要智能分派、广告出价得实时响应市场变化——这些都不是“选A还是选B”的静态判断&#xff0c;而是 在不确定环境中持续做一连串相互影响的决策…

作者头像 李华
网站建设 2026/6/25 13:46:17

梅州市易损伤零件柔性上料编带机

关于【东莞微久智造科技有限公司】&【柔性上料编带机行业】常见疑问汇总解答前言随着制造业自动化水平的不断提高&#xff0c;柔性上料编带机在处理易损伤零件时展现出显著优势。本文旨在针对用户在使用过程中遇到的一些高频问题进行汇总&#xff0c;并提供统一客观的解答。…

作者头像 李华
网站建设 2026/6/25 13:43:24

科技创新向亚洲EMBA测评:科学选型指南2026

一、引言&#xff1a;科技赛道EMBA选型核心痛点随着亚太科创产业升级、中资企业出海提速&#xff0c;传统商科EMBA已无法适配科技企业管理者的学习需求。当下亚洲EMBA市场存在明显供需错配问题&#xff1a;多数通用型EMBA偏重传统财务、营销、组织管理&#xff0c;科创技术落地…

作者头像 李华
网站建设 2026/6/25 13:41:17

新能源汽车动力电池系统总体方案解析

目录 动力电池系统概念 动力电池系统定义 消费产品电池与电池包电池区别 动力电池串并联方案 先并后串方案 先串后并方案 混联方案 动力电池系统设计理念 动力电池系统介绍 动力电池系统产品图 动力电池系统内部结构 动力电池常见结构 工T字形电池 土字形电池 一…

作者头像 李华
网站建设 2026/6/25 13:37:04

【ROS2】使用Cartographer纯定位导航

1、前提 先使用 Cartographer 来建图,然后在Nav2中,使用 Cartographer 代替 AMCL定位 Cartographer 来建图参加博客:【ROS2】Ubuntu24.04在Gazebo中使用Cartographer 2、问题 在上一篇博客的最后,记录着使用 Cartographer 纯定位失败了,本篇博客探索失败的原因和解决方…

作者头像 李华