乐于分享
好东西不私藏

Agent Loop:AI 应用从 Prompt 走向工程系统的分水岭

Agent Loop:AI 应用从 Prompt 走向工程系统的分水岭

Agent Loop 要讨论的是另一件事:

模型如何根据环境反馈,持续更新状态,并决定下一步行动。

一、先从最简单的 LLM 调用说起

最普通的 LLM 应用,大概是这样:

用户输入  ↓LLM 推理  ↓返回答案

比如翻译一句话、总结一段文字、判断一条评论是不是投诉、把一段会议纪要整理成固定格式。

这种模式很好。

便宜、快、容易调试、容易上线。

但它有一个天然限制:

模型只能基于当前输入和上下文回答。

如果它不知道,就只能猜。

如果它需要外部信息,就得有人提前把信息塞给它。

如果任务执行到一半失败,它自己也没有机会看到失败结果,更谈不上修正。

所以一旦任务从“回答问题”变成“完成目标”,事情就不一样了。

比如你让一个 Coding Agent 修复一个 Bug。

它不能只靠读你给的一段描述。

它要看文件。

要理解项目结构。

要跑测试。

要看到报错。

要修改代码。

要再次运行测试。

如果测试还失败,还得重新分析。

这个时候,系统就会从一次性调用变成循环:

用户目标  ↓观察当前环境  ↓判断下一步做什么  ↓调用工具 / 执行动作  ↓获得 Observation  ↓更新上下文和状态  ↓再次判断  ↓继续行动  ↓直到满足终止条件

更抽象一点,可以写成:

Goal  ↓Observe  ↓Think / Decide  ↓Act  ↓Observe  ↓Update State  ↓Decide Again  ↓Stop

这就是 Agent Loop 的基本形态。

注意,调用工具只是第一层能力。

真正拉开差距的,是模型可以根据工具返回的结果,动态决定下一步行为。

举个搜索类任务的例子。

一个普通 Workflow 可能是:

搜索  ↓总结  ↓输出

路径很清楚。

不管搜索结果好不好,它都继续往下走。

但一个真正的 Agent Loop 更像这样:

搜索  ↓分析搜索结果  ↓发现信息不足  ↓调整关键词  ↓再次搜索  ↓发现两个来源数据冲突  ↓寻找官方文档或原始论文  ↓判断证据是否充分  ↓生成最终答案

区别就在这里。

Workflow 的路径通常由开发者提前定义。

Agent Loop 的下一步行为,则可能由模型根据当前状态和环境反馈动态决定。

二、一个 Agent Loop 里面到底发生了什么

如果从工程视角看,一个 Agent Loop 至少包含这些东西。

Goal:任务目标是什么Context:Agent 当前掌握的信息State:任务执行到什么阶段Reasoning / Decision:下一步做什么Action:调用哪个工具,或执行什么操作Observation:环境返回了什么结果Memory:哪些信息需要保留Evaluation:当前结果是否满足目标Termination:什么时候停止循环

把它画出来,大概是这样:

这张图看起来不复杂。

但真实系统里,麻烦基本都藏在这些节点里。

1. Model:它要负责决策,也要负责生成文本

在 Agent Loop 里,模型至少承担六件事:

理解目标。

分解任务。

选择工具。

判断工具结果。

修改计划。

决定是否继续执行。

所以模型能力会直接影响 Agent Loop 的稳定性。

推理能力弱,它会乱分解。

Tool Calling 能力弱,它会乱选工具。

长上下文能力弱,它会忘记前面做过什么。

指令遵循能力弱,它会越权行动。

状态理解能力弱,它会重复执行、绕圈子、把目标跑偏。

这也是为什么同样一套 Agent 框架,换一个模型,效果可能差很多。

框架能提供轨道。

但开车的还是模型。

2. Tools:工具只是能力接口

Web Search、Browser、Database、Code Interpreter、Shell、File System、API、MCP Server、企业内部系统,都可以是工具。

工具让模型能够接触真实世界。

但工具本身只是接口。

“LLM + Tool Calling”也只是具备了行动入口。

关键判断标准只有一个:

模型是否能够根据工具执行后的 Observation,自主决定后续动作。

如果你的系统永远是:

用户问题 -> 搜索 -> RAG -> 生成答案

那它更像一个带工具的 Workflow。

如果你的系统是:

用户问题 -> 模型决定先查什么 -> 搜索-> 模型判断搜索质量不够 -> 换关键词-> 模型发现需要打开网页 -> 浏览器访问-> 模型发现网页需要登录 -> 请求用户授权-> 模型整理证据 -> 输出

这才更接近 Agent Loop。

3. State:没有状态,Agent 很快会迷路

Agent Loop 为什么需要 State?

因为它要跨多个步骤完成任务。

它要知道:

目标是什么。

当前计划是什么。

已经完成哪些步骤。

调用过哪些工具。

哪些路径失败过。

还剩哪些任务。

预算还剩多少。

已经循环了几次。

如果没有状态管理,Agent Loop 很容易出现几个经典问题:

重复搜索。

重复调用同一个工具。

忘记最初目标。

把失败路径再走一遍。

上下文越来越脏。

任务越做越偏。

很多 Agent Demo 看起来很聪明,用久了却不可靠,常见原因是状态管理太弱,模型能力只是其中一部分。

4. Memory:长期记忆要按需使用

Memory 这个词也容易被滥用。

一般可以分几类:

类型
作用
例子
Working Memory
当前推理窗口里正在使用的信息
当前任务描述、最近工具结果
Short-term Memory
当前任务周期内保留的信息
已完成步骤、失败记录、临时计划
Long-term Memory
跨任务长期保留的信息
用户偏好、项目规范、历史决策
Episodic Memory
过去具体事件的记录
上次部署失败的完整过程
Semantic Memory
稳定知识或规则
公司代码规范、业务指标口径

这里要强调一点:

Memory 并非所有 Agent Loop 的必要条件。

一个 Agent 可以只有当前任务 State,而没有长期 Memory。

比如一次性 Deep Research,只要记录本次研究的证据、来源、结论就够了,不一定要记住用户长期偏好。

State 和 Memory 的区别可以这么理解:

State 关心“这个任务现在走到哪了”。

Memory 关心“哪些信息值得以后继续用”。

5. Environment:Agent 必须被现实反馈敲一下

Agent Loop 的重要特征之一,就是模型的下一步行为会受到真实环境反馈影响。

这个环境可以是互联网。

可以是浏览器。

可以是操作系统。

可以是 IDE。

可以是 Git 仓库。

可以是企业数据库、CRM、ERP、云平台。

也可以是用户的一句反馈。

如果没有环境反馈,模型就还是在语言空间里打转。

它可以说得很像真的。

但它不知道自己有没有看错。

6. Termination:最容易被忽略,也最危险

Agent Loop 最容易被忽略的部分,是什么时候结束。

生产环境里不能简单写:

whileTrue:    agent.run()

这种写法很容易变成事故预告。

常见的终止机制至少包括:

终止机制
作用
Goal Completed
目标已达成
Model Decides Stop
模型判断不需要继续
Maximum Iterations
最大循环次数
Token Budget
Token 预算耗尽
Cost Budget
成本预算耗尽
Time Limit
超过执行时间
Tool Call Limit
工具调用次数上限
Human Approval
等待人工确认
Error Threshold
连续失败次数过多

一个可用的 Agent Loop,必须会停。

一个生产级 Agent Loop,必须知道什么时候自己不该继续干。

三、Agent Loop 和普通 while 循环有什么区别

表面上看,Agent Loop 不就是 while 循环吗?

确实,工程实现上经常就是一个循环。

但普通 while 循环和 Agent Loop 的本质区别,在于“下一步由谁决定”。

普通 while 循环通常是程序员提前写好规则:

whilenot done:    result = step(input)    done = check(result)

Agent Loop 则更像:

state = init(goal)while within_budget(state):    decision = model.decide(goal, state, tools)if decision.type == "finish":return decision.answerif decision.type == "need_approval":return ask_human(decision)    observation = run_tool(decision.action)    state = update_state(state, decision, observation)return fail_with_trace(state)

这里的关键点在于 decision。

模型会根据目标、状态、工具结果和约束,决定下一步到底是搜索、读文件、写代码、跑测试、重新规划,还是停止。

所以 Agent Loop 更接近一种控制结构,而非一个语法结构。

四、Agent Loop 和这些概念到底是什么关系

这一部分最容易绕。

因为 ReAct、Workflow、Plan-and-Execute、Reflection、Multi-Agent 这些词经常被混在一起讲。

我先给一个总图:

1. Agent Loop vs 单次 LLM 调用

维度
单次 LLM 调用
Agent Loop
基本形态
Prompt -> LLM -> Response
Goal -> Decide -> Act -> Observe -> Decide
是否接收环境反馈
通常不接收
持续接收
下一步是否动态变化
不存在下一步
会根据状态变化
成本
延迟
调试难度
适合任务
翻译、摘要、分类、信息提取、改写
Debug、研究、浏览器操作、数据分析、DevOps

如果任务一次调用就能解决,千万别为了显得高级硬上 Agent Loop。

比如翻译、摘要、分类、固定格式生成,用单次调用就很好。

Agent Loop 适合的是路径不确定、需要探索、依赖环境反馈的任务。

2. Agent Loop vs Workflow

这是最重要的对比。

维度
Workflow
Agent Loop
执行路径
预先定义
动态决定
控制者
程序
模型 + 程序
确定性
较高
较低
可预测性
较低
灵活性
中等
成本
可控
波动较大
调试难度
较低
较高
适合任务
稳定流程、规则清晰、高合规
开放任务、探索任务、路径未知

很多所谓 Agent,其实只是 Workflow。

比如:

用户输入  ↓搜索  ↓RAG  ↓生成答案

如果执行流程始终固定,它就更接近 Workflow。

这没什么不好。

很多生产系统就应该是 Workflow。

问题在于,今天大量 AI 产品把 Workflow 包装成 Agent,是因为 Agent 更好卖。

但工程上不能这么糊弄自己。

当流程可以提前定义时,就不要让模型重新发明流程。

3. Agent Loop vs ReAct

ReAct 来自 2022 年的论文《ReAct: Synergizing Reasoning and Acting in Language Models》。

它的核心是让模型交替进行 Reasoning 和 Acting:

Reason  ↓Act  ↓Observation  ↓Reason  ↓Act

ReAct 是一种典型的 Agent Loop 实现范式。

但 Agent Loop 是更高层的运行机制,ReAct 是其中一种具体组织方式。

ReAct 的好处是简单、直观、动态适应,特别适合工具调用。

但它也有问题。

它容易短视。

长任务容易漂移。

可能产生重复调用。

Token 消耗比较大。

也容易陷入循环。

所以 ReAct 很适合“边查边想”的任务,但不一定适合超长周期任务。

4. Agent Loop vs Plan-and-Execute

ReAct 更像一步一想:

Think  ↓Act  ↓Observe  ↓Think  ↓Act

Plan-and-Execute 更像先定路线,再分段执行:

Goal  ↓生成完整 Plan  ↓执行 Step 1  ↓执行 Step 2  ↓检查进度  ↓必要时 Replan  ↓继续执行

简单任务适合 ReAct。

比如查资料、浏览网页、简单故障排查。

长周期、多步骤任务更适合 Plan-and-Execute。

比如大型代码重构、完整市场研究、长篇研究报告、跨系统业务流程。

因为长任务如果每一步都临时想,很容易在局部信息里迷路。

先有 Plan,再执行,再根据反馈 Replan,稳定性会好很多。

5. Agent Loop vs Reflection Loop

普通 Agent Loop 关注的是下一步行动:

Think  ↓Act  ↓Observe  ↓Think

Reflection 更关注结果质量:

Generate  ↓Evaluate  ↓Critique  ↓Revise  ↓Evaluate Again

一个是“下一步该做什么”。

一个是“当前结果够不够好”。

两者可以组合。

比如:

Agent 执行任务  ↓生成结果  ↓Critic / Evaluator 评价  ↓发现问题  ↓重新规划  ↓再次执行

很多高质量写作、代码生成、SQL 生成、研究报告系统,都会把 Agent Loop 和 Reflection / Evaluator-Optimizer 组合起来。

6. Agent Loop vs Multi-Agent

Multi-Agent 不等于多个 Agent 同时聊天。

它是系统组织结构。

Single Agent 是这样:

User  ↓Agent Loop  ↓Tools

Multi-Agent 更像这样:

                 Orchestrator                      │        ┌─────────────┼─────────────┐        ▼             ▼             ▼   Researcher        Coder        Reviewer        │             │             │      Tools         Tools         Tools

Multi-Agent 解决的是角色专业化、上下文隔离、并行协作的问题。

Agent Loop 解决的是单个 Agent 或多个 Agent 内部如何持续决策和行动的问题。

一个 Multi-Agent 系统里的每个 Agent,都可能拥有自己的 Agent Loop。

如果没有明确分工、没有上下文隔离需求、没有真正并行收益,只是让几个模型互相聊天,那大概率是在增加复杂度。

7. 四个常见模式对比表

概念
核心问题
基本形态
适合场景
主要风险
Agent Loop
下一步应该做什么
Decide -> Act -> Observe -> Update
路径未知、环境反馈强
循环失控、成本波动、状态漂移
ReAct
如何边想边行动
Reason -> Act -> Observation
搜索、调试、网页操作
短视、重复调用、长任务漂移
Plan-and-Execute
如何处理长任务
Plan -> Execute -> Check -> Replan
重构、研究报告、跨系统流程
初始计划错误、执行僵化
Reflection
如何改进结果质量
Generate -> Evaluate -> Revise
写作、代码审查、SQL 生成
评价标准模糊、越改越偏

五、用一个真实任务看 Agent Loop 怎么跑

假设用户给你一个任务:

“帮我研究 2026 年主流 AI Coding Agent 的产品能力,并生成一份对比报告。”

一个固定 Workflow 可能会这么做:

搜索产品  ↓抓资料  ↓总结  ↓输出表格

看起来能跑。

但真实研究任务不会这么顺。

一个 Agent Loop 可能经历这些循环:

Loop
Agent 在做什么
Observation 影响了什么
1
理解任务,确定研究维度
先定义 IDE 集成、代码修改、终端、测试、权限、安全、价格
2
搜索产品官方资料
找到 Claude Code、Codex、Cursor、GitHub Copilot 等
3
发现版本信息不一致
改为查官方 changelog 和 docs
4
整理功能矩阵
发现某些产品没有明确 pricing 或企业权限说明
5
补充搜索 benchmarks、pricing、IDE integration
调整对比维度
6
交叉验证资料
把论坛传闻和官方声明分开
7
生成报告初稿
发现结论太泛,缺少选型建议
8
自我检查完整性
补充“适合谁、不适合谁、风险点”
9
输出最终结果
附上来源、假设和不确定项

这时候你会发现:

Agent Loop 这时就不再是一句抽象的“Think -> Act -> Observe”。

它会变成一个不断获取信息、改变状态、重新决策的动态控制过程。

六、什么时候应该使用 Agent Loop

我一般会看五个信号。

1. 路径未知

开发者不知道完成任务需要执行哪些具体步骤。

比如 Debug、研究问题、网页操作、Coding。

如果你没法提前写出完整流程,就可以考虑 Agent Loop。

2. 需要环境反馈

下一步动作依赖上一步结果。

比如:

搜索结果不好 -> 修改关键词代码运行失败 -> 分析 Error -> 修改代码接口返回 403 -> 检查权限 -> 请求用户授权

这种任务天然适合循环。

3. 任务具有探索性

Deep Research、数据探索、故障排查、安全分析,很多时候很难按固定流程走完。

它们更像一个人带着假设探索现场。

4. 工具很多

当系统里有搜索、数据库、代码执行、文件系统、浏览器、API、内部系统等大量工具时,让模型动态选择工具可能有价值。

但前提是工具权限要收紧。

否则“工具很多”也可能变成“事故很多”。

5. 无法穷举所有路径

传统 Workflow 最怕分支爆炸。

如果你发现自己要写几十上百个 if else 才能覆盖任务路径,那就说明这里可能需要 Agent Loop。

七、什么时候不应该使用 Agent Loop

这一节我觉得必须重点讲。

不要把 Agent 当成“更高级”的默认答案。

Agent Loop 有明显成本:

推理成本更高。

Token 成本更高。

延迟更长。

不确定性更强。

Debug 更难。

有无限循环风险。

有工具误调用风险。

有权限和安全问题。

所以这些任务,优先使用 Workflow:

任务类型
更适合的方案
固定审批流程
Workflow
ETL
Workflow
文档处理流水线
Chain / Workflow
发票识别
Single Call / Workflow
客服意图分类
Single Call
固定 RAG 流程
Workflow
数据同步
Workflow
内容审核
Single Call / Workflow

当流程可以提前定义时,不要让模型重新发明流程。

这句话很朴素,但非常重要。

很多 AI 应用失败,问题经常出在架构选型,模型能力只是其中一个变量。

本来一个稳定 Workflow 就能解决的问题,硬塞进 Agent Loop,最后成本变高、延迟变长、结果还更不稳定。

八、一套 AI 应用架构选型框架

我会用这个决策树:

也可以压成一张表:

架构
适合任务
判断标准
Single LLM Call
翻译、摘要、分类、信息提取
一次输入一次输出就够
Chain
少量连续步骤
上一步输出作为下一步输入
Workflow
流程稳定、规则清晰、高确定性
路径可预先定义
Agent Loop
路径未知、需要探索、依赖环境反馈
下一步必须动态决定
Plan-and-Execute
长周期复杂任务、多阶段执行
需要计划、检查、重规划
Multi-Agent
并行、角色专业化、上下文隔离
单 Agent 上下文压力过大

我的建议更激进一点:

能用 Single Call 解决,就不要使用 Chain。

能用 Chain 解决,就不要使用 Workflow。

能用确定性 Workflow 解决,就不要轻易使用 Agent Loop。

只有当任务路径真正无法预先定义时,Agent 的自主决策才真正产生价值。

九、生产级 Agent Loop 怎么设计

如果只是做 Demo,Agent Loop 很简单。

如果要进生产,真正难的是控制。

1. Loop Control:先给循环装刹车

至少要有:

max_iterationstimeouttoken_budgetcost_budgettool_call_limiterror_threshold

不要只相信模型会自己停。

模型可以判断停止,但系统必须有硬边界。

2. State Management:别让 Agent 只靠上下文硬记

生产系统应该显式记录:

当前目标、当前计划、工具结果、执行历史、错误记录、预算消耗、权限状态、人工确认状态。

这些信息不应该只混在一大段 Prompt 里。

能结构化就结构化,能持久化就持久化。

3. Observability:每一步都要能回放

Agent Loop 的 Debug 难点是,错误可能发生在任何一环。

所以你至少要记录:

日志对象
需要记录什么
Model Call
输入、输出、模型、温度、token、latency、cost
Tool Call
工具名、参数、结果、错误、耗时
State Change
哪些状态被更新
Decision
为什么选择下一步动作
Termination
为什么停止
Human Approval
谁批准了什么

没有可观测性,Agent 就会变成黑盒自动化。

出问题的时候,你只能看着账单和错误日志发呆。

4. Error Recovery:把失败当成常态来设计

Agent Loop 里工具失败很常见:搜索没有结果、网页打不开、API 限流、代码运行报错、数据库权限不足,这些都不应该被当成“意外情况”。

系统需要提前设计恢复策略,比如 Retry、Backoff、Alternative Tool、Replan 和 Human Escalation。生产级 Agent 当然也会失败,差别在于失败后能不能及时收敛,而不是继续消耗预算、重复撞墙。

5. Human-in-the-Loop:高风险动作必须问人

删除数据、Git Push、部署生产环境、发送邮件、支付、修改基础设施、批量修改客户数据,这类动作不要默认放权。

一个好的 Agent 系统,应该把操作分成三类:只读操作可以自动化;低风险写入可以加权限和审计;高风险写入必须经过 Approval Gate。让 Agent 自动干活,不代表把所有决定权都交出去。

6. Security Boundary:工具权限比 Prompt 更可靠

不要指望一句“请不要做危险操作”解决安全问题。更可靠的是工程边界:最小权限、Tool Permission、Sandbox、Read / Write Separation、Approval Gate、Audit Log。

Agent Loop 的能力越强,权限边界越重要。因为它已经开始触碰真实系统,这时候真正能保护系统的,是工具权限、沙箱和审计日志,而不是 Prompt 里的道德劝告。

十、最后:Agent Loop 是核心,但不是万能药

Agent Loop 是 Agent 系统真正的运行核心之一。

真正重要的指标,不能只看模型调用了多少工具。

更要看它能否根据环境反馈更新状态,并动态决定下一步行动。

这一点讲清楚,很多概念就不乱了。

Tool Calling 是接口。

ReAct 是一种循环组织方式。

Plan-and-Execute 是长任务控制策略。

Reflection 是质量改进循环。

Multi-Agent 是系统组织结构。

Workflow 是确定性流程。

Agent Loop 是动态控制过程。

它们之间更像可以组合的工程模块,关系上并不互斥。

现在更像是:

Context Engineering  +Tool Engineering  +Agent Loop Design  +State Management  +Evaluation  +Observability

这也是我觉得 Agent 真正有意思的地方。

它让 AI 应用从“生成答案”,开始走向“在真实环境里持续完成任务”。

但这一步有代价。

所以别急着把所有东西都做成 Agent。

能固定,就固定。

能简单,就简单。

只有当任务真的需要探索、反馈和动态决策时,Agent Loop 才值得上场。

以上。


Agent Loop 核心运行流程图

Agent Loop vs Workflow 对比表

维度
Workflow
Agent Loop
执行路径
预先定义
动态决定
控制者
程序
模型 + 程序
确定性
较高
较低
可预测性
较低
灵活性
中等
成本
可控
波动较大
调试难度
较低
较高
失败模式
节点失败、规则遗漏
循环失控、任务漂移、工具误调用
适合任务
稳定流程、规则明确、合规要求高
开放任务、探索任务、路径未知

Agent Loop vs ReAct vs Plan-and-Execute vs Reflection 对比表

概念
关注点
典型流程
适合任务
不适合任务
Agent Loop
动态控制下一步
Decide -> Act -> Observe -> Update
开放任务、环境反馈驱动任务
固定流程、低延迟任务
ReAct
边想边行动
Reason -> Act -> Observation
搜索、调试、网页操作
超长任务、强规划任务
Plan-and-Execute
长任务规划与执行
Plan -> Execute -> Check -> Replan
研究报告、重构、跨系统流程
很短的小任务
Reflection
结果质量改进
Generate -> Evaluate -> Revise
写作、代码审查、SQL 优化
缺少评价标准的任务

AI 应用架构选型决策树

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-24 06:56:25 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/852692.html
  2. 运行时间 : 0.206350s [ 吞吐率:4.85req/s ] 内存消耗:4,958.27kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=f2cb73660e248667c8eb12b89577fd39
  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.000712s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001055s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000339s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000288s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000660s ]
  6. SELECT * FROM `set` [ RunTime:0.000241s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000761s ]
  8. SELECT * FROM `article` WHERE `id` = 852692 LIMIT 1 [ RunTime:0.001930s ]
  9. UPDATE `article` SET `lasttime` = 1784847385 WHERE `id` = 852692 [ RunTime:0.043540s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000431s ]
  11. SELECT * FROM `article` WHERE `id` < 852692 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000785s ]
  12. SELECT * FROM `article` WHERE `id` > 852692 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.006475s ]
  13. SELECT * FROM `article` WHERE `id` < 852692 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001928s ]
  14. SELECT * FROM `article` WHERE `id` < 852692 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.036279s ]
  15. SELECT * FROM `article` WHERE `id` < 852692 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.020500s ]
0.208113s