乐于分享
好东西不私藏

AI-Native 软件工程(10):Feedback Layer——为什么大多数 Agent 越用越蠢

AI-Native 软件工程(10):Feedback Layer——为什么大多数 Agent 越用越蠢

上篇拆了执行层——代码在哪跑、怎么跑安全。代码跑完,stdout 吐出来一坨东西。这坨东西要回到哪里?谁负责读?读完以后做什么?

这是反馈层的问题。也是这套体系里最容易被忽略、做错代价最大的一层。


去年冬天我接手一个跑了大半年的内部 Agent 系统。表面看起来很完整:Planner 出方案、Executor 跑命令、stdout 和 stderr 都进了 trace、每个步骤都有 retry。文档里画了一个漂亮的闭环图,"持续学习"四个字写得很大。

我盯着那张架构图看了十分钟,问了一句:这个 Agent 上线半年,它现在比第一天聪明吗?

会议室安静了一会。然后有人说:好像没什么变化,可能还更倾向于复用之前那几个老套路。还有人说,最近用户反馈"它有时候执行一个简单需求会绕一大圈"。

我让他们把过去三个月内 Agent 自己写进 memory 的"经验"导出来。两千多条。大半是 stdout 的尾巴、retry 的失败堆栈、被截断的报错信息、Agent 自己对自己的复盘——比如"上次这个任务花了 23 步,下次可以更高效",然后下次它真的就在第一步把这条经验当 context 喂进去了。

这就是一个典型的"反馈层做错了的系统"。它不是没有反馈,它是把所有能采集到的信息都当成反馈,结果 Agent 每次决策的 context 里塞满了过去的噪声。它确实在"学习",只是学到的全是错的东西——学到了"上次绕了大圈所以这次也要绕"、"上次 retry 三次最终成了所以这次也 retry"。它在退化,不是在进化。

执行层的命题是"代码在哪跑"。反馈层的命题——我现在的判断——其实只有一个:什么信号值得回流,什么信号必须丢掉。


反馈不是"把执行结果存起来"

很多团队对反馈层的第一直觉,是把它当成一个数据管道:执行结果 → 存储 → 下一次决策时读取。这个直觉错在哪?错在把"采集"当成了"反馈"。

采集是 IO 行为,反馈是认知行为。两者中间隔着至少三层处理:信号识别、可信度评估、回流路径选择。如果你跳过这三层,反馈层就退化成一个会越积越大、越来越脏的数据池。

CI/CD 系统的反馈链路简单得多:单元测试跑完——pass 或 fail——开发者看到红绿灯——修代码——再跑。整个链路里反馈是离散的、二元的、幂等的。同一段代码跑十次结果一样,这次的反馈不会影响下次的判断逻辑——判断逻辑由人脑承担,反馈系统只负责传递信号。

AI Agent 的反馈链路完全不是这个形状。Agent 的反馈是连续的、多维的、有状态的。同一个任务,第一次执行成功不等于第二次也会成功——因为这次执行的 trace 可能进入了下次的 prompt,改变了下次的决策概率。判断逻辑由 LLM 承担,而 LLM 的判断逻辑会被你喂给它的反馈材料改写。

这个区别带来一个非常反直觉的结论:在 AI 系统里,反馈层的设计错误,比执行层的设计错误更难发现,也更难修复。执行层错了,代码跑炸,你立刻知道。反馈层错了,Agent 静默地往一个错误方向漂移——你三个月后才发现"它好像变笨了"。

更麻烦的是,反馈层的故障没有一个清晰的"红色告警"。执行层有进程崩溃、有返回码、有超时。反馈层的失败长什么样?长得跟正常工作几乎一模一样——只是 Agent 在某个本来应该选 A 的地方选了 B,而你看不出这个 B 是不是被某条历史反馈推着选的。你只能在足够长的时间尺度上、跨足够多任务做统计,才能发现"它在退化"。这就是为什么我说反馈层是这套体系里最容易做错、做错代价最大的一层。


信号与噪声的分界线

反馈层的核心工作,是把执行后产生的一大堆"信息"切成两堆:能用的信号、必须丢的噪声。

这条分界线该画在哪?我用四个维度做判断。它们彼此正交,每条信息都得过这四关。

第一关是可重复性。这个信号下次再出现的概率有多大?一次性的偶发现象——比如某次网络抖动导致的超时——价值接近零。重复出现的模式——比如"某个 API 在工作时间外总是 429"——价值很高。可重复 = 可归纳 = 能进入决策模型。不可重复 = 偶发噪声 = 必须丢,否则下次 Agent 看见正常情况都会先怀疑网络抖动。

第二关是因果可追溯。这个信号跟当前 Agent 的某个决策有没有明确的因果链?"用户最终没满意"是结果,但如果你不知道用户对哪一步不满意,这个信号回流回去 Agent 不知道该改什么。我们之前踩过的最大一个坑:把整条 trace 当反馈喂回去,Agent 在下次执行时同时调整了五个变量——你完全不知道是哪个调整起了作用,下次再失败你又没法定位。可追溯 = 单点反馈 > 总体反馈。

第三关是时延-价值衰减。有些信号只在很短的时间窗口内有价值。比如执行过程中 stdout 的实时流——它在执行当下用于"这步该不该继续"的判断价值极高,但执行结束后写进 memory 几乎没用。反过来有些信号在长时间尺度上才显示价值——比如"某类任务过去三个月平均要 retry 1.7 次",这个数字单看一次任务毫无意义,看一个季度才能用。把这两类信号同等对待,你就同时浪费了实时性和长期统计——前者来不及响应,后者被实时数据淹没。

第四关是可信度。信号本身是不是来自一个值得信任的源头?stdout 是 Agent 自己写的,相当于"自我陈述",可信度天然低。测试结果由独立测试框架产生,可信度高。用户行为(点了赞、复用了产出、永久删了文件)可信度更高。把所有信号当成同等可信,等于让 Agent 用自我陈述教育自己——这就是为什么很多系统 Agent 会越来越自信地犯同一类错误。

四关同时高分的,才是合格信号。任意一关塌方的,进反馈池就是污染。

这四关里最容易被忽视的是第三关。可重复性和可信度大家多少会想到——一次性事件不要记、自陈数据要打折,是工程常识。但时延-价值衰减这件事,大多数团队没有显式建模过。结果就是把实时信号写进了长期存储、把统计指标拿来做实时判断,两边互相干扰。我自己的经验是,反馈层最早需要拆开的就是这两个时间尺度——短的归短的,长的归长的,中间不要互相串。


反馈层四维信号筛选模型:可重复性 / 因果可追溯 / 时延-价值衰减 / 可信度

三种反馈,三条回流路径

把信号筛干净以后,第二个问题是:让这些信号流回哪里?

我见过最常见的错误设计,是所有反馈走同一条管道:执行结果——一个大 memory——下次决策时全文加载。这种"一个池子装所有"的设计在系统刚上线时看不出问题,因为池子还小。三个月后池子膨胀,每次决策都要在几千条历史里翻找,token 成本爆炸,相关性反而下降。

按反馈影响范围分,至少要拆成三条独立的路径。

第一条回到当前任务。这是最短的闭环,也是最高频的。Agent 跑一步,看 stdout,判断要不要继续。这种反馈的特点是即时、私有、不持久——它只对当前这次执行有用,任务一结束就该清空。在 Claude Code 这类工具里,bash 工具的输出就属于这一类——它流回当前对话的 context,但不会变成跨会话的"经验"。这条路径设计错的常见症状是:把每一步的 stdout 都写进长期 memory,结果一周后 Agent 的 context 里塞满了上周某次 grep 的输出。

第二条回到当前会话/项目。这是中等周期的反馈。比如"这个项目里我已经知道测试要用 pytest 不是 unittest"、"这个仓库的 lint 配置在 pyproject.toml 里"、"这个用户偏好简短回复"。这类反馈是"工作记忆"——它对当前会话的所有任务都有用,但不应该泄漏到别的项目去。这条路径设计错的常见症状有两种:一种是太短(每次重启从零开始,用户每次都要重新教),一种是太长(一个项目的偏好被错误地泛化到所有项目,你在另一个仓库工作时它还在用上一个项目的 lint 规则)。

第三条回到全局/Planner。这是最长的反馈,频率最低,但影响最深。它回答的是"什么类型的任务该用什么模式去做"——比如"涉及金融数据迁移的任务,先做 dry-run 再实跑"、"涉及多服务的部署,先准备 rollback 路径"。这类反馈不该是 trace 级别的,应该是抽象出来的模式。原始 trace 进入这条路径之前,必须经过一次额外的归纳处理——把具体事件抽象成可以跨场景复用的判断。

三条路径必须严格隔离。短期反馈不能污染长期模式,长期模式也不能干扰短期判断。我见过一个失败的系统,把"我刚才那一步 sed 命令打错了"这种短期信号写进了 Planner 的全局策略,结果之后所有任务都被 Planner 加了一条"先验证 sed 语法"的前置步骤——一个本来一行能搞定的任务变成五步。


一次性反馈 vs 持续反馈

反馈层的另一个深水区,是"什么算一次反馈"。

绝大多数 AI 系统的反馈模型是事件性的:任务结束——评估结果——产出反馈——下次决策时使用。这是把传统软件工程"build → test → deploy"的事件性反馈模型直接平移过来。它对短任务、确定性任务还可以——但对真正长链路的 Agent 任务,会漏掉太多东西。

举个例子。Agent 接到一个任务:"把这个数据管道从 Airflow 迁到 Prefect。" 任务跑了三小时,最后一步部署成功。事件性反馈给你一个绿色 checkmark:成功。

但真实情况可能是:第 11 步它在某个配置文件上卡了 40 分钟,反复试了七种写法。第 23 步它发现了一个原系统就存在的 bug 顺手修了,但没记录。第 31 步它发现某个依赖的版本不兼容,绕了个圈找替代方案。这些细节如果你只看"任务成功/失败",全部丢失。但下次再做一个类似迁移时,这些细节恰恰是最值钱的反馈材料——"哪一类配置容易出错"、"哪些依赖经常有兼容问题"。

持续反馈模型不一样。它把任务执行的整个时间轴都当成可以采样反馈的对象。在每个决策点(不是每一步)记录一次:当时 Agent 面临的选择、它选了哪个、为什么、当时已知信息是什么。任务结束后做的不只是"成功/失败"标记,而是回看决策点,标注每个决策回头看是不是好决策。

这种模型有点像下棋的复盘。一盘棋下完,赢了不等于每步都对,输了也不等于每步都错。真正能让你下次下得更好的,是把那几个关键决策点拎出来重看一遍。Agent 任务也一样。事件性反馈只告诉你输赢,持续反馈才能告诉你哪几步定胜负。

代价当然有。持续反馈的存储和处理成本远高于事件性反馈。但你不需要对所有任务都用持续反馈——把它留给那些复杂度高、跨度长、未来会重复的任务类型。日常的简单任务事件性反馈足够了。

这里有个常见误区:很多人以为持续反馈意味着把每一步都记下来。不是。它意味着只记"决策点",不记每一步。决策点通常是少数——一个三小时的任务可能只有四到六个真正的决策点,剩下的几十步都是机械执行。把决策点拎出来记是值得的,把执行步骤也记下来就是噪声。怎么判断"这是不是一个决策点"?我的经验是:如果 Agent 当时有两个以上的合理选择,就是决策点;如果它只是在执行上一步确定的动作,就不是。


反馈预算:你不能什么都喂回去

写到这我必须强调一件事,因为我见过太多团队栽在这里:Agent 的每次决策都是在固定 context 窗口内进行的,反馈材料是有预算的。

你给 Agent 喂的每一条历史反馈,都在挤占它思考当前任务的空间。一条 5000 token 的历史 trace 喂回去,相当于让 Agent 少 5000 token 来处理当前问题。这不是技术细节,这是架构层面的成本。

很多团队没意识到这件事,因为他们的反馈是隐性的——RAG 检索一波相关历史塞进 prompt、memory 系统自动注入最近 N 条记录、persona 文档每次都全文加载。每一项单看都"应该有用",加起来已经占了 context 的一半。剩下一半 Agent 用来读用户当前问题和工具返回,思考的空间被压得很小。

反馈层必须有预算意识。每条反馈进入下次决策前要回答一个问题:它的价值是否高过它占用的 context?如果一条 3000 token 的历史 trace 只能让决策正确率提升 1%,它就不值得。反过来一条 50 token 的关键经验——"这个项目的 prod 库别直连,永远走 read replica"——价值远高于成本。

这个判断在工程上有几条具体做法。一是先压缩再回流:原始 trace 不进 memory,进 memory 的是抽象出来的判断("该用 read replica")。二是惰性加载:默认不加载历史反馈,Agent 觉得需要时主动检索。三是时间衰减:超过一定时间的反馈自动降权或归档——你三个月前的某次失败,今天大概率已经不相关了。四是爆炸性事件优先:成功案例的反馈价值通常不如失败案例——平稳成功不值得记,意外失败值得反复回顾。

预算思维一旦建立,你会发现反馈层的设计完全反转了——它不再是"尽可能多收集",而是"尽可能少回流"。少而精的反馈,比多而杂的反馈有效得多。


反馈路径分层:当前任务 / 当前会话 / 全局策略

我现在的设计选择

把上面这些拆完,我自己实际在用的反馈层架构是这样的——不是推荐给所有人,是我现在这个场景下的取舍。

执行 trace 默认不进任何持久存储。原始 stdout、stderr、syscall 日志只在当前任务的 context 里有效,任务结束自动丢弃。这是反预算膨胀的第一道防线。

每次任务结束有一个固定的 reflection 步骤。它不是把 trace 复述一遍,是回答三个具体问题:这次任务里有没有遇到"以前不知道的"事实?有没有发生违反预期的事?如果重做,第一步会改吗?三个问题加起来产出不超过 200 字。这 200 字才是真正的反馈。

反馈写入分三层。一层是任务级缓存(10 分钟过期),用于同一个 task 内的多步协调。一层是项目级 memory(按仓库或工作目录归档),用于这个项目内的偏好和约定。一层是全局 lessons(手动 promote),只有那些跨项目可复用的判断才进——而且必须经过一次人工确认或第二个 Agent 复审。

反馈调用是显式的,不是默认注入。Agent 在某一步需要历史经验时,自己发起一次"我需要关于 X 的过往经验"的查询。这个设计有点反直觉——为什么不让相关经验自动浮现?因为自动浮现的代价是 context 污染,而 Agent 主动查询的成本是多一次工具调用——后者便宜得多。

失败信号比成功信号优先。每次任务结束如果有非预期事件——不管最终是不是成功——这次任务进入 review queue。成功且平稳的任务直接归档不做后续处理。这把反馈处理的资源集中到真正值得复盘的样本上。

这套设计也不是终态。它解决了"反馈池被污染、Agent 越用越笨"的问题,但它也带来了新的代价——Agent 偶尔在某个本该用历史经验的地方没有调用,需要用户提醒。我现在觉得这个代价比 context 污染小,但这个判断可能在更长链路的任务上不成立。


系列下一站

反馈层解决了"信号怎么回流"。但那些被 promote 上来的全局 lessons,它们要怎么组织、怎么检索、怎么演化——这是另一个独立的问题。

下一篇聊 Knowledge Layer:当 Agent 积累了几千条 lessons,它怎么知道现在该用哪一条?为什么大多数知识库系统在 AI 时代会被重做一遍?


写在结尾

反馈层不是一个技术问题,是一个取舍问题。你愿意为多干净的反馈付多大的代价。

最干净的反馈系统是"什么都不记"——零污染,但每次从零开始。最丰富的反馈系统是"什么都记"——理论上最聪明,实际上最笨。中间这一大片地带怎么走,没有标准答案。

但有一个判断标准,比所有具体的实现方案都重要:这个系统在第 N 天,比第 N-1 天更聪明,还是更笨?如果你的反馈层做得对,这个数字会缓慢但稳定地正增长。如果做得不对,它会在某个节点开始倒退——而你大概率不会立刻发现。

去看一下你的 Agent 系统,今天比一个月前更聪明,还是只是积累了更多噪声?这个问题值得每周问自己一次。

                 
 
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-13 15:53:44 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/618397.html
  2. 运行时间 : 0.200723s [ 吞吐率:4.98req/s ] 内存消耗:4,708.07kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=b40385d9a778bce0836117742b8daa92
  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.000835s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000709s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000331s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000269s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000566s ]
  6. SELECT * FROM `set` [ RunTime:0.000289s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000620s ]
  8. SELECT * FROM `article` WHERE `id` = 618397 LIMIT 1 [ RunTime:0.000486s ]
  9. UPDATE `article` SET `lasttime` = 1778658824 WHERE `id` = 618397 [ RunTime:0.009409s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000294s ]
  11. SELECT * FROM `article` WHERE `id` < 618397 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000493s ]
  12. SELECT * FROM `article` WHERE `id` > 618397 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000356s ]
  13. SELECT * FROM `article` WHERE `id` < 618397 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002723s ]
  14. SELECT * FROM `article` WHERE `id` < 618397 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000642s ]
  15. SELECT * FROM `article` WHERE `id` < 618397 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000699s ]
0.204681s