乐于分享
好东西不私藏

工具太多怎么办:Spring AI 的 ToolSearch 与 Solon AI 的 ToolGateway 对比分析

工具太多怎么办:Spring AI 的 ToolSearch 与 Solon AI 的 ToolGateway 对比分析

一、为什么会有这两个东西

当一个 AI Agent 接入的工具(Tool)越来越多——本地业务函数、几十上百个 REST API、外加若干 MCP 服务端——会同时撞上两个问题:

  1. Token 成本
    。所有工具的完整定义(名称、描述、参数 JSON Schema)默认会在每次请求时全量塞进上下文。Spring AI 文档给的数字是:一个多服务端配置很容易超过 50 个工具,对话还没开始就消耗掉大量 token;其社区项目 README 进一步举例,50+ 工具可能占用 55,000+ token。
  2. 选择准确率
    。当模型面对 30+ 个名字相似的工具时,选错工具的概率会明显上升。

这两个问题,正是 Anthropic 在 2025 年底提出 Tool Search Tool 模式所要解决的。它的核心思路是:不要一上来就把所有工具定义喂给模型,而是先只给一个"搜索工具",模型需要某种能力时再去搜,命中的工具定义才动态展开进上下文。

Spring AI 与 Solon AI 都基于这个共同的范式,各自做了落地。这是理解两者"为什么像"的前提——它们解决的是同一个问题,参考的是同一个原始模式。

二、各自是什么

先把对象界定清楚,避免"拿单个类去比一整套体系"的错位。

Spring AI 侧,主体是 ToolSearchToolCallingAdvisor(社区孵化版本中也叫 ToolSearchToolCallAdvisor)。它是一个 Advisor——挂在 Spring AI 的顾问链(Recursive Advisors)上的横切组件,继承自 ToolCallingAdvisor。它来自社区项目 spring-ai-community/spring-ai-tool-search-tool(撰文时约 72 stars),同时 Spring AI 2.0 提供了官方 starter spring-ai-starter-tool-search-advisor,可通过 application.properties 一行开启。

Solon AI 侧,对应的是 ToolGatewayTalent,它是 Gateway 三件套 之一:

网关 Talent
工具来源
管理粒度
OpenApiGatewayTalent
远程或本地 OpenAPI/Swagger 定义
以 API 源为单位
ToolGatewayTalent
代码注册的 FunctionTool(本地工具或 MCP Tool)
以单个 Tool 为单位
McpGatewayTalent
MCP Client 连接的多服务端工具
以整条 MCP 连接为单位

它们都属于 Solon v4.0 的 Talent(才能) 体系,依赖包为 solon-ai-talent-gateway

这里就出现了第一个需要澄清的"不对等":Spring 的 ToolSearchToolCallingAdvisor 是一个通用的横切增强,工具来源它不区分(本地 @Tool、MCP 都走 Spring AI 统一的 ToolCallback 抽象);Solon 则拆成了三个 Talent,按"接入方式 + 管理粒度"分工:OpenApiGatewayTalent 对接 OpenAPI/Swagger 文档,ToolGatewayTalent 管理代码注册的 FunctionTool(既可以是本地工具,也可以是 MCP Tool)并以单个 Tool 为单位增删,McpGatewayTalent 则以整条 MCP 连接为单位管理。

这里有个容易被忽略的细节:ToolGatewayTalent 与 McpGatewayTalent 在 MCP 工具上存在能力重叠——前者也能纳管 MCP Tool。区别在治理颗粒度:ToolGatewayTalent 管到单个工具(适合只想暴露某服务端的几个工具),McpGatewayTalent 管到整个服务端连接(适合按服务整体接入、并随连接生命周期统一增删)。

所以严格说,跟 ToolSearchToolCallingAdvisor 在"职责粒度"上最接近的,是 Solon 的 ToolGatewayTalent 这一个;但如果论"工具治理能力的总覆盖面",要拿 Solon 的三件套整体去对。

三、最像的地方:核心机制一致

两者的运行骨架几乎可以逐条对上,这是它们"像"的实质。

1. 工具先索引、不全量下发。 Spring 在对话开始时把所有工具索引进 ToolIndex/ToolSearcher,但不发给 LLM;Solon 在进入折叠模式后同样不把原始工具直接暴露,而是收进网关内部。

2. 搜索由 LLM 主动发起,引擎负责检索。 两边都是:模型决定"要不要搜、搜什么关键词",真正的检索算法跑在 Java 侧。Spring 的搜索工具固定叫 toolSearchTool;Solon 的对应工具叫 search_tools。模型只产出 query,命中逻辑由后端引擎执行。

3. 命中结果再展开详情。 Spring 把命中的工具定义注入下一轮请求;Solon 则通过 get_tool_detail 获取完整参数 Schema,再通过 call_tool 代理执行。

4. 都给了模型明确的引导。 这一点常被忽略,但很关键——如果不告诉模型"还有一堆隐藏工具,不够用就去搜",模型默认不知道该搜。 - Spring 的引导分两层:一是 toolSearchTool 这个工具自身的描述;二是 Advisor 会往 system message 末尾追加一段 systemMessageSuffix,默认从 classpath 模板加载,可通过 Builder 的 .systemMessageSuffix(String) 自定义。 - Solon 的引导写在 Talent 的 Instruction 注入里,按当前所处模式动态生成清单与提示,随生命周期挂载。

可以说,到这一层为止,两者是同一套设计的两种实现。谁也没有"更聪明",都是 Anthropic 范式的忠实落地。

四、最不像的地方:单档检索 vs 四阶段自适应

差异主要体现在"折叠的颗粒度"上。

Spring 是"全有或全搜"的二元结构。 要么走传统模式(全量下发),要么挂上 Advisor 走搜索模式(只给搜索工具)。它的官方"何时使用"建议也印证了这种取舍——20 个工具以下用传统方式,20 个以上才上 Tool Search。中间没有过渡档。

Solon 是四阶段自适应,按工具数量自动切档(ToolGatewayTalent 默认阈值):

模式
触发条件(默认)
对 LLM 的表现
FULL(全量)
≤ 8
直接看到所有工具完整定义
SUMMARY(摘要)
8 < n ≤ 40
展示"工具名 + 描述"清单
LIST(名字)
40 < n ≤ 100
仅展示分组与工具名,需检索
SEARCH(搜索)
> 100
清单完全折叠,强制关键词检索

阈值可通过 dynamicThreshold/listThreshold/searchThreshold 调整。这个设计的出发点是:工具不多时全量最省事、模型一步到位;多到一定程度再逐级折叠。它比 Spring 多了 SUMMARY 和 LIST 两个中间档。

怎么客观看待这个差异? 这是一组真实的取舍,不存在单方面更优:

  • Solon 的多档位理论上能在"中等规模工具集"(比如 30~50 个)上做更精细的 token/精度平衡——不必为几十个工具就跳到完全靠搜索。代价是配置项更多、心智模型更复杂,使用者要理解四个阶段和三个阈值。
  • Spring 的二元结构更简单直接,开箱即用(一行配置开启),心智负担低。代价是缺少中间过渡,要么全量要么全搜。

哪个更合适,取决于工具规模分布和团队对"可调 vs 极简"的偏好。

五、一个必须诚实说明的点:性能数据

这是中立分析里最该讲清楚的部分。

Spring 侧有公开的基准数据。其官方文档给出了 28 个工具场景下的实测对比:

模型
启用 Tool Search
未启用
节省
Gemini
2,165 tokens
5,375 tokens
60%
OpenAI
4,706 tokens
7,175 tokens
34%
Anthropic
6,273 tokens
17,342 tokens
64%

文档同时标注这是 "preliminary benchmarks(初步基准)"。

Solon 侧,我目前没有检索到官方公开的、可对比的量化基准数据。其文档描述了机制和设计意图("平衡模型推理精度与 Token 消耗"),但没有给出类似的 token 节省百分比实测表。

所以这里不能下"谁省得更多"的结论。诚实的说法是:Spring 提供了可验证的初步数字,Solon 的量化效果有待官方或社区补充基准。任何"Solon 因为多两档所以更省 token"的推断,目前都缺乏数据支撑,只是机制层面的合理推测。

六、体系定位的差异

抛开单点机制,两者在框架中的"身份"也不同,这会影响实际选型。

ToolSearchToolCallingAdvisor 是 Spring AI 顾问链上的一个增强。它的好处是与 Spring AI 现有的 ToolCallback、MCP、ChatClient 抽象无缝衔接,是"加一个 Advisor 就生效"的非侵入增强;它的边界也清晰——它就是干工具发现这一件事,权限、生命周期等交给 Spring 生态的其他部分。

ToolGatewayTalent 是 Solon Talent 体系中的一员。Talent 在 Solon 里是比"工具发现"更大的抽象,带准入判断、生命周期钩子、指令注入等。所以 Gateway 三件套除了工具发现,还内置了一些工程化能力,比如(以同体系的 OpenApiGatewayTalent 为例)按源的 allowedTools/disallowedTools 权限过滤、响应结果截断(maxContextLength,默认 8000)、失败重试、MCP 刷新时的"影子交换"原子替换等。ToolGatewayTalent 本身则提供按 category 分组注册、call_tool 代理执行等。

这同样是取舍:Spring 的方式更符合"小而专、组合优于内置"的工程审美;Solon 的方式把更多治理能力收进同一个抽象里,开箱即得但耦合度更高。

七、给开发者的实用结论

如果你在两套生态里做选型,可以这样判断:

  • 你在 Spring 生态:直接用 ToolSearchToolCallingAdvisor(或官方 starter)。它机制成熟、有公开 benchmark、一行开启,是当下治理工具膨胀的标准答案。工具规模在 20 个以上、或已经遇到选择准确率问题时,收益明显。

  • 你在 Solon 生态:用 Gateway 三件套,按接入方式与管理粒度选——OpenApiGatewayTalent(对接 OpenAPI/Swagger 文档)、ToolGatewayTalent(代码注册的 FunctionTool,含本地工具与 MCP Tool,按单个 Tool 增删)、McpGatewayTalent(按整条 MCP 连接管理)。需要管到 MCP 单个工具就用前者、按服务整体接入就用后者。如果你的工具集规模处在"中等偏多"的区间,四阶段自适应能让你少做一些手动权衡;但要花点时间理解阈值配置。

  • 两者通用的认知:搜索动作都是 LLM 主动发起的,效果高度依赖"给模型的引导文本"和"检索引擎的命中质量"。无论用哪个,把工具的 description 写清楚、给 system 引导留出定制空间,比纠结用哪个框架更影响最终表现。

八、一句话总结

——内核机制是同一套(Anthropic Tool Search 范式:先索引、LLM 主动搜、命中再展开、配引导文本)。 不完全是一回事——Spring 是顾问链上一个简洁的二元开关式增强,有公开性能数据;Solon 是 Talent 体系里按工具来源拆分的三件套,多了 SUMMARY/LIST 两个自适应中间档和若干工程化治理能力,但量化效果尚缺公开基准。

一个偏极简纯粹,一个偏完备可控。没有谁取代谁,是同一道题的两种合理解法。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-20 18:16:35 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/772037.html
  2. 运行时间 : 0.234222s [ 吞吐率:4.27req/s ] 内存消耗:5,008.72kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=7badceb8a848b29a81ae734f8725eed1
  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.001135s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001665s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000756s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000738s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001534s ]
  6. SELECT * FROM `set` [ RunTime:0.000599s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001811s ]
  8. SELECT * FROM `article` WHERE `id` = 772037 LIMIT 1 [ RunTime:0.001973s ]
  9. UPDATE `article` SET `lasttime` = 1781950595 WHERE `id` = 772037 [ RunTime:0.004262s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000631s ]
  11. SELECT * FROM `article` WHERE `id` < 772037 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001017s ]
  12. SELECT * FROM `article` WHERE `id` > 772037 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001031s ]
  13. SELECT * FROM `article` WHERE `id` < 772037 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.005315s ]
  14. SELECT * FROM `article` WHERE `id` < 772037 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.008766s ]
  15. SELECT * FROM `article` WHERE `id` < 772037 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002856s ]
0.238141s