乐于分享
好东西不私藏

Spring AI 实战:多 Agent 协作实战 —— 分工拆解复杂旅游行程任务

Spring AI 实战:多 Agent 协作实战 —— 分工拆解复杂旅游行程任务

前文我们依次学习了基础对话、聊天记忆(MySQL 持久化)、Tool 工具调用,单个 Agent 只能兼顾规划、查时间、查天气全部工作,任务混杂容易输出混乱。本章进入多 Agent(Multi-Agent),把复杂任务拆分为多个专业子智能体,由总调度 Agent 统一分发、汇总结果,实现职责分离、输出更专业稳定。

一、什么是多 Agent,为什么需要多 Agent?

1. 单 Agent 痛点
单个智能体承载全部任务:行程规划、天气查询、预算核算、餐饮推荐,系统提示词冗长,模型容易混淆职责,长上下文下回答质量大幅下降;新增业务能力就要修改一套提示词,维护成本极高。
2. 多 Agent 核心思想
职责拆分、专人专岗:把复杂大任务拆解多个垂直专业子 Agent,再由一个调度 Supervisor Agent 接收用户需求、分配任务、汇总所有子 Agent 输出,整合为最终完整答案。类比企业团队:前台调度(Supervisor)→ 行程规划专员 / 天气专员 / 预算专员(子 Agent)。
3. 多 Agent 适用场景
  • 业务流程复杂、包含多维度信息输出(旅游、方案撰写、电商售后);
  • 每个领域有独立专业知识,需要差异化系统提示词;
  • 系统需持续新增业务模块,希望低耦合扩展;
  • 长对话、长上下文场景,拆分降低单轮提示词长度
二、主流通用 Multi-Agent 架构模式详解
当前,业界通用的Spring AI / LangGraph / AutoGen 广泛采用Supervisor 主管调度、Hierarchical 分层树形、Pipeline 流水线串行、Decentralized 去中心化对等协作 等四种多智能体架构,下面分析这四种多智能体架构模式的核心思想和适用场景,帮助开发者根据业务选型。
模式 1:Supervisor 主管调度模式(本文案例采用)
由中央协调智能体作为唯一入口,所有子 Agent 互不通信,仅与 Supervisor 交互;调度层负责需求解析、任务分发、结果汇总、冲突修正。
此模式适用于中小型业务、垂直领域综合问答(旅游方案、企业咨询、客服系统),也是 Spring AI 入门首选模式。
模式 2:Hierarchical 分层树形模式
多级树形分层,顶层主管不直接操作底层子 Agent,只对接中层 Manager;每个中层管理一组垂直子智能体,层层分发、层层汇总。
此模式多用于大型企业平台、多产品线综合 Agent 系统(金融、政企复杂业务)。
模式 3:Pipeline 流水线串行模式
智能体按固定线性顺序串行执行,前一个 Agent 输出作为后一个输入,任务有强先后依赖。
此模式流程固定、可预测,便于加校验规则,适合文档处理、报告生成、数据清洗等标准化流水线任务。
模式 4:Decentralized 去中心化对等协作模式(Swarm 蜂群)
无中心控制,所有智能体对等,自主协商、互相传递信息,自主判断是否需要其他 Agent 协助。
架构模式对表
架构模式
控制方式
实现难度
并发性能
可调试性
典型业务
Supervisor 主管
集中控制
中等
极佳
旅游、客服、综合问答
Hierarchical 分层
树形分级
良好
政企、金融多模块平台
Pipeline 流水线
串行固定
极低
极佳
文档、数据处理流水线
去中心化蜂群
无中心
极高
创意、学术辩论
三、案例说明
接下来,通过案例详细解析如何使用Spring AI 实现多智能体架构。案例使用Supervisor 主管 Multi-Agent架构模式,延续之前的旅游行程规划案例,各Agent具体分工如下
  • 调度 Supervisor Agent:总入口,接收用户完整出行需求,拆解子任务,调用对应子 Agent,最后汇总所有输出整合完整行程;
  • 行程规划子 Agent:负责景点、交通、每日时段安排;
  • 天气查询子 Agent:内置时间工具,查询目的地实时天气,给出穿搭建议;
  • 预算核算子 Agent:根据天数、人数、景点门票预估整体开销。
执行流程:用户提问 → Supervisor 拆解任务 → 并行 / 串行调用行程 / 天气 / 预算子 Agent → 收集三份结果 → 整合输出完整旅游方案
四、项目准备
在实现项目之前,需要选择支持该功能的 AI 模型。本文选择智普 AI 大模型进行演示,同时,需先完成以下准备工作:
1. 基础信息
  • Spring Boot 3.5.3 + Spring AI 1.0.0
  • JDK17 智谱 GLM-4-Flash
  • 项目名:Weiz-SpringAI-MultiAgent
2. 完整项目分层结构
com.example.weizspringai├── WeizSpringAiMultiAgentApplication.java  # 启动类├── agent                       # 所有Agent定义│   ├── SupervisorAgent.java    # 总调度Agent│   ├── ItineraryAgent.java     # 行程子Agent│   ├── WeatherAgent.java       # 天气子Agent(携带时间Tool)│   └── BudgetAgent.java        # 预算子Agent├── tool                        # 复用前文时区工具│   ├── TimeMethodTool.java│   └── CityRequest.java├── service                     # 多Agent调度业务服务│   └── MultiAgentService.java└── controller                  # 对外HTTP接口    └── MultiAgentController.java
3. pom.xml 完整依赖
<?xml version="1.0" encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <parent>        <groupId>com.example</groupId>        <artifactId>Weiz-SpringAI-MultiAgent</artifactId>        <version>0.0.1-SNAPSHOT</version>    </parent>    <artifactId>Weiz-SpringAI-MultiAgent-Simple</artifactId>    <name>Weiz-SpringAI-MultiAgent-Simple</name>    <description>Weiz-SpringAI-MultiAgent-Simple</description>    <properties>        <java.version>17</java.version>        <maven.compiler.source>17</maven.compiler.source>        <maven.compiler.target>17</maven.compiler.target>    </properties>    <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>        <dependency>            <groupId>org.springframework.ai</groupId>            <artifactId>spring-ai-starter-model-zhipuai</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.ai</groupId>            <artifactId>spring-ai-client-chat</artifactId>        </dependency>        <dependency>            <groupId>org.projectlombok</groupId>            <artifactId>lombok</artifactId>        </dependency>    </dependencies>    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>        </plugins>    </build></project>
4. application.properties 配置
spring.application.name=Weiz-SpringAI-Agent-Toolsserver.port=8080spring.ai.zhipuai.api-key=你的智谱API Keyspring.ai.zhipuai.base-url=https://open.bigmodel.cn/api/paasspring.ai.zhipuai.chat.options.model=GLM-4-Flashlogging.level.org.springframework.ai=INFOlogging.level.com.example=DEBUG
五、核心代码实现
1. 时区查询 Tool工具为系列前文实现的时区查询 Tool,天气子 Agent 内部会自动调用,用于获取目的地当前时间,为穿搭建议提供时间依据,无需重复开发。
package com.example.weizspringai.tool;import org.springframework.ai.tool.annotation.Tool;import org.springframework.ai.tool.annotation.ToolParam;import org.springframework.stereotype.Component;import java.time.LocalDateTime;import java.time.ZoneId;import java.util.Map;@Componentpublic class TimeMethodTool {    @Tool(description = "根据城市名称获取对应时区当前日期时间")    public String getCityCurrentTime(            @ToolParam(description = "城市名称,如北京、成都、厦门"String city){        Map<StringString> zoneMap = Map.of(                "北京","Asia/Shanghai",                "成都","Asia/Shanghai",                "厦门","Asia/Shanghai",                "伦敦","Europe/London"        );        String zone = zoneMap.getOrDefault(city,"Asia/Shanghai");        return city + " 当前时间:" + LocalDateTime.now(ZoneId.of(zone));    }}
2. 行程规划子 Agent ItineraryAgent
行程规划子 Agent 垂直专注行程规划领域,仅接收用户出行需求,输出每日景点、交通、游玩时长,不涉及天气、预算相关内容,职责单一,提示词轻量化,保证输出精准。
package com.example.weizspringai.agent;import lombok.RequiredArgsConstructor;import org.springframework.ai.chat.client.ChatClient;import org.springframework.stereotype.Component;@Component@RequiredArgsConstructorpublic class ItineraryAgent {    private final ChatClient chatClient;    /** 根据出行需求生成每日景点+交通行程 */    public String generateRoute(String demand){        String sysPrompt = """                你是专业行程规划子Agent,只负责输出每日景点、交通路线、游玩时长;                无需预算、无需天气穿搭,只输出行程结构;                用户需求:{demand}                输出格式:按天划分,上午/下午/晚间三段,标注景点、交通方式、建议停留时长。                """.replace("{demand}", demand);        return chatClient.prompt()                .system(sysPrompt)                .user(demand)                .call()                .content();    }}
3. 天气子 Agent WeatherAgent(内置 Time 工具)
天气子 Agent 绑定 Time 时区 Tool,会自动调用工具获取目的地当前时间,结合季节时段输出穿搭、防晒、防雨建议,仅输出天气相关内容,不干涉行程与预算逻辑。
package com.example.weizspringai.agent;import com.example.weizspringai.tool.TimeMethodTool;import lombok.RequiredArgsConstructor;import org.springframework.ai.chat.client.ChatClient;import org.springframework.stereotype.Component;@Component@RequiredArgsConstructorpublic class WeatherAgent {    private final ChatClient chatClient;    private final TimeMethodTool timeTool;    /** 根据目的地结合当地时间给出出行穿搭建议 */    public String getWeatherAdvice(String destination){        String sysPrompt = """                你是天气穿搭子Agent,先调用工具获取目的地当前时间,再根据季节时段给出出行穿搭、防晒防雨建议,简洁输出。                目的地:{city}                """.replace("{city}", destination);        return chatClient.prompt()                .system(sysPrompt)                .user("查询"+destination+"出行穿搭建议")                .tools(timeTool)                .call()                .content();    }}
4. 预算核算子 Agent BudgetAgent
预算核算子 Agent 仅负责旅游费用核算,自动拆分住宿、门票、餐饮、交通四大开销,计算人均总价,不输出行程、天气相关内容,边界清晰。
package com.example.weizspringai.agent;import lombok.RequiredArgsConstructor;import org.springframework.ai.chat.client.ChatClient;import org.springframework.stereotype.Component;@Component@RequiredArgsConstructorpublic class BudgetAgent {    private final ChatClient chatClient;    /** 根据天数、人数、目的地核算整体预算 */    public String calcBudget(String demand){        String sysPrompt = """                你是旅游预算核算子Agent,仅核算人均总花费,拆分门票、餐饮、交通、住宿四项明细;                不输出行程、天气内容;用户出行需求:{demand}                """.replace("{demand}", demand);        return chatClient.prompt()                .system(sysPrompt)                .user(demand)                .call()                .content();    }}
5. 核心调度 SupervisorAgent
调度 SupervisorAgent是多 Agent 架构核心调度中心,统一接收用户原始需求,串行调用三类子 Agent 获取独立输出,最后汇总全部内容,统一排版整合为一份完整旅游方案,同时内置简易目的地提取逻辑,供天气 Agent 使用。
package com.example.weizspringai.agent;import lombok.RequiredArgsConstructor;import org.springframework.ai.chat.client.ChatClient;import org.springframework.stereotype.Component;@Component@RequiredArgsConstructorpublic class SupervisorAgent {    private final ItineraryAgent itineraryAgent;    private final WeatherAgent weatherAgent;    private final BudgetAgent budgetAgent;    private final ChatClient chatClient;    /** 主调度逻辑:分发任务、汇总三份子结果 */    public String dispatchAndSummary(String userDemand){        // 1. 分发调用三个专业子Agent        String routeResult = itineraryAgent.generateRoute(userDemand);        String dest = extractCity(userDemand); // 提取目的地        String weatherResult = weatherAgent.getWeatherAdvice(dest);        String budgetResult = budgetAgent.calcBudget(userDemand);        // 2. 汇总全部信息,整合完整旅游方案        String summaryPrompt = """                你是总规划师,整合下面三份专业输出,生成一份完整通顺的旅游方案;                【每日行程安排】:%s                【目的地天气与穿搭】:%s                【费用预算明细】:%s                要求结构清晰,分三大块排版,语言亲切,适合出行参考。                """.formatted(routeResult,weatherResult,budgetResult);        // 调用模型整合输出        return chatClient.prompt()                .system(summaryPrompt)                .user("整合完整旅游方案")                .call()                .content();    }    // 简易提取目的地(生产可优化正则/LLM提取)    private String extractCity(String demand){        if(demand.contains("厦门")) return "厦门";        if(demand.contains("成都")) return "成都";        if(demand.contains("北京")) return "北京";        return demand.split("游玩")[0];    }}
6. 业务 Service 层封装
业务统一封装层,Controller 不直接操作 Agent,通过 Service 中转,实现分层解耦,便于后续扩展记忆、权限、日志等通用能力。
package com.example.weizspringai.service;import com.example.weizspringai.agent.SupervisorAgent;import lombok.RequiredArgsConstructor;import org.springframework.stereotype.Service;@Service@RequiredArgsConstructorpublic class MultiAgentService {    private final SupervisorAgent supervisorAgent;    /** 对外统一多Agent执行入口 */    public String generateFullTravelPlan(String userRequest){        return supervisorAgent.dispatchAndSummary(userRequest);    }}
7. Controller 接口
负责对外访问接口,接收用户出行需求参数,调用业务 Service,返回标准化 JSON 结构,便于前端解析展示。
package com.example.weizspringai.controller;import com.example.weizspringai.service.MultiAgentService;import lombok.RequiredArgsConstructor;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import java.util.Map;@RestController@RequestMapping("/multiAgent")@RequiredArgsConstructorpublic class MultiAgentController {    private final MultiAgentService multiAgentService;    @GetMapping("/travelPlan")    public Map<String, Object> travelPlan(@RequestParam("demand") String demand){        String fullPlan = multiAgentService.generateFullTravelPlan(demand);        return Map.of(                "code",200,                "msg","多Agent协作生成完整旅游方案成功",                "userDemand",demand,                "travelPlan",fullPlan,                "agentMode","Supervisor调度 + 行程/天气/预算三子Agent"        );    }}

六、验证测试

1. 测试请求地址

项目启动成功后,在浏览器中访问 地址:

http://localhost:8080/multiAgent/travelPlan?demand=两人去厦门玩三天,偏好海滨景点,不吃辣,人均预算1500以内

2. 执行流程复盘

  • 传入厦门出行需求,Supervisor 提取城市为厦门;
  • 行程 Agent 生成三天海滨每日路线;
  • 天气 Agent 调用 Time 工具获取厦门当前时间,输出夏季穿搭防晒建议;
  • 预算 Agent 拆分住宿、餐饮、门票,控制人均 1500;
  • 调度 Agent 整合三部分内容,结构化输出完整方案。

3. 返回 JSON 结果

{  "agentMode""Supervisor调度 + 行程/天气/预算三子Agent",  "code"200,  "travelPlan""【厦门旅游方案】\n\n一、行程安排\n\n**第一天:鼓浪屿风情之旅**\n- 上午:乘坐轮渡前往鼓浪屿,游览这座充满历史韵味的岛屿,感受其独特的建筑风格和休闲氛围。建议停留时长:2-3小时。\n- 下午:返回厦门岛,前往厦门大学,漫步在校园内,感受这所百年学府的文化底蕴。建议停留时长:1-2小时。\n- 晚间:前往曾厝垵,体验当地的小吃和文艺氛围,享受一个轻松愉快的夜晚。建议停留时长:2-3小时。\n\n**第二天:海滨休闲与宗教文化体验**\n- 上午:前往白城沙滩,享受阳光沙滩的悠闲时光。建议停留时长:2-3小时。\n- 下午:参观南普陀寺,感受佛教文化的庄严与宁静。建议停留时长:1-2小时。\n- 晚间:沿环岛路骑行,欣赏厦门的夜景,享受运动的乐趣。建议停留时长:2-3小时。\n\n**第三天:历史遗迹与自然生态探索**\n- 上午:参观胡里山炮台,了解厦门的历史变迁。建议停留时长:1-2小时。\n- 下午:游览厦门植物园,探索丰富的植物种类和生态环境。建议停留时长:2-3小时。\n- 晚间:漫步至沙坡尾,感受老厦门的生活气息。建议停留时长:1-2小时。\n\n二、目的地天气与穿搭\n- 当前厦门时间为2026年6月22日17:33:51,厦门属于亚热带季风气候,出行时建议穿着轻薄透气、宽松舒适的衣服,如T恤、短裤、裙子等。同时,携带防晒霜、遮阳帽等防晒用品,雨天可备雨伞或雨衣。\n\n三、费用预算明细\n- **门票费用**:约280元/人\n- **餐饮费用**:约150元/人\n- **交通费用**:约200元/人\n- **住宿费用**:约900元/人\n\n**总计**:约1620元/人\n\n注意事项:\n- 以上预算为估算,实际费用可能因季节、酒店预订情况等因素有所变动。\n- 餐饮费用未包含饮料和小费,可根据个人喜好和消费习惯调整。\n- 门票费用未包含可能产生的额外费用,如导游、讲解等。\n- 交通费用未包含可能的景点内部交通费用。\n\n本方案旨在为您提供一个结构清晰、内容丰富的厦门旅游指南,希望您在厦门的旅程愉快!",  "userDemand""两人去厦门玩三天,偏好海滨景点,不吃辣,人均预算1500以内",  "msg""多Agent协作生成完整旅游方案成功"}

总结

本章基于 Spring AI 实现调度式多 Agent 协作系统,使用旅游行程案例,将复杂出行任务拆分为行程、天气、预算三个专业化子智能体,由 Supervisor 统一分发、汇总结果。相比单一 Agent,多 Agent 架构职责清晰、易维护、输出质量更高,是企业级 AI 系统标准设计方案。

后续将进一步深挖 Multi Agent 高级特性 比如:引入对话记忆——Supervisor 绑定 MySQL 持久化记忆,记住用户长期偏好;动态路由——让调度 Agent 自主判断需要调用哪些子 Agent(无需固定全部调用);结合 RAG——每个子 Agent 绑定专属知识库(景点知识库 / 餐饮知识库)

本系列文章源码:https://gitee.com/weizhong1988/weiz-spring-ai

《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《

我的新书《从零开始学 Spring Cloud微服务架构》已在各大线上线下书店全面上架,热切期待大家前去选购!让我们携手共赴这场精彩绝伦的微服务架构学习盛宴吧!💪

点击图片购买🙏🙏🙏🙏

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-25 01:06:52 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/785571.html
  2. 运行时间 : 0.103647s [ 吞吐率:9.65req/s ] 内存消耗:4,824.13kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=0dab3e4bc17b2625897dc9ea927e18e8
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000613s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000796s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000339s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000283s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000465s ]
  6. SELECT * FROM `set` [ RunTime:0.000192s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000569s ]
  8. SELECT * FROM `article` WHERE `id` = 785571 LIMIT 1 [ RunTime:0.000531s ]
  9. UPDATE `article` SET `lasttime` = 1782320812 WHERE `id` = 785571 [ RunTime:0.001287s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000239s ]
  11. SELECT * FROM `article` WHERE `id` < 785571 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000429s ]
  12. SELECT * FROM `article` WHERE `id` > 785571 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000365s ]
  13. SELECT * FROM `article` WHERE `id` < 785571 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000659s ]
  14. SELECT * FROM `article` WHERE `id` < 785571 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000733s ]
  15. SELECT * FROM `article` WHERE `id` < 785571 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000765s ]
0.106810s