
文档教程后端【免费下载链接】CodeGuide:books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总旨在为大家提供一个清晰详细的学习教程侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助请给予支持(关注、点赞、分享)项目地址https://gitcode.com/gh_mirrors/code/CodeGuide点击查看免费下载导读本文聚焦《AI Agent 脚手架》基础底座中的装配域核心节点ChatModelNode模型对话节点讲解智能体装配链路中AI 接口 → 模型 → 智能体的关键一环节点如何从 AiApiNode 流转而来、如何基于 Spring AI 完成 ChatModel 实例化、如何把 MCP 工具填充进模型以及逻辑区 流转区分离的路由设计思想。读完本文你将掌握在 ai-agent-scaffold 项目 的规则树装配框架下ChatModelNode 的职责边界、上下文取值方式与下游节点衔接方法能够理解并复刻这一套通用的智能体装配节点写法。一、节点定位装配链路上承上启下的一环在《AI Agent 脚手架》的装配域设计中整个智能体的构建被拆解为一条规则树组合模式节点链路。根据 第2-4节装配域结构化定义 的描述节点包括 RootNode、AiApiNode、ChatModelNode 等它们通过工厂管理衔接服务并共享一个上下文对象用于在节点间记录数据、流转使用。ChatModelNode 处于这条链路的中间位置上游是 第2-5节装配域节点-AiApiNode 装配的 AI 接口节点如 OpenAiApi它负责和 AI 服务建立请求连接下游是 第2-7节装配域节点-AgentNode 装配的智能体节点它拿 ChatModelNode 构建好的模型实例化 LlmAgent。这一节的核心诉求非常聚焦完成从 AiApiNode 到 ChatModelNode 的节点流转并实现 ChatModelNode 自身的装配操作即模型对话节点的实例化。二、节点流转机制doApply 完成后执行 router 路由ChatModelNode 是从 AiApiNode 处理完流程后流转过来的节点。理解这个流转机制是读懂装配域全部节点的前提。节点的流转是在doApply处理完成后执行router路由方法路由方法会调用当前实现类的get方法获取下一个要执行的节点。整套机制可以拆成两个区域逻辑区doApply负责当前节点具体的装配业务例如 ChatModelNode 里构建 ChatModel、装配 MCP流转区router负责做完当前节点的事之后下一个节点是谁由实现类的get方法给出答案。通过这样的方式分离逻辑区和流转区可以让代码更好维护每个节点只关心自己做什么和下一个是谁既不越界处理其他节点的职责也方便在任意位置插入、替换、调整节点顺序。从项目面试问答归档notes.md可以看到这一套节点管道的支撑构件包括统一的IArmoryService接口、AbstractArmorySupport抽象类所有节点遵循相同规范、DefaultArmoryFactory工厂创建和管理节点以及DynamicContext动态上下文在节点间传递配置数据避免方法参数爆炸。这正对应了单一职责 工厂 上下文对象 泛型的设计组合也体现了责任链/规则树的传递思想。三、ChatModelNode 的装配基于 Spring AI 构建模型ChatModelNode 的装配工作由两大部分组成都建立在 Spring AI 框架之上。1. 从上下文取出 OpenAiApi填充 ChatModelChatModel 实例化之前需要先从上下文DynamicContext中获取AiApiNode 中关于 OpenAiApi 的实例化对象用于填充到 ChatModel 的构建参数中。这一步体现了上下文对象的典型用法AiApiNode 在doApply中完成 OpenAiApi 的实例化并写入上下文节点流转到 ChatModelNode 后ChatModelNode 从上下文按 key 取出该实例将 OpenAiApi 传入 ChatModel 构建器完成模型对象的实例化再把 ChatModel 写回上下文供下游使用。这样设计的收益非常明显AI 接口的连接配置base-url、api-key 等只在一处创建模型层不需要感知配置来源节点之间通过上下文解耦后续要切换供应商或升级鉴权方式只需改动 AiApiNode 一处。这与 第2-3节智能体配置表设计 中描述的配置结构一一对应智能体模块agent model下AiApi 负责对接 AI 接口ChatModel 负责模型创建同时把 AiApi 对接进来。也就是说YML 中配置好的 AiApi 参数会经由 AiApiNode → 上下文 → ChatModelNode 的路径最终作用到模型实例上。2. 装配 MCP把工具填充到模型中ChatModelNode 的第二项装配任务是构建 MCPModel Context Protocol。这里是把 MCP 填充到模型中使用这一整套都是基于 Spring AI 框架处理的。在 Spring AI 的模型构建体系中MCP 工具与 ChatModel 绑定模型在对话时才能感知并调用这些工具从而扩展智能体行动的能力。关于 MCP 的装配方式从 第2-14节增强装配-本地mcp 可以看到后续演进细节初始版本ChatModelNode 装配 MCP 主要是sse、stdio两种方式通过if···else判断的方式处理演进版本当要扩展本地 mcp 等新方式时不再继续堆叠 if-else而是通过工厂 策略接口来拆分大方法并区分 mcp 客户端、服务端——客户端负责策略装配服务端负责用户扩展新的 mcp 服务。从源码结构看依据 notes.md 面试问答项目定义了ToolMcpCreateService策略接口并分别实现SseMcpCreateStrategy、StdioMcpCreateStrategy、LocalMcpCreateStrategy等具体策略由DefaultMcpClientFactory按配置分发请求符合开闭原则——新增一种 MCP 协议只需增加一个策略类无需修改 ChatModelNode 原有逻辑。补充说明除了 Spring AI也可以使用 langchain4j、Google ADK 来处理关于 MCP 的部分。项目正是通过 Google ADK 兼容 Spring AI、LangChain4j 的方式让前者负责 Agent 编排与插件处理后者负责 AI 对接详见 ai-agent-scaffold.md 中的框架分工说明。四、与下游节点的衔接ChatModel 交给 Agent 使用ChatModelNode 装配完成后会继续路由到下一个节点。根据 第2-7节装配域节点-AgentNode 的描述AgentNode 节点由 ChatModelNode 节点流转过来每个节点的流转都是类似操作——处理完业务功能后则路由到下一个节点继续完成其他业务AgentNode 是一个多 LlmAgent 装配的过程。在配置智能体时一些复杂场景需要多个 LlmAgent 分别做不同的事情来完成一个整体流程因此这类智能体是多个 LlmAgent 配置。再往后第2-8节装配域节点-AgentWorkflowNode 会把这些 LlmAgent 组合进 LoopAgent、ParallelAgentNode、SequentialAgentNode 等工作流节点最终由 SequentialAgentNode 作为序列化执行的收尾。所以完整的装配链路是RootNode → AiApiNode → ChatModelNode → AgentNode(LlmAgent) → AgentWorkflowNode(编排) → RunnerNode(执行)其中 ChatModelNode 的产出ChatModel MCP 工具是 AgentNode 实例化 LlmAgent 的模型底座。整个链路在 第2-11节智能体加载使用验证 中通过加载与对话验证闭环。五、工程落地视角与 YML 配置的映射关系将 ChatModelNode 放回整体工程视角用户的配置入口是智能体 YML 文件。按 第2-3节智能体配置表设计 的设计一个智能体配置所需的最基本信息包括应用名称、智能体描述、智能体模块主要的组件类配置都在智能体模块下AiApi对接 AI 接口base-url、api-key、模型名等ChatModel负责模型创建并把 AiApi 对接进来MCP 工具创建出可供模型调用的工具集。ChatModelNode 正是ChatModel MCP 工具这两块配置的消费方。也就是说用户改 YML 里模型相关配置时实际生效位置就是 ChatModelNode 的装配逻辑。这也是本节点装配二字的内涵把静态配置变成运行时可用的模型对象与工具集合。六、总结本节内容可以提炼为三个要点流转机制ChatModelNode 通过doApply完成装配业务后由router路由方法调用实现类的get方法取得下一个节点实现逻辑区与流转区分离保证规则树节点链路的可维护性模型装配ChatModelNode 基于 Spring AI 构建 ChatModel构建前从上下文获取 AiApiNode 实例化的 OpenAiApi 填充到模型构建中实现接口连接与模型构建的解耦MCP 装配将 sse、stdio 等 MCP 工具填充到模型中使模型具备工具调用能力随着装配方式增多后续演进为工厂 策略模式支持本地 mcp 扩展也可替换为 langchain4j、Google ADK 处理 MCP。理解 ChatModelNode就等于理解了整个装配域节点的通用范式——它既是 Spring AI 模型能力与配置文件的交汇点也是装配链路中承上启下的关键一环。配合 第2-4节装配域结构化定义 的框架设计与 第2-7节、第2-8节 的上下游节点你可以完整掌握这套规则树 上下文 工厂的智能体装配方案并将其迁移到自己的 AI 应用工程中。赞分享文档教程后端【免费下载链接】CodeGuide:books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总旨在为大家提供一个清晰详细的学习教程侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助请给予支持(关注、点赞、分享)项目地址https://gitcode.com/gh_mirrors/code/CodeGuide点击查看免费下载相关推荐NeMo Speech索引化 可恢复 Lhotse 数据加载迁移的冲突矩阵详解NeMo Speech索引化 可恢复 Lhotse 数据加载迁移的冲突矩阵详解 本篇技术指南围绕 NeMo Speech 仓库中“迁移到可恢复 DataL文档教程后端AI Agent 脚手架装配域解析AgentNode 节点如何完成 LlmAgent 多智能体装配AI Agent 脚手架装配域解析AgentNode 节点如何完成 LlmAgent 多智能体装配 本文是《AI Agent 脚手架 场景应用》项目第2文档教程后端AI Agent 脚手架 RunnerNode 装配域节点构建 InMemoryRunner 并注册到 Spring 容器AI Agent 脚手架 RunnerNode 装配域节点构建 InMemoryRunner 并注册到 Spring 容器 在《AI Agent 脚手架》的装文档教程后端上一篇Atmosphère 自制固件从 SD 卡准备到配置调优下一篇【亲测免费】 py-ios-device 项目使用教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考