当前位置:首页>学习笔记>AI-Agent Memory系统学习笔记

AI-Agent Memory系统学习笔记

  • 2026-05-06 15:25:23
AI-Agent Memory系统学习笔记

在使用coding Agent时,我一直惊艳于AI能无缝的帮我回忆出我需要的context,所以对一些操作过程中的memory的管理机制十分好奇,主动通过AI和一些资料完成了这次学习。

开篇:理解记忆机制为何重要

在高频使用 Openclaw、CodeBuddy 这类 AI Agent 工具中,还是会遇到过这些问题:

  • Agent 突然"失忆",忘记了几分钟前刚讨论过的内容

  • Agent 回答跑题,因为它不知道该调取哪段历史上下文

  • 上下文窗口塞太满后,Agent 变得"降智",只会说大框架

这些问题的根源,都在于 Agent 的记忆系统缺乏优雅的路由与决策机制。理解这套机制,不仅能帮助更好地使用现有工具,还能为规划未来的 Agent 工作流打下基础。


第一部分:重新认识 AI Agent 的记忆本质

1.1 大模型本身没有记忆

这是最核心的认知前提。

大模型(LLM)是一个无状态(Stateless)的计算函数。它不知道"过去"发生了什么——每一次你向它提问,对它来说都是"宇宙诞生后的第一秒"。

它之所以能表现出"记得",是因为 Agent 的外围代码在每次请求前,把过去的聊天记录或相关文档,悄悄拼接在了你的新问题前面

打个比方:大模型就像一个失忆症患者,每次问诊时你都得把病历本递给他,他才能"想起来"。

1.2 上下文窗口就是"信封"

大模型的上下文窗口(Context Window)是一个固定大小的空间,就像一个物理信封。所有信息——系统提示词、历史对话、检索到的记忆、外部工具返回的结果——都得往这个信封里塞。

当项目变大、对话变长时,会发生两种糟糕的情况:

  1. Token 成本爆炸:每多说一句话,都要付出一整本书的钱

  2. 注意力分散(Loss in the Middle):大模型像人一样,太长的内容会记住开头结尾,忘掉中间最关键的信息

因此,Agent 的记忆管理,本质上是一个信息流检索与组装的工程问题

1.3 记忆管理的本质是什么

Agent 的记忆系统,就是在有限的上下文窗口里,精准地决定:

  • 塞什么进去(内容选择)

  • 什么时候塞(触发决策)

  • 用什么策略找(召回策略)

这三个问题没有标准答案,但有成熟的架构思路,下面会逐一展开。


第二部分:AI Agent 记忆的三层架构

Agent 的记忆并非单一整体,而是分为三个层次,每层的传输机制、决策逻辑、存放位置完全不同。

2.1 第一层:基础设定注入(Static Profile)

内容:你是谁、你的职业背景、核心偏好等几乎不变的信息

  • 你的名字、Jonas 的身份

  • 职业背景(10年资深产品经理)

  • 核心偏好:Vibe Coding、Ghibli 风格、越野跑

  • 每次 AI 对话时需要知道的"出厂设定"

传输机制每次必传,强制硬编码,不依赖 AI 的自主判断

存放位置:System Prompt(系统提示词)的最顶部

类比:就像一个人的"灵魂"或"出厂说明书"。无论你问什么,这段话都跟着请求发给 AI。它是模型理解所有问题的"前置滤镜"。

实现方式:通常存放为结构化的配置文件,如 .ohmo/memory/soul.md(核心逻辑设定)、.ohmo/memory/user.md(偏好与属性)。这些文件在每次对话开头被自动注入。


2.2 第二层:即时工作记忆(Sliding Window Context)

内容:你和 Agent 在过去几分钟内刚刚说过的最后 3-10 轮对话

传输机制每次必传,自动滑窗,由代码层面的队列(Queue)机制强制执行

存放位置:动态维护的对话历史队列,每次请求自动拼接在 System Prompt 之后

逻辑:维持对话连贯性。如果没有这一层,你刚说完"帮我写个登录页面",下一句说"再加个按钮",AI 就不知道"按钮"要加在哪里。

工作原理

Queue

决策过程不需要 AI 决策,由代码规则强制执行。保证了你不需要在每一句话里都重复背景。

常见配置:保留最近 5-15 轮对话(具体数字可配置),超出后自动滑出


2.3 第三层:长期记忆检索(Retrieved Memory)

内容:更早之前讨论过的内容——一个月前的产品架构方案、三个月前的跑表数据、三天前写的一段已经被滑窗"踢出去"的代码

传输机制按需调取,非必传——只有当 AI 意识到"我断片了"时才去搜索并调取

存放位置:本地数据库(SQLite + FTS5 全文搜索)或向量数据库(ChromaDB/FAISS)

逻辑:这是整个记忆系统中"最聪明"的部分,也是 AI Agent 架构的核心难点所在


三层记忆对比一览

维度

基础设定注入

即时工作记忆

长期记忆检索

内容

你是谁、核心偏好

最近几轮对话

更早的历史记录

传输

每次必传,强制

每次必传,自动滑窗

按需触发

决策者

代码(硬编码)

代码(自动队列)

AI 自主 + 代码辅助

存放

System Prompt

动态队列

向量库 / 全文索引

类比

出厂说明书

工作台上的便签

档案柜里的老文件


第三部分:AI 如何知道"何时"需要搜索记忆

这是最核心、最令人困惑的问题:大模型本身没有记忆,那它怎么知道"我需要去翻旧账了"?

答案是:通过代码规则(System 1 快思考)和 模型推理(System 2 慢思考)的协同配合来实现。这借鉴了认知科学中的"双系统"模型。

3.1 机制一:基于代码规则的"被动触发"(System 1)

这是最基础、最稳定的方式。决策权完全在代码手里,大模型不参与决策。

方式 A:生命周期拦截(Lifecycle Hooks)

在产品逻辑层面硬编码。Agent 每次开启一个新任务,代码会自动在后台执行一次 search_user_profile(),把用户偏好、项目环境变量等基础设定取出来,固定塞进 System Prompt。

search_user_profile()soul.mduser.mdSystemPrompt

方式 B:状态机切换触发

当 Agent 的工作流进入特定节点时,自动触发特定检索。比如在构建应用时,一旦进入"UI 渲染阶段",代码就自动检索 ui_components_history 存储库,无需模型指示。

方式 C:正则/意图分类网关

在用户输入到达大模型之前,先经过一层轻量级的代码网关:

  • 用户输入包含"昨天"、"之前那个问题"、"你还记得"等触发词 → 代码先行发起全库搜索

  • 通过极小参数的本地分类模型判断意图("是否需要查阅历史")→ 提前行动

这种方式的特点是:稳定、零延迟、无额外 API 成本,但不够"聪明",无法处理复杂或模糊的场景。


3.2 机制二:基于 Prompt 与 Tool Calling 的"主动触发"(System 2)

这是目前高阶 Agent(如 Claude Code 的底层逻辑)最核心的机制。决策权交给了大模型本身,通过 ReAct(Reasoning and Acting)框架实现深度逻辑推演。

核心思路:不告诉模型具体怎么搜索,而是赋予它一个"工具箱",并定义好使用的"契约"。

System Prompt 示例片段

5query_long_term_memory

完整触发流程(以一个具体例子说明)

"把昨天的那个登录逻辑优化一下。"Scratchpad"用户提到了'昨天的登录逻辑',               ││   但我当前的上下文中没有这段代码。            ││   我不能猜测,我需要先搜索。"ToolCallJSON{"tool":"query_long_term_memory","query":"昨天的登录逻辑"}+ToolResponse

这种方式的优点:极具灵活性,模型在面临复杂信息缺失时,能像人类一样停下来深度思考并主动求索。

缺点:多了一次或多次的 API 往返交互(Round-trip),增加了延迟和成本。


3.3 完整的"多级缓存查询"决策流程

当用户发起一个请求时,Agent 内部会经历一个类似"多级缓存查询"的过程:

步骤 1:第一眼扫视(即时上下文)

AI 拿到你的请求后,先看一眼当前窗口里的最后几句话。

  • 如果:窗口里有足够的信息(如你正在讨论代码的下一行)→ 直接回答

  • 如果:窗口里的信息不够(如你说"那个登录逻辑"但最近 5 轮没出现过)→ 模型进入"缺氧状态",意识到自己"断片了"

步骤 2:意图决策(推理层)

在这个阶段,优秀的 Agent 会在内部运行一个逻辑判断。这个判断是通过 System Prompt 里的规则引导 实现的。

规则示例(在代码层面预设给 AI 的指令):

"如果你发现用户提到的某个实体(Entity)或事件(Event)  不在你当前的对话历史中,  请不要尝试猜测,请立即调用 search_history 工具。"

步骤 3:发起 Tool Call(执行层)

当 AI 意识到"我断片了",它会输出一个特定的 Tool Call 请求:

  • AI 决策内容:"我需要搜索,关键词是'登录逻辑',时间范围不限"

  • 代码执行内容:收到信号,去向量数据库或全文索引里执行 retrieve(),带回 3-5 段最相关的历史记录

步骤 4:记忆融合

代码把带回来的"老记忆"临时拼接到这次请求的 Context 中。对 AI 来说,这一刻它就像突然"想起来了"。


第四部分:如何决定使用哪种"召回策略"

当你决定要搜索记忆时,面对海量数据,"怎么搜" 成为了决定 Agent 智商的关键。

向量检索(Vector Search)并非银弹。有时候,基于规则的模式匹配(Pattern Matching)或关键词搜索(BM25)更为有效

这个决策过程有三种主流解法:

4.1 解法 A:大模型自主选择(Tool Routing)

思路:给大模型提供多个不同的搜索工具,让它根据自己的推理来选择。

提供两个工具

  • search_by_semantic(query) —— 语义检索

    • Prompt 解释:"当你需要查找概念、思路、模糊的讨论历史时使用"

  • search_by_exact_match(keyword, file_type) —— 精确匹配

    • Prompt 解释:"当你需要查找特定的函数名、错误代码(如 Error 500)、或特定的变量标识符时使用"

模型如何自主决策

用户问题

调用的工具

原因

"我们之前关于 AI 影响中产阶级的讨论是怎么说的?"

search_by_semantic

这是一个宽泛的语义概念,不是精确词语

"帮我找出所有用到 Kailas FUGA 这个词的日志"

search_by_exact_match

这是一个精准的专有名词,需要精确查找

优点:灵活性高,能处理复杂场景缺点:依赖模型的推理能力,可能选错;每次搜索都是单独一次 Tool Call


4.2 解法 B:代码层的混合检索(Hybrid Search / RRF)—— 推荐方案

思路:对大模型屏蔽搜索细节,只提供一个统一的 search_memory(query) 工具。在代码执行层,当接收到 query 时,系统在后台同时触发多种搜索,然后用数学方法融合结果。

两路搜索并行执行

query:"昨天的登录逻辑优化"Embedding+ChromaDB/FAISS"形散神不散"SQLiteFTS5/Elasticsearch"包含精确字眼"ReciprocalRankFusion,RRF"语义相关性""关键词精准度"

为什么推荐这个方案

  • 大模型不需要决策用什么策略,降低了决策负担(减少幻觉)

  • 代码层面的 Hybrid Search 确保无论用户问什么,最相关的 Context 总能浮现到 Top 5

  • 模型不需要操心复杂的底层数据库逻辑


4.3 解法 C:基于数据类型的静态路由

思路:在架构设计时,直接对记忆的存储进行物理隔离,代码层的路由网关根据当前 Agent Loop 的阶段,自动去对应的数据库抓取数据。

数据类型

存储方式

召回策略

短期工作流记忆(最近 10 次报错日志)

JSON 结构化存储

按时间戳过滤 + 正则匹配

长期知识库(个人简历、博客草稿)

向量存储(Chunking 后)

语义相似度检索


第五部分:Prompt 与代码的边界在哪里

这些决策到底是通过 Prompt(提示词)传达给模型实现的,还是通过代码层面的规则实现的?

答案是:优秀的 Agent 架构是两者的精密咬合。

  • Prompt 负责"意图与逻辑推演"

  • Code 负责"流程控制与数据加工"

5.1 职责划分一览表

功能模块

实现层级

具体方式

核心优势

基础设定注入

Code(系统规则)

每次请求强制拼接 user_profile.md

保证稳定性,节省 Token,防止模型遗忘基础人设

意识到缺乏信息

Prompt(系统提示)

定义 ReAct 框架,鼓励模型在不确定时使用 <think> 标签并停止生成

发挥模型强大的零样本推理能力,不依赖死板的 if-else

选择搜索工具

混合(Prompt + Code)

Prompt 暴露统一的 search() 工具;Code 在底层实现 Hybrid Search

降低模型决策负担,提高检索召回率

执行数据库查询

Code(执行规则)

Python 调用 Embedding API、执行 SQL 或向量相似度比对

速度极快,大模型无法直接操作底层数据库,必须由代码代劳

结果的总结与提炼

Prompt(系统提示)

指示模型:"提取与当前问题最相关的代码段,忽略其他噪音"

保护主对话的上下文窗口不被检索结果的噪音污染


第六部分:Context Window 的"零和博弈"

有个非常敏锐的问题:

如果即时工作记忆中的上一轮信息非常长(比如你传了一段 5 万行代码),已经超出了 Context Window,那是否其他需要搜索的长期记忆信息就会被挤出去?

答案是完全正确。 Context Window 是一个"零和博弈"的有限空间。

把大模型的上下文窗口比作一个物理信封:

  • 系统提示词

  • 长期记忆(搜索回来的结果)

  • 即时工作记忆(最近的聊天记录)

这三类内容就是往里塞的信纸。如果最近的一轮会话把信封塞满了,长期记忆确实会因为"没地方放"而被挤出去。

6.1 四大解决方案

方案 1:优先级分层策略(Priority Ranking)

在代码组装 Prompt 的那一刻,系统会给不同信息标上优先级:

优先级

内容

处理方式

最高

当前问题 + System Prompt

必须装进去

次高

检索到的长期记忆

AI 认为回答当前问题的"关键钥匙"

较低

即时工作记忆(历史聊天)

空间不足时优先压缩

处理逻辑:如果信封快满了,代码会先从"最近上下文"里开始砍掉老的信息。即便上一轮对话很长,代码也会强制对其进行截断(Truncation),只保留开头结尾,或者只保留那轮对话的"摘要",从而为更重要的搜索结果腾出空间。


方案 2:动态摘要与压缩(Recursive Summarization)

这是目前处理"信息过载"最聪明的方法。

当 Agent 检测到即时上下文过长(超过窗口的 60%)时,它不会直接丢弃信息,而是先启动一个后台静默任务

"请用 500 字总结一下刚才那段超长的代码逻辑/讨论内容。"Token

这就是为什么有些 Agent 聊久了会变得"只会说大框架,不记得细节"——它在用牺牲细节换取空间。


方案 3:动态调整检索量(Adaptive K-Retrieval)

如果代码发现当前即时对话已经占据了 80% 的窗口,它在调用 search_memory 工具时会动态调整召回数量

情况

召回数量

每个片段长度

正常情况

Top 10

1000 字/片段

拥挤情况

Top 3

缩短到 200 字/片段

极端情况

0(无法召回)

Agent 输出提示建议开启新话题


方案 4:超大上下文模型(Brute Force Approach)

这是为什么像 Gemini 1.5 Pro(100万-200万 Token 窗口)这样的模型在 Agent 领域备受青睐。

对于窗口只有 128k 或 200k 的模型(Claude 3.5 / GPT-4o),"记忆打架"是一个棘手的工程难题。但对于 200 万窗口的模型来说,这个"信封"大到了几乎可以装下一整个图书馆,"即时记忆"和"长期记忆"不再需要争抢空间


6.2 一句话建议

如果你发现 Agent 开始因为内容太长而"降智"或"忘事",最有效的办法是手动干预:对它说——"总结一下我们刚才聊的内容,然后开启一个新的上下文区间"。这相当于手动帮它清理信封,腾出空间


第七部分:构建好用的 Agent,最核心的四个系统

结合 Hermes Agent 和 OpenHarness 这两个开源项目的设计理念,以及你高频使用 Agent 的经验,一个真正好用的 Agent 需要搭好以下四个核心系统

7.1 系统一:协议层的"网关代理"(无缝切换模型)

核心目标:实现模型的无缝切换

做法:构建一个统一的 API 网关层(Gateway),将所有底层模型的输入输出格式统一抹平为标准 OpenAI 格式

这样,当需要切换模型时,Agent 的核心逻辑不需要做任何改动,只需要在配置台切换对应的 Endpoint URL 和 API Key。

7.2 系统二:分层与结构化的记忆系统

核心目标:实现完整记忆能力

做法:将记忆划分为三个维度:

维度

存储方式

更新频率

用途

基础设定(Static Profile)

结构化 Markdown 文件

极低

出厂设定,每次必传

动态经历检索(Episodic Memory)

SQLite + FTS5 / 向量数据库

按需

会话历史向量化/摘要存储

工作区记忆(Working Memory)

自动压缩(auto-compact)

高频

长对话中定期提取总结

参考 OpenHarness 中 ohmo 的设计,用 soul.md 记录核心逻辑,user.md 记录偏好与属性。

7.3 系统三:"思维与表达分离"的 Agent Loop

核心目标:提高复杂任务的执行质量

做法:引入明确的 ReAct(推理与行动)机制,在系统层面给 Agent 留出一个专门的"内部思考域"(Scratchpad / 隐藏的思维链)。

让 Agent 在调用工具、查阅记忆、观察执行结果时,只在后台静默更新状态。只有当它在内部完成了完整的逻辑推演,才将最终结果精炼地输出到前端界面。

7.4 系统四:标准化的工具箱抽象(MCP)

核心目标:扩展 Agent 的能力边界

做法:采用 MCP(Model Context Protocol) 标准化协议,把对外部环境的操作封装成独立的 Tool。

不需要亲自写复杂的实现代码——你只需要用自然语言极其精确地定义好这些工具的"输入字段要求"和"输出数据格式",剩下的封装脚本完全可以交由大模型生成。

进阶形态:效仿 Hermes Agent,赋予 Agent 在发现重复性劳动后,自主编写并固化出新技能(Skill)的权限。


总结

AI Agent 的记忆系统,不是魔法,而是一场在有限上下文窗口的舞台上,由 Prompt 担任导演,由外围代码担任场务,共同完成的精准的数据调度舞蹈。

核心结论:

  1. 大模型没有真正的记忆——记忆全靠每次请求时塞进上下文窗口的内容

  2. 记忆分三层:基础设定(强制注入)→ 即时工作记忆(自动滑窗)→ 长期检索(按需触发)

  3. "何时搜索"的决策:由代码规则(快)和模型推理(慢)协同完成

  4. "怎么搜"的决策:可通过 Tool Routing(AI 自主)、Hybrid Search(代码融合)或静态路由(按类型分区)实现

  5. Prompt 与代码精密咬合:Prompt 负责逻辑推演,Code 负责流程控制与数据加工

  6. Context Window 是零和博弈:需要优先级管理、动态压缩、自适应召回等策略应对

最新文章

随机文章

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