Spring AI 架构

+---------------------------------------------------------+
|                      应用层                              |
|---------------------------------------------------------|
|  • 前端 / API 层                                        |
|  • REST / GraphQL 接口                                  |
|  • 客户端 SDK(Java、Python 等)                        |
+---------------------------------------------------------+
                       |
                       v
+---------------------------------------------------------+
|                     编排层                              |
|---------------------------------------------------------|
|  • ChatClient / AI 会话管理器                           |
|  • 工具调用分发器                                      |
|  • Advisor 拦截器(前/后处理钩子)                      |
|  • 上下文与内存管理                                    |
+---------------------------------------------------------+
                       |
                       v
+---------------------------------------------------------+
|                     核心 AI 层                           |
|---------------------------------------------------------|
|  • Prompt 引擎(结构化 Prompt 对象)                    |
|  • 模型适配器 / LLM 抽象层                              |
|  • 输出 Schema 与校验(结构化 JSON 输出)               |
|  • 插件 / 工具集成框架                                 |
+---------------------------------------------------------+
                       |
                       v
+---------------------------------------------------------+
|                  数据与集成层                           |
|---------------------------------------------------------|
|  • 向量存储 / Embeddings                                |
|  • 知识库 / 外部 API                                    |
|  • 数据库访问(SQL / NoSQL)                            |
|  • 缓存与会话存储                                      |
+---------------------------------------------------------+
                       |
                       v
+---------------------------------------------------------+
|                   基础设施层                            |
|---------------------------------------------------------|
|  • 计算资源 / GPU 或 CPU 集群                           |
|  • 消息系统 / 队列                                     |
|  • 日志、指标与监控                                    |
|  • 安全与访问控制                                      |
+---------------------------------------------------------+

关键亮点(Key Highlights)

1. Prompt 作为一等公民(Prompt as First-Class Object)

与简单的字符串不同,Prompt 不只是文本,而是携带完整元数据的结构化对象,包括:

  • System Message(系统指令)

  • User Message(用户输入)

  • 工具调用指令

  • 结构化输出 Schema

这使得 Prompt 可以进行精确、强类型、安全的处理与校验


2. Advisor 机制(类似拦截器)

  • 在模型执行前 / 后提供钩子(Hook)

  • 可以用于:

    • 修改 Prompt

    • 丰富上下文

    • 校验模型输出

    • 触发或调度工具调用

在理念上非常接近 Spring 体系中的 Interceptor / AOP


3. 结构化输出 / JSON 映射

  • 确保 AI 输出可预测、可解析、机器可读

  • 与 Prompt Engine 深度集成

  • 特别适合:

    • 企业系统

    • 工作流

    • 下游自动处理


4. 工具集成框架(Tool Integration Framework)

  • Spring AI 可在 AI 流程中直接调用外部工具:

    • API

    • 数据库

    • 自定义代码

  • 与现代 LLM 中的 Function Calling 概念高度一致


5. 记忆 / 上下文管理(Memory / Context Management)

  • 支持:

    • 短期记忆(会话上下文)

    • 长期记忆(跨会话)

  • 可结合 Embedding 存储,实现:

    • 语义检索

    • RAG(检索增强生成)


LangChain 架构

LangChain 的核心定位是:LLM 编排(orchestration)+ 流水线管理(pipeline management)
它的架构主要围绕 Chains、Agents 和 Memory 展开。

+---------------------------------------------------------+
|                     应用层                              |
|---------------------------------------------------------|
|  • 前端 / API 层                                        |
|  • 聊天机器人 / 自定义应用                              |
|  • SDK(Python、JS 等)                                 |
+---------------------------------------------------------+
                       |
                       v
+---------------------------------------------------------+
|                     编排层                              |
|---------------------------------------------------------|
|  • Chains(顺序 / 条件步骤)                            |
|  • Agents(基于 LLM 的决策 + 工具调用)                 |
|  • Memory 模块(对话记忆 / 长期记忆)                   |
|  • Callbacks / Hooks(前处理 / 后处理)                 |
+---------------------------------------------------------+
                       |
                       v
+---------------------------------------------------------+
|                     核心 AI 层                           |
|---------------------------------------------------------|
|  • LLM 封装(OpenAI、HuggingFace 等)                    |
|  • Prompt 模板 / Prompt 管理                            |
|  • 工具集成(API、Python 函数、SQL)                    |
+---------------------------------------------------------+
                       |
                       v
+---------------------------------------------------------+
|                  数据与集成层                           |
|---------------------------------------------------------|
|  • 向量数据库 / Embeddings                              |
|  • 知识库 / 外部 API                                    |
|  • 数据库 / 外部存储                                    |
+---------------------------------------------------------+
                       |
                       v
+---------------------------------------------------------+
|                   基础设施层                            |
|---------------------------------------------------------|
|  • 计算资源 / GPU / CPU                                 |
|  • 日志 / 指标 / 监控                                   |
|  • 安全与访问控制                                       |
+---------------------------------------------------------+

关键要点:

  • Chains
    线性或分支执行步骤,本质上是一个 Pipeline

  • Agents
    基于 LLM 的决策实体,可以动态决定是否、以及如何调用工具

  • Memory
    用于维护短期或长期上下文(如对话历史)。

  • 整体关注点

    • 代码层面灵活

    • Python 优先

    • 强调模型与工具的快速集成


LangGraph 架构

LangGraph 是一种更偏向“图(Graph)”的编排模型
它使用 节点(Node)+ 边(Edge) 来表示 LLM 调用、工具执行与控制流。

+---------------------------------------------------------+
|                     应用层                              |
|---------------------------------------------------------|
|  • 前端 / API 层                                        |
|  • 图形化 UI(节点流程设计)                            |
|  • 运行时 SDK                                           |
+---------------------------------------------------------+
                       |
                       v
+---------------------------------------------------------+
|                  图编排层(核心)                       |
|---------------------------------------------------------|
|  • 节点图(Node = LLM 调用 / 工具 / 逻辑)              |
|  • 边管理(数据流、依赖关系)                           |
|  • 执行引擎(遍历图结构,支持异步)                     |
|  • 上下文传播(状态 / 记忆在节点间传递)                |
+---------------------------------------------------------+
                       |
                       v
+---------------------------------------------------------+
|                     核心 AI 层                           |
|---------------------------------------------------------|
|  • LLM 封装(OpenAI、HuggingFace 等)                    |
|  • Prompt 模板 / 动态 Prompt                            |
|  • 工具集成(API、函数、数据库)                        |
+---------------------------------------------------------+
                       |
                       v
+---------------------------------------------------------+
|                  数据与集成层                           |
|---------------------------------------------------------|
|  • 向量数据库 / Embeddings                              |
|  • 知识库 / 外部 API                                    |
|  • 数据库 / 存储                                        |
+---------------------------------------------------------+
                       |
                       v
+---------------------------------------------------------+
|                   基础设施层                            |
|---------------------------------------------------------|
|  • 计算资源 / GPU / CPU                                 |
|  • 日志 / 指标 / 监控                                   |
|  • 安全与访问控制                                       |
+---------------------------------------------------------+

关键要点:

  • Graph Nodes(节点)
    可以是:

    • LLM 调用

    • 工具 / 函数调用

    • 自定义逻辑块

  • Edges(边)
    定义节点之间的数据流和依赖关系。

  • 执行引擎

    • 动态遍历图结构

    • 支持条件分支、循环、异步执行

  • 整体关注点

    • 可视化

    • 模块化

    • 适合复杂、多步骤、可复用的工作流编排


Spring AI、LangChain、LangGraph 对比

功能 / 概念 Spring AI LangChain LangGraph
Prompt 处理 一等公民(结构化对象) Prompt 模板 + Chains 节点级 Prompt 模板
拦截器 / Advisor ✅ 支持(前/后处理) Callbacks / Hooks 节点级 Hook
编排方式 线性或条件(通过 Advisor) Chains & Agents 基于图(节点 & 边)
工具集成 原生支持 + 结构化指令 Python 函数 / API / SQL 节点级工具调用
记忆 / 上下文 Session + 长期记忆 Memory 模块 状态在图中传播
结构化输出 强(JSON Schema) 多为自由 JSON / 字符串 节点级结构化输出
关注点 企业级、结构化、强类型、安全 开发者灵活性、Python 优先 可视化图编排、复杂流程

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐