前言
系列: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源码设计
前面的文章我们一直在:
text
使用Agent
例如:
java
ChatClient
↓
Tool Calling
↓
Agent
但是:
你有没有想过一个问题?
Spring AI:
为什么能够支持:
text
Tool Calling
Memory
RAG
MCP
Agent
LangChain:
为什么能支持:
text
Chain
Agent
Workflow
AutoGen:
为什么能支持:
text
Multi-Agent
本质上:
因为它们背后都有:
text
Agent Framework
而真正的高级工程师:
不仅会:
text
使用框架
更要理解:
text
框架如何设计
这一篇:
我们从零设计:
EduAgentX Agent Framework
一、Agent Framework是什么?
简单理解:
Agent Framework就是:
text
Agent运行时
类似:
text
Spring
=
Java应用运行框架
而:
text
Agent Framework
=
Agent运行框架
负责:
text
Agent管理
Tool调用
Prompt管理
Memory管理
Workflow执行
模型调用
二、框架总体架构
整体架构:
text
User
│
Agent Engine
│
┌────────┬────────┬────────┐
│ │ │
Prompt Memory Tool
Engine Engine Engine
│
Workflow Engine
│
Model Engine
│
DeepSeek/OpenAI
核心思想:
text
所有能力插件化
三、Agent生命周期设计
一个Agent:
实际上有生命周期。
类似:
text
Spring Bean
生命周期:
text
Create
↓
Init
↓
Execute
↓
Destroy
接口:
java
public interface Agent {
void init();
AgentResult execute(
AgentContext context
);
void destroy();
}
所有Agent:
统一规范。
四、AgentContext设计
Agent执行时:
需要上下文。
设计:
java
public class AgentContext {
private String userId;
private String sessionId;
private String question;
private Map<String,Object> vars;
}
作用:
text
运行环境
五、AgentResult设计
统一返回结果。
java
public class AgentResult {
private boolean success;
private String content;
private Object data;
}
避免:
text
返回格式混乱
六、Agent Registry设计
所有Agent:
统一注册。
接口:
java
public interface AgentRegistry {
void register(
Agent agent
);
Agent getAgent(
String name
);
}
实现:
java
Map<String,Agent>
管理所有Agent。
七、Agent Factory设计
工厂模式。
java
public class AgentFactory {
public Agent create(
String type
){
}
}
支持:
text
LearningAgent
InterviewAgent
CodingAgent
动态创建。
八、Prompt Engine设计
不要:
java
String prompt="";
写死。
设计:
java
public interface PromptEngine {
String loadPrompt(
String promptName
);
}
支持:
text
数据库
文件
MCP Resource
动态加载。
九、Memory Engine设计
长期记忆核心。
接口:
java
public interface MemoryEngine {
void save(
String key,
String value
);
String query(
String key
);
}
实现:
text
Redis
或者:
text
PostgreSQL
十、Tool Engine设计
所有工具:
统一管理。
接口:
java
public interface Tool {
ToolResult execute(
ToolContext context
);
}
注册:
java
toolRegistry.register(
scoreTool
);
Agent动态调用。
十一、Tool Router设计
Agent有很多Tool。
例如:
text
ResumeTool
ScoreTool
CourseTool
CodeTool
如何选择?
设计:
java
ToolRouter
作用:
text
智能路由
例如:
问题:
text
查询成绩
自动:
text
ScoreTool
十二、Model Engine设计
统一模型调用。
接口:
java
public interface ModelEngine {
String chat(
String prompt
);
}
实现:
text
DeepSeek
OpenAI
Claude
Gemini
统一封装。
十三、Workflow Engine设计
复杂任务:
不能一次完成。
例如:
text
生成学习报告
拆解:
text
查成绩
↓
分析
↓
推荐课程
↓
生成报告
设计:
java
public interface Workflow {
WorkflowResult execute();
}
十四、Node设计
工作流:
由节点组成。
java
public interface Node {
NodeResult execute();
}
例如:
text
ScoreNode
AnalysisNode
ReportNode
组合:
text
Workflow
十五、Workflow DAG设计
企业级:
必须支持:
text
DAG
有向无环图。
例如:
text
Score
/ \
Analysis Course
\ /
Report
并行执行。
性能更高。
十六、Reasoning Engine设计
Agent核心能力。
负责:
text
思考
例如:
用户:
text
帮我制定学习计划
Reasoning:
text
分析需求
↓
拆分步骤
↓
执行Agent
↓
汇总结果
类似:
text
Planner
十七、Task Engine设计
每个Agent任务:
统一管理。
数据库:
sql
CREATE TABLE ai_task(
id BIGINT PRIMARY KEY,
task_name VARCHAR(100),
status VARCHAR(20)
);
状态:
text
PENDING
RUNNING
SUCCESS
FAILED
十八、Event Bus设计
Agent之间:
不要直接调用。
采用:
text
事件驱动
例如:
java
eventBus.publish(
"REPORT_CREATED"
);
其他Agent:
监听。
解耦。
十九、Plugin机制设计
企业必须支持:
text
插件扩展
例如:
新增:
text
EmailTool
无需改源码。
注册:
java
@AgentPlugin
public class EmailTool {
}
自动发现。
二十、SDK设计
未来:
其他团队:
也要接入。
提供:
java
AgentClient client =
AgentSDK.create();
调用:
java
client.execute(
"learning-agent"
);
开放生态。
二十一、监控体系设计
必须统计:
text
Agent调用次数
Workflow耗时
Tool耗时
Token消耗
失败率
数据库:
sql
CREATE TABLE ai_metrics(
id BIGINT PRIMARY KEY,
module_name VARCHAR(100),
execute_time BIGINT,
token_count BIGINT
);
二十二、框架最终架构
text
User
│
Agent SDK
│
Agent Engine
│
┌────────┬────────┬────────┐
│ │ │
Prompt Memory Tool
Engine Engine Engine
│
Reasoning Engine
│
Workflow Engine
│
Task Engine
│
Event Bus
│
Model Engine
│
DeepSeek/OpenAI
二十三、与主流框架对比
| 功能 | LangChain | AutoGen | EduAgentX Agent Framework |
|---|---|---|---|
| Tool Calling | √ | √ | √ |
| Memory | √ | √ | √ |
| Workflow | √ | √ | √ |
| MCP | 部分 | 部分 | √ |
| 多租户 | × | × | √ |
| SaaS | × | × | √ |
| Spring生态 | 一般 | 弱 | 强 |
面试官最爱问的问题
Agent Framework核心组成有哪些?
回答:
text
Agent Engine
Prompt Engine
Memory Engine
Tool Engine
Workflow Engine
Model Engine
为什么需要Tool Router?
回答:
text
实现工具自动选择,
避免Agent硬编码调用。
Workflow和Agent有什么区别?
回答:
text
Agent负责执行任务。
Workflow负责组织任务。
为什么引入Event Bus?
回答:
text
实现Agent解耦,
提升扩展性。
架构师成长路线
text
Spring Boot
↓
Spring Cloud
↓
Redis
↓
MQ
↓
RAG
↓
Agent
↓
MCP
↓
Multi-Agent
↓
Workflow
↓
AI OS
↓
Agent Framework
总结
当你能设计出:
text
Agent生命周期
Tool框架
Memory框架
Workflow引擎
Reasoning引擎
Agent SDK
你已经不只是 Spring AI 使用者,而是在思考:
text
如何构建下一代AI基础设施
这已经接近 AI 平台架构师的工作范畴。