
文档教程后端【免费下载链接】CodeGuide:books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总旨在为大家提供一个清晰详细的学习教程侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助请给予支持(关注、点赞、分享)项目地址https://gitcode.com/gh_mirrors/code/CodeGuide点击查看免费下载导读本篇技术指南围绕《AI Agent 脚手架》第2-13节「增强装配-AgentWorkflowNode」展开讲解如何把 LoopAgentNode、ParallelAgentNode、SequentialAgentNode 三个智能体节点的流转判断职责收拢到 AgentWorkflowNode 一个节点上让三个功能 Agent 节点只负责业务处理、不再负责下一个该流转到谁。读完本文你将掌握如何用currentStepIndex原子步骤指针 currentAgentWorkflow当前值重构工作流上下文如何让每个节点处理完都回环到 AgentWorkflowNode 进行统一分发决策从而编排出并行研究 串行汇总这类复杂嵌套智能体并通过 YML 配置与单测完成验证。一、本章诉求为什么要把流转决策收拢在 第2-8节装配域节点-AgentWorkflowNode 和 第2-9节装配域节点-Loop、Parallel、Sequential 中工作流编排由 AgentWorkflowNode 向 LoopAgentNode、ParallelAgentNode、SequentialAgentNode 三个节点流转节点之间存在交叉流转例如 LoopAgent 处理完要自己判断是否进入 SequentialAgentSequentialAgent 又要决定是否回到 LoopAgent。这种每个节点各自判断下一个是谁的设计在组合变多后会带来两个问题职责不清晰功能 Agent 节点既要处理自己的业务又要背负流程流转的判断逻辑扩展不灵活每新增一种流程编排方式都要在多个节点里同步修改流转逻辑。因此本章换一种设计方式增强 AgentWorkflowNode 的流转能力让 LoopAgentNode、ParallelAgentNode、SequentialAgentNode 不再负责判断流转而是每个流程处理完毕后都回到 AgentWorkflowNode 中进行流转决策。这样三个功能 Agent 节点的职责更加单一清晰AgentWorkflowNode 成为唯一的分发中心我们可以组合出更为复杂的智能体编排。旧版流程AgentWorkflowNode - Loop/Parallel/Sequential 各节点交叉流转每个节点各自判断下一个 新版流程AgentWorkflowNode分发中心- Loop/Parallel/Sequential 处理业务 - 回到 AgentWorkflowNode 决策 - ... - RunnerNode用一句话概括AgentWorkflowNode 是分发中心三个智能体节点处理完业务后都回到 AgentWorkflowNode 即可下一个节点是谁永远由 AgentWorkflowNode 说了算。二、流程设计单点决策、回环流转新版流程的核心思想是每个节点流转完都重新回到 AgentWorkflowNode 节点进行决策左侧是旧版流程LoopAgentNode、ParallelAgentNode、SequentialAgentNode 每个节点交叉流转右侧是本次的新版流程所有的流转都由 AgentWorkflowNode 负责三个功能 Agent 节点的职责更清晰由此AgentWorkflowNode 成为分发中心三个智能体节点处理完业务后都回到 AgentWorkflowNode 即可。与此同时在 第2-12节增强装配-RunnerNode 中已经实现了 RunnerNode 的增强用户如果只配置一个基础 Agent不配置 loop、parallel、sequential 流程则 AgentWorkflowNode 判断agentWorkflows为空后直接流转到 RunnerNodeRunnerNode 再根据配置中runner声明的 agentName 从上下文按名称取智能体构建 InMemoryRunner。本节则是在此基础上把AgentWorkflowNode 什么时候流转、按什么规则流转补完整形成闭环。整体装配链路结合 第2-11节智能体加载使用验证 的启动加载程序启动 - 读取 yml 智能体配置 - AiApiNode - ChatModelNode - AgentNode - AgentWorkflowNode统一分发- Loop/Parallel/Sequential 子节点处理 - 回环 AgentWorkflowNode - 配置遍历完毕currentAgentWorkflow 为 null- RunnerNode 构建 InMemoryRunner - 注册进 Spring 容器 - 会话对话三、功能实现1. 工程结构与改造要点本章的工程改动聚焦在四个节点类上修改LoopAgentNode、ParallelAgentNode、SequentialAgentNode三个节点中的流转操作都转移到AgentWorkflowNode处理在AgentWorkflowNode中要拿到当前agentWorkflows配置的列表中第 N 个步骤把拿到的值作为当前信息存储到上下文之后流转到任何一个节点该节点只负责从上下文取到当前值即可。从源码结构看参见 notes.md 的面试归档整套装配域采用组合模式 责任链思维构建了节点Node处理管道定义统一的IArmoryService接口和AbstractArmorySupport抽象类所有节点遵循相同规范通过上下文对象DynamicContext在节点间传递配置数据。本节正是对这条责任链上流转判断环节的重构。2. 核心模块2.1 定义上下文 DynamicContext在AgentWorkflowNode中定义静态内部类DynamicContext即DefaultArmoryFactory.DynamicContext的演进代码如下Data Builder AllArgsConstructor NoArgsConstructor public static class DynamicContext { /** * LLM API */ private OpenAiApi openAiApi; /** * 对话模型 */ private ChatModel chatModel; /** * 原子安全的递进步骤 */ private AtomicInteger currentStepIndex new AtomicInteger(0); /** * 当前的智能体 */ private AiAgentConfigTableVO.Module.AgentWorkflow currentAgentWorkflow; /** * 智能体组 */ private MapString, BaseAgent agentGroup new HashMap(); private MapString, Object dataObjects new HashMap(); }与旧版上下文相比本次改动有两点去掉agentWorkflows列表值增加currentAgentWorkflow当前值上下文不再持有整个流程列表只持有当前正在处理的那一个步骤对象职责更聚焦增加currentStepIndex原子步骤指针每完成一个步骤则迭代 1从agentWorkflows渠道取到的当前对象存储到currentAgentWorkflow这样判断流转会更方便。其中currentStepIndex使用AtomicInteger实现原子安全的递进步骤在多线程访问装配上下文时保证步骤计数线程安全。这一步设计是项目中演进式迭代的体现先按直觉把整个列表放进上下文再演进为指针 当前值的轻量方案方便读者积累多种设计积累。2.2 增强流转AgentWorkflowNode 的 doApply 与 get增强后的AgentWorkflowNode完整代码如下Slf4j Service public class AgentWorkflowNode extends AbstractArmorySupport { Resource private LoopAgentNode loopAgentNode; Resource private ParallelAgentNode parallelAgentNode; Resource private SequentialAgentNode sequentialAgentNode; Resource private RunnerNode runnerNode; Override protected AiAgentRegisterVO doApply(ArmoryCommandEntity requestParameter, DefaultArmoryFactory.DynamicContext dynamicContext) throws Exception { log.info(Ai Agent 装配操作 - AgentWorkflowNode); AiAgentConfigTableVO aiAgentConfigTableVO requestParameter.getAiAgentConfigTableVO(); ListAiAgentConfigTableVO.Module.AgentWorkflow agentWorkflows aiAgentConfigTableVO.getModule().getAgentWorkflows(); // 如果未配置 agentWorkflows 则直接流转到 RunnerNode if (null agentWorkflows || agentWorkflows.isEmpty() || dynamicContext.getCurrentStepIndex() agentWorkflows.size()) { // 设置结果值 dynamicContext.setCurrentAgentWorkflow(null); // 路由下节点 return router(requestParameter, dynamicContext); } // 设置当前判断流程对象 dynamicContext.setCurrentAgentWorkflow(agentWorkflows.get(dynamicContext.getCurrentStepIndex())); // 步骤值增加 dynamicContext.addCurrentStepIndex(); return router(requestParameter, dynamicContext); } Override public StrategyHandlerArmoryCommandEntity, DefaultArmoryFactory.DynamicContext, AiAgentRegisterVO get(ArmoryCommandEntity requestParameter, DefaultArmoryFactory.DynamicContext dynamicContext) throws Exception { AiAgentConfigTableVO.Module.AgentWorkflow currentAgentWorkflow dynamicContext.getCurrentAgentWorkflow(); // 没有下一个节点流转到结束节点 if (null currentAgentWorkflow) { return runnerNode; } String type currentAgentWorkflow.getType(); AgentTypeEnum agentTypeEnum AgentTypeEnum.fromType(type); if (null agentTypeEnum) { throw new RuntimeException(agentWorkflow type is error!); } String node agentTypeEnum.getNode(); return switch (node) { case loopAgentNode - loopAgentNode; case parallelAgentNode - parallelAgentNode; case sequentialAgentNode - sequentialAgentNode; default - runnerNode; }; } }两个方法各司其职构成取值 分发的完整闭环doApply核心是取步骤值类似一个 for 循环。逻辑分三步判断是否配置了agentWorkflows或步骤指针是否已经走完列表currentStepIndex agentWorkflows.size()如果是则dynamicContext.setCurrentAgentWorkflow(null)并路由走——置空表示流程已经全部处理完毕否则从agentWorkflows中取出currentStepIndex对应的当前步骤对象设置到上下文currentAgentWorkflow步骤指针 1addCurrentStepIndex()然后router路由到下一节点。get核心是节点分发。逻辑分三步从上下文取出currentAgentWorkflow判断是否为 null为 null 表示没有要处理的节点了直接进入runnerNode结束节点非 null 时读取type通过AgentTypeEnum.fromType(type)转为枚举再从枚举拿到节点名称node用switch表达式分发到loopAgentNode、parallelAgentNode、sequentialAgentNode默认走runnerNode。若type无法解析为合法枚举则抛出RuntimeException(agentWorkflow type is error!)及时暴露配置错误。从源码结构可以推断AgentTypeEnum承担了配置类型 - 节点标识的映射职责switch分发后无论走哪个子节点子节点处理完都会再次路由回agentWorkflowNode从而形成AgentWorkflowNode 取值分发 - 子节点执行 - 回环 AgentWorkflowNode 再取值分发的循环直到currentAgentWorkflow为 null 落入 RunnerNode。2.3 子智能体节点只处理业务不负责流转三个子节点的改造思路完全一致从上下文取当前值构建 Agent处理完路由回agentWorkflowNode。LoopAgentNodeService public class LoopAgentNode extends AbstractArmorySupport { Override protected AiAgentRegisterVO doApply(ArmoryCommandEntity requestParameter, DefaultArmoryFactory.DynamicContext dynamicContext) throws Exception { log.info(Ai Agent 装配操作 - LoopAgentNode); AiAgentConfigTableVO.Module.AgentWorkflow currentAgentWorkflow dynamicContext.getCurrentAgentWorkflow(); ListBaseAgent subAgents dynamicContext.queryAgentList(currentAgentWorkflow.getSubAgents()); LoopAgent loopAgent LoopAgent.builder() .name(currentAgentWorkflow.getName()) .description(currentAgentWorkflow.getDescription()) .subAgents(subAgents) .maxIterations(currentAgentWorkflow.getMaxIterations()) .build(); dynamicContext.getAgentGroup().put(currentAgentWorkflow.getName(), loopAgent); return router(requestParameter, dynamicContext); } Override public StrategyHandlerArmoryCommandEntity, DefaultArmoryFactory.DynamicContext, AiAgentRegisterVO get(ArmoryCommandEntity requestParameter, DefaultArmoryFactory.DynamicContext dynamicContext) throws Exception { return getBean(agentWorkflowNode); } }改动要点doApply修改为从上下文的dynamicContext.getCurrentAgentWorkflow()获取当前节点数据名称、描述、子智能体列表、最大迭代次数maxIterations通过LoopAgent.builder()构建循环智能体并放入dynamicContext.getAgentGroup()随后router路由get则负责流转回getBean(agentWorkflowNode)把节点流转的判断权交还给 AgentWorkflowNode。ParallelAgentNodeService public class ParallelAgentNode extends AbstractArmorySupport { Override protected AiAgentRegisterVO doApply(ArmoryCommandEntity requestParameter, DefaultArmoryFactory.DynamicContext dynamicContext) throws Exception { log.info(Ai Agent 装配操作 - ParallelAgentNode); AiAgentConfigTableVO.Module.AgentWorkflow currentAgentWorkflow dynamicContext.getCurrentAgentWorkflow(); ListBaseAgent subAgents dynamicContext.queryAgentList(currentAgentWorkflow.getSubAgents()); ParallelAgent parallelAgent ParallelAgent.builder() .name(currentAgentWorkflow.getName()) .subAgents(subAgents) .description(currentAgentWorkflow.getDescription()) .build(); dynamicContext.getAgentGroup().put(currentAgentWorkflow.getName(), parallelAgent); return router(requestParameter, dynamicContext); } Override public StrategyHandlerArmoryCommandEntity, DefaultArmoryFactory.DynamicContext, AiAgentRegisterVO get(ArmoryCommandEntity requestParameter, DefaultArmoryFactory.DynamicContext dynamicContext) throws Exception { return getBean(agentWorkflowNode); } }代码修改方式同LoopAgentNode从上下文取currentAgentWorkflow构建ParallelAgent并放入agentGroupget回环agentWorkflowNode。SequentialAgentNodeService public class SequentialAgentNode extends AbstractArmorySupport { Override protected AiAgentRegisterVO doApply(ArmoryCommandEntity requestParameter, DefaultArmoryFactory.DynamicContext dynamicContext) throws Exception { log.info(Ai Agent 装配操作 - SequentialAgentNode); AiAgentConfigTableVO.Module.AgentWorkflow currentAgentWorkflow dynamicContext.getCurrentAgentWorkflow(); ListBaseAgent subAgents dynamicContext.queryAgentList(currentAgentWorkflow.getSubAgents()); SequentialAgent sequentialAgent SequentialAgent.builder() .name(currentAgentWorkflow.getName()) .description(currentAgentWorkflow.getDescription()) .subAgents(subAgents) .build(); dynamicContext.getAgentGroup().put(currentAgentWorkflow.getName(), sequentialAgent); return router(requestParameter, dynamicContext); } Override public StrategyHandlerArmoryCommandEntity, DefaultArmoryFactory.DynamicContext, AiAgentRegisterVO get(ArmoryCommandEntity requestParameter, DefaultArmoryFactory.DynamicContext dynamicContext) throws Exception { return getBean(agentWorkflowNode); } }代码修改方式同LoopAgentNode。三个节点改造后的共同形态doApply只做从上下文取当前值 - 构建对应 Agent - 写入 agentGroup - 路由get统一返回agentWorkflowNode。这正是每个节点都回到 AgentWorkflowNode 决策的回环设计让 AgentWorkflowNode 成为唯一的流转分发中心。3. 设计要点小结单一职责Loop/Parallel/Sequential 三种智能体节点的职责收敛为构建对应类型的 Agent流转判断从三个节点中彻底移除单点决策所有下一步是谁的决策集中在 AgentWorkflowNode 的get方法中通过AgentTypeEnum映射type - node新增编排类型只需扩展枚举与 switch 分支上下文轻量化DynamicContext从持有整个agentWorkflows列表改为持有currentStepIndex currentAgentWorkflow配合AtomicInteger保证步骤推进的原子性。四、测试验证1. 修改配置文件测试使用parallel_research_app.yml完整配置如下ai: agent: config: tables: testAgent02: app-name: ResearchAndSynthesisPipeline agent: agent-id: 100002 agent-name: 测试智能体02 agent-desc: 并行研究并汇总的智能体管道 module: ai-api: base-url: https://apis.itedus.cn api-key: sk-Sp2jx3yeq7x7HJ663bDc9bF0D34b4f609f833840271519B1 completions-path: v1/chat/completions embeddings-path: v1/embeddings chat-model: model: gpt-4.1 tool-mcp-list: - sse: name: baidu-search base-uri: https://appbuilder.baidu.com/v2/ai_search/mcp/ sse-endpoint: sse?api_keybce-v3/ALTAK-3zODLb9qHozIftQlGwez5/2696e92781f5bf1ba1870e2958f239fd6dc822a4 request-timeout: 5000 agents: - name: RenewableEnergyResearcher description: Researches renewable energy sources. instruction: | You are an AI Research Assistant specializing in energy. Research the latest advancements in renewable energy sources. Use the Google Search tool provided. Summarize your key findings concisely (1-2 sentences). Output *only* the summary. output-key: renewable_energy_result - name: EVResearcher description: Researches electric vehicle technology. instruction: | You are an AI Research Assistant specializing in transportation. Research the latest developments in electric vehicle technology. Use the Google Search tool provided. Summarize your key findings concisely (1-2 sentences). Output *only* the summary. output-key: ev_technology_result - name: CarbonCaptureResearcher description: Researches carbon capture methods. instruction: | You are an AI Research Assistant specializing in climate solutions. Research the current state of carbon capture methods. Use the Google Search tool provided. Summarize your key findings concisely (1-2 sentences). Output *only* the summary. output-key: carbon_capture_result - name: SynthesisAgent description: Combines research findings into a structured report. instruction: | You are an AI Assistant responsible for combining research findings into a structured report. Your primary task is to synthesize the following research summaries, clearly attributing findings to their source areas. Structure your response using headings for each topic. Ensure the report is coherent and integrates the key points smoothly. **Crucially: Your entire response MUST be grounded *exclusively* on the information provided in the Input Summaries below. Do NOT add any external knowledge, facts, or details not present in these specific summaries.** **Input Summaries:** * **Renewable Energy:** {renewable_energy_result} * **Electric Vehicles:** {ev_technology_result} * **Carbon Capture:** {carbon_capture_result} **Output Format:** ## Summary of Recent Sustainable Technology Advancements ### Renewable Energy Findings (Based on RenewableEnergyResearchers findings) [Synthesize and elaborate *only* on the renewable energy input summary provided above.] ### Electric Vehicle Findings (Based on EVResearchers findings) [Synthesize and elaborate *only* on the EV input summary provided above.] ### Carbon Capture Findings (Based on CarbonCaptureResearchers findings) [Synthesize and elaborate *only* on the carbon capture input summary provided above.] ### Overall Conclusion [Provide a brief (1-2 sentence) concluding statement that connects *only* the findings presented above.] Output *only* the structured report following this format. Do not include introductory or concluding phrases outside this structure, and strictly adhere to using only the provided input summary content. agent-workflows: - type: parallel name: ParallelWebResearchAgent description: Runs multiple research agents in parallel to gather information. sub-agents: - RenewableEnergyResearcher - EVResearcher - CarbonCaptureResearcher - type: sequential name: ResearchAndSynthesisPipeline description: Coordinates parallel research and synthesizes the results. sub-agents: - ParallelWebResearchAgent - SynthesisAgent runner: agent-name: ResearchAndSynthesisPipeline这份配置是验证增强装配效果的关键需要理解几个字段的设计意图agent-workflows配置了ParallelWebResearchAgent与ResearchAndSynthesisPipeline两个流程步骤第一个是type: parallel并行把三个 Researcher 智能体并行编排第二个是type: sequential串行把ParallelWebResearchAgent与SynthesisAgent串行编排。两个步骤依次被 AgentWorkflowNode 的currentStepIndex指针逐个取出可以测试循环回环处理逻辑runner配置agent-name: ResearchAndSynthesisPipeline指定装配到 InMemoryRunner 的智能体名称这正是 第2-12节增强装配-RunnerNode 中 RunnerNode 按名称从上下文取智能体的设计在此处落地agents中四个智能体通过output-key定义输出键三个 Researcher 的结果renewable_energy_result、ev_technology_result、carbon_capture_result通过{...}占位符注入 SynthesisAgent 的 instruction形成并行研究 - 串行汇总的数据链路chat-model.tool-mcp-list以 sse 方式挂载了baidu-search搜索工具让 Researcher 智能体具备实时联网检索能力request-timeout: 5000控制请求超时。整个配置对应的执行链路AgentWorkflowNode 取出ParallelWebResearchAgent- ParallelAgentNode 并行构建三个研究智能体 - 回环 AgentWorkflowNode - 取出ResearchAndSynthesisPipeline- SequentialAgentNode 串行构建并行研究 汇总 - 回环 AgentWorkflowNode - 步骤指针走完置空后流转 RunnerNode - 按agent-name装配 InMemoryRunner。2. 测试方法Test public void test_handlerMessage_03(){ AiAgentRegisterVO aiAgentRegisterVO applicationContext.getBean(100002, AiAgentRegisterVO.class); String appName aiAgentRegisterVO.getAppName(); InMemoryRunner runner aiAgentRegisterVO.getRunner(); Session session runner.sessionService() .createSession(appName, xiaofuge) .blockingGet(); Content userMsg Content.fromParts(Part.fromText(你具备哪些能力)); FlowableEvent events runner.runAsync(xiaofuge, session.id(), userMsg); ListString outputs new ArrayList(); events.blockingForEach(event - outputs.add(event.stringifyContent())); log.info(测试结果:{}, JSON.toJSONString(outputs)); }测试执行结果节选26-01-01.13:20:04.106 [main ] INFO test_handlerMessage_03 - 测试结果:[我可以帮助你查询和分析可再生能源领域的最新进展包括太阳能、风能、生物能、地热能、海洋能等各类新能源技术的发展趋势、创新成果及政策动态。同时我可以利用互联网搜索功能快速获取最新科研成果、行业动态和相关数据并将关键信息进行简明总结。,我是专注于电动汽车技术electric vehicle technology研究的AI助理具备以下能力\n\n1. **新技术检索与总结**我能利用Google搜索等工具快速检索最新的电动汽车技术发展、行业动态和科研突破并进行简洁明了的总结。\n2. **趋势与前沿分析**能够获取并分析行业趋势例如电池创新、驱动系统进展、智能网联、电驱动新材料等领域的最新动向。\n3. **政策与市场信息搜集**可查询全球各地与电动汽车相关的政策、市场增长、补贴政策等信息。\n4. **参考文献和数据追溯**能帮助定位权威期刊、会议论文、专利等技术文档提供学术研究支持。\n5. **技术对比与评估**可对比不同品牌、技术路径或产品分析其优劣及市场应用前景。\n6. **简明交流和摘要能力**围绕电动汽车技术可将复杂技术信息压缩为1-2句话的核心摘要便于快速理解。\n\n如果你有特定方向的需求如电池、驱动控制、充电技术等我也能定向进行最新信息搜索和研究。,我具备以下能力专注于碳捕集carbon capture相关的研究与信息获取\n\n1. 实时网络检索我可以通过专业搜索工具实时获取最新关于碳捕集方法、技术进展、应用案例、政策法规等公开信息。\n2. 资料梳理与总结对检索到的信息快速提炼要点进行结构化、简明扼要的总结便于决策与参考。\n3. 技术分类与比较能够对比不同类型的碳捕集技术如直接空气捕集、点源捕集、碳矿化、生物碳捕集等的原理、优缺点和应用现状。\n4. 最新动态追踪跟踪全球范围内碳捕集领域的最新动态、前沿研究和重大项目进展。\n5. FAQ解答针对碳捕集相关的常见问题如成本、能效、行业难点等进行专业、准确回答。\n\n如需获取某一具体问题或领域的最新信息请直接告诉我,## Summary of Recent Sustainable Technology ...]运行后可以看到三个并行研究的 Researcher 智能体分别返回各自的领域能力介绍随后 SynthesisAgent 输出结构化汇总报告。测试结果验证了增强后的装配方式是没问题的——并行节点与串行节点在 AgentWorkflowNode 的统一分发下被正确装配并执行。五、读者作业简单作业完成本节功能的编写理解此处的架构设计。对于节点的流转打开思路之后活学活用。可以对照 第2-8节装配域节点-AgentWorkflowNode 与 第2-9节装配域节点-Loop、Parallel、Sequential 的旧版设计体会交叉流转与回环分发两种方案的差异与演进动机复杂作业尝试配置一个多层嵌套的智能体例如并行 - 串行 - 再并行的三层结构来验证这样的装配。配置时注意agent-workflows中每一步的type与sub-agents的引用关系以及runner.agent-name最终指向的汇总智能体名称。六、总结本节通过把流转决策收拢到 AgentWorkflowNode完成了对智能体装配域的一次关键演进上下文重构DynamicContext以currentStepIndexAtomicInteger 原子步骤指针currentAgentWorkflow当前流程对象替代原先持有整个agentWorkflows列表的设计回环分发AgentWorkflowNode.doApply负责按步骤取值 步骤推进get负责按 type 分发到具体节点子节点处理完统一回环agentWorkflowNode职责清晰LoopAgentNode、ParallelAgentNode、SequentialAgentNode 只负责从上下文取值构建对应 Agent不再各自判断流转配置驱动通过agent-workflows编排步骤、runner.agent-name指定入口智能体即可组合出并行研究 串行汇总这类复杂嵌套智能体并借助单测完成端到端验证。配合 第2-12节增强装配-RunnerNode 的 RunnerNode 增强整套智能体装配链路Api - ChatModel - Agent - Workflow - Runner - Spring 容器在配置即编排的思路下变得完整且可扩展为后续 第2-14节增强装配-本地mcp、第2-15节增强装配-回调plugin、第2-20节增强装配-skills 等更多能力扩展奠定了流转基础。赞分享文档教程后端【免费下载链接】CodeGuide:books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总旨在为大家提供一个清晰详细的学习教程侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助请给予支持(关注、点赞、分享)项目地址https://gitcode.com/gh_mirrors/code/CodeGuide点击查看免费下载相关推荐GitHub加速插件让代码下载速度提升50倍的秘密武器GitHub加速插件让代码下载速度提升50倍的秘密武器 你是否曾在深夜加班时面对GitHub上缓慢的下载进度条感到绝望当团队急需某个开源库的代码而你只能文档教程后端Vue 2 脚手架增强插件unplugin-vue2-script-setup 安装教程Vue 2 脚手架增强插件unplugin vue2 script setup 安装教程 1. 项目介绍 unplugin vue2 script setupGraph Engineering 从 0 到 1把单一 Agent 循环升级为多节点图工作流learn-harness-engineering 第 14 课Graph Engineering 从 0 到 1把单一 Agent 循环升级为多节点图工作流learn harness engineering 第 14上一篇终极网页表格提取指南用requests-html轻松获取数据下一篇CNNDetection实战教程5分钟学会识别AI生成的假图片创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考