乐于分享
好东西不私藏

AI 应用的新胶水层

AI 应用的新胶水层

这两年,大家聊 AI 应用,最容易高估的一件事,是模型本身。

好像只要接上一个大模型 API ,产品就自动有了 AI 能力。

但真做过的人很快会发现,模型调用只是最表面的一层。真正耗时间的,往往是后面的胶水工作:

  • 模型怎么切换
  • 流式输出怎么处理
  • 聊天状态怎么维护
  • 工具调用怎么定义和执行
  • JSON 输出怎么校验
  • 前端怎么展示 tool result
  • Agent 的执行过程怎么暴露给用户
  • 某一步出错时怎么重试和追踪

这些问题单独看都不性感,但每一个都绕不开。

所以, AI 应用开发其实正在从“调模型 API ”,进入“搭应用栈”的阶段。

而 Vercel 的 AI SDK,想解决的就是这层应用栈里的胶水问题。

它不是模型,而是模型之上的应用层

先说结论:

AI SDK 不是模型,也不是传统意义上的 Agent 平台。它更像一个 TypeScript/JavaScript 生态里的 AI 应用开发工具箱。

它的核心价值,不是帮你“拿到更强的模型”,而是帮你把模型能力更顺地接进产品里。

以前如果你要同时接 OpenAI 、 Anthropic 、 Google 、 xAI 、 Mistral ,通常会遇到一个经典问题:每家 API 都不一样。

  • 参数结构不一样
  • 消息格式不一样
  • 流式输出协议不一样
  • tool calling 细节不一样
  • 错误处理方式也不一样

做 Demo 的时候,这些问题都能靠硬写解决。

但一旦你准备把 AI 功能放进真实产品,问题就来了:你不可能把业务逻辑永久绑死在某一个供应商上。

今天 GPT 更强,明天 Claude 更稳,后天 Gemini 更便宜。再过几个月,你可能还会想试 DeepSeek 、 Mistral ,甚至本地模型。

所以你真正需要的,不是某一家模型的 SDK ,而是一层统一抽象。

AI SDK 做的第一件事,就是把这种统一接口标准化。

第一层价值:统一模型调用

AI SDK 最基础的一层叫 Core

你可以把它理解成:负责后端/服务端的模型调用能力,包括:

  • 文本生成
  • 流式输出
  • 结构化输出
  • 工具调用
  • embedding
  • rerank
  • 图像、语音等能力

最常见的几个函数是:

  • generateText
  • streamText
  • generateObject
  • streamObject

比如最简单的文本生成:

import{generateText}from'ai';

constresult=awaitgenerateText({
model:'openai/gpt-5.4',
prompt:'用一句话解释什么是 AI SDK',
});

console.log(result.text);

这段代码本身不复杂,但背后的意义很明确:

你开始用统一方式调不同模型,而不是让业务逻辑直接依赖某个厂商的 SDK 。

这件事听上去朴素,但它其实是 AI 应用工程化的起点。

因为从这一步开始,你写的不再是“ OpenAI 项目”或“ Claude 项目”,而是一个可以替换底层模型的应用

第二层价值: AI 应用默认是流式的

如果说普通 Web 应用最重要的体验是响应速度,那 AI 应用最重要的体验之一,就是流式输出

用户已经被 ChatGPT 训练过了。他们默认认为,一个 AI 助手应该一边思考,一边往外吐结果,而不是黑屏十秒后一次性返回一大段文字。

所以,流式输出几乎是 AI 产品的默认能力。

问题在于,流式不是“让字一个个出现”这么简单。真正麻烦的是整条链路:

  • 服务端怎么接模型的 stream
  • 怎么转成前端能消费的响应
  • 浏览器端怎么实时更新消息
  • 用户中途停止怎么办
  • tool call 中间态怎么展示
  • 发生错误时怎么补偿
  • 最终消息怎么落库

这些都属于典型的胶水层问题。

AI SDK 的做法是把这层标准化。

服务端可以这样写:

import{streamText}from'ai';

constresult=streamText({
model:'openai/gpt-5.4',
prompt:'写一段 AI SDK 的产品介绍',
});

returnresult.toUIMessageStreamResponse();

如果你用 React ,前端再配 useChat,就能得到一套比较自然的聊天流式体验。

这层能力的重要性在于:

AI 应用的体验,不只取决于模型输出了什么,也取决于这段输出如何被呈现。

很多团队以为自己在做模型集成,实际上花时间最多的,是前后端之间这条流式协议。

AI SDK 把这部分收拢了。

第三个问题:模型输出不能只有自然语言

很多人刚开始用大模型时,会把它当成一个“高级文本接口”。

你问,它答;你写 prompt ,它回一段自然语言。

但只要你想让 AI 真正进入业务系统,就会马上碰到另一个需求:

模型输出必须是结构化的。

比如这些场景:

  • 从简历里提取姓名、技能、工作年限
  • 从合同里提取金额、甲乙方、付款节点
  • 把用户输入分类成不同意图
  • 给文章提取标题、摘要、标签
  • 把一段自然语言转成表单字段

这些场景里,你不想要一段“看起来差不多”的描述。你要的是一个稳定的 JSON 。

所以 AI SDK 的 generateObject / streamObject 很关键。

你可以直接配 schema :

import{generateObject}from'ai';
import{z}from'zod';

constresult=awaitgenerateObject({
model:'openai/gpt-5.4',
schema:z.object({
title:z.string(),
summary:z.string(),
tags:z.array(z.string()),
}),
prompt:'提取这篇文章的标题、摘要和标签',
});

console.log(result.object);

这里的意义不是“写法更优雅”,而是:

让模型输出从“给人看”变成“给系统用”。

这是 AI 应用能不能真正落地的分水岭。

如果输出只是自然语言,它通常只能停留在聊天框里。
但如果输出是稳定的结构化对象,它才能流进内容系统、工单系统、 CRM 、审批流、数据管道。

也就是说,结构化输出不是附加能力,而是产品化能力。

第四个问题: AI 一定会走向工具调用

模型本身不会查你的订单,不知道数据库里有什么,也不能直接改业务数据。

所以,只要 AI 应用不是纯聊天,它几乎一定会走向 tool calling

tool calling 本质上就是:

模型决定要用哪个工具,系统执行工具,再把结果回灌给模型。

比如用户问:

“帮我查一下这个订单为什么还没发货。”

模型不能靠猜。它应该去查真实数据,比如:

  • 查订单状态
  • 查库存
  • 查物流
  • 查仓库异常

这就是工具调用的意义。

AI SDK 支持用 schema 的方式定义工具:

import{tool}from'ai';
import{z}from'zod';

constgetWeather=tool({
description:'Get weather for a city',
inputSchema:z.object({
city:z.string(),
}),
execute:async({city})=>{
returnawaitfetchWeather(city);
},
});

模型拿到这些工具后,就能在适当的时候调用它们。

但真正值得注意的,不是“模型会调函数”这件事,而是它意味着模型开始触碰真实世界

这时候问题就不只是 API 封装,而会迅速变成工程问题:

  • 哪些工具是只读
  • 哪些工具有副作用
  • 哪些操作需要人工审批
  • 工具失败后怎么办
  • 工具返回的数据是否可信
  • 是否需要审计日志
  • 用户权限如何传递

所以 tool calling 不是一个花哨功能,而是 AI 应用和业务系统之间的边界层。

AI SDK 的价值,是让这层边界变成一种标准开发模式,而不是每个团队自己重新造一遍。

第五个问题: AI 应用的前端状态比想象中复杂

很多后端工程师会低估 AI 应用的前端复杂度。

普通聊天消息,大概就是:

{
"role":"assistant",
"content":"你好"
}

但 AI 应用里的消息,通常远远不止这么简单。

一条消息可能包含:

  • 普通文本
  • reasoning
  • tool call
  • tool result
  • citation
  • metadata
  • 进度信息
  • 错误信息
  • 图片、表格、文件等多种 part

更麻烦的是,这些内容往往是流式到达的。

例如一个 Agent 正在工作,它可能先说:

“我先检查一下项目结构。”

接着发起 readFile(package.json)
然后回传工具结果。
再继续说:

“我发现依赖版本不一致,接下来跑测试。”

这已经不是“聊天气泡”了,而更像一个实时任务界面

AI SDK 5 之后强调的一个重点,是把 UIMessage 做成更清晰的类型化结构。服务端和前端可以围绕同一种消息形态工作。

这件事非常工程化,但也非常关键。

因为未来很多 AI 产品的 UI ,不会只是“一个会说话的输入框”。

它更像一个任务面板:用户既要看答案,也要看 AI 做了什么、调用了什么、走到了哪一步。

这正是 AI SDK 试图标准化的交互协议。

AI SDK 6 的变化:开始正面进入 Agent

如果说早期 AI SDK 更像“统一模型调用 + 流式 UI ”的工具箱,那 AI SDK 6 的变化就更明显了。

官方对这一版的描述里,重点包括:

  • agents
  • tool execution approval
  • DevTools
  • full MCP support
  • reranking
  • image editing

而且官方给出的定位也很直接: AI SDK 6 要把 Agent 作为一等公民来做。

文档里对 Agent 的定义很清楚:

Agent 是会在工具循环里完成任务的大模型。

也就是:

  1. 读取任务
  2. 决定下一步
  3. 调工具
  4. 看结果
  5. 判断要不要继续
  6. 最后收敛成答案

AI SDK 里推荐的方向是 ToolLoopAgent
这类抽象适合做:

  • 文档问答 Agent
  • 数据分析 Agent
  • 内容生成 Agent
  • 客服 Agent
  • 后台自动处理任务的 Agent

它和 LangGraph 那种复杂状态图不完全一样。 AI SDK 的 Agent 抽象更轻,更贴近 TypeScript 产品开发。

你可以理解为:

它不是在做一个最强 Agent 框架,而是在把轻量 Agent 能力纳入 Web 应用开发栈。

这点很重要。

因为很多团队真正需要的,不是一个可以画状态机的超级框架,而是一个可以比较平滑地把 Agent 接到聊天 UI 、 API endpoint 、后台任务里的统一接口。

MCP 、 DevTools 、 AI Gateway :它补的不是功能点,而是整层基础设施

最近 AI SDK 相关文档里,还有三个方向很值得注意。

1 ) MCP

AI SDK 现在支持 MCP ( Model Context Protocol )相关能力。
文档里已经提供了 createMCPClient() 等接口。

这意味着外部工具可以通过更标准的协议接入,而不是每次都手写自定义封装。

如果你把这个趋势放大看,本质上是:

工具生态正在从私有对接,走向标准协议接入。

2 ) DevTools

AI 应用比普通应用更难调试。

普通应用出错,你查日志、查数据库、查请求链路。
AI 应用出错,可能是 prompt 、上下文、 tool result 、 stream 、 schema 、某一步 reasoning 共同导致的。

所以 AI 应用需要新的调试界面。

AI SDK 文档里已经把 DevTools 放进核心能力里,它的方向很清楚:让你能检查请求、响应、工具调用、多步骤交互和错误路径。

这对生产环境非常重要。

3 ) AI Gateway

AI Gateway 则是在统一模型入口、路由和观测。

官方文档已经把 Gateway 描述成多模型统一入口:通过单一接口访问 OpenAI 、 Anthropic 、 Google 、 Meta 、 xAI 等不同供应商。

如果你在一个产品里要混用多个模型, Gateway 会越来越有吸引力。因为它解决的不只是“怎么调”,而是:

  • 怎么统一接入
  • 怎么切换 provider
  • 怎么做 fallback
  • 怎么控制成本
  • 怎么做观测和计费

也就是说, AI SDK 不只是想做一个 SDK ,它在往 AI 应用基础设施入口 走。

它和 LangChain 、 LangGraph 、 Mastra 不一样

很多人会下意识问一句:

“那它和 LangChain 、 LangGraph 、 Mastra 有什么区别?”

我的理解是,它们的重点不一样。

工具 更像什么
AI SDK AI 产品接口层
LangChain 通用 LLM 应用框架
LangGraph Agent 状态机 / 工作流编排层
Mastra TypeScript Agent / workflow 框架
各家官方 SDK 单一供应商接入层

如果压缩成一句话:

LangGraph 更像 Agent 编排层, AI SDK 更像 AI 产品开发层。

AI SDK 不是最擅长复杂长流程编排的那一个,但它很擅长把模型调用、流式输出、工具调用、前端消息协议这几件事串起来。

尤其是当你的技术栈本来就是 Next.js / React / TypeScript 时,它会很顺手。

它适合谁?

我觉得 AI SDK 特别适合三类团队。

第一类: React / Next.js / TypeScript 团队

如果你的应用本来就是 Web 产品,尤其是 Next.js 技术栈, AI SDK 的接入路径会很自然。

第二类:要把 AI 能力嵌进现有产品的团队

比如你不是要做一个通用 Agent 平台,而是要在自己的产品里加:

  • AI 客服
  • AI 搜索
  • AI 写作
  • AI 分析
  • AI Copilot
  • AI 表单助手

这类场景非常适合 AI SDK 。

第三类:不想被某个模型供应商锁死的团队

如果你想保留模型切换的自由度, AI SDK 这层统一接口会很有价值。

它不适合谁?

当然,它也不是所有场景的标准答案。

不适合复杂长流程编排

如果你要做的是:

  • 多 Agent 协作
  • 长时间运行任务
  • 可恢复工作流
  • 人工审批链路
  • 强状态机控制

那你大概率还需要更重的 workflow / agent runtime 。

不适合 Python-first 团队

AI SDK 的主场是 TypeScript/JavaScript 。
如果团队主要栈是 Python ,那它的吸引力会明显下降。

不适合一次性小脚本

如果只是写个脚本调一次模型,直接用官方 SDK 反而更简单。

AI SDK 的优势在“产品化”,不在“一次性调用”。

AI SDK 真正代表的变化

如果只把 AI SDK 理解成“一个更方便调模型的库”,其实低估了它。

它更大的意义在于:

AI 应用开发开始出现标准栈。

过去大家做 AI 功能,经常是自己拼:

  • 自己接模型
  • 自己搞 stream
  • 自己做聊天状态
  • 自己定义 tool call 协议
  • 自己维护结构化输出
  • 自己调试多步骤执行

每个团队都要把这些轮子再造一遍。

AI SDK 想做的,就是把这层重复劳动标准化。

让开发者把精力从“怎么接”转移到“做什么产品”。

这也是为什么我更愿意把它叫作:

AI 应用的新胶水层。

它不是最底层的模型。
也不是最上层的业务产品。
它站在中间,把模型能力变成开发者能真正嵌进产品的接口。

最后

未来做 AI 应用,大概率不会再是“选一个模型,然后调 API ”这么简单。

真正会留下来的能力,是这整层工程化能力:

  • 模型调用
  • 流式输出
  • 结构化结果
  • 工具调用
  • Agent 循环
  • 前端消息协议
  • 调试观测
  • 多模型路由

AI SDK 正在试图把这些东西,打包成 TypeScript 开发者熟悉的一层。

所以它代表的,不只是某个库变流行了。

它代表的是一个更大的趋势:

AI 应用开发正在从模型实验,走向产品工程。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-30 10:40:28 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/817559.html
  2. 运行时间 : 0.259562s [ 吞吐率:3.85req/s ] 内存消耗:4,807.18kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=89d3e5ada6d50bb8b66250957e0545af
  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.001242s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001734s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000716s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000725s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001434s ]
  6. SELECT * FROM `set` [ RunTime:0.001770s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001524s ]
  8. SELECT * FROM `article` WHERE `id` = 817559 LIMIT 1 [ RunTime:0.004171s ]
  9. UPDATE `article` SET `lasttime` = 1782787228 WHERE `id` = 817559 [ RunTime:0.036246s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000938s ]
  11. SELECT * FROM `article` WHERE `id` < 817559 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001577s ]
  12. SELECT * FROM `article` WHERE `id` > 817559 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001240s ]
  13. SELECT * FROM `article` WHERE `id` < 817559 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002332s ]
  14. SELECT * FROM `article` WHERE `id` < 817559 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002824s ]
  15. SELECT * FROM `article` WHERE `id` < 817559 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002545s ]
0.261152s