简介
SAA Graph Composer 是为 Spring AI Alibaba Graph 量身打造的声明式编排扩展库。
它将复杂的底层流式构建转化为注解驱动开发,让定义 AI Agent 流程像编写 Spring Controller 一样简单、直观且符合工程直觉。
💡 为什么需要它?
在使用原生 Spring AI Alibaba Graph 开发复杂的 Agent 流程时,你可能会遇到以下问题:
- 构建逻辑繁琐:大量的
builder.addNode(),builder.addEdge()过程式代码堆叠在构建方法中,导致核心业务流程难以直观呈现,维护成本高。 - 关注点混合:节点的具体业务逻辑与图的结构定义交织在一起,既降低了代码的可读性,也增加了复用难度。
- 集成体验非原生:缺乏对 Spring 容器的深度支持,无法像管理普通 Service Bean 那样便捷地进行自动装配与配置注入。
核心特性
- 声明式开发:通过注解直观定义节点职责与流转路径,而无需在代码中堆砌
addNode()和addEdge()。 - Spring 深度集成:遵循 Spring 标准开发模式。图定义类与编译后的图实例均被托管为标准 Bean,支持原生依赖注入与配置。
- 灵活的混合构建:针对复杂的动态连线,可通过生命周期钩子访问底层 API 补全逻辑,实现静态定义与动态构建的结合。
- 多样的编译方式:既支持通过
@EnableGraphComposer自动扫描注册,也支持在不启动 Spring 上下文的情况下利用IGraphBuilder手动构建。
代码对比
看看它如何简化你的代码:
原生 API
你需要手动管理节点注册和连线逻辑:
java
@Bean
public CompiledGraph helloGraph() {
StateGraph builder = new StateGraph(() -> {
Map<String, KeyStrategy> map = new HashMap<>();
initialState.put("greeting", new ReplaceStrategy());
return map;
});
NodeAction helloAction = state ->
Map.of("greeting", "Hello, Spring AI Alibaba!");
builder.addNode("hello", AsyncNodeAction.node_async(helloAction))
.addEdge(StateGraph.START, "hello")
.addEdge("hello", StateGraph.END);
return builder.compile();
}Composer 方式
逻辑一目了然,结构即代码:
java
@GraphComposer
public class HelloGraphComposer {
@GraphKey
public static final String KEY_GREETING = "greeting";
@GraphNode(id = "hello", isStart = true, next = StateGraph.END)
final NodeAction helloAction = state ->
Map.of(KEY_GREETING, "Hello, Graph Composer!");
}🤝 与 Spring AI Alibaba 的关系
SAA Graph Composer 不是 替代品,而是 增强包。
- 它的底层完全基于 Spring AI Alibaba 的
StateGraph构建。 - 生成的
CompiledGraph是原生的对象,你可以无缝使用原生的所有功能(如invoke,stream)。 - 你可以随时通过
GraphBuildLifecycle访问到底层 API。
准备好动手了吗?
继续阅读下一章:快速开始 👇
继续阅读下一章:快速开始 👇