乐于分享
好东西不私藏

【AI实践】如何用7个Agent维护Heron项目

【AI实践】如何用7个Agent维护Heron项目

一个真实的工程实践:把"读 issue、写代码、做代码审查、改 bug、合并、上线巡检"这条软件维护流水线,交给七个各司其职的自动化"数字员工"来跑。本文写给所有对"用 AI 维护项目"感兴趣的人——不需要你是程序员,也能看懂它的门道。

先讲个故事

想象你给一个软件项目提了个需求,写成一张"工单"(在开发里叫issue)。

在很多团队里,接下来会发生的事是:工单躺在列表里等人看;某个工程师有空了,读一读,觉得靠谱,于是动手写代码;写完提交一份"改动包"(叫PR,Pull Request);另一个同事抽空帮他审查(code review);审出问题打回去改;改好再审;通过了点合并;最后部署上线,再盯着监控看有没有出岔子。

这条链路里,每一步都要"等一个人有空"。

在我们维护的 Heron 项目里,这整条链路——从工单进来到代码上线、再到线上巡检——大部分时候没有人在中间等。它由七个 AI Agent(你可以理解成七个 7×24 在线的"数字员工")接力完成。人类做的,是定方向、拍板有争议的事、以及在 AI 拿不准时兜底。

这篇文章,就带你认识这七位"员工",看看它们怎么配合、又怎么被约束着不闯祸。

Heron 是什么?一句话:它是一套"AI 接口性能监测系统"——通过分析网络流量,测量大模型(LLM)服务到底快不快、稳不稳。这是一个开源软件。 本文不展开讲 Heron 本身,Heron是用来观察AI智能体的,而今天我们来说的是AI智能体又是怎么来开发维护Heron的

为什么要这么干?

先说动机,因为这决定了整套设计的取舍。

软件维护里,大量工作是"显而易见但很费神"的。比如代码审查,一个有经验的人看 PR,80% 的问题其实是套路化的——某处忘了同步改另一处、某个老坑又踩了一遍、某个边界没考虑。这些不难,但需要人静下心一行行看,很占精力。

我们的核心思路不是"让 AI 取代人",而是:

> 让 AI 把"显而易见的 80%"先处理掉,人类只在真正需要判断力的地方出场。

于是我们没有造一个"什么都管"的超级 AI,而是拆成了七个职责单一的小 Agent。每个只干一件事、干好一件事——这也是软件工程里一条很老的原则:职责单一,组合成线

认识这七位"数字员工"

我把它们按工单在流水线上的旅程顺序介绍。为方便记忆,我给每个起了个中文岗位名(括号里是它们在代码里的真实代号)。

1️⃣ 分诊员(triage)——工单进门的第一道关

每当有人提一张新工单,分诊员第一个上岗。

它的工作很像医院急诊的分诊台:读一遍工单,判断这事该不该做、能不能做。它会按一套严格的"门槛"来评估——比如:需求说清楚了吗?是不是真的属于这个项目该解决的范围?信息够不够动手?

然后它给出三种结论之一:

:贴上一个"可以试"的标签,自动喊醒下一位员工(开发员)。

需要更多信息:留言告诉提需求的人,到底缺了什么、补什么才能往下走。

跳过:这事不该自动做,留给人来定。

注意一个细节:分诊员不会自作主张写代码,它只做"该不该往下走"的判断。门槛故意设得偏严——宁可多问一句,也不要让机器在没搞清楚需求的情况下乱动手。如果它判断错了,人类随时可以手动给工单贴标签,强制启动或叫停。

> 💡给非技术读者的类比:分诊员就是前台兼接线员。它不解决问题,但决定"这个电话该转给谁、还是该先让你把话说清楚"。

2️⃣ 开发员(wiwi)——真正动手写代码的那个

工单一旦被分诊员放行,开发员 wiwi接手。这是整套体系里"最像程序员"的一位。

它会:

3️⃣ 审查员(vivi)——挑刺的那位

开发员提交后,审查员 vivi上场,做代码审查。

但这里有个关键的前置条件——它不是立刻就看。它会等一个叫CI的自动化检查先跑完。

> 💡CI 是什么?可以理解成"自动质检流水线":每次有人提交代码,机器会自动编译、跑一大批测试,确认没把现有功能搞坏。

只有 CI 通过了,审查员才出场。为什么?因为如果代码连编都编不过,花算力让 AI 去做精细审查毫无意义——先让质检把"连门都进不了"的挡掉。这是一条很省钱、也很务实的设计。

审查员看完,会给出三种结论之一,跟人类审查员一模一样:

> 💡 这是整套设计的灵魂之一:永远不要让 AI 陷入无限循环。给每个自动流程设一个"刹车",超过就交还给人。

5️⃣ 合并员(auto-merge)——按规矩落地

当审查员给出"通过",合并员检查一组硬性条件,全部满足才把代码正式合并进主干(并顺手删掉临时分支)。

但请注意——合并员不是 AI,它是一套死板的规则。它只在以下条件同时成立时才动手,比如:这是 AI 开发员出品的改动、审查员确实给了"通过"、改动的发起人在一份受信任名单里,等等。

这是个有意思的设计取舍:

> 不是所有自动化都该用 AI。越是"扣扳机"(合并、上线这种不可逆)的动作,越应该交给可预测、不会发挥的规则去把关,而不是让 AI 临场判断。

换句话说:让 AI 负责"思考",让规则负责"扣扳机"。而且,自动合并只对"项目维护者本人的低风险改动"开放;其他任何人的 PR,AI 的审查都只是"参考意见",最终还是要人来合并

在合并之后,我省掉了针对各个软件项目的特定的打包部署准生产/双跑/混沌工程中的一系列智能体(实际上这个项目里还有另外3位数字员工是负责部署和功能验证以及安全检查),这部分每个软件项目会有些不同,尤其涉及到环境,还会涉及到密钥/密码等,就不在这篇文章里说了。我们主要来看看相对标准化的智能体们。

6️⃣ 巡检员(mara)——盯着线上的哨兵

前面五位都在管"代码怎么写进来"。第六位,巡检员 mara,管的是"上线之后稳不稳"。

它每隔几分钟去探一次线上服务的健康状况,专门盯几类问题,比如:

7️⃣ 体检员(probe)——开工前先验环境

最后一位最低调,但少了它整条线都可能莫名其妙地崩。

这些 AI Agent 都跑在我们自己的一台服务器(自托管运行器)上。这台机器需要装好一堆东西、配好网络,AI 才能正常干活。体检员 probe就负责在每次环境有变动(比如机器重装)后,把这些前提条件一项项检查一遍,哪项不达标,一眼就能在日志里看出来。

它同样不是 AI,就是一套朴实的检查清单。但它体现了一条工程经验:

> **自动化系统最怕"环境悄悄变了"导致的离奇故障。 与其等出事了挠头排查,不如提前用一个"体检"把环境钉死。

把七位串起来:流水线全景

现在把它们放到一张图里,看一张工单是怎么"自己走完"全程的:

顺利的话,从工单进来到代码合并,**全程没有人在中间等**。人类只在两种时刻出现:一开始定方向,以及 AI 拿不准、吵起来、或线上告警时来拍板。

最关键的部分:怎么让 AI 不闯祸?

很多人一听"让 AI 自动改代码、自动合并",第一反应是:这不得出事?

问得好。这恰恰是整套体系里我们最用心的地方。我们靠四道"护栏"把风险摁住:

护栏一:只给"只读"权限。

审查员看代码时,我们只允许它"读"和"搜索",**明确禁止它修改、删除任何文件**。它能看、能提意见,但碰不了东西。能动代码的只有开发员/返工员,而且它们动的是隔离的工作分支,碰不到正式代码。

护栏二:质检(CI)必须先过。

任何 AI 写的代码,都得先过自动质检——编译、跑测试。过不了,后面的审查、合并根本不会启动。AI 的"创意"必须先撞过这道客观的墙。

护栏三:循环有上限,超了交给人。 前面讲过的“改了又审“循环,最多 3 轮。AI 之间谈不拢,不会无限内耗,而是自动停下、贴标签喊人。任何自动循环都有刹车——这是铁律。
护栏四:扣扳机的活交给规则,不交给 AI。合并、上线这种不可逆的动作,由死板的规则把关,不是 AI 临场发挥。而且自动合并只对维护者本人的低风险改动开放;其他人的代码,AI 的意见只是参考,最终人来定。出任何岔子,流程也设计成“报警但不阻塞“——人随时能接手收尾。
把这四条合起来,本质是一句话:
给 AI 自由去“想“,但把每一个“可能造成伤害“的出口,都用客观规则和人类兜底守住。
如果你只能从这篇文章记住一件事,我希望是这个。
审查员之所以好用,不是因为它用了多厉害的大模型,而是因为我们把“这个项目历史上踩过的坑“一条条写进了它的工作说明里。
每当人类审查员抓到一个 AI 漏掉的问题,我们就把这类问题总结成一行,加进它的“避坑清单“;每当它揪着一个根本不是问题的地方反复唠叨,我们就把对应那条删掉或改细。
久而久之,它不再是一个“通用的代码审查 AI“,而变成了一个懂我们这个项目脾气的老员工。一个泛泛的“帮我审一下代码“只会给你一堆没营养的格式建议;真正的价值,在于这些沉淀下来的、项目专属的经验。

它不是万能的

为了不夸大,也说说这套体系的局限:
  • 它擅长“显而易见的 80%“,但搞不定真正难的判断。 复杂的架构取舍、有歧义的需求,仍然得靠人。
  • 七位里只有四位真正“用 AI“(分诊、开发、审查、返工)。合并员、体检员是规则脚本,巡检员是“规则发现问题 + AI 写报告“。这是有意为之——能用简单规则解决的,绝不硬塞 AI。
  • 它要花算力。 一份中等大小的改动,审查一遍大约要十几分钟、消耗一定的计算资源。所以我们才设了“质检不过就不审“这种省钱的闸。
  • 它需要持续调教。 那份“避坑清单“不会自己长出来,是人一条条喂进去的。

如果你也想试试,几条朴素经验

最后,把这套实践里最通用的几条道理留给你,不管你是不是程序员都用得上:
  • 拆小,别造超级 AI。 七个只干一件事的小 Agent,比一个什么都管的大家伙更可控、更好调试。
  • 每个自动循环都要有刹车。 设个次数上限,超了就停、就喊人。这一条能帮你躲掉绝大多数“AI 失控“的噩梦。
  • 让 AI 思考,让规则扣扳机。 不可逆的动作交给可预测的规则,别让 AI 临场发挥。
  • 能用规则就别用 AI。 不是所有自动化都需要大模型。
  • 喂给它你的独家经验。 AI 的上限,往往由你给它的背景知识决定,而不是模型本身。
  • 永远留一条人类兜底的路。 最好的自动化,不是“没有人“,而是“人只在关键时刻出现“。
Heron 是一套通过分析网络流量来监测大模型和AI智能体行为和性能的开源项目。本文介绍的,是我们日常维护它所用的这套 AI Agent 协作流水线——它本身,也是“用 AI 工程化地维护软件“的一次真实实践。
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-08 21:21:11 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/729190.html
  2. 运行时间 : 0.102278s [ 吞吐率:9.78req/s ] 内存消耗:4,699.94kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=71f3f456f89d3473d06f6c3d3f4528ba
  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.000680s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000892s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000389s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000308s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000539s ]
  6. SELECT * FROM `set` [ RunTime:0.000217s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000648s ]
  8. SELECT * FROM `article` WHERE `id` = 729190 LIMIT 1 [ RunTime:0.003822s ]
  9. UPDATE `article` SET `lasttime` = 1780924871 WHERE `id` = 729190 [ RunTime:0.005808s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000264s ]
  11. SELECT * FROM `article` WHERE `id` < 729190 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000498s ]
  12. SELECT * FROM `article` WHERE `id` > 729190 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000432s ]
  13. SELECT * FROM `article` WHERE `id` < 729190 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001978s ]
  14. SELECT * FROM `article` WHERE `id` < 729190 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.004041s ]
  15. SELECT * FROM `article` WHERE `id` < 729190 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.007337s ]
0.103864s