乐于分享
好东西不私藏

OpenAI Harness Engineering 最佳实践 · 5 个可复制模式

OpenAI Harness Engineering 最佳实践 · 5 个可复制模式
OpenAI 的一个内部团队,用3 名工程师、5 个月时间,生产了100 万行代码——0 行人工编写,全部由 Codex 生成。这不是概念验证,是真实运行的产品:有内部日活用户,有外部 Alpha 测试者,会部署、会崩溃、会被修复。
更关键的是,这个团队的工作效率在持续上升:
  • 平均每人每天3.5 个 PR
  • 5 个月累计1500+ PR
  • 全部通过 Agent 自审完成
模型没有特殊之处,全程使用 GPT-5。
真正产生差异的,是Harness Engineering——围绕 AI Agent 构建的控制系统。

把 AI Agent 从"野马"变成"赛马"

如果把 AI Agent 比作一匹野马:
模型能力= 马的速度
Harness= 缰绳 + 马鞍 + 赛道
没有 Harness,野马跑得越快,越容易失控。参见前一篇:Harness Engineering 的本质:不是给野马装马具,而是设计赛场
OpenAI 从实战中提炼了5 个可复制的 Harness 模式,每个模式都满足:
✅ 有具体做法,不是空泛概念
✅ 有明确边界,知道什么时候用
✅ 有验证标准,知道是否生效
如果你正在引入 Coding Agent,或者准备构建 AI 原生研发流程,这 5 个模式可以直接落地。

模式 1:AGENTS.md 作为目录,不是百科全书

核心做法

把 AGENTS.md 做成导航地图(约 100 行),而不是完整说明书(1000+ 行)。

错误做法 vs 正确做法

错误做法

正确做法

把所有规则塞进一个文件

AGENTS.md 只放入口和导航

期望 Agent 通过一个文件理解全部

结构化知识存放在 docs/ 目录

文件快速膨胀,无人维护

用机械检查验证文档新鲜度

OpenAI 踩过的坑

OpenAI 团队尝试过"一个超大 AGENTS.md"方案,发现三个问题:
上下文是稀缺资源:巨型指令文件挤占任务、代码和相关文档的空间
太多指引等于没有指引:当所有内容都"重要"时,Agent 只能局部模式匹配
瞬间腐烂:单一手册变成过时规则的墓地
他们的解决方案:
"Instead of treating AGENTS.md as the encyclopedia, we treat it as the table of contents."

落地三步走

Step 1:重构现有 AGENTS.md

  • 保留:项目结构、build/test/lint 命令、禁区、Done Criteria
  • 移除:详细规范、流程说明、背景知识
  • 添加:指向 docs/ 目录的导航链接

Step 2:创建 docs/ 目录结构

docs/├── architecture/    # 架构文档├── design/          # 设计文档├── quality/         # 质量文档├── plans/           # 执行计划├── runbooks/        # 运维手册└── testing/         # 测试规范

Step 3:设置文档检查 CI

  • 验证交叉链接有效性
  • 检测过时文档(如代码变更但文档未更新)
  • 扫描孤立文档(无其他文档引用)

核心判断

如果 Agent 需要阅读超过 500 行规则才能开始工作,说明规则组织方式有问题。

模式 2:架构分层强制执行,不是建议

核心做法

自定义 Linter + 结构测试机械执行架构约束,而不是写成自然语言提醒。

错误做法 vs 正确做法

错误做法

正确做法

在文档中写"请不要跨模块依赖"

定义明确的模块边界和依赖方向

期望 Agent 记住并遵守架构规范

用 Linter 机械执行,违规直接报错

依赖 Code Review 发现架构违规

错误信息包含修复指引,注入 Agent 上下文

OpenAI 的刚性架构

OpenAI 团队构建了刚性的架构模型:
  • 每个业务域分为固定层级:
Types → Config → Repo → Service → Runtime → UI
  • 代码只能"向前"依赖(不能反向或跨层)
  • 跨域关注点(auth、connectors、telemetry、feature flags)通过Providers单一接口进入
  • 其他依赖方式一律禁止,机械执行
他们专门提到:
"This is the kind of architecture you usually postpone until you have hundreds of engineers. With coding agents, it's an early prerequisite."
这种架构通常在数百人团队才会强制执行,但在 Agent 环境中是早期必备前提——约束才是速度与架构稳定性的保障。

落地三步走

Step 1:定义架构分层

# 示例:电商订单域Order.Types      # 数据类型定义Order.Config     # 配置管理Order.Repo       # 数据访问层Order.Service    # 业务逻辑层Order.Runtime    # 运行时服务Order.UI         # 用户界面

Step 2:编写自定义 Linter

  • 检查依赖方向(只能向前)
  • 检查跨域访问(必须通过 Providers)
  • 检查文件大小限制
  • 检查命名规范

Step 3:集成到 Agent 工作流

  • 预执行检查:生成代码前验证架构约束
  • 后执行检查:提交前运行结构测试
  • 错误信息包含修复建议

核心判断

如果架构违规需要人工 Code Review 才能发现,说明约束不够机械。

模式 3:可观测性对 Agent 可见,不是黑盒

核心做法

日志、指标、链路追踪暴露给 Agent,让它能直接查询和推理,而不是人工分析后转述。

错误做法 vs 正确做法

错误做法

正确做法

Agent 生成代码后,人工查看日志分析问题

为每个工作区启动独立的可观测栈

性能问题由人工诊断后告诉 Agent 修复

Agent 可用 LogQL 查询日志、PromQL 查询指标

监控数据与 Agent 工作流隔离

性能目标写成可验证的 Agent 任务

OpenAI 实践

OpenAI 团队做了两件关键的事:
  • 应用可 bootable per git worktree
  • 可观测栈对 Agent 可见
这使得以下类型的任务成为可能:
"ensure service startup completes in under 800ms" "no span in these four critical user journeys exceeds two seconds"

落地三步走

Step 1:搭建轻量可观测栈

  • 日志:Loki + LogQL
  • 指标:Prometheus + PromQL
  • 链路:Tempo 或 Jaeger

Step 2:集成到 Agent 工具集

  • 添加 query_logs(expression) 工具
  • 添加 query_metrics(expression) 工具
  • 添加 check_slo(service, metric, threshold) 工具

Step 3:定义性能目标

  • 服务启动时间 < 800ms
  • 关键路径延迟 < 2 秒
  • 错误率 < 0.1%

核心判断

如果性能问题需要人工查看日志后告诉 Agent 修复,说明可观测性没有真正对 Agent 可见。

模式 4:UI 对 Agent 可见,不是截图

核心做法

接入Chrome DevTools Protocol,让 Agent 能直接操作 DOM、导航、截图,而不是只能看静态图片。

错误做法 vs 正确做法

错误做法

正确做法

给 Agent 看 UI 截图,让它描述问题

Agent 可以直接启动浏览器实例

人工操作浏览器复现 bug 后告诉 Agent

Agent 可以查询 DOM、执行导航、截取截图

UI 测试由人工编写和维护

UI 行为验证写成 Agent 可执行任务

OpenAI 实践

OpenAI 团队将 Chrome DevTools Protocol 接入 Agent 运行时,创建了操作 UI 的 Skills:
  • DOM 快照:Agent 可以获取当前页面 DOM 结构
  • 截图:Agent 可以截取当前页面状态
  • 导航:Agent 可以点击、输入、滚动等操作
这使得 Agent 可以:
  • 直接复现 bug
  • 验证 UI 修复
  • 推理 UI 行为

落地三步走

Step 1:接入浏览器自动化工具

  • Puppeteer 或 Playwright
  • 通过 Chrome DevTools Protocol 控制

Step 2:封装 UI 操作 Skills

  • navigate(url):导航到指定 URL
  • screenshot(element):截取元素或页面截图
  • query_dom(selector):查询 DOM 元素
  • click(selector):点击元素
  • type(selector, text):输入文本

Step 3:定义 UI 验证任务

  • "登录页在 Safari 下提交后 spinner 应该消失"
  • "点击提交按钮后应该显示成功提示"
  • "表单验证错误应该显示在输入框下方"

核心判断

如果 UI bug 需要人工复现后告诉 Agent,说明 UI 没有真正对 Agent 可见。

模式 5:Doc Gardening Agent,不是人工维护

核心做法

设置定期扫描文档的 Agent,自动发现过时文档并创建修复 PR,而不是依赖人工维护。

错误做法 vs 正确做法

错误做法

正确做法

文档写完就无人问津

Doc Gardening Agent 定期扫描代码库

代码变更后人工记得更新文档

对比文档描述与实际代码行为

文档过时导致 Agent 行为偏离

发现不一致时自动创建修复 PR

OpenAI 实践

OpenAI 团队有一个专门的**"doc-gardening"Agent**:
"A recurring 'doc-gardening' agent scans for stale or obsolete documentation that does not reflect the real code behavior and opens fix-up pull requests."
这个 Agent 定期运行,扫描:
  • 过时的 API 文档
  • 与实际行为不符的设计文档
  • 引用的代码已变更的说明
  • 孤立的、无其他文档引用的内容
发现不一致时,直接创建修复 PR,不需要人工发现后再分配任务。

落地三步走

Step 1:定义文档新鲜度指标

  • 文档最后更新时间 vs 代码最后变更时间
  • 文档引用的代码是否存在
  • 文档描述的 API 是否匹配实际签名

Step 2:创建 Doc Gardening Agent

  • 定期扫描(如每天或每周)
  • 对比文档与实际代码
  • 发现不一致时创建修复任务

Step 3:设置修复工作流

  • 小改动:Agent 直接修复并提交
  • 大改动:Agent 创建 PR,人工 Review
  • 无法判断:Agent 标记为需要人工审查

核心判断

如果文档过时问题需要人工发现后才修复,说明文档维护机制不够主动。

总结:5 个模式的共同特征

这 5 个模式看似独立,但共享一个核心逻辑:
把"希望 Agent 记得做"升级为"系统保证一定会做"。

模式

从...

到...

AGENTS.md 作为目录

人工记忆全部规则

系统导航 + 按需披露

架构分层强制执行

自然语言提醒

Linter 机械执行

可观测性对 Agent 可见

人工分析日志

Agent 直接查询推理

UI 对 Agent 可见

人工复现 bug

Agent 自主操作验证

Doc Gardening Agent

人工维护文档

Agent 主动扫描修复

#HarnessEngineering #AIAgent #CodingAgent #OpenAI

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-18 01:38:31 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/543862.html
  2. 运行时间 : 0.240063s [ 吞吐率:4.17req/s ] 内存消耗:4,798.34kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=50c162d86a5ca26f855140b4245442e6
  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.001003s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001436s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000668s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000687s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001375s ]
  6. SELECT * FROM `set` [ RunTime:0.000579s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001550s ]
  8. SELECT * FROM `article` WHERE `id` = 543862 LIMIT 1 [ RunTime:0.001321s ]
  9. UPDATE `article` SET `lasttime` = 1776447511 WHERE `id` = 543862 [ RunTime:0.004789s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000689s ]
  11. SELECT * FROM `article` WHERE `id` < 543862 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001111s ]
  12. SELECT * FROM `article` WHERE `id` > 543862 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000983s ]
  13. SELECT * FROM `article` WHERE `id` < 543862 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.006424s ]
  14. SELECT * FROM `article` WHERE `id` < 543862 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.015151s ]
  15. SELECT * FROM `article` WHERE `id` < 543862 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.011523s ]
0.243745s