spring ai alibaba原理源码分析(一)-架构
简介spring ai alibaba是java的ai agent框架本系列将深入剖析 Spring AI Alibaba 的源码实现与核心原理不仅指导agent的开发更为了改造框架增加新特性系列内容系列(一)架构 本文系列(二)agentgraph分析ReactAgent/FlowAgent/a2a agentStateGraphCompiledGraph系列(三)模型钩子和拦截器消息/结构化输出系列(四)上下文工程记忆系列(五)调用 工具/MCP/skills/CLI系列(六)RAG系列(七)可观测和评估系列(八)多agent 工作流/agentic系列(九)产品级agent示例解释 DataAgent热点agent发布列表提示词管理评估观测agent分发执行架构关键词Agent ReActAgent/FlowAgentpipeline/agenticflow/graph缩写spring ai缩写saspring ai alibaba本文缩写saa参考资料https://java2ai.com/docs/overview spring ai alibaba官网文档逻辑架构上图是saa的逻辑架构图, 展示了 Spring AI Alibaba的整体架构层次体现了“以 ReactAgent 为核心、Graph 为运行时基座”的设计。整个系统可划分为四个主要层级用户角色层业务人员 admin 提示词配置观测评估开发人员 studio 提供chatui核心框架层agent framework graphagent framework面向开发者的核心 API 层提供高阶图形范式graph-core作为底层运行时引擎承担工作流编排与状态管理职责。starter自动配置。spring ai扩展扩展体系覆盖 AI 应用关键能力域Spring AI 生态位于最底层saa建立在spring ai生态上代表框架所依赖的通用 AI 能力模块组件视图上图是saa原理源码分析场景视图每个包对应着saa/sa组件或特性是本文分析的目录agent/graphagent和图紧密相关可以认为agent是一种既定的”图”形开发人员可以使用graph低层api直接构建graph也可以使用agent获得既定的图形modelsa对大模型的封装模型包括Chat嵌入audioimage等类型上下文工程/记忆(memory)调用(calling)calling可能是agent发展演变最快的部分最初的工具到mcp最近的CLIskills钩子和拦截器saa的组件钩子和拦截器不只是给用户嵌入逻辑负责saa很多核心业务是很重要的组件评估saa的模型评估不是基于sa的评估而是自己的一套体系构建了一个数据集 -评估器 -实验 -报告的评估闭环可观测大模型自主性高功能强检测消息/结构化输出RAGMAS多个agent协同工作每个agent有清晰而独立的智能studio简易的agent管理工具嵌入到agent带有agent面板列表agent提供chat界面用于调试agent是开发agent的便利工具admin作为管理台有几个重量级的功能agent的发布和列表提示词管理评估和数据集观测值得分析开发架构本章以saa的agent示例DeepResearch分析saa的开发架构。DeepResearch分析用户输入给出格式化研究报告。DeepResearch是ReactAgent遵循思考行动(工具/MCP调用)观测的循环迭代。上图是DeepResearch启动agent内嵌了studio组件打开http://localhost:8080/chatui/index.html可看到agent面板点击agent打开chatui可与agent交互关于MCP服务示例使用mcp.jina.ai MCP 服务器外部资料搜索的工具可改为魔搭的bing搜索mcp服务源码解释本节解释agent源码下图是类图类互动图蓝色类是DeepResearch浅绿色是studio橙色是其他包DeepResearch是spring boot应用AgentStaticLoader标注Componentspring boot扫描实例化AgentStaticLoader负责new DeepResearchAgent也为控制器服务获取agent列表DeepResearchAgent虽然名字带agent但不是真正的agent没有继承Agent类DeepResearchAgent负责构建agent包括agent依赖的组件modelhook和拦截器等(图上只展示部分的hook和拦截器)DeepRearch是真正的agent是主agent引用两个子agentresearch-agent 负责搜集资料critique-agent 负责评审生成的研究报告ToolCallbackProvider工具调用提供者本实例是MCP封装为工具MCP将在系列-”调用”分析下面介绍几个实例用到的hook和拦截器hook和拦截器在agent框架是关键的组件提供核心工具如FilesystemInterceptor推理规划如TodoListInterceptor维护上下文如SummarizationHookhook和拦截器不仅仅给用户扩展更是agent框架的提供核心功能TodoListInterceptor思考生成todo清单FilesystemInterceptor提供文件系统工具提供ls, read_file, write_file, edit_file等文件操作本实例todo清单和生成的研究报告都写入文件SubAgentInterceptor构建子agent包装成工具studio侧studio是内置的web服务主要功能是列表agent与agent对话(chatui)SaaStudioWebModuleAutoConfigurationstudio包声明的自动配置类spring boot调起studio由此启动同时该类声明了ComponentScan扫描studio范围的spring对象StudioLoaderAutoConfiguration这个类实例化ContextScanningAgentLoaderContextScanningAgentLoader负责扫描上下文使用ApplicationContext获取agent实例但实例方法声明了ConditionalOnMissingBean(AgentLoader.class)在DeepResearchAgent已经声明了AgentStaticLoaderContextScanningAgentLoader没有实例化设计有点奇怪最初以为是扫描AgentLoader然后获取agent beanAgentController/ExecutionController两个处理web请求的控制器列表agent依赖AgentStaticLoader执行agent总结agent的开发包括model工具(toolmcp)钩子和拦截器agent可以引用其他agent完成指定的任务本实例还引用studio提供agent的列表页面对话。agent loader机制构建和初始Agent。最后还有最重要的角色未提及上下文工程大模型正确的工作关键是提示词将在系列-上下文工程分析运行本节观测一下agent运行情况agent首先todolist出任务规划规划出6个任务research agent利用搜索工具获取资料返回主agentcritique-agent评估返回主agent主agent出报告形成思考-工具调用(搜索)-评估的迭代闭环最后生成研究报告NEXT系列(二)agentgraph
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2553545.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!