乐于分享
好东西不私藏

OpenClaw 多 Agent 架构深度解析:从配置到运行的完整流程

OpenClaw 多 Agent 架构深度解析:从配置到运行的完整流程

OpenClaw 多 Agent 架构深度解析:从配置到运行的完整流程

本文深入剖析 OpenClaw 的多 Agent 架构设计,详细讲解从用户发起聊天请求到 Agent 执行响应的完整技术链路,帮助开发者理解其核心原理与配置机制。

一、架构概览

OpenClaw 是一个支持多 Agent 的 AI 助手框架,每个 Agent 可以拥有独立的模型配置、认证信息和会话历史。其核心设计理念是配置隔离资源独立,让不同用途的 Agent 能够并行运行而互不干扰。

核心特性

  • 多 Agent 支持
    :可配置多个独立 Agent,每个拥有专属配置
  • 认证隔离
    :每个 Agent 独立管理 API Key 和 OAuth 凭证
  • 会话隔离
    :会话历史按 Agent 分离存储
  • 模型灵活配置
    :支持全局默认 + Agent 级别覆盖
  • 环境变量支持
    :敏感信息可通过环境变量注入

二、文件存储结构

理解 OpenClaw 的第一步是掌握其文件组织方式。所有数据默认存储在 ~/.openclaw/ 目录下:

关键目录说明

目录/文件
用途
openclaw.json
主配置文件,定义所有 Agent 和全局设置
agents/<id>/agent/
Agent 的专属目录
agents/<id>/agent/auth-profiles.json
Agent 的认证信息(API Key、OAuth)
agents/<id>/sessions/
Agent 的会话存储目录
agents/<id>/sessions/*.jsonl
会话历史(每行一个 JSON 消息)

三、配置文件详解

3.1 主配置文件结构

~/.openclaw/openclaw.json 采用 JSON5 格式,支持注释和尾逗号:

{  // Agent 配置  agents: {    // 全局默认配置    defaults: {      model: {        primary: "anthropic/claude-sonnet-4-6",        fallbacks: ["openai/gpt-5.4", "google/gemini-3.1-pro"]      },      workspace: "~/projects",      maxConcurrent: 1,      subagents: {        maxConcurrent: 1,        maxSpawnDepth: 1,        model: "anthropic/claude-sonnet-4-6"      }    },    // Agent 列表    list: [      {        id: "main",        default: true,        name: "主助手",        identity: {          name: "OpenClaw",          emoji: "🤖"        },        model: "anthropic/claude-opus-4-6"      },      {        id: "coder",        name: "代码助手",        identity: {          name: "Coder",          emoji: "💻"        },        workspace: "~/code-projects",        model: "anthropic/claude-sonnet-4-6",        skills: ["code", "debug", "refactor"]      },      {        id: "researcher",        name: "研究助手",        identity: {          name: "Researcher",          emoji: "📚"        },        model: "openai/gpt-5.4"      }    ]  },  // 模型 Provider 配置  models: {    providers: {      anthropic: {        apiKey: "${ANTHROPIC_API_KEY}",        models: [          { id: "claude-opus-4-6", name: "Claude Opus 4.6", contextWindow: 200000 },          { id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6", contextWindow: 200000 }        ]      },      openai: {        apiKey: "${OPENAI_API_KEY}",        models: [          { id: "gpt-5.4", name: "GPT-5.4", contextWindow: 128000 }        ]      },      google: {        apiKey: "${GEMINI_API_KEY}",        models: [          { id: "gemini-3.1-pro-preview", name: "Gemini 3.1 Pro" }        ]      }    }  },  // 认证配置(引用 auth-profiles.json 中的 profile)  auth: {    profiles: {      "anthropic-main": {        provider: "anthropic",        mode: "api_key"      },      "anthropic-oauth": {        provider: "anthropic",        mode: "oauth",        email: "user@example.com"      }    },    order: {      anthropic: ["anthropic-oauth", "anthropic-main"]    }  }}

3.2 Agent 配置字段说明

typeAgentConfig={  id:string;// Agent 唯一标识default?:boolean;// 是否为默认 Agent  name?:string;// 显示名称  workspace?:string;// 工作目录  agentDir?:string;// Agent 数据目录(自定义)  model?:string|{// 模型配置    primary:string;    fallbacks?:string[];};  identity?:{// 个性信息    name?:string;    emoji?:string;};  skills?:string[];// 技能白名单  subagents?:{// 子 Agent 配置    allowAgents?:string[];    model?:string;};};

3.3 认证配置文件

每个 Agent 的认证信息存储在独立的 auth-profiles.json 中:

路径~/.openclaw/agents/coder/agent/auth-profiles.json

{  version: 1,  profiles: {    "anthropic-coder": {      type: "api_key",      provider: "anthropic",      apiKey: "sk-ant-...",           // 加密存储      createdAt: "2025-01-01T00:00:00Z",      updatedAt: "2025-03-30T12:00:00Z"    },    "openai-coder": {      type: "api_key",      provider: "openai",      apiKey: "sk-...",      createdAt: "2025-01-01T00:00:00Z"    },    "anthropic-oauth": {      type: "oauth",      provider: "anthropic",      accessToken: "eyJ...",      refreshToken: "eyJ...",      expiresAt: "2025-04-01T00:00:00Z",      email: "user@example.com"    }  },  usage: {    "anthropic-coder": {      lastUsedAt: "2025-03-30T12:00:00Z",      requestCount: 100    }  }}

四、完整执行流程

当用户发起聊天请求时,OpenClaw 会经历以下阶段:

流程图

┌─────────────────────────────────────────────────────────────────┐│                    用户发起聊天请求                               │└─────────────────────────────────────────────────────────────────┘                              │                              ▼┌─────────────────────────────────────────────────────────────────┐│  阶段 1: Gateway 接收请求                                        ││  ├─ 解析请求参数 (message, sessionKey, agentId)                 ││  ├─ 验证 agentId 是否存在                                       ││  └─ 解析 sessionKey 确定 agentId                                │└─────────────────────────────────────────────────────────────────┘                              │                              ▼┌─────────────────────────────────────────────────────────────────┐│  阶段 2: 加载主配置                                              ││  ├─ 读取 ~/.openclaw/openclaw.json                              ││  ├─ 解析 JSON5 格式                                             ││  ├─ 解析 $include 指令                                          ││  ├─ 解析 ${ENV_VAR} 环境变量引用                                 ││  └─ 应用默认值                                                  │└─────────────────────────────────────────────────────────────────┘                              │                              ▼┌─────────────────────────────────────────────────────────────────┐│  阶段 3: 解析 Agent 配置                                         ││  ├─ 从 agents.list[] 查找 Agent 定义                            ││  ├─ 解析 name, workspace, model, identity                       ││  └─ 确定 agentDir: ~/.openclaw/agents/<id>/agent                │└─────────────────────────────────────────────────────────────────┘                              │                              ▼┌─────────────────────────────────────────────────────────────────┐│  阶段 4: 加载 Agent 认证信息                                     ││  ├─ 读取 ~/.openclaw/agents/<id>/agent/auth-profiles.json       ││  ├─ 解析 API Keys / OAuth Tokens                                ││  └─ 按优先级选择认证方式                                         │└─────────────────────────────────────────────────────────────────┘                              │                              ▼┌─────────────────────────────────────────────────────────────────┐│  阶段 5: 解析模型配置                                            ││  ├─ Session 覆盖 > Agent 配置 > 全局默认 > 硬编码默认            ││  └─ 返回最终 provider/model                                     │└─────────────────────────────────────────────────────────────────┘                              │                              ▼┌─────────────────────────────────────────────────────────────────┐│  阶段 6: 加载会话历史                                            ││  ├─ 读取 ~/.openclaw/agents/<id>/sessions/sessions.json         ││  └─ 加载会话历史 *.jsonl                                        │└─────────────────────────────────────────────────────────────────┘                              │                              ▼┌─────────────────────────────────────────────────────────────────┐│  阶段 7: 执行 Agent 运行                                         ││  ├─ 构建 System Prompt                                          ││  ├─ 调用模型 API                                                ││  ├─ 处理 Tool Calls                                             ││  └─ 返回响应                                                    │└─────────────────────────────────────────────────────────────────┘

五、核心源码解析

5.1 配置加载流程

源码位置src/config/io.ts

functionloadConfig(): OpenClawConfig {// 1. 加载 .env 文件maybeLoadDotEnvForConfig(deps.env);// 2. 读取主配置文件const configPath =resolveConfigPath(deps.env,resolveStateDir(deps.env));const raw = deps.fs.readFileSync(configPath,"utf-8");// 3. 解析 JSON5 格式const parsed = deps.json5.parse(raw);// 4. 解析 $include 指令(支持配置拆分)const resolvedIncludes =resolveConfigIncludesForRead(parsed, configPath, deps);// 5. 解析 ${ENV_VAR} 环境变量引用const resolvedConfig =resolveConfigEnvVars(resolvedIncludes, env);// 6. Schema 验证const validated =validateConfigObjectWithPlugins(resolvedConfig);// 7. 应用运行时默认值const cfg =applyModelDefaults(applyAgentDefaults(applySessionDefaults(validated.config)));return cfg;}

5.2 Agent 配置解析

源码位置src/agents/agent-scope.ts

// 解析 Agent 目录exportfunctionresolveAgentDir(cfg: OpenClawConfig, agentId:string, env){const id =normalizeAgentId(agentId);// 优先使用配置中的 agentDirconst configured =resolveAgentConfig(cfg, id)?.agentDir?.trim();if(configured){returnresolveUserPath(configured, env);}// 默认路径const root =resolveStateDir(env);return path.join(root,"agents", id,"agent");}// 解析 Agent 配置exportfunctionresolveAgentConfig(cfg: OpenClawConfig, agentId:string){const id =normalizeAgentId(agentId);const entry =resolveAgentEntry(cfg, id);return{    name: entry.name,    workspace: entry.workspace,    model: entry.model,    identity: entry.identity,    skills: entry.skills,    subagents: entry.subagents,};}

5.3 认证信息加载

源码位置src/agents/auth-profiles/paths.ts

// 解析认证存储路径exportfunctionresolveAuthStorePath(agentDir?:string):string{const resolved =resolveUserPath(agentDir ??resolveOpenClawAgentDir());return path.join(resolved,"auth-profiles.json");}

认证优先级src/agents/model-auth.ts

functionresolveProviderApiKey(params:{  cfg: OpenClawConfig;  provider:string;  agentDir?:string;}):{ apiKey:string; source:string}|null{// 优先级 1: 配置文件中的 SecretRefconst customKey =getCustomProviderApiKey(cfg, provider);if(customKey)return{ apiKey: customKey, source:"models.json"};// 优先级 2: Agent 的 auth-profiles.jsonconst authStore =loadAuthProfileStore(agentDir);const profileKey =resolveApiKeyForProfile(authStore, provider);if(profileKey)return{ apiKey: profileKey, source:"auth-profiles.json"};// 优先级 3: 环境变量const envKey =resolveEnvApiKey(provider);if(envKey)return{ apiKey: envKey.key, source: envKey.source };returnnull;}

5.4 模型配置解析

源码位置src/agents/model-selection.ts

exportfunctionresolveDefaultModelForAgent(params:{  cfg: OpenClawConfig;  agentId?:string;}): ModelRef {// 模型解析优先级const agentModelOverride = params.agentId?resolveAgentEffectiveModelPrimary(params.cfg, params.agentId):undefined;// 构建最终配置const cfg = agentModelOverride?{...params.cfg, agents:{...defaults:{ model: agentModelOverride }}}: params.cfg;returnresolveConfiguredModelRef({    cfg,    defaultProvider:"anthropic",    defaultModel:"claude-opus-4-6"});}

六、配置优先级机制

6.1 模型配置优先级

优先级从高到低:1. Session 级别覆盖   └─ 运行时通过参数指定 --model2. Agent 级别配置   └─ agents.list[].model3. 全局默认配置   └─ agents.defaults.model4. 硬编码默认值   └─ anthropic/claude-opus-4-6

6.2 认证信息优先级

优先级从高到低:1. 配置文件中的 SecretRef   └─ models.providers[].apiKey: "${ANTHROPIC_API_KEY}"2. Agent 的 auth-profiles.json   └─ ~/.openclaw/agents/<id>/agent/auth-profiles.json3. 环境变量   └─ ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY...4. Shell 环境回退   └─ 从 shell 配置文件读取

七、实战配置示例

场景:配置一个代码助手 Agent

步骤 1: 编辑主配置文件

// ~/.openclaw/openclaw.json{  agents: {    defaults: {      model: "anthropic/claude-sonnet-4-6",      workspace: "~/projects"    },    list: [      {        id: "coder",        name: "代码助手",        identity: { name: "Coder", emoji: "💻" },        workspace: "~/code-projects",        model: "anthropic/claude-sonnet-4-6",        skills: ["code", "debug", "refactor", "test"]      }    ]  }}

步骤 2: 配置认证信息

# 方式 1: 使用环境变量exportANTHROPIC_API_KEY="sk-ant-..."# 方式 2: 使用 OpenClaw 命令openclaw models auth anthropic --api-key "sk-ant-..."

步骤 3: 验证配置

# 列出所有 Agentopenclaw agents list# 查看模型状态openclaw models status# 测试 Agentopenclaw agent --agent-id coder --message"帮我写一个 Python 函数"

八、最佳实践

8.1 安全建议

  1. 使用环境变量
    :敏感信息通过 ${ENV_VAR} 引用,避免硬编码
  2. 文件权限
    :确保 auth-profiles.json 权限为 600
  3. 定期轮换
    :定期更新 API Key

8.2 性能优化

  1. 模型选择
    :根据任务复杂度选择合适的模型
  2. 会话管理
    :定期清理旧会话,避免历史过长
  3. 并发控制
    :合理设置 maxConcurrent 参数

8.3 多 Agent 协作

{  agents: {    list: [      {        id: "main",        default: true,        subagents: {          allowAgents: ["coder", "researcher"],  // 允许调用子 Agent          model: "anthropic/claude-sonnet-4-6"   // 子 Agent 默认模型        }      },      {        id: "coder",        skills: ["code", "debug"]      },      {        id: "researcher",        skills: ["search", "summarize"]      }    ]  }}

九、总结

OpenClaw 的多 Agent 架构通过以下设计实现了灵活性和隔离性:

设计要点
实现方式
配置隔离
每个 Agent 独立目录和配置
认证隔离
每个 Agent 独立的 auth-profiles.json
会话隔离
会话历史按 Agent 分离存储
模型灵活
多层级配置覆盖机制
安全可控
环境变量引用 + 文件权限控制

这种架构使得 OpenClaw 能够支持复杂的多 Agent 协作场景,同时保持各 Agent 的独立性和安全性。


参考资料

  • OpenClaw 官方文档: https://docs.openclaw.ai
  • GitHub 仓库: https://github.com/openclaw/openclaw
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-06 13:47:02 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/493138.html
  2. 运行时间 : 0.228713s [ 吞吐率:4.37req/s ] 内存消耗:5,243.75kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=0f3071ad8b24a2d955d7d0d4a3c31985
  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.80 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000959s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000817s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000342s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000285s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000491s ]
  6. SELECT * FROM `set` [ RunTime:0.000185s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000522s ]
  8. SELECT * FROM `article` WHERE `id` = 493138 LIMIT 1 [ RunTime:0.001008s ]
  9. UPDATE `article` SET `lasttime` = 1775454422 WHERE `id` = 493138 [ RunTime:0.013745s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000693s ]
  11. SELECT * FROM `article` WHERE `id` < 493138 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001283s ]
  12. SELECT * FROM `article` WHERE `id` > 493138 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001186s ]
  13. SELECT * FROM `article` WHERE `id` < 493138 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001953s ]
  14. SELECT * FROM `article` WHERE `id` < 493138 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.007945s ]
  15. SELECT * FROM `article` WHERE `id` < 493138 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.014796s ]
0.232708s