乐于分享
好东西不私藏

掀开 OpenClaw 的神经中枢:Gateway 架构全解析.

掀开 OpenClaw 的神经中枢:Gateway 架构全解析.

点击上方

蓝字

关注我们

在之前的文章中,我们拆解了 OpenClaw 的 Agent 任务引擎 ,但 Agent 本身并不是孤立运行的。在它的前面,还有一个更关键的系统组件,负责统筹整个运行环境。
本篇文章,我们将掀开这个核心组件的“引擎盖”— Gateway
它是 OpenClaw 真正的神经中枢与控制平面。如果把 Agent 看作任务执行者,那么 Gateway 更像是一栋智能大楼的物业中心:安全把关、消息传递、设备接入、配置更新 — 这些关键能力,都由它统一管理和调度。
所以,理解 Gateway 的设计,对于理解 OpenClaw 如何从一个能运行的 Agent,进化为一个可扩展、可治理、可协作的智能体系统至关重要。
本篇解读 OpenClaw Gateway 以下方面的设计:
  • Gateway 的整体定位与生命周期
  • 全渠道接入:插件化与适配器模式
  • 消息路由:精准投递到 Agent 会话
  • Agent 装配:构建知识与能力上下文
  • 分布式架构:给 Agent 配备远程“手脚”
  • 配置热重载:不停机的“换引擎”

PART 01

Gateway 的整体定位与生命周期
看到 Gateway 这个词,第一反应往往是 API 网关。但 OpenClaw 的 Gateway 更接近 Kubernetes 的 Control Plane — 它不仅负责转发请求,还承担着调度、安全控制、状态管理甚至运维治理等一整套系统级职责:
从运行流程上看,Gateway 对 Agent 的主要管控大致有
  • 接入与路由
所有消息(IM 渠道、Web UI、CLI 等)都会先进入 Gateway。系统在这里统一完成身份认证与权限校验,随后由路由引擎分发到正确的 Agent。
  • Agent 装备与调用
在任务真正交给 Agent 之前,Gateway 会完成一些准备工作:
加载历史 Session(注入状态)、查找可用 Skills(注入技能)、计算当前可用的工具集合(执行 Tool Policy)。
经过这一阶段后,Agent 才会获得一套已经准备好的运行上下文。
  • 远程 Agent 工具执行
当 Agent 需要调用远程节点工具(例如在手机上触发拍照)时,会先回调 Gateway 进行安全审批。审批通过后,Gateway 再将命令下发到对应节点。
Gateway 的核心职责可以归纳为:
职责
说明
统一接入
全渠道(Channel)消息统一接入
消息路由
将消息精准投递到正确的 Agent + Session
Agent 装备
注入 Session 状态、Skills、可用工具集
远程工具安全
命令白名单 + 人工审批双重管控
设备(节点)管控
远程节点注册、配对、命令下发
运维治理
配置热重载、健康监控、事件广播等
【关键解读】
在 OpenClaw 中,Gateway 并不是一个简单的透明转发层:消息进入系统 → 交给 Agent → 在运行过程中进行工具拦截或限制
OpenClaw 的做法是把 Agent 的控制逻辑上提到 Gateway。也就是说,不是等 Agent 运行时再进行限制,而是在任务开始前就完成安全边界的装配。Agent 本身只需要专注于推理与执行
这种“关注点分离”的架构思想,是整个 Agent 系统能够在复杂企业环境中实现可运维、可扩展和可治理的基础

PART 02

全渠道接入:插件化与适配器模式
OpenClaw 支持大量消息渠道 — 包括 Telegram、WhatsApp、飞书、iMessage 等。不同渠道的 API、消息格式、认证方式以及功能集差异极大。那么问题来了:它是如何优雅地接入这些渠道,并保持系统持续可扩展的?
答案是:插件化 + 适配器模式
渠道(Channel)插件
在 OpenClaw 中,每一个渠道都被实现为一个独立的插件包:必须实现一套统一接口 ChannelPlugin
需要注意的是,它不是通过继承一个 BaseChannel 基类的方式,而是通过一组适配器(Adapters)接口来组合能力。每个适配器负责一个独立的关注点:
核心思想是:只有少量适配器必须实现,其余是可选能力比如:
  • 简单渠道只需实现配置解析 + 消息发送的能力
  • 复杂渠道可以实现更多适配器,例如线程回复、群组管理等
插件通过register方法进行注册,以飞书插件为例:
const plugin = {id"feishu",  name: "Feishu",  description: "Feishu/Lark channel plugin",  configSchema: emptyPluginConfigSchema(),register(api: OpenClawPluginApi) {    setFeishuRuntime(api.runtime);    api.registerChannel({ plugin: feishuPlugin });    ......  },};
其中 feishuPlugin 会实现 configgatewaystatusoutbound 等多个适配器,把飞书的Bot API 调用、Webhook、群组策略等封装在插件内部。
OpenClaw 的每种渠道支持多账户。比如你可以同时运行两个 Telegram Bot(对内+对外),每个 Bot 有独立的启停控制和状态管理。
能力声明:让 Gateway 适应渠道差异
不同渠道的功能集差异很大 — Telegram 支持投票和线程,WhatsApp 不支持;Discord 有服务器和角色概念,而iMessage 没有。如何让核心消息处理逻辑适配这些差异?
OpenClaw 的做法是让渠道通过 capabilities 声明告知自己支持什么功能:
exportconst feishuPlugin: ChannelPlugin<ResolvedFeishuAccount> = {id"feishu",  ......  capabilities: {    chatTypes: ["direct""channel"],    polls: false,    threads: true,    media: true,    reactions: true,    ...
核心代码检查 capabilities.threads/polls 等属性来决定行为 — 不需要知道当前是 Telegram 还是 Discord。
WebSocket:统一的通信层
所有客户端(CLI、Web UI、移动端、远程节点)都会通过 WebSocket 与 Gateway 建立连接。协议基于三类 JSON 帧:
帧类型
方向
用途
RequestFrame
客户端 → Gateway
RPC 调用(如chat.send)
ResponseFrame
Gateway → 客户端
RPC 响应
EventFrame
Gateway → 客户端
事件推送(如健康状态、审批请求)
客户端在建立连接时会进行一次握手Gateway 会告知客户端当前支持的 RPC 方法与事件列表,客户端据此动态渲染 UI 或执行操作。
作为生产级 WebSocket 通信系统,OpenClaw 设计了完善的容错机制,以应对 Agent 场景中的复杂交互,例如:
  • 事件序列号管理与断线检测
  • 慢客户端保护(防止发送缓冲区堆积)
  • 基于指数退避的自动重连机制
  • 流式输出控制(管理持续发送的 Delta 流)
【关键解读】
对于企业级 Agent 系统,如需要支持多渠道接入,可以参考的一些设计有:
  • 适配器组合优于继承层次。通过一组可选适配器让渠道按需组合能力,这种组合式架构比继承体系更加灵活。
  • 核心代码的可扩展性。新增渠道时,只需要导入插件,并在入口调用注册方法即可,核心代码与配置无需修改,插件管理器(OpenClaw的ChannelManager)通过插件注册表自动发现并管理新渠道。
  • 最后是通信机制。在 Agent 系统中,网络通信容易被忽视(往往更关注 Agent 的推理)。但如果系统涉及流式输出、多客户端、远程设备,那么从一开始就需要设计好协议格式、重连策略以及流数据控制等机制。

PART 03

消息路由:精准投递到 Agent 会话
当一条消息从 WhatsApp 或飞书进入系统时,Gateway 需要先回答一个看似简单、实际很关键的问题:
这条消息应该交给哪个 Agent 的哪个 Session?
消息的 Agent 绑定
这并不是查一个简单的路由表那么容易。现实场景往往复杂得多:
  • 飞书群组 A 使用 “研究助手” Agent
  • 飞书群组 B 使用 “运维机器人” Agent
  • 同一个用户在私聊中使用 “默认助手”
  • Discord 某个角色组的成员拥有 专属 Agent
为了处理这些复杂情况,OpenClaw 设计了一套 分层优先级消息绑定机制
系统会从最精确的规则开始匹配,如果没有命中,再逐级回退到更宽泛的规则,这里通过一些直观场景来理解每一层的含义(Guild/guild+roles层为Discord专属,此处不介绍):
  • peer:精确绑定到某个群组或用户。
例如:某个 Telegram 或飞书群 ID 的消息 → 绑定到指定 Agent
  • peer.parent:线程消息继承父消息的绑定关系。
例如:Discord 某条消息下的回复 → 自动继承该对话所绑定的 Agent
  • team:团队 / 组织级规则。
例如:某个 Slack 租户下所有未匹配的消息 → 统一绑定到某个 Agent
  • account:Bot 账号级规则(同一平台可能有多个 Bot)。
例如:来自飞书运维 Bot(app_id: xxx)的消息 → 绑定到运维 Agent
  • channel:通道级兜底规则。
例如:所有飞书渠道未命中的消息 → 统一交给该渠道兜底的 Agent
如果一条消息在所有层级都未匹配,则交给默认 Agent 进行处理。
Session 隔离策略
路由解决的是“交给哪个 Agent”的问题,但还需要解决另一个问题:
这条消息应该在哪个会话上下文中处理?
OpenClaw何时会生成新的会话?
  • 全新的渠道、或全新用户的首次使用
  • 会话过期:每天凌晨重置或者空闲超时(默认1小时)
  • 用户主动发送命令:/new 或者 /reset
一个 Agent 可能同时服务多个用户,因此 Session 的隔离粒度会直接影响用户体验。例如:同一个 Agent 同时服务 100 个用户时,是共享一个上下文,还是每人独立一份?OpenClaw 支持多种隔离策略:
模式
行为
main
所有私聊共享一个会话
per-peer
对话人隔离
per-channel-peer
渠道+对话人隔离
per-account-channel-peer
渠道+bot账号+对话人隔离
OpenClaw的默认策略是 main — 很显然这是单用户、个人使用优先的默认选择。如果你是在多用户场景下,建议修改成 per-channel-peer策略。
根据 Session 的隔离策略,OpenClaw 会判断消息应该在哪个会话中处理。
此外,OpenClaw 还支持跨平台身份链接。比如,同一个用户在 Telegram 与 WhatsApp 上的身份可以被绑定到同一个用户 ID,从而把两端的消息合并到同一个 Session 中,实现跨平台的上下文连续对话
【关键解读】
消息路由看起来只是一个技术细节,但它实际上决定了 Agent 系统最基础的用户体验:
消息是否被送到了正确的 Agent?对话上下文是否能够连续?
在简单的个人工具场景中,一般只需要一个默认 Agent 就足够了。但在企业环境中,往往会涉及多群组、多角色、多部门、多机器人等复杂情况,这时就需要更加精细的控制能力。OpenClaw 的分层优先级很好地解决了这个问题:
简单场景可以由默认 Agent 自动兜底,而复杂场景则可以在高优先级层进行精确绑定,两者可以同时存在,互不干扰。

PART 04

Agent 装备:构建知识与能力上下文
在 OpenClaw 中,Agent 本质上是一个ReAct 循环 — 它不知道自己处于哪个会话、该使用哪些工具、能访问哪些能力。所有这些“装备”,都由 Gateway 在交给 Agent 任务前完成组装:
Skills 注入:一次快照,多轮复用
Skills 本质上是一组放在工作区中的 Markdown 文件,用来描述某个领域的操作流程、知识要点或最佳实践。
Agent 启动时会扫描工作区的 Skills,并构建一个技能“快照”,其中包含:
  • 过滤后的技能列表
  • 格式化后的文本片段(用来注入系统提示词)
  • 相关的环境变量覆盖(Skill 可以声明自己依赖的命令路径等)
一些工程上的细节包括:
  • 会话内一致性 :Skill 快照只会在新会话的第一轮构建,之后的多轮对话都会复用,不会再次扫描。
  • 主动裁剪 :Skill 可以声明自己的平台要求、是否仅限本地等条件。 还支持按Agent ID 配置白名单,让不同 Agent 看到不同的技能子集。
Skills 最终以格式化文本块注入系统提示词,成为 Agent 的知识上下文。
工具装备:多层过滤取交集
Gateway 在创建 Agent 会话前还需完成另一项关键工作:Tools 的组装与过滤 — 系统会先准备一个原始工具集,然后通过一条策略管道(Tool-policy)进行多层过滤。每一层策略都只能收窄能力范围,而不会放宽权限:
这些过滤层可以理解为一组逐级收紧的安全边界:
  • Owner 门控:身份级别门槛,在进管道之前就隔绝某些高危操作。比如:某些 tool 仅能由渠道的Owner调用
  • Profile:角色模板,定义某类 Agent 的基本能力边界。比如:一个Coding  Agent 可能不允许使用web_search工具。
  • Provider Profile:同一 Agent 根据不同模型供应商调整能力边界。比如:切换到 Gemini 时某个工具要被移除。
  • 全局策略:组织级别统一规则,所有 Agent 都受约束。比如:组织内所有 Agent 都不能操作远程设备(Nodes)。
  • Agent 策略:精细化到单个 Agent 的工具权限定制。比如:某个分析 Agent 只能读文件和搜索,但不能调用 exec 工具。
  • 群组/渠道策略:同一 Agent 在不同渠道/群组中有不同的工具能力。比如:公司公告群里的请求不允许用 exec 工具;但研发群可以。
  • Sandbox 策略:安全隔离环境的硬边界,不可被上层绕过。比如沙箱环境只允许 read 工具,但不允许使用 write 工具。
  • Subagent 策略:框架层面防“递归爆炸”的系统性保护。比如:subagent 不允许使用 spawn 工具再递归产生 subagent。
这些层之间始终是取交集关系
因此,即使某一层配置错误,也只会进一步收窄权限,而不会意外扩大能力。这种设计允许不同团队独立管理策略,而不会引入权限放大的风险。
Gateway 层还有一个重要职责:远程工具的安全管控
本地工具会在 Agent 模块内部直接执行,但如果涉及远程 Nodes,则必须通过 Gateway。系统会采用两道关卡:
  • 白名单(例如某个 iOS 节点只允许 camera.snap 工具)
  • 人工审批(例如调用 sms.send 时需要人工确认)
只有通过这两道检查后,命令才会被下发到远程设备。
【关键解读】
Agent 装备机制的核心思想是:
在 Agent 看到任务之前,就完成最关键的上下文裁剪。
其中Skills 决定的是知识边界Tools 决定的是能力边界
OpenClaw 在工具控制上采用了非常清晰的分层安全模型
第一层是静态管控
能力过滤在 Agent 启动前完成。Agent 拿到的只是一个已经筛选好的工具集合,它甚至不知道那些被过滤掉的工具存在。
第二层是运行时管控
在执行过程中跨越信任边界时,Gateway 才会介入。例如,当目标是远程 Node 时,系统才启动审批与安全策略。
这种分层方式避免了两个极端:
  • 过度管控:每次工具调用都走安全控制,导致性能与体验下降
  • 安全真空:所有工具一视同仁,某些危险操作(远程)缺乏保护
这种根据信任边界动态调整安全管控力度的策略,对于企业级 Agent 系统的设计具有借鉴意义。

PART 05

分布式架构:给 Agent 配备远程“手脚”
在真实使用场景中,你可能会希望:
  • Agent 能操控远程服务器(执行部署脚本、查看日志)
  • Agent 能调用手机能力(读取日历、获取位置、拍照)
  • Agent 能跨设备协同工作
为了解决这些需求,OpenClaw 引入了Node(远程节点)的概念。
可以把 Node 理解为 OpenClaw 向外延伸的“四肢”
远程的 Mac 笔记本、Linux 服务器、iPhone、Android 设备等,都可以作为 Node 接入系统,并向 Agent 提供不同的能力。比如小编将一台 Android 设备通过App接入了Gateway:
节点的完整生命周期
从设备发现到建立连接,再到执行远程工具,交互流程如下:
一些设计要点:
  • 能力声明:新 Node 首次连接时,需要人工审批才能被信任;连接时必须告诉 Gateway 自己支持哪些命令和能力 — 也是后续工具安全的校验依据
  • 断连清理 :当 Node 断开连接时,Gateway 会自动拒绝所有尚未完成的远程调用,防止 Agent 的工具请求长时间挂住
  • 超时机制 :每次远程调用默认 30 秒超时,超时后自动失败并清理
其他部署形态
除了“本机 Gateway + 远程 Node”的模式,OpenClaw 还支持:
  • 远程 Gateway + 本地客户端 :Gateway 与 Agent 部署在 VPS 或企业内网服务器,本地通过 CLI 或 Web UI 远程管理。这种模式适合团队共享
  • 远程 Gateway + 本地 Node:Gateway 在云端,本机既是操作者也是Node。Agent 的决策在云端,但工具回到本机执行(访问本地资源)
【关键解读】
远程 Node 架构的核心价值在于能力延伸与聚合。一个 Agent 可以同时调用:
  • Linux 服务器上的 system.run 执行部署脚本
  • iPhone 上的 calendar.events 查看日程
  • Mac 上的 browser.proxy 操作浏览器
这些能力分散在不同设备上,但对于 Agent 来说,它们只是伸出去的“工具”。Agent 并不需要关心命令究竟在哪台设备上执行。
在企业场景中,这种模式也有一定的参考价值。例如:通过运维 Agent 管理多台远程服务器等。
当然,新的挑战是:远程调用的延迟与稳定性会受到网络影响,同时每个 Node 都可能成为潜在的攻击入口。你需要配合一些配对机制、能力声明、白名单等安全措施,来降低风险。

PART 06

配置热重载:不停机的“换引擎”
生产系统中,让人头疼的事情之一是改个配置就必须重启系统。OpenClaw 为此设计了一套精细的配置热重载机制,核心原则是:
能热更新的就热更新,必须重启的才重启。
Gateway 提供四种重载模式(通过 gateway.reload.mode 配置):
模式
行为
off
完全禁用,任何变更都忽略
hot
仅热重载,需要重启的变更被忽略(不会自动重启)
restart
任何变更都触发 Gateway 重启
hybrid(默认)
能热更新就热更新,需要重启就重启
变更监听与判定
当配置文件发生变化时,Gateway 并不会简单地“全部重载”,而是对每一个配置路径逐一判断应该如何处理:
每条规则指定两个属性:kind(热更新 / 需重启 / 无需处理)和 actions(具体的热更新动作,如重启某个模块)。比如:
prefix"hooks.gmail"kind"hot"actions: ["restart-gmail-watcher"] },// → 改了 hooks.gmail.model,只重启 Gmail 监听器prefix"hooks"kind"hot"actions: ["reload-hooks"] },// → 改了其他 hook 配置,重载 hook 模块prefix"cron"kind"hot"actions: ["restart-cron"] },// → 改了定时任务配置,只重启 cron 调度器
这里如果修改了定时任务配置,则只重启 cron 调度器
此外,各个 Channel 插件可以注册自己的重载规则。例如,当 Telegram 的配置发生变化时,只会重启 Telegram 渠道,而不会影响其他渠道。
系统还考虑了一些实际运行中的边界情况。
例如,有些编辑器在保存文件时会先删除旧文件再写入新文件,导致存在一个配置文件短暂消失的“窗口”。Gateway 会对此进行最多两次延迟重试(150ms)并对配置进行校验— 无效配置只会记录警告,而不会让系统进入错误状态。
【关键解读】
OpenClaw 使用声明式规则来实现精细化的热重载。每个模块只需要声明自己关心的配置路径,以及变更后的处理方式,而不需要修改核心重载逻辑。在一个真实的 Agent 系统中,这种机制可以让大部分配置变更对用户几乎无感知
当然,也需要注意一个问题:如果系统的多个配置之间存在依赖关系时,可能会短暂出现不一致。例如,你只修改了路由规则,但对应的 Agent 配置尚未更新。可以结合一致性检查、审批流程或灰度发布来进一步降低风险。
以上是我们对OpenClaw Gateway这一核心模块的简要拆解。作为系统的神经中枢,它负责统一接入、消息路由、Agent 装备等关键能力。受篇幅所限,很多细节(例如网络安全机制)并未展开。
从架构角度看,其中不少设计思想并非 OpenClaw 独创,而是借鉴了微服务、K8S 以及经典软件工程中的一些经过验证的工程方法与成熟模式
这也提醒我们:真正的生产级 Agent 系统,一定是工程化的产物。从接入、安全、到上下文工程、配置运维,都需要细致的设计与长期实践(即使在 AI Coding 快速发展的今天)。
因此,对一些“零基础半小时搭建 Agent”的夸张叙事,应该保持一点冷静 — 大多只适用于原型或极简场景。真正能长期运行、被团队依赖的 Agent 系统,一定离不开扎实的架构设计与工程积累。

END

喜欢就关注
动动小手点个
在看最好看
加入公众号交流群(说明来意
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-25 00:12:39 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/484050.html
  2. 运行时间 : 0.628462s [ 吞吐率:1.59req/s ] 内存消耗:4,887.43kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=3b8ee6afd4784efca81e1a1143de7c89
  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.68 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.80 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001069s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001375s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.006184s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.005408s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001409s ]
  6. SELECT * FROM `set` [ RunTime:0.029357s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001546s ]
  8. SELECT * FROM `article` WHERE `id` = 484050 LIMIT 1 [ RunTime:0.073962s ]
  9. UPDATE `article` SET `lasttime` = 1774368759 WHERE `id` = 484050 [ RunTime:0.019169s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.088124s ]
  11. SELECT * FROM `article` WHERE `id` < 484050 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.009921s ]
  12. SELECT * FROM `article` WHERE `id` > 484050 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.011886s ]
  13. SELECT * FROM `article` WHERE `id` < 484050 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.050380s ]
  14. SELECT * FROM `article` WHERE `id` < 484050 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.086877s ]
  15. SELECT * FROM `article` WHERE `id` < 484050 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.052410s ]
0.634494s