乐于分享
好东西不私藏

【AI&Agents笔记】理解 AI Agent 的核心技术:Context Engineering (LLM Summary & Observation Masking & Memory)

【AI&Agents笔记】理解 AI Agent 的核心技术:Context Engineering (LLM Summary & Observation Masking & Memory)

理解 AI Agent 的核心技术:Context Engineering (LLM Summary & Observation Masking & Memory)

Context Engineering Explained: A Core Technology Behind AI Agents (LLM Summary, Observation Masking & Memory)

Slides:

https://github.com/createmomo/Notes-on-AI-Agents

Previous Articles:

之前的文章:

Contents:

  1. Why Do We Need Context Engineering?
  2. Compressing Context (LLM Summary & Observation Masking)
  3. Which Is Better, LLM Summary or Observation Masking?
  4. Memory

目录:

  1. 为什么需要Context Engineering
  2. 压缩Context (LLM Summary & Observation Masking)
  3. LLM Summary & Observation Masking 哪一个更好呢?
  4. Memory

关于这篇笔记的说明

  • 主要参考了Hung-yi Lee老师2026年的机器学习课程(https://www.youtube.com/watch?v=urwDLyNa9FU),其中一小部分内容根据个人理解可能有微小的调整;
  • 保留了最核心的内容,所以比较简短,但也尽量保留了知识的完整。所以适合快速的回顾复习,当然也适合新手快速理解。

About This Note:

  • This note is primarily based on Prof. Hung-yi Lee’s 2026 Machine Learning course (https://www.youtube.com/watch?v=urwDLyNa9FU). A small portion of the content may include slight adaptations based on personal understanding;
  • Only the core concepts are retained, making this note relatively concise while still preserving the completeness of the knowledge. Therefore, it is well-suited for quick review and revision, and also for beginners to gain a fast understanding.

1. 为什么需要Context Engineering (Why Do We Need Context Engineering?)

在之前的文章中《从 OpenClaw 看 AI Agent 的运作原理》其实我们已经很简单的提到了一下context engineering在Openclaw中是如何被使用的。当然啦,如果你不阅读那篇文章,仅读这篇文章也不会耽误你理解context engineering的概念。

In a previous article, How AI Agents Work: The OpenClaw Case, we briefly introduced how context engineering is applied in OpenClaw. Of course, even if you haven’t read that article, reading this one alone will not prevent you from understanding the concept of context engineering.

大家应该都知道了,我们与OpenClaw的互动越多,就意味着语言模型需要承受的上下文Context就会越来越长。这些上下文中可能还包含了OpenClaw和主人之外的“世界”交互的很多信息,比如它调用了一些工具,得到一些工具的输出等等(这里把这些不是和主人的交互用图中那个小地球来表示)。

As is generally understood, the more interactions we have with OpenClaw, the longer the context that the language model needs to handle becomes. This context may also include a large amount of information from interactions between OpenClaw and the external “world”, beyond just the user, such as tool calls and their outputs. In the figure, these non-user interactions are represented by the small globe icon.

总之,Context会随着各种各样交互的轮数变多,它要包含越来越多的信息,从而变得越来越长。

In summary, as the number of interaction rounds increases, the context needs to include more and more information, and therefore becomes increasingly longer.

如果用数学符号的形式来表示这个过程,其实也很简单。

If we express this process in mathematical notation, it is actually quite straightforward.

 的含义是输入,那在刚开始时,就是第一次输入;此时此刻,因为还没有产生上下文,所以这里也是空的。后续随着交互的次数越来越多(越来越大),我们得到的语言模型的输出也越来越多。当语言模型输出之后,我们就需要更新一下上下文,其实就是在上一次的上下文的基础上,追加上新的输入和模型的输出就可以了。

 denotes the input. At the beginning,  represents the first input. At this point, since no context  has been formed yet, it is empty. As the number of interactions increases and  becomes larger, the outputs  generated by the language model also accumulate. After each model output, the context needs to be updated to , which is essentially done by appending the new input  and the model output  to the previous context .

现在我们回过头来继续说。这样一直交互下去,导致Context越来越长放手不管肯定是不行的。所以,OpenClaw在这里还起到了一个非常非常关键的作用:它需要来做决定,决定给语言模型看哪些内容。换句话说,OpenClaw传输给语言模型的输入要长度合适不能太长,也不能太短)。

Now let us return to the main point. If interactions continue in this way, the context will keep growing, and it is clearly not feasible to leave it unmanaged. Therefore, OpenClaw plays a crucial role here: it must decide which information should be presented to the language model. In other words, the input passed from OpenClaw to the language model must be of an appropriate length, neither too long nor too short.

太长了可能会造成资源的浪费、语言模型也可能会表现越来越差等,但如果太短了,又可能会丢失很多关键信息,也可能会导致任务无法成功的完成。

If it is too long, it may lead to wasted computational resources and potentially degrade the performance of the language model. However, if it is too short, important information may be lost, which could result in the failure to complete the task successfully.

基于上面的讨论,如果我们把OpenClaw或者AI Agent选择传输给语言模型看哪些内容的这个行为,还是用数学符号公式化的形式表达出来,就是像下图右半边展示的那样:

Based on the discussion above, if we formalise the behaviour of OpenClaw or an AI agent in selecting which information to pass to the language model using mathematical notation, it can be represented as shown on the right-hand side of the figure below.

就表示了那个行为,简单来说,这个就表示了我们想尽的各种办法和方式,来经过各式各样的处理,来更新我们的上下文

 represents this behaviour. In simple terms,  refers to the various methods and strategies we employ to process and update the context .

Compressing Context (LLM Summary & Observation Masking)

其实在之前的文章中,我们已经提到过一些压缩上下文的一些做法。比如,当Context太长的时候,我们可以让语言模型来进行summarise,然后替换原来的部分。

In fact, in previous articles, we have already discussed some approaches to compressing context. For example, when the context becomes too long, we can ask the language model to generate a summary and use it to replace parts of the original context.

除此之外,还有一种方法就是把Context中工具的输出内容,替换成“这里曾经有工具的输出”的表达。所以,这样也会大大减少Context的内容。

In addition, another approach is to replace the tool outputs in the context with a placeholder such as “there was tool output here”. This can significantly reduce the length of the context.

那这两种做法的效果如何呢?下面这篇论文给出了一定的答案。这篇论文是在SWE这个数据上做的验证,这里SWE其实就是指的软件工程,这个数据集大体就是包含了平时软件开发人员会做的事情:给模型一个github repository和issue,看看模型最终能不能解决。

How effective are these two approaches? The following paper provides some insights. The experiments are conducted on the SWE dataset, where SWE refers to software engineering. This dataset broadly consists of typical tasks performed by software developers, in which a model is given a GitHub repository and an issue, and the objective is to evaluate whether the model can successfully resolve it.

在看结果之前,我们先把结果盖住,然后理解一下这些图表的含义:5个图表表示在5个模型上验证效果的好坏;横轴表示解决问题需要付出的代价(这里使用钱USD来衡量的,但大概可以理解成token的使用量);竖轴表示问题的解决率。

Before examining the results, let us first understand what these figures represent. The five charts correspond to evaluations on five different models. The horizontal axis indicates the cost required to solve the problem, measured in USD, which can be roughly interpreted as token usage. The vertical axis represents the success rate of problem solving.

在图中,黑色的圆圈表示让AI Agent自己去单纯的运行,不采用Context Engineering;红色的方块表示采用我们前面提到的Summary的方法;三角形则表示我们前面提到的把Tool Output替换成其他内容的做法,在这篇论文中,他们称作“Observation Masking”,你可能在不同的场景和文章中可能会看到不同的名字,但大体概念上就是之前我们讲到的那样。

In the figure, the black circles represent the baseline where the AI agent runs without applying context engineering. The red squares indicate the use of the summarisation approach mentioned earlier. The triangles represent the method of replacing tool outputs with alternative content, which is referred to as “observation masking” in this paper. Although different terms may be used in various contexts or publications, the underlying concept remains essentially the same as described earlier.

我们可以看到,整体来说,调用语言模型去做summary(红色方块)和直接替换掉ToolOutput(三角形)的效果是差不多的(解决问题的成功率和需要的开销);

It can be observed that, overall, using the language model to generate summaries (red squares) and directly replacing tool outputs (triangles) yield similar results in terms of both problem-solving success rates and associated costs.

在上面的图中有一个特别的例子,在图表(e)中,三者的效果差不多,也就是说,我们使用了Context Engieering和不使用的效果是差不多的。作者给出的原因是,在这个模型上面,出现了“trajectory elongation”,轨迹延长的现象。因为我们把Context压缩后,其中一些步骤的内容就不见了,然后就可能会激起语言模型的反思:“唉,这个事情我到底有没有做过?”,再然后他可能会又自己做一遍来“弥补”这个步骤。所以就导致本来已经被节省掉的Context的内容,又被补上来了。

A notable example can be observed in chart (e), where all three approaches achieve similar performance. In other words, applying context engineering yields results comparable to not applying it. The authors attribute this to a phenomenon known as “trajectory elongation”. After the context is compressed, certain intermediate steps may no longer be present. This can prompt the language model to reconsider whether those steps have already been completed, potentially leading it to repeat them in order to compensate. As a result, the content that was originally reduced from the context may be reintroduced.

Which Is Better, LLM Summary or Observation Masking?

那哪一种效果更好呢?我们可以不做选择,通通都要,不同的压缩方法都是可以使用的。

Which approach performs better? In practice, it is not necessary to make a strict choice, as different compression methods can be used in combination.

上面那篇论文的建议是,我们可以考虑再前期可以使用替换Tooloutput的方法。当后期Context的长度到了一定程度时,在使用Summary的方法。

The paper suggests that, in the early stages, the method of replacing tool outputs can be adopted. As the context grows beyond a certain length in later stages, the summarisation approach can then be applied.

Memory

那你可能会想,在上面的论文中,直接把Tool Output都拿掉,会不会有些太粗暴了?万一里面真的有有用的信息呢?虽然一时我们可能用不到,但是真要使用的时候,我们可就无法再次得到了。

One may wonder whether directly removing all tool outputs, as described in the paper above, is somewhat too aggressive. What if some of that information is actually useful? Although it may not be needed immediately, once it is removed, it may no longer be accessible when it is required later.

这一篇论文的设计思路便缓解了这个问题。它不会简单粗暴的把Tool Output替代,而是会把Output存到一个文件里面,同时也会在原来的Context中留下信息:当有需要的时候,在哪里可以找到这些Output。

The design proposed in this paper addresses this issue. Instead of directly replacing tool outputs, it stores them in external files, while leaving references in the original context indicating where these outputs can be retrieved when needed.

当语言模型语言读取其中的内容的时候,它自然就会要求执行读取的指令。

When the language model needs to access this information, it will naturally issue a request to retrieve the corresponding content.

这些存放Output的文件,就存在文件系统中(也就是我们的硬盘中)。

These files storing the outputs are maintained within a file system, that is, on persistent storage such as a hard drive.

如果我们把上面那个思路说的再宽泛抽象一些,也就是说,在做Context Engineering的时候,我们可以引入Memory的理念。为了节省Context的使用,会把一些内容抽出来,存放到Memory中去。

If we generalise the idea further, it can be understood as introducing the concept of memory into context engineering. In order to reduce the usage of context, certain information can be extracted and stored in memory.

所以,这就引出了新的问题

  • 什么时候去把一些内容存到Memory中呢?
  • 把什么内容存起来呢?怎么存呢?

This naturally leads to new questions:

  • When should certain information be stored in memory?
  • What information should be stored, and how should it be stored?

除此之外,还需要考虑

  • 什么时候要去重新读取Memory中呢?
  • 需要读哪些内容呢?要怎么读取呢?

In addition, it is also necessary to consider:

  • When should information be retrieved from memory?
  • What information should be retrieved, and how should it be accessed?

以及还有,这些Memory又是怎么存储的呢?就是简单的存成txt吗?还是更加多样的文件系统(比如一些图结构的存储方式、或者按时序存等等)?

Furthermore, how should this memory be stored? Should it simply be stored as plain text files, or should more sophisticated storage methods be used, such as graph-based structures or time-ordered storage?

不同的论文呢,有不同的设计。这里在图中放了几篇,如果有兴趣可以深入看一看。

Different papers propose different designs. Several examples are shown in the figure, which can be explored in more detail if of interest.

说到现在,我们可以把之前提到的公式,再更新一下了!(↓)

At this point, we can update the formula introduced earlier.

C指的是Context上下文。由于我们引入了Memory的概念,所以这里的上下文可以又细分为P和M两个部分。

 denotes the context. With the introduction of the concept of memory, the context can be further divided into two components,  and .

P为要实时与语言模型沟通的部分,而M指的是Memory,它们只在需要的时候才会载入到P中。

 represents the portion that interacts with the language model in real time, while  denotes the memory. The contents of  are only loaded into  when required.

当与语言模型进行完一轮交流之后,我们也需要更新一下,因为经过这轮对话之后,我们可能要变动一下我们的Memory,同时P中也会有一些变动。

After each round of interaction with the language model, both  and  need to be updated. This is because the interaction may lead to changes in the memory, as well as updates to the active context .

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-17 15:50:40 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/530653.html
  2. 运行时间 : 0.118364s [ 吞吐率:8.45req/s ] 内存消耗:4,732.95kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=1bc1eb6230384125cd4d6f791949a0e4
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.80 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000772s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001104s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000592s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000384s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000736s ]
  6. SELECT * FROM `set` [ RunTime:0.000309s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000671s ]
  8. SELECT * FROM `article` WHERE `id` = 530653 LIMIT 1 [ RunTime:0.003643s ]
  9. UPDATE `article` SET `lasttime` = 1776412240 WHERE `id` = 530653 [ RunTime:0.007463s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000339s ]
  11. SELECT * FROM `article` WHERE `id` < 530653 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000455s ]
  12. SELECT * FROM `article` WHERE `id` > 530653 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.006357s ]
  13. SELECT * FROM `article` WHERE `id` < 530653 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002770s ]
  14. SELECT * FROM `article` WHERE `id` < 530653 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001122s ]
  15. SELECT * FROM `article` WHERE `id` < 530653 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001353s ]
0.120127s