当前位置:首页>自动驾驶>Agent系统的"自动驾驶":ADAS自动设计 + Temporal持久编排 + 生产级状态管理

Agent系统的"自动驾驶":ADAS自动设计 + Temporal持久编排 + 生产级状态管理

  • 2026-03-21 01:26:24
Agent系统的"自动驾驶":ADAS自动设计 + Temporal持久编排 + 生产级状态管理

开篇:从"能跑"到"能上生产"的最后一公里

前两篇我们搞定了两件大事:

  • Vol.1 讲清楚了什么时候拆、怎么拆、拆完怎么协调
  • Vol.2 讲清楚了Agent 之间用什么方式通信(A2A、消息中间件、Actor 框架)

但到这一步,你手上的多 Agent 系统充其量叫"能跑"。离"能上生产",还差三个关键拼图:

  1. Agent 设计本身能不能自动化? 每次新增一个 Agent 都要人手设计、调 Prompt、测效果,太慢了
  2. Agent 执行到一半机器挂了怎么办? 没有"断点续传"能力的系统不配叫生产级
  3. Agent 的各种"记忆"存哪里? 短期记忆、长期知识、日志审计,存储方案完全不同

今天这篇终章,我把这三块硬骨头啃完。


一、ADAS:让 Agent 自己设计 Agent

1.1 一个让人兴奋又恐惧的想法

我先问你一个问题:我们每次设计一个新 Agent,本质上在做什么?

无非是这几步:

  1. 定义角色和 System Prompt
  2. 选择绑定的工具集
  3. 设计推理策略(CoT?ReAct?Reflexion?)
  4. 跑测试、调参数、迭代优化

这个过程,本身能不能交给 AI 来做?

答案是:可以。 而且已经有人做出来了。

2024 年 8 月,Shengran Hu、Cong Lu 和 Jeff Clune 提出了 ADAS(Automated Design of Agentic Systems,自动化Agent设计系统)。这篇论文在 NeurIPS 2024 拿到了 Outstanding Paper 奖,并在 ICLR 2025 正式发表。

核心思想一句话:用一个 Meta Agent(元智能体)来自动设计、评估和迭代改进其他 Agent。

1.2 Meta Agent Search:Agent 的"进化引擎"

ADAS 的核心算法叫 Meta Agent Search(MAS),运作方式像一台"Agent 进化引擎":

┌────────────────────────────────────────────────────────┐│                  Meta Agent Search 循环                  ││                                                        ││  第1代:Meta Agent 生成 Agent_v1(基础 CoT 策略)        ││    ↓ 评估:在验证集上跑分 → 得分 72%                      ││    ↓ 归档:存入 Agent 档案库                             ││                                                        ││  第2代:Meta Agent 参考档案库,生成 Agent_v2(加了反思)   ││    ↓ 评估:得分 78%                                     ││    ↓ 归档                                              ││                                                        ││  第3代:Meta Agent 发明新策略,生成 Agent_v3              ││    ↓ 评估:得分 85%                                     ││    ↓ 归档                                              ││                                                        ││  ...迭代 25-30 代...                                    ││                                                        ││  最终:从档案库中选出最优 Agent 投入使用                   │└────────────────────────────────────────────────────────┘

MAS 的关键设计

  1. 代码即 Agent:每个 Agent 被定义为一段 Python 代码(一个 forward 函数),而非简单的 Prompt。由于代码是图灵完备的,理论上能表达任意复杂的推理策略
  2. 归档机制:每个成功的设计都会被存入档案库,供后续迭代参考。就像生物进化的"基因库"
  3. 自我反思:生成后有两步 Reflexion 优化——先反思新颖性(避免重复),再反思正确性(修 Bug)
  4. 自动调试:如果代码报错,最多自动修 5 轮

来看 MAS 的核心实现框架:

classLLMAgentBase:"""Meta Agent 的基础类——用大模型生成和评估 Agent 代码"""def__init__(self, output_fields: list, agent_name: str,                 role='helpful assistant', model='gpt-4o',                 temperature=0.5):self.output_fields = output_fieldsself.agent_name = agent_nameself.role = roleself.model = modelself.temperature = temperature  # 温度略高,鼓励"创造性"defgenerate_prompt(self, input_infos, instruction, output_description):# 构建系统 Prompt:角色 + JSON 格式约束        system_prompt = f"You are a {self.role}.\n\n" + \                        FORMAT_INST(output_description)# 用户 Prompt:输入信息 + 设计指令        prompt = build_input_text(input_infos) + instructionreturn system_prompt, promptdefquery(self, input_infos: list, instruction, output_description,              iteration_idx=-1):"""调用大模型,生成结构化的 Agent 设计方案"""        system_prompt, prompt = self.generate_prompt(            input_infos, instruction, output_description        )# 返回 JSON 格式的设计结果        response_json = get_json_response_from_gpt(            prompt, self.model, system_prompt, self.temperature        )return parse_output(response_json, iteration_idx)

MAS 的搜索主循环——进化式迭代:

defsearch(args, task):"""Meta Agent Search 主循环:迭代进化 Agent 设计"""    archive = task.get_init_archive()  # 初始档案:基础 Agent 模板for generation inrange(args.n_generation):  # 通常 25-30 代# 1. 基于档案库,生成新的 Agent 设计        next_solution = meta_agent.generate_new_design(archive)# 2. Reflexion 两步优化#    - 第一步:检查新颖性(是否跟档案库里已有的重复了?)#    - 第二步:检查正确性(代码能不能跑?逻辑对不对?)        next_solution = reflect_and_refine(            next_solution, task.get_reflexion_prompt()        )# 3. 在验证集上评估        accuracy_list = evaluate_forward_fn(            args, next_solution["code"], task        )# 4. 计算适应度分数(带置信区间)        next_solution['fitness'] = bootstrap_confidence_interval(            accuracy_list        )# 5. 归档        archive.append(next_solution)print(f"第{generation}代 | 得分: {next_solution['fitness']}")defevaluate_forward_fn(args, forward_str, task):"""动态加载并评估生成的 Agent 代码"""    namespace = {}exec(forward_str, globals(), namespace)  # 动态执行生成的代码    func = namespace['forward']              # 获取 forward 函数# 加载验证数据    data = task.load_data(SEARCHING_MODE)    task_queue = task.prepare_task_queue(data)# 并行评估(多线程加速)with ThreadPoolExecutor() as executor:        acc_list = list(executor.map(lambda item: score(func, item), task_queue        ))return acc_list

1.3 ADAS 的实际效果有多惊人?

论文的实验结果几乎让所有手写 Agent 的开发者"虎躯一震":

基准测试最佳手工设计方案MAS 自动设计提升幅度
ARC(抽象推理)Chain-of-ThoughtMAS Agent显著超越
DROP(阅读理解)65.8 F179.4 F1+13.6
MGSM(数学推理)39.0%53.4%+14.4%
MMLU(多任务)67.6%69.6%+2.0%
GPQA(科学推理)32.9%34.6%+1.7%

更惊人的是:MAS 设计的 Agent 具有跨域迁移能力。 在 ARC 上进化出来的 Agent,不做任何改动直接拿去跑 MMLU,依然表现优异。甚至换模型(从 GPT-3.5 到 GPT-4)也照样好使。

这说明什么?MAS 发现的不是针对特定任务的"应试技巧",而是更通用的推理策略。

1.4 ADAS 的现实应用与风险

目前 ADAS 还主要停留在学术研究阶段,但它给我们的启示非常深刻:

可以借鉴的思想(现在就能用)

  • 系统化的 Agent 评估流程:每个 Agent 设计都要在标准化的验证集上打分,不能靠"感觉"
  • 归档和复用:把成功的 Prompt 策略、工具组合沉淀成模板库
  • 自动化调试循环:Agent 输出不对?让另一个 Agent 自动分析原因并修复

需要警惕的风险

  • 安全性:MAS 通过 exec() 动态执行生成的代码,这在生产环境中是高风险操作
  • 可控性:自动进化出来的 Agent 策略,人类不一定能理解其推理过程
  • 对齐问题:自我进化的 Agent 是否始终符合人类意图?这是 AI Safety 的核心问题

💡 务实建议:不必追求完全自动化的 ADAS。但你完全可以借鉴 MAS 的"评估-生成-反思-归档"循环,手动执行每一步。这本质上就是Agent 工程化的最佳实践


二、Temporal:多 Agent 系统的"断点续传"

2.1 没有持久编排的 Agent 系统有多脆弱?

来设想一个供应链 Agent 系统的典型流程:

1. 库存 Agent 检查库存告急 → 生成补货计划         ← 3秒2. 等待人工审批补货计划                           ← 可能等 2 小时3. 物流 Agent 安排发货                            ← 5秒4. 供应商 Agent 确认供货能力                       ← 调用外部API,可能超时5. 合规 Agent 审查文件                            ← 10秒6. 汇总结果,通知相关人员                          ← 2秒

如果第 4 步的外部 API 超时了怎么办?如果第 2 步等审批时机器重启了怎么办?

没有持久编排引擎,你的选择是:

  • ❌ 从头跑一遍(浪费已完成的工作)
  • ❌ 手动记录进度并恢复(维护噩梦)
  • ❌ 相关方根本不知道流程走到哪一步了

这就是 Temporal 要解决的问题——把工作流的每一步状态持久化,失败自动重试,中断自动恢复。

2.2 Temporal 的核心概念

概念类比在 Agent 系统中的角色
Workflow一个完整的业务流程多 Agent 协作的完整链路
Activity流程中的一个步骤单个 Agent 的一次任务执行
Retry Policy失败后的重试策略LLM API 超时时自动重试
Signal外部事件通知等待人工审批的信号
Query查询当前状态"这个流程现在走到哪一步了?"

2.3 用 Temporal 编排供应链 Agent 流程(实战)

来把前面的 6 步流程用 Temporal 实现——每一步都带自动重试,整体支持"断点续传":

from datetime import timedeltafrom temporalio import workflow, activityfrom temporalio.common import RetryPolicy# === 第一步:定义 Activities(每个 Agent 的执行逻辑) ===@activity.defnasyncdefinventory_activity(params: dict) -> dict:"""库存 Agent:检查库存、生成补货计划"""    operation = params["operation"]    messages = params["messages"]# 调用库存专家 Agent 的核心逻辑    result = inventory_agent.process(operation, messages)return {"messages": result["messages"], "plan": result.get("plan")}@activity.defnasyncdeftransportation_activity(params: dict) -> dict:"""物流 Agent:安排发货"""    result = transportation_agent.process(        params["operation"], params["messages"]    )return {"messages": result["messages"]}@activity.defnasyncdefsupplier_activity(params: dict) -> dict:"""供应商 Agent:确认供货能力"""    result = supplier_agent.process(        params["operation"], params["messages"]    )return {"messages": result["messages"]}# === 第二步:定义 Workflow(完整的编排流程) ===@workflow.defnclassSupplyChainWorkflow:"""供应链多 Agent 协作工作流——支持断点续传"""    @workflow.runasyncdefrun(self, operation: dict,                  initial_messages: list) -> dict:# 定义通用重试策略:最多重试 3 次        retry_policy = RetryPolicy(            maximum_attempts=3,            initial_interval=timedelta(seconds=2),  # 首次重试等 2 秒            backoff_coefficient=2.0# 每次等待时间翻倍        )# Step 1: 库存管理(带重试)# 如果这步成功后面的步骤失败了,# Temporal 不会重新执行这一步        inventory_result = await workflow.execute_activity(            inventory_activity,            {"operation": operation, "messages": initial_messages},            start_to_close_timeout=timedelta(seconds=30),            retry_policy=retry_policy        )# Step 2: 等待人工审批(可以等数小时甚至数天)# Temporal 会持久化等待状态,机器重启也不影响        approval = await workflow.wait_condition(lambdaself.approved isnotNone,            timeout=timedelta(hours=48)  # 最多等 48 小时        )# Step 3: 物流安排        updated_messages = (initial_messages +                           inventory_result["messages"])        transportation_result = await workflow.execute_activity(            transportation_activity,            {"operation": operation, "messages": updated_messages},            start_to_close_timeout=timedelta(seconds=30),            retry_policy=retry_policy        )# Step 4: 供应商确认(外部 API 可能不稳定)        final_messages = (updated_messages +                         transportation_result["messages"])        supplier_result = await workflow.execute_activity(            supplier_activity,            {"operation": operation, "messages": final_messages},            start_to_close_timeout=timedelta(seconds=60),  # 给多点时间            retry_policy=RetryPolicy(maximum_attempts=5)    # 多重试几次        )return {"inventory": inventory_result,"transportation": transportation_result,"supplier": supplier_result        }# Signal handler:接收人工审批结果    approved = None    @workflow.signalasyncdefapprove(self, decision: str):self.approved = decision

Temporal 在这里做了什么?

场景1:Step 3 执行时 LLM API 超时  → Temporal 自动重试(按 retry_policy),最多 3 次  → 重试期间不会重新执行已完成的 Step 1 和 Step 2场景2:Step 2 等待审批时,机器重启了  → Temporal 自动恢复 Workflow 状态  → 继续等待审批信号,无需任何人工干预场景3:想查看流程进度  → 通过 Temporal Query 实时查询:     "当前在 Step 4,供应商确认中,已重试 2 次"

2.4 Temporal 与 Agent 框架的集成

2025 年底,Temporal 宣布与 OpenAI Agents SDK 官方集成。这意味着你可以用 Temporal 编排 OpenAI Agent 的 Handoff 流程,同时获得持久化和容错能力。

场景不用 Temporal用 Temporal
LLM API 偶发失败整个流程重来自动重试,从断点继续
机器重启状态丢失自动恢复
等待人工输入需要自己实现轮询原生 Signal 支持
查看流程进度看日志猜原生 Query + UI
审计追溯自己记录日志完整事件历史
部署更新可能中断进行中的流程版本化安全迁移

💡 什么时候该上 Temporal?

  • 流程涉及外部 API 调用(LLM、支付、第三方服务)→ 需要重试和容错
  • 流程需要人工介入(审批、确认)→ 需要持久化等待
  • 流程跨越较长时间(分钟/小时/天)→ 需要状态持久化
  • 系统需要审计追溯→ 需要完整事件历史

如果你的 Agent 流程是秒级完成的简单查询,不需要 Temporal,杀鸡别用牛刀。

2.5 国内的工作流编排替代方案

Temporal 是全球范围内的标杆,但国内也有一些值得关注的选项:

方案优势适合场景
Temporal持久执行标杆、生态最完善生产级 Agent 编排
Apache AirflowDAG 编排成熟、国内大厂广泛使用定时/批处理 Agent 任务
Dagger容器化工作流、本地开发友好CI/CD 集成、快速原型
阿里云 Serverless 工作流云原生、免运维阿里云生态 Agent
腾讯云 CODING-Flow低代码编排腾讯云生态

三、状态管理:Agent 的"记忆系统"存哪里?

3.1 三种"记忆",三种方案

Agent 的状态管理不是一个单一问题。根据记忆的生命周期用途,需要完全不同的存储方案:

记忆类型生命周期内容类比
情景记忆单次对话/任务当前对话上下文、中间推理步骤工作记忆
语义记忆跨对话持久化用户偏好、知识库、RAG 文档长期记忆
流程记忆跨步骤持久化工作流进度、检查点、审计日志行为记忆

3.2 存储方案选型

方案优势劣势适合的记忆类型
关系型数据库(PostgreSQL/MySQL)灵活查询、成本低、国内生态完善需要手动管理 Schema情景记忆、流程记忆
向量数据库(Milvus/Weaviate/Pinecone)语义搜索、支持 RAG成本略高、运维复杂语义记忆
Redis极低延迟、过期自动清理持久化不如关系型情景记忆(短期)
对象存储(OSS/S3/COS)便宜、适合大文件访问慢、无原生索引归档日志、大文件
框架内置(Temporal/Orleans)自动管理、无额外代码框架锁定流程记忆

3.3 实战组合推荐

一个完整的生产级多 Agent 系统,通常需要混合使用多种存储

┌──────────────────────────────────────────────────────────┐│                  多 Agent 状态管理架构                      ││                                                          ││  ┌──────────────────────────┐                            ││  │     情景记忆(短期)        │                            ││  │  Redis / 内存              │ ← 当前对话上下文、缓存        ││  │  TTL: 30分钟 ~ 24小时      │                            ││  └──────────────────────────┘                            ││                                                          ││  ┌──────────────────────────┐                            ││  │     语义记忆(长期)        │                            ││  │  向量数据库 + PostgreSQL   │ ← 知识库、用户画像、RAG       ││  │  生命周期: 永久            │                            ││  └──────────────────────────┘                            ││                                                          ││  ┌──────────────────────────┐                            ││  │     流程记忆(持久化)       │                            ││  │  Temporal / PostgreSQL    │ ← 工作流进度、审计日志         ││  │  生命周期: 随工作流         │                            ││  └──────────────────────────┘                            ││                                                          ││  ┌──────────────────────────┐                            ││  │     归档存储              │                            ││  │  OSS / S3 / COS          │ ← 历史日志、大文件、数据备份    ││  │  生命周期: 按保留策略       │                            ││  └──────────────────────────┘                            │└──────────────────────────────────────────────────────────┘

国内具体选型建议

层级推荐方案理由
情景记忆Redis(腾讯云/阿里云托管)国内生态最成熟、亚毫秒延迟
语义记忆Milvus + PostgreSQLMilvus 是国产向量数据库,社区活跃、文档中文友好
流程记忆Temporal Cloud 或 PostgreSQLTemporal 适合复杂编排,简单场景用 PG 就够
归档存储OSS / COS按量计费、便宜到忽略不计

💡 一个常见的坑:很多团队把所有状态都塞进向量数据库,觉得"什么都能语义搜索"很酷。但实际上,结构化数据用关系型数据库查询效率高 10 倍以上,而且更可靠。向量数据库只用于真正需要语义搜索的场景(RAG 检索、相似文档匹配),不要滥用。


四、终极选型:多 Agent 系统技术栈全景图

写到这里,三篇文章覆盖的所有技术栈汇总成一张全景速查表:

层级决策项推荐方案适用规模
Agent 拆分何时拆工具>15 或业务域差异大
协调策略怎么管经理制起步(80% 场景)
通信协议Agent 互通A2A(预研)/ 直接调用(现阶段)跨组织
工具连接Agent 连工具MCP(已成熟)所有规模
消息中间件异步解耦Redis Stream → Kafka中→大
Actor 框架有状态分布式Ray(Python)10+ Agent
持久编排断点续传Temporal长流程
情景记忆短期状态Redis所有规模
语义记忆长期知识Milvus + PostgreSQL所有规模
Agent 设计自动化设计MAS 思想借鉴(评估→迭代→归档)前沿探索

五、全系列总结:从一个 Agent 到多 Agent 的进化路径

三篇文章,我们完成了一次从单 Agent 到生产级多 Agent 系统的完整旅程:

Vol.1 → 架构设计

  • 单 Agent 够用时别拆,拆的判断标准是工具数和业务域
  • 拆分遵循六大原则,经理制(Supervisor)先用起来
  • 四种协调策略各有千秋,按场景选

Vol.2 → 通信基础设施

  • A2A 和 MCP 互补,一个管 Agent 互通,一个管工具连接
  • 消息中间件是异步解耦的标配,Redis Stream 起步、Kafka 兜底
  • Actor 框架在有状态分布式场景是刚需

Vol.3 → 生产级能力

  • ADAS 展示了 Agent 自动设计的可能性,MAS 思想值得借鉴
  • Temporal 解决了"断点续传"这个上生产的关键问题
  • 状态管理要分层——不同类型的记忆用不同的存储

最后送你一句话:

多 Agent 系统的真正挑战不是"把 Agent 跑起来",而是"让 Agent 持续可靠地跑下去"。

架构设计决定能不能拆,通信基础设施决定拆完能不能协作,持久编排和状态管理决定能不能上生产。三层能力缺一不可。

2025 是 Agent 元年,2026 是多 Agent 元年。基础设施和最佳实践还在快速演进,但底层的架构思想——分工、协调、通信、容错——是跨越技术迭代的永恒命题。

掌握了这些,无论框架和模型怎么变,你都能从容应对。


全系列三篇完结。如果这个系列对你有帮助,帮忙转发一下,让更多正在搭建 Agent 系统的同学少踩点坑。有任何问题欢迎后台留言。

下一个系列,我们聊点更硬核的——Agent 的评估与测试体系:怎么量化一个 Agent"好不好用"?敬请期待。

最新文章

随机文章

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