乐于分享
好东西不私藏

从设计模式到 Harness:软件架构30年,我们一直在解同一道题

从设计模式到 Harness:软件架构30年,我们一直在解同一道题

每一代软件架构的本质,都是用新的抽象去驯服新的复杂性。AI Agent 时代,这个抽象叫 Harness。

如果你是一个写了十年代码的开发者,2025 年第一次认真搞 AI Agent 开发的时候,大概率会有一种强烈的"既视感"——

这混乱的场面,我好像见过。

Prompt 到处散落、上下文管理全靠手动拼接、权限控制形同虚设、调试全靠看日志猜……这不就是 2005 年 Java 企业开发的噩梦吗?那时候 Service 层跟 DAO 层纠缠不清,业务逻辑散落在 Servlet 里,每个项目都在重新发明轮子。

后来我们怎么解决的?架构。

设计模式、分层架构、微服务、数据密集型系统设计……每当复杂性膨胀到人脑管不住的时候,软件工程的回答永远是同一个:加一层抽象,把复杂性关进笼子里。

2026 年,AI Agent 开发遇到的复杂性,终于也迎来了它的架构层。

它叫 Harness

为什么叫这个名字?Harness 的英文原义是马具——缰绳、鞍具、胸带,套在马身上的那整套装备。

一匹野马力量惊人,但没有马具,你骑不了它,更别说让它拉车、犁地、上战场。马具不提供力量,它做的事情是:把力量变得可驾驭、可引导、可用。

AI 模型就是那匹马——强大、但不可控。而 Harness,就是套在模型上的那副缰绳。

这个名字起得精准。因为 Harness 要解决的问题,从来不是"让模型更聪明",而是**"让模型的聪明变得可用"**。

软件架构30年演进到Harness


先说结论:Agent = Model + Harness

理解了这个类比,公式就很直觉了:

Agent = Model + Harness

Model 是那匹马——LLM 负责思考和生成,提供原始智力。

Harness 是那副马具——负责感知环境、调用工具、管理记忆、控制权限、处理异常……一切"让这匹马能在真实世界干活"的装备。

这个公式的重要性,被一个实验彻底证实了。

2025 年,Google DeepMind 在 SWE-bench 上做了一组对比:同一个底层模型,套上不同的 Harness,性能差距巨大。 不是微调的差距,不是 Prompt 的差距——是整个"外壳"工程能力的差距。

换句话说:模型决定了智商上限,Harness 决定了实际表现。

这就像同一台发动机,装在不同底盘上——一个是赛车,一个是拖拉机。发动机一样,上路体验天差地别。

如果你还觉得"做 Agent 就是调 Prompt",这个实验应该能让你清醒过来。Agent 开发的核心战场,早就从模型转移到了 Harness。

Agent = Model + Harness


30 年架构史:每一代都在打同一个怪

为什么说 Harness 不是凭空冒出来的?因为它是软件架构演变的第五章

回看过去 30 年,每一代架构解决的核心问题都是同一个:复杂性管理。只是"复杂性"的来源在不断变化。

第一章:GoF 设计模式(1994)—— 驯服"对象的复杂性"

1994 年,四人帮(Gang of Four)出版了《设计模式》。

那时候面向对象编程刚起步,大家兴奋地创建各种类和对象,然后发现——对象之间的关系很快变成一团乱麻。谁创建谁?谁依赖谁?改一个类,崩一片功能。

GoF 给出了 23 种设计模式:工厂模式管创建、观察者模式管通信、策略模式管变化……

本质是什么?用模式把对象之间的复杂关系"标准化"。 你不再需要每次都从零设计对象交互,有了可复用的"解题套路"。

第二章:企业架构模式(2002)—— 驯服"业务系统的复杂性"

到了 2000 年代初,问题变了。单个类的复杂性搞定了,但整个企业系统变得无比臃肿——几十万行代码缠在一个巨型单体应用里,数据库调用散落各处,业务逻辑和展示逻辑混为一谈。

Martin Fowler 在 2002 年出版了《企业应用架构模式》,提出了分层架构、Repository 模式、工作单元模式等一套体系。

本质:用"分层"和"边界"把企业系统的复杂性隔离开。 表现层、业务层、数据层各管各的,改一层不影响另一层。

第三章:微服务(2010s)—— 驯服"分布式的复杂性"

系统越做越大,单体应用扛不住了。一个服务挂掉,整个系统跟着崩。部署一次,全量发布。团队规模一大,代码冲突不断。

微服务架构在 2010 年代兴起:把大系统拆成独立的小服务,每个服务独立部署、独立扩展、独立演进。Netflix、Amazon 是最早的大规模实践者。

但微服务也带来了新的复杂性——服务发现、负载均衡、链路追踪、分布式事务……一个新的基础设施层应运而生(Service Mesh、API Gateway 等)。

本质:用"拆分 + 基础设施层"来管住分布式系统的复杂性。

第四章:DDIA(2017)—— 驯服"数据的复杂性"

Martin Kleppmann 在 2017 年出版的《设计数据密集型应用》(DDIA)几乎成了分布式系统工程师的圣经。

它解决的核心问题是:当系统的核心瓶颈从"计算"转向"数据"——海量数据的存储、复制、分区、一致性、流处理——该怎么架构?

本质:为"数据密集型"这个新的复杂性来源,提供了系统化的架构思维。

四代架构演进


第五章:Harness(2026)—— 驯服"智能体的复杂性"

现在轮到 AI Agent 了。

2023 年 ChatGPT 爆发后,所有人都开始做 Agent。Demo 阶段一切美好——调几个 API,写几段 Prompt,Agent 就能"自主完成任务"了。

然后问题来了。

跟过去 30 年每一次一模一样——当你试图把 Demo 变成产品,复杂性会指数级爆炸。

Agent 开发中的复杂性长什么样?五个典型深坑:

问题
具体表现
后果
死循环
Agent 反复调用同一个工具,陷入无限循环
烧 token,系统卡死
上下文爆炸
对话越来越长,模型开始"忘记"关键信息
输出质量断崖下跌
权限失控
Agent 自主执行了不该执行的危险操作
删库、发错消息、泄露数据
质量不可控
同一个 Prompt,今天好用明天就不行
无法稳定上线
成本黑箱
不知道一次任务到底烧了多少 token 和 API 调用
账单失控

有没有很熟悉?

  • 死循环 → 像不像没有断路器的微服务调用链?
  • 上下文爆炸 → 像不像没有分页的数据库全表扫描?
  • 权限失控 → 像不像没有 RBAC 的企业系统?
  • 质量不可控 → 像不像没有测试框架的单体应用?

每一代新技术带来的混乱,本质上都是同一种病:复杂性超过了现有工具的管控能力。

而每一次的药方也都一样:在混乱之上,加一层架构。

Harness,就是 AI Agent 时代的那层架构。

Agent深坑与传统架构问题对比


Harness 到底长什么样?

说了半天 Harness 重要,它到底包含什么?

拆开来看,一个完整的 Harness 系统有 6 个核心组件:

1. Agentic Loop(智能体循环)

这是 Agent 的"心跳"。它定义了 Agent 的基本行为模式:感知 → 思考 → 行动 → 观察 → 再思考……

关键不是循环本身,而是循环的控制机制——什么时候该停?出错了怎么回退?陷入死循环怎么打断?

这就像操作系统的进程调度器——不是让程序"跑起来"难,是让它"跑得稳、停得住"难。

2. Tool System(工具系统)

Agent 的能力边界,取决于它能调用什么工具。代码执行、文件读写、API 调用、数据库查询……

Tool System 要解决的问题是:工具的注册、发现、描述、调用、错误处理,以及最关键的——权限控制。

哪些工具可以自动执行?哪些必须人类确认?哪些绝对不能碰?这套权限体系不亚于 Linux 的文件权限模型。

3. Memory & Context Management(记忆与上下文管理)

LLM 有 context window 限制。对话越长,早期信息被挤出窗口。Agent 在长任务中会逐渐"失忆"。

记忆系统要解决:什么信息该保留?什么该压缩?什么该持久化存储?怎么在需要的时候精准召回?

这像不像数据库的缓存策略?热数据留内存,冷数据落磁盘,LRU 淘汰,按需加载。

4. Guardrails(护栏系统)

Agent 不是人——它没有"常识"。你让它优化代码,它可能把整个目录删了重写。你让它发邮件,它可能给错误的人发了敏感信息。

Guardrails 是 Agent 的"安全围栏":内容过滤、操作限制、输出验证、危险操作拦截。

5. Hooks(钩子系统)

在 Agent 执行流程的关键节点插入自定义逻辑——工具调用前后、消息生成前后、错误发生时。

这跟 Web 框架的中间件、Git 的 pre-commit hooks 是同一个思路:在不修改核心逻辑的情况下,扩展行为。

6. Session(会话管理)

管理 Agent 与用户之间的交互状态:对话历史、任务进度、中断恢复、多轮协作。

Harness六大组件架构


三个阶段:从 Prompt 到 Harness

理解了 Harness 的组成,再回头看 Agent 工程的演进,你会发现它经历了三个清晰的阶段:

阶段一:Prompt Engineering(2023)

ChatGPT 刚火的时候,所有人都在研究怎么写 Prompt。

"你是一个资深产品经理……请按以下格式输出……" 各种 Prompt 模板、技巧、框架层出不穷。

这个阶段的隐含假设是:只要 Prompt 写得好,模型就能干好活。

很快大家发现不够。Prompt 控制不了工具调用,管不了上下文窗口,防不住幻觉。

阶段二:Context Engineering(2024-2025)

Prompt Engineering 不够用了,问题出在"上下文"——模型看到了什么,决定了它输出什么。

于是大家开始琢磨:怎么组织上下文?怎么做 RAG(检索增强生成)?怎么管理对话历史?怎么注入系统指令?

Andrej Karpathy 甚至说:"与其叫 Prompt Engineering,不如叫 Context Engineering。"

这个阶段的本质是:从"优化一句话"升级到"优化模型看到的全部信息"。

进步很大,但还是不够。因为 Agent 不只是"看"和"说"——它还要"做"。调用工具、操作环境、管理状态、处理异常……这些不是 Context 能搞定的。

阶段三:Harness Engineering(2026)

当你把 Agentic Loop、Tool System、Memory、Guardrails、Hooks、Session 全部加在一起,你就从"优化上下文"升级到了**"构建完整的智能体运行时"**。

这就是 Harness Engineering。

它跟前两个阶段的关系不是替代,而是包含:

Harness Engineering ⊃ Context Engineering ⊃ Prompt Engineering

Prompt 是一句话,Context 是一页纸,Harness 是整个操作系统。

从Prompt到Context到Harness三阶段


Claude Code:第一个"跑通"的 Harness

说了这么多架构和理论,有没有真正落地的产品?

有。目前做得最好的,是 Anthropic 的 Claude Code

Claude Code 不是一个简单的"AI 编程助手"。它是目前市面上最完整的 Harness 实现——六个组件全部做到了产品级。

来看它怎么解决那五个深坑的:

问题
Claude Code 的 Harness 方案
死循环
Agentic Loop 内置最大迭代次数 + 异常检测 + 自动终止
上下文爆炸
自动压缩历史对话、分层记忆(短期/长期/持久化)、按需召回
权限失控
分级权限模型——读操作自动执行,写操作需确认,危险操作强制拒绝
质量不可控
Guardrails 做输出校验 + Hooks 做流程控制 + 人在环中审核
成本黑箱
Session 级别的 token 统计 + 工具调用计数 + 透明的用量反馈

更关键的是,Claude Code 的 Harness 是开放的。你可以自定义 Hooks、配置权限策略、接入自己的工具、管理自己的记忆系统。

这让人想到一个类比:Claude Code 之于 Agent,就像 Linux 之于服务器。

它不是一个封闭的产品,而是一个可组装、可扩展的基础设施。你在上面搭什么,取决于你自己。

Claude Code Harness架构全景


一张图看懂:30 年架构演变的底层逻辑

现在把整条线串起来:

1994  GoF 设计模式
      复杂性来源:对象交互
      解法:23种标准化模式
          ↓
2002  企业应用架构模式 (Fowler)
      复杂性来源:业务系统膨胀
      解法:分层架构 + 边界隔离
          ↓
2010s 微服务架构
      复杂性来源:分布式系统
      解法:服务拆分 + 基础设施层
          ↓
2017  DDIA 数据密集型系统
      复杂性来源:海量数据
      解法:数据分区/复制/一致性模型
          ↓
2026  Harness Engineering
      复杂性来源:智能体行为
      解法:6组件运行时架构

每一代的模式完全一样:

  1. 新技术带来新能力
  2. 新能力催生新的复杂性
  3. 复杂性膨胀到人脑管不住
  4. 新的架构范式诞生,用抽象"驯服"复杂性
  5. 行业标准化,进入下一轮循环

Harness 不是什么全新的发明。它是软件工程30年来"用架构管理复杂性"这条主线的最新延伸。

理解了这一点,你就不会把 Harness 当成一个流行词汇,而是看到它在技术史中的必然位置。

30年架构演变全链路时间线


给开发者的启发

1. 别再只关注模型了

DeepMind 的实验说得很清楚:同一个模型,不同 Harness,性能天壤之别。

如果你在做 Agent 产品,花 80% 的精力研究"用哪个模型",不如花 60% 在 Harness 工程上。模型是军备竞赛,Harness 是护城河。

2. 你过去的架构经验没有白费

如果你做过微服务——服务发现、熔断、限流那套东西,迁移到 Harness 里几乎是降维打击。

如果你做过分布式系统——状态管理、一致性、容错那些概念,Agent 的记忆系统和会话管理对你来说毫无障碍。

Harness Engineering 不是一个全新的学科。它是传统软件架构能力在 AI 时代的投射。

3. 现在入场,不早不晚

2026 年的 Harness Engineering,大概相当于 2014 年的微服务——概念已经清晰,先行者已经验证(Claude Code),但行业标准还没有固化,开源生态还在早期。

这意味着:你现在积累的 Harness 实践经验,在两年后就是稀缺资产。


结语

回看软件架构这 30 年,最让人感慨的是这条线的一致性。

从 GoF 到 Fowler,从微服务到 DDIA,再到今天的 Harness——我们一直在解同一道题:怎么用抽象驯服复杂性。

工具在变,语言在变,范式在变,但这道题从来没变过。

AI Agent 的出现,带来了一种前所未有的复杂性:你管理的不再是确定性的代码逻辑,而是一个会"思考"、会犯错、会自主行动的智能体。

Harness,是我们目前找到的最好答案。

不一定是最终答案。但如果 30 年的历史能说明什么的话——每一次我们以为"这次不一样"的时候,架构思维最终都会回来。

这次也不例外。


参考资料

  1. 黄佳/Datawhale [万字综述Harness革命:从Prompt Engineering到Harness Engineering]
  2. Gamma et al. [Design Patterns: Elements of Reusable Object-Oriented Software (1994)]
  3. Martin Fowler [Patterns of Enterprise Application Architecture (2002)]
  4. Martin Kleppmann [Designing Data-Intensive Applications (2017)]
  5. Google DeepMind [SWE-bench Harness 对比实验 (2025)]
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-19 18:43:59 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/537258.html
  2. 运行时间 : 0.125641s [ 吞吐率:7.96req/s ] 内存消耗:4,868.20kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=75c9e6cf39a04203ff1de0e8dba6fd8a
  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.000557s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000996s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000347s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000271s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000573s ]
  6. SELECT * FROM `set` [ RunTime:0.000219s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000642s ]
  8. SELECT * FROM `article` WHERE `id` = 537258 LIMIT 1 [ RunTime:0.000542s ]
  9. UPDATE `article` SET `lasttime` = 1776595439 WHERE `id` = 537258 [ RunTime:0.006690s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000268s ]
  11. SELECT * FROM `article` WHERE `id` < 537258 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000458s ]
  12. SELECT * FROM `article` WHERE `id` > 537258 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000938s ]
  13. SELECT * FROM `article` WHERE `id` < 537258 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000589s ]
  14. SELECT * FROM `article` WHERE `id` < 537258 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001163s ]
  15. SELECT * FROM `article` WHERE `id` < 537258 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000720s ]
0.129679s