乐于分享
好东西不私藏

OpenClaw深度技术剖析

OpenClaw深度技术剖析

从架构设计到实现细节,5100 字拆解一个开源 AI 网关的核心技术

文章结构:

  1. 1. 整体架构 - Gateway 作为唯一真相源
    • • 配置热加载机制
    • • 无状态设计
  2. 2. 消息路由 - Binding 规则的确定性
    • • 9 层优先级决策树
    • • 配置示例
  3. 3. 多智能体隔离 - 每个 Agent 是独立的大脑
    • • Workspace / AgentDir / Session 三层隔离
    • • 同一 WhatsApp 号码服务多用户
  4. 4. 技能系统 - 插件化扩展机制
    • • 三级加载优先级
    • • 技能门控(Gating)
    • • Token 影响
  5. 5. 记忆系统 - 双层设计
    • • 内置记忆(MEMORY.md + daily logs)
    • • 扩展记忆(memory skill)
    • • 记忆安全
  6. 6. 工具调用与沙箱 - 安全第一
    • • 3 种沙箱模式
    • • 3 种 scope
    • • 工具策略
  7. 7. 会话管理 - DM 折叠与群聊隔离
    • • 4 种 dmScope
    • • Thread Binding
  8. 8. Channel 实现 - 协议适配层
    • • DM Policy
    • • 群聊提及规则
  9. 9. 配置管理 - JSON5 + $include
    • • 模块化配置
    • • 环境变量替换
  10. 10. 设计哲学总结
    • • 确定性、隔离、可观测性、扩展性、开发者友好

我为什么要写这篇文章

我最近在研究如何让 AI Agent 真正融入日常工作流。试了一圈方案后发现:大多数要么是 SaaS(数据不在自己手上),要么是单点工具(换个渠道就得重来)。

直到我深入研究了 OpenClaw 的源码和架构。

这是一个自托管的多渠道 AI Agent 网关——听起来很抽象,但它的设计确实解决了一些很实际的问题。我想从技术角度拆解一下,它到底是怎么工作的。


一、整体架构:Gateway 作为唯一真相源

OpenClaw 的核心是一个 Gateway 进程,它做了三件事:

  1. 1. 消息路由:收消息,决定发给哪个 Agent
  2. 2. 会话管理:维护对话历史,处理上下文
  3. 3. 工具调用:让 AI 能执行代码、读写文件
Agent层
Gateway进程
外部渠道
WhatsApp
Telegram
Discord
iMessage
Channel Adapter
Routing Engine
Session Store
Tool Executor
Agent:main
Agent:work

关键设计决策:Gateway 是无状态的——所有状态都存储在文件系统(~/.openclaw/)。这意味着你可以随时重启 Gateway,会话不会丢失。

配置热加载

Gateway 监听 ~/.openclaw/openclaw.json 的变化,支持三种重载模式:

模式
行为
hybrid
(默认)
安全变更即时生效,需要重启的自动重启
hot
只应用安全变更,需要重启的打印警告
restart
任何变更都重启 Gateway
off
禁用监听,手动重启生效

哪些变更需要重启?

  • • Gateway 服务器配置(端口、绑定、TLS)
  • • 基础设施(discovery、canvasHost、plugins)
  • • 其他所有配置都支持热加载

这个设计让我印象深刻——你改了渠道配置、Agent 设置、甚至工具策略,都不需要重启。


二、消息路由:Binding 规则的确定性

OpenClaw 的路由系统设计得非常清晰:Binding 规则是确定性的,最具体的匹配胜出

路由优先级

消息到达
peer 精确匹配?
使用 peer 绑定
parentPeer 匹配?线程继承
使用 parentPeer 绑定
guildId + roles 匹配?
使用角色绑定
guildId 匹配?
使用服务器绑定
teamId 匹配?
使用团队绑定
accountId 匹配?
使用账户绑定
channel 全局匹配?
使用渠道绑定
使用默认 Agent

Binding 配置示例

{  agents: {    list: [      { id: "main", workspace: "~/.openclaw/workspace" },      { id: "work", workspace: "~/.openclaw/workspace-work" },      { id: "family", workspace: "~/.openclaw/workspace-family" },    ],  },  bindings: [    // 最高优先级:精确 peer 匹配    {      agentId: "work",      match: {        channel: "whatsapp",        peer: { kind: "direct", id: "+15551234567" }      }    },    // 群组匹配    {      agentId: "family",      match: {        channel: "whatsapp",        peer: { kind: "group", id: "1203630...@g.us" }      }    },    // 渠道级别匹配(最低优先级)    { agentId: "main", match: { channel: "telegram" } },  ],}

关键细节

  • • 如果 Binding 省略 accountId,只匹配默认账户
  • • 使用 accountId: "*" 作为渠道级别的 fallback
  • • 同一层级的多个匹配,按配置顺序选第一个

这个设计保证了路由行为是可预测的——不会出现"我不知道这条消息会去哪"的情况。


三、多智能体隔离:每个 Agent 是独立的大脑

OpenClaw 的多智能体设计解决了一个很实际的问题:如何在同一个 Gateway 下运行多个完全独立的 AI

Agent 的隔离边界

每个 Agent 有自己的:

  1. 1. Workspace(工作空间)
    • • 文件系统隔离
    • • 独立的 AGENTS.md/SOUL.md/USER.md
    • • 独立的 skills/ 目录
  2. 2. AgentDir(状态目录)
    • • 认证配置:~/.openclaw/agents/<agentId>/agent/auth-profiles.json
    • • 模型注册表
    • • Per-Agent 配置
  3. 3. Session Store(会话存储)
    • • 对话历史:~/.openclaw/agents/<agentId>/sessions
    • • 完全隔离,不共享上下文
Agent隔离
Agent:personal
workspace-personal/
agents/personal/agent/
agents/personal/sessions/
Agent:work
workspace-work/
agents/work/agent/
agents/work/sessions/

一个 WhatsApp 号码,多个用户

这是个很巧妙的设计:你可以用同一个 WhatsApp 号码,把不同 DM 路由到不同 Agent:

{  agents: {    list: [      { id: "alex", workspace: "~/.openclaw/workspace-alex" },      { id: "mia", workspace: "~/.openclaw/workspace-mia" },    ],  },  bindings: [    {      agentId: "alex",      match: { channel: "whatsapp", peer: { kind: "direct", id: "+15551230001" } }    },    {      agentId: "mia",      match: { channel: "whatsapp", peer: { kind: "direct", id: "+15551230002" } }    },  ],}

重要细节:DM 访问控制是全局的(per WhatsApp account),不是 per agent。私聊会折叠到 Agent 的 main session,所以真正的隔离需要一人一 Agent


四、技能系统:插件化的扩展机制

技能(Skills)是 OpenClaw 的扩展机制,让 AI 能做更多事情。设计上参考了 AgentSkills 规范。

技能加载优先级

技能从三个地方加载,优先级从高到低:

  1. 1. Workspace Skills<workspace>/skills/(Per-Agent)
  2. 2. Managed Skills~/.openclaw/skills/(共享)
  3. 3. Bundled Skills:随 OpenClaw 安装(内置)

技能请求
workspace/skills/ 存在?
使用 Workspace 技能
~/.openclaw/skills/ 存在?
使用 Managed 技能
使用 Bundled 技能

技能格式

每个技能是一个目录,核心是 SKILL.md

---name: feishu-docdescription: 获取飞书文档内容并转换为 Markdownmetadata:  {    "openclaw":      {        "requires": { "env": ["FEISHU_APP_ID", "FEISHU_APP_SECRET"] },        "primaryEnv": "FEISHU_APP_ID",      }  }---# 飞书文档技能## 使用方法提供飞书文档 URL,AI 会自动获取并转换为 Markdown。

技能门控(Gating)

OpenClaw 在加载时过滤技能,基于 metadata.openclaw

{  "requires": {    "bins": ["uv"],           // 必须存在于 PATH    "env": ["GEMINI_API_KEY"], // 必须存在于环境或配置    "config": ["browser.enabled"] // 必须在 openclaw.json 中为真  }}

Token 影响

当有技能可用时,OpenClaw 会注入一个紧凑的 XML 列表到系统提示词。公式:

total_chars = 195 + Σ (97 + len(name) + len(description) + len(location))

大约每个技能 24 tokens(按 OpenAI tokenizer 估算)。

ClawHub:技能市场

ClawHub 是官方技能市场:

# 安装技能clawhub install feishu-doc# 更新所有技能clawhub update --all

五、记忆系统:双层设计

OpenClaw 的记忆系统是双层的:内置记忆 + 扩展记忆。

内置记忆(自动)

每个 Agent 自动拥有:

workspace/├── MEMORY.md           # 长期记忆(重要决策、偏好)├── memory/│   ├── 2026-03-20.md   # 今日日志│   ├── 2026-03-19.md   # 昨日日志│   └── ...├── SOUL.md             # AI 人格└── USER.md             # 用户信息

工作流程

  1. 1. 会话启动时,AI 自动读取 MEMORY.md + 最近两天日志
  2. 2. 对话中记录到 memory/YYYY-MM-DD.md
  3. 3. 定期提炼重要信息到 MEMORY.md
记忆系统Agent用户记忆系统Agent用户启动:加载 MEMORY.md早上好读取 memory/2026-03-20.md返回今日日志早!你昨天提到今天有会议刚完成项目 A 部署写入 daily log记下了。需要更新 MEMORY.md 吗?

扩展记忆(可选)

安装 memory 技能后,支持无限分类存储

clawhub install memory

结构:

~/memory/├── config.md           # 配置├── INDEX.md            # 总索引├── projects/           # 项目历史│   ├── INDEX.md│   └── openclaw.md├── people/             # 人际网络│   └── john-doe.md└── knowledge/          # 领域知识    └── typescript.md

语义搜索

通过 memory_search 工具实现语义检索,快速定位相关记忆。

记忆安全

  • • 私聊记忆:仅在 main session 加载,不泄露给群聊
  • • 群聊记忆:独立会话,不污染私聊上下文
  • • Agent 隔离:每个 Agent 的记忆完全独立

六、工具调用与沙箱安全

OpenClaw 让 AI 能调用工具,但安全是第一优先级

工具分类

工具
功能
风险级别
read
读取文件
write
写入文件
edit
编辑文件
exec
执行命令
image
分析图片
cron
定时任务
sessions_spawn
启动子任务

沙箱模式

OpenClaw 支持 Docker 容器隔离,三种模式:

模式
行为
off
无沙箱,工具在主机执行
non-main
只隔离非 main 会话(默认)
all
所有会话都隔离

Scope(容器数量)

Scope
容器数量
session
每个会话一个容器
agent
每个 Agent 一个容器
shared
所有隔离会话共享一个容器

Workspace Access

控制沙箱能看到的文件:

模式
访问权限
none
(默认)
独立沙箱工作空间
ro
只读挂载 Agent workspace 到 /agent
rw
读写挂载到 /workspace

配置示例

{  agents: {    defaults: {      sandbox: {        mode: "non-main",        scope: "session",        workspaceAccess: "none",        docker: {          image: "openclaw-sandbox:bookworm-slim",          network: "none",  // 默认无网络          setupCommand: "apt-get update && apt-get install -y git curl",        }      }    }  }}

工具策略(Tool Policy)

即使沙箱启用,工具策略仍然适用:

{  agents: {    list: [      {        id: "family",        tools: {          allow: ["read", "sessions_list"],          deny: ["exec", "write", "edit", "cron"]        }      }    ]  }}

Elevated 模式tools.elevated 是显式的逃逸舱,允许在主机执行 exec。但需要发送者授权,且有严格的审批流程。


七、会话管理:DM 折叠与群聊隔离

OpenClaw 的会话设计有个核心概念:DM 折叠到 main session

Session Scope

{  session: {    dmScope: "per-channel-peer",  // 推荐:多用户场景    // 可选:main | per-peer | per-channel-peer | per-account-channel-peer  }}
dmScope
行为
main
所有 DM 共享一个会话
per-peer
每个对话者一个会话
per-channel-peer
每个渠道+对话者一个会话
per-account-channel-peer
每个账户+渠道+对话者一个会话

群聊隔离

群聊会话是独立的,不会污染私聊上下文:

群聊
Discord 群组 1
session:group:123
Discord 群组 2
session:group:456
私聊
WhatsApp DM
main session
Telegram DM

Thread Binding(线程继承)

对于支持线程的平台(如 Discord),可以继承父会话:

{  session: {    threadBindings: {      enabled: true,      idleHours: 24,    // 空闲 24h 后解绑      maxAgeHours: 0,   // 0 = 无上限    }  }}

八、Channel 实现:协议适配层

OpenClaw 支持多种渠道,每个渠道是一个协议适配层

支持的渠道

渠道
实现方式
特点
WhatsApp
Baileys(Web 协议)
无需官方 API
Telegram
grammY
Bot 模式
Discord
discord.js
支持 Guild/Channel
iMessage
imsg CLI
仅 macOS
Slack
Web API
Bot 模式
Signal
signal-cli
需要 Signal Desktop

DM Policy

所有渠道共享相同的 DM 策略模式:

{  channels: {    telegram: {      enabled: true,      botToken: "123:abc",      dmPolicy: "pairing",   // pairing | allowlist | open | disabled      allowFrom: ["tg:123"], // 仅 allowlist/open 需要    }  }}
dmPolicy
行为
pairing
(默认)
未知发送者需配对码确认
allowlist
只允许 allowFrom 中的发送者
open
允许所有 DM(需要 allowFrom: ["*"]
disabled
忽略所有 DM

群聊提及规则

群聊默认需要 @ 提及才响应:

{  agents: {    list: [      {        id: "main",        groupChat: {          mentionPatterns: ["@openclaw", "openclaw"],        }      }    ]  },  channels: {    whatsapp: {      groups: { "*": { requireMention: true } }    }  }}

九、配置管理:JSON5 + $include

OpenClaw 使用 JSON5(支持注释和尾随逗号),并支持模块化配置。

$include 拆分配置

// ~/.openclaw/openclaw.json{  gateway: { port: 18789 },  agents: { $include: "./agents.json5" },  channels: {    $include: ["./channels/whatsapp.json5", "./channels/telegram.json5"]  }}

规则:

  • • 单文件:替换包含对象
  • • 数组文件:按顺序深度合并(后者胜出)
  • • 兄弟键:在 include 之后合并(覆盖包含值)
  • • 嵌套 include:最多支持 10 层

环境变量替换

任何字符串值都可以引用环境变量:

{  models: {    providers: {      openai: {        apiKey: "${OPENAI_API_KEY}"      }    }  }}

规则:

  • • 只匹配大写名称:[A-Z_][A-Z0-9_]*
  • • 缺失变量在加载时报错
  • • 用 $${VAR} 转义为字面值

十、总结:设计哲学

深入研究 OpenClaw 后,我总结出几个设计哲学:

1. 确定性优于魔法

  • • 路由规则是确定性的
  • • 配置是显式的
  • • 行为是可预测的

2. 隔离是第一优先级

  • • Agent 之间完全隔离
  • • 会话之间独立存储
  • • 沙箱提供额外保护

3. 可观测性

  • • 所有状态都在文件系统
  • • 配置热加载+自动重启
  • • 详细的日志和诊断

4. 扩展性

  • • 技能系统支持无限扩展
  • • ClawHub 提供社区生态
  • • 插件机制支持更多渠道

5. 开发者友好

  • • JSON5 配置(支持注释)
  • • CLI 工具完整
  • • 文档详尽

技术栈一览

45%25%15%10%5%OpenClaw 技术栈TypeScriptNode.jsDockerMermaid其他
  • • 语言:TypeScript
  • • 运行时:Node.js 22+
  • • 沙箱:Docker
  • • 文档:Mermaid 图表
  • • 配置:JSON5

相关链接

  • • 🌐 官网:https://openclaw.ai
  • • 📖 文档:https://docs.openclaw.ai
  • • 💻 GitHub:https://github.com/openclaw/openclaw
  • • 💬 社区:https://discord.com/invite/clawd
  • • 🛒 技能市场:https://clawhub.com

写在最后

OpenClaw 不是完美的——它需要一定的技术背景,Docker 沙箱配置也有学习曲线。但作为一个自托管的多渠道 AI Agent 网关,它的设计是深思熟虑的。

如果你需要一个真正属于自己的 AI 助手,不想把数据交给第三方,OpenClaw 值得一试。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-20 11:37:22 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/478942.html
  2. 运行时间 : 0.191224s [ 吞吐率:5.23req/s ] 内存消耗:4,731.77kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=30227f5ab6ca5d20b801e765112dd859
  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.000748s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000896s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000320s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000261s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000582s ]
  6. SELECT * FROM `set` [ RunTime:0.000217s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000650s ]
  8. SELECT * FROM `article` WHERE `id` = 478942 LIMIT 1 [ RunTime:0.001981s ]
  9. UPDATE `article` SET `lasttime` = 1773977842 WHERE `id` = 478942 [ RunTime:0.000819s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000276s ]
  11. SELECT * FROM `article` WHERE `id` < 478942 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000464s ]
  12. SELECT * FROM `article` WHERE `id` > 478942 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000446s ]
  13. SELECT * FROM `article` WHERE `id` < 478942 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000856s ]
  14. SELECT * FROM `article` WHERE `id` < 478942 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000864s ]
  15. SELECT * FROM `article` WHERE `id` < 478942 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.003350s ]
0.195192s