乐于分享
好东西不私藏

给 AI 套上缰绳:一篇文章讲透 Harness Engineering

给 AI 套上缰绳:一篇文章讲透 Harness Engineering

2026 年,工程师的核心竞争力,正从"编写代码"迁移到"设计让 Agent 自主交付的系统"。

大模型越来越聪明,但聪明的大脑不等于能干的员工。真正决定 Agent 能不能在生产环境里跑起来的,不是模型,是包在模型外面的那层"壳"。这层壳有个名字,叫 Harness

一、先从一个朴素的问题说起

过去一年,你大概率见过类似的场景:

  • Demo 阶段惊艳,上线就崩
    。一个 Agent 五分钟搞定小工具演示,放到真实业务里跑两天就原地打转。
  • 长任务跨不过夜
    。一个需求拆成三十步,跑到第十五步就"失忆"了,忘记自己在干什么。
  • 写到一半,拍着胸脯说"搞定了"
    。打开产物一看,一堆没跑通的函数、几个永远红着的测试。
  • 想回滚找不到现场
    。它在你的代码库里大笔一挥,但没人说得清它到底改了什么、为什么这么改。

换个模型能解决吗?试过。GPT-5 换 Claude 4.6 换 Gemini 3,问题依旧。LangChain 做过一个有意思的实验:模型不动,只优化外层工程,编程基准通过率从 42% 直接拉到 78%。同一个模型,前后差了 36 个百分点。

结论很硬核:瓶颈不在模型,在模型外面那一圈。

这一圈,就是 Harness

二、Harness 是什么?为什么叫这个名字

Harness 原本是英文里"马具"的意思——马鞍、缰绳、马镫、辔头,一整套装备。

为什么偏偏挑了这个词?因为它精准抓住了三个要点:

  1. 马是强壮的、有灵性的,但方向不定
    。对应大模型——能力惊人,但随机性也惊人。
  2. 马具本身不增加马的力量
    ,只是把它的力量约束在正确的方向上。对应 Harness——不提升模型能力,只让能力被可靠地利用。
  3. 骑手不直接去"驱动每一块肌肉"
    ,而是通过缰绳、马刺、膝盖给信号。对应工程师——不再手把手指挥 Agent 每一步,而是设计约束让它自己跑对。

2026 年 3 月之后,这个词突然在全球技术圈密集出现。Anthropic 的工程博客直接用 "Effective harnesses for long-running agents" 当标题;OpenAI、LangChain、Cursor 不约而同把它写进技术栈的正式命名。

Harness 不是某家公司的术语。它是整个行业在同一个问题上撞到同一堵墙之后,自发长出来的答案。

三、一句话定义 Harness

Harness 是包裹在大模型外部的"确定性外壳",让非确定性的 Agent 能在真实环境中长期、安全、可控地执行任务。

拆开看三个词:

  • 外部
    :它不在模型里,也不是一条 Prompt,而是真实的工程代码、真实的文件系统、真实的状态机。
  • 确定性
    :模型本身是概率性的(同样的 Prompt 两次回答能不一样),Harness 要用确定性的机制把它包起来。
  • 长期运行
    :几秒钟搞定的一次性问答不需要 Harness,需要跑几小时、几天、几百步的任务才需要。

一句更直白的类比:如果大模型是 CPU,Harness 就是操作系统。没有操作系统,再好的 CPU 也只能跑单片机程序。

四、Harness 的五大子系统(核心架构)

这是一张整体图,先看一眼再讲:

Harness · 确定性外壳Environment环境层Tools工具层⚙️ LLM / Agent 内核非确定性 · 概率推理Memory记忆层进度文件 / GitControl控制层状态机 / 权限 / 预算Evaluation验证层自动测试 / 评估器Human-on-the-loop · 人在回路上(关键节点介入)

1. Environment 环境层:给 Agent 一个工作的世界

这是 Agent 的"工位":文件系统、沙箱终端、浏览器、数据库。它必须满足两个条件——

  • 受控
    :出错了能还原,不会把你的生产库洗掉;
  • 真实
    :不是模拟的 mock,而是真实的 IDE、真实的 shell,让 Agent 的每个操作都有真正的后果。

2. Tools 工具层:把世界抽象成一个个 Action

环境是原始的、复杂的。工具层的工作,是把环境能力包成 Agent 能安全调用的原语。

反面教材:给 Agent 一个"执行任意 shell 命令"的工具。正面做法:read_file(path)write_file(path, content)run_test(suite)commit(message)——粒度越小、副作用越明确,Agent 越不容易跑飞

Vercel 内部有个案例,重构后砍掉了 80% 的冗余工具,模型表现反而更好了。因为工具越杂,Agent 的"选择焦虑"越严重。

3. Control 控制层:管住执行边界

这是 Harness 里最容易被低估、但最关键的一层。它负责:

  • 步数/时长限制
    :一个任务最多跑 50 步、最多跑 2 小时。
  • 状态机
    :任务必须从 PLANNING → CODING → TESTING → REVIEW 走,不能乱跳。
  • 权限控制
    :可以读日志,不能删库;可以提 PR,不能直接 merge 到 main。
  • 错误分类
    :把错误拆成"临时/可重试/需回滚/需人工"四类,每类走不同的恢复路径。

一句话:把规则写进系统,别写在 Prompt 里。写进 Prompt 的规则,模型心情不好就忘了;写进系统的规则,模型没有选择。

4. Memory 记忆层:把状态从模型里搬出来

模型上下文窗口就是它的短期记忆,满了就溢出。所以长任务的关键是:任何重要信息都不能只活在上下文里,必须外置到文件/数据库/Git

Anthropic 在一个克隆 claude.ai 的实验里用了这套做法:

  • 一开始建一个 claude-progress.txt 记录进度;
  • 一个 JSON 文件列出 200 多个功能点,每个状态是 pass/fail;
  • 每完成一步就 git commit,下一步开工前先 git log 读历史;
  • Agent 的"记忆"其实是文件系统,不是上下文

这个设计非常反直觉但非常有效——它让 Agent 像一个交接班的工程师:走进办公室先看看进度表、看看 commit 日志,再决定今天干什么

5. Evaluation 验证层:让系统自己判断"做对了没有"

模型最大的毛病之一是"盲目自信"——明明代码跑不通,它也敢说"已完成"。解决办法是把生成评估拆成两个角色:

  • Generator
     写代码;
  • Evaluator
     打开浏览器真点一遍、真跑一遍测试、真看一眼截图。
  • 评估器被显式校准为"怀疑论者",任务开工前就约定好"验收合同"(Sprint Contract),不满足就打回去。

Cursor 甚至用 8 通道并行盲审 + 多数投票:八个独立 Agent 同时评估,多数说通过才算通过。工业级可靠性,是这么堆出来的。

五、Harness 和 Prompt、Context 到底什么关系?

很多人一上来就问:"Harness 是不是要替代 Prompt Engineering?"

不是替代,是分层。

层级
回答的问题
代表产物
类比
Prompt Engineering
怎么"说话"
System Prompt、提示词模板
跟员工怎么交代任务
Context Engineering
让模型"看到什么"
RAG、AGENTS.md、动态上下文
给员工发什么资料
Harness Engineering让模型"怎么干"五大子系统 + Task Loop给员工配工作流程和验收规范

再打个更接地气的比方——

招一个水平极高但刚入职的实习生:

  • Prompt
     = 你布置任务时的那段话;
  • Context
     = 你塞给他的那堆文档和示例;
  • Harness
     = 你给他配的开发环境、测试流程、Code Review 规范、回滚机制、代码仓库。

前两个能决定他"今天这件事做得好不好",只有第三个能决定他"能不能独立交付三个月的项目"

六、Harness 能解决什么问题?三个真实案例

案例一:42% → 78%,同一个模型的能力被"解锁"了

LangChain 的实验:同样的模型、同样的任务集,只改进 Harness(加自验证循环、加目录映射、优化工具接口),SWE-Bench 通过率从 42% 提到 78%

启示:很多时候你以为模型不行,其实是外壳不行。

案例二:Stripe 一周合并 1300 个 Agent PR

这不是 demo,是生产。关键是三件事:

  • 工具层:所有工具都带"副作用白名单",碰不到敏感资源;
  • 控制层:每个 Agent 只能操作自己的分支,冲突全靠门控;
  • 验证层:CI 全绿才允许人工 review,人不是审代码,是审"这改动值不值得"。

人从"每行代码审阅者"变成了"门槛把关者"。

案例三:OpenAI Codex 项目,5 个月 100 万行代码 0 人工编写

具体做法在业界有共识——

  • 仓库即现实:架构规则、风格偏好、依赖约束全部写进代码仓,不写在 Prompt 里;
  • Doc-gardening Agent 定期巡检文档与代码的一致性;
  • Linter 是硬门禁,过不了就自动打回重做。

不是给 Agent 一个更聪明的大脑,而是给它一个更严谨的环境。

七、通俗易懂的场景理解

三个真实生活里都能对得上的类比:

🚗 驾校学车 vs Harness

  • 教练不控制你的手脚(他控制不了,也不该控制);
  • 教练控制的是"离合到半联动再走"这个流程、"今天只练直角转弯"这个边界、"后视镜不看就踩刹车"这个反馈。
  • 这就是 Harness:不控制动作,控制约束和反馈

🏭 工厂流水线 vs Harness

  • 每个工位的工人不用知道"一辆车怎么造",只需要拧自己那颗螺丝;
  • 流水线本身规定了顺序、节奏、质检关卡;
  • 工人可以被替换、被升级,但流水线保持稳定。
  • 这就是 Harness:把复杂的全局问题拆成简单的局部问题

🍳 米其林餐厅厨房 vs Harness

  • 大厨的随机创造力很珍贵,但菜不能每次都不一样;
  • 标准化的 mise en place(食材备料)、标准化的酱汁配方、标准化的摆盘 checklist——这些保证了每次上菜质量一致;
  • 大厨还是大厨,但餐厅变成了"可规模化复制"的餐厅。
  • 这就是 Harness:用标准化框架包裹创造力,让天才变成可重复的输出

八、2026 年的范式跃迁

这两年 AI 编程经历了三次范式转变:

第一代 · Vibe Coding

自然语言写代码|"哎,你帮我写个登录页"|适合 1000 行以内的快速原型

第二代 · Spec Coding

结构化规格驱动|把需求写成 OpenAPI / ADR / 行为清单|适合团队协作项目

第三代 · Harness Engineering

工程化驾驭 AI|用外壳驯服随机性,让 Agent 可以跑长周期任务|适合生产级部署

三代不是替代关系,是升级关系:

  • 写脚本工具
    ?Vibe Coding 就够了。
  • 做一个后端服务
    ?上 Spec Coding。
  • 要让 Agent 每周自主交付 1300 个 PR
    ?必须 Harness。

工程师的角色也在同步跃迁:从"骑手"(写代码的人)→ "驯马师"(设计让马跑对的系统的人)。

九、一个"最小可用 Harness"怎么搭?

如果你今天就想试一试,路径非常清晰:

Step 1 · 搭环境 + 写最薄的工具层(半天)

  • 一个干净的沙箱(Docker 或 git worktree)
  • 5 个以内的核心工具:read_filewrite_filerun_shellrun_testcommit

Step 2 · 加 Task Loop(一天)

  • 明确 PLANNING → EXECUTING → EVALUATING → DONE 状态机
  • 每步之间做 checkpoint,状态写到文件里

Step 3 · 上记忆层(一天)

  • 建一个 progress.md 和 AGENTS.md
  • Agent 开工前第一件事:读 progress、读 git log、读 AGENTS

Step 4 · 上验证层(一到两天)

  • 一个独立的 Evaluator Agent(或者干脆就是一组硬测试)
  • 说"完成"之前必须过 Evaluator,过不了打回来

Step 5 · 引入 Human-on-the-loop

  • 不是 Human-in-the-loop(人还在链路上等)
  • 是 Human-on-the-loop(人在旁边看,只在关键节点或异常时介入)

做完这五步,你会有一个粗糙但完整的 Harness。比你现在反复调 Prompt 有效得多。

十、写给普通人:把 Harness 思想用到生活和工作里

Harness 看起来是给工程师的,其实它的思想对任何需要"驾驭不确定性"的场景都成立。这是我最近感触最深的地方,分享四条可落地的心得:

💡 心得一:别只靠"自律",搭"环境"

Harness 最核心的一条哲学是:能用环境约束解决的问题,不要指望意志力

  • 想少刷手机?把手机放客厅、在卧室只放书 >>> 告诉自己"今晚不刷"。
  • 想早睡?房间温度调到 19 度 + 遮光窗帘 + 23 点断 Wi-Fi >>> 每天立 Flag。
  • 想写作?打开固定文档 + 关掉所有通知 + 开 25 分钟计时器 >>> 坐下来想"今天写啥"。

把规则写进环境,不是写在自己的脑子里。这就是个人版 Harness。

💡 心得二:把"状态外置"到文件

工程师的 progress.md,换成普通人的语言就是——

  • Today 文件
    :每天早上第一件事,打开昨天的 today.md,决定今天 3 件最重要的事。
  • Issue 文件
    :遇到任何 blocker 立刻写进 issues.md,不想当场解决就扔那儿等合适时机。
  • Decision 文件
    :重要决定都写"为什么这么定"+"备选方案",3 个月后复盘时就不会忘了上下文。

本质就是:不相信自己的脑子,相信写下来的东西。

💡 心得三:把"自验证"塞进流程里

Harness 里最反直觉的一点:Generator 和 Evaluator 必须分开。同一个脑子写的东西,同一个脑子审不出问题。

翻译成生活语言:

  • 写完一封重要邮件,放半小时再回来读一遍(把自己变成 Evaluator)。
  • 做完一个决定,写下"如果三个月后发现这个决定错了,可能是哪里错?"(预演反面)。
  • 重要的事情约一个朋友,让他扮演怀疑论者,专门挑毛病。

每一次"间隔 + 换角色",都是在给自己套一层 Harness。

💡 心得四:追求"可重复"而不是"一次牛逼"

Vibe Coding 能写出惊艳的 demo,但惊艳一次没用,Harness 追求的是每次都稳

  • 健身:不是某一天练到力竭,是每周三次稳定出现。
  • 读书:不是某个周末读完一本,是每天通勤 30 分钟稳定推进。
  • 副业:不是某个夜晚灵感爆发,是每周固定四小时的固定时段。

把你想要的结果拆成最小的可重复单元,然后给它搭一个不需要意志力的环境——这就是 Harness 送给普通人最值钱的一课。

十一、结尾

模型会越来越强,但"如何可靠地利用模型"这个问题永远存在。就像 CPU 越来越快,但操作系统的价值从未消失。

2026 年是 Harness Engineering 的元年。工程师们在用马具驯服 AI,普通人也可以用同样的思想驯服自己的工作和生活。

核心就一句话——

不要告诉 AI 怎么做,为 AI 搭一条跑道;不要告诉自己要做到,为自己搭一个不得不做的环境。

马年用马具,正是时候。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-25 09:26:58 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/550954.html
  2. 运行时间 : 0.182325s [ 吞吐率:5.48req/s ] 内存消耗:4,672.31kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=70b2f32166f4fc046632a81616e58799
  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.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001088s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001649s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000746s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000697s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001492s ]
  6. SELECT * FROM `set` [ RunTime:0.000576s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001695s ]
  8. SELECT * FROM `article` WHERE `id` = 550954 LIMIT 1 [ RunTime:0.001173s ]
  9. UPDATE `article` SET `lasttime` = 1777080418 WHERE `id` = 550954 [ RunTime:0.007142s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000659s ]
  11. SELECT * FROM `article` WHERE `id` < 550954 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001419s ]
  12. SELECT * FROM `article` WHERE `id` > 550954 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000969s ]
  13. SELECT * FROM `article` WHERE `id` < 550954 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001148s ]
  14. SELECT * FROM `article` WHERE `id` < 550954 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000754s ]
  15. SELECT * FROM `article` WHERE `id` < 550954 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001499s ]
0.184108s