当前位置:首页>java>长期编程代理的设计哲学:让 AI "忘记"反而更聪明

长期编程代理的设计哲学:让 AI "忘记"反而更聪明

  • 2026-02-05 14:29:42
长期编程代理的设计哲学:让 AI "忘记"反而更聪明

一、引言:当 AI 遇见软件工程的现实

你是否经历过这样的周一?

理想计划:

  • ✅ 更新 API 文档
  • ✅ 为边缘情况编写单元测试
  • ✅ 修复一个 Bug
  • ✅ 开发创新功能

残酷现实:

  • ⏰ 15 分钟的快速同步会议变成了 45 分钟的路线图辩论
  • 🔥 生产环境 SEV1 故障需要立即修复
  • 💬 Slack 上 47 条消息的讨论串等待你的回复
  • 🕓 下午 4:30 才打开 IDE...

在 AWS re:Invent 2025 大会上,Anthropic 的研究团队展示了一个令人惊叹的解决方案:长期编程代理(Long-Horizon Coding Agent)。这不是科幻概念,而是一个真实运行的系统,在会议现场持续构建着一个名为 Canopy 的项目管理应用。

本文将深入解析这个系统的技术架构、核心设计理念以及实践中的关键发现。


二、核心理念:重新定义人机协作

2.1 "我们仍然是思考者"

Anthropic 团队强调了一个重要观点:AI 编程代理不是要替代开发者,而是要改变开发者的时间分配方式。

传统开发模式 vs. AI 辅助模式:

维度
传统模式
AI 辅助模式
编码
手动编写所有代码
定义需求和约束,AI 实现
调试
手动调试
审查 AI 的测试结果
文档
事后编写(如果有的话)
AI 自动生成并持续更新
上下文切换
在多个任务间频繁切换
AI 维护进度,人类专注决策

2.2 人机分工的艺术

演讲中提出了一个清晰的分工模型:

人类负责:

  • 🎯 创建愿景和需求
  • 📐 设定标准和约束
  • 🏗️ 做出架构决策
  • 👁️ 审查输出结果

AI 代理负责:

  • 💻 实现具体功能
  • 🧪 按照标准进行测试
  • 📝 更新文档
  • 🔄 基于反馈迭代

演讲者用了一个生动的比喻:"你是架构师,AI 是遵循蓝图的建造者"


三、技术突破:遗忘是特性,而非 Bug

3.1 LLM 的"遗忘"困境

大语言模型有一个根本性限制:无法在会话之间保持持久记忆

乍一看,这似乎是个大问题。想象一下,你的结对编程伙伴:

  • ✅ 热爱编写测试
  • ✅ 从不抱怨更新文档
  • ✅ 严格遵循编码规范
  • ❌ 每次会话都会忘记之前做了什么

但 Anthropic 团队发现了一个反直觉的洞察:

遗忘意味着模型不会养成坏习惯,不会强化错误假设,能够更加专注。如果我们从外部解决记忆问题,遗忘就变成了一个特性,而不是 Bug。

3.2 环境即记忆(Environment as Memory)

核心思想:不在模型内部维持记忆,而是通过外部环境来保存状态。

关键组件:

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(line项目结构:├── features.json          # 功能清单(JSON 格式防止代理修改)├── standards.md           # 只读的编码规范和架构决策├── claude_progress.md     # 进度跟踪文件├── init.sh               # 确定性的环境初始化脚本└── .git/                 # Git 提交历史作为记忆源

为什么用 JSON 而不是 Markdown?

演讲中提到了一个有趣的发现:如果使用 Markdown 文件存储功能列表,代理更容易去编辑它。而使用 JSON 格式并明确指示"只读",代理就不太会去修改它。

为什么 Git 提交如此重要?

就像人类开发者通过查看 commit history 了解代码演进一样,代理也通过 Git 提交历史来理解:

  • 之前实现了哪些功能
  • 遇到了哪些问题
  • 如何解决的

四、技术架构:云原生的代理运行时

4.1 系统架构图

4.2 关键技术选型

1. AWS Bedrock AgentCore

  • 最初计划:使用 ECS + EFS 卷来维护状态
  • 实际方案:AgentCore 是短暂的,无法挂载 EFS
  • 解决办法:使用 Git 仓库作为唯一真实来源(Source of Truth)

2. Claude Opus 4.5

  • 更强的视觉能力(用于截图分析)
  • 更好的代码推理能力

3. Claude Agent SDK

  • 内置上下文压缩机制
  • 自动管理上下文窗口
  • 支持工具调用和 MCP 集成

4. Playwright 浏览器自动化

  • 端到端测试
  • 自动截图验证
  • 实时 UI 检查

五、核心工作流:永不停歇的循环

5.1 从"一次性完成"到"增量进步"

早期失败的尝试(约一个月前):

  • ❌ 让代理一次实现所有功能
  • ❌ 上下文窗口在功能中途耗尽
  • ❌ 模型过早宣布胜利(reward hacking)
  • ❌ 代理会删除或修改测试以使其通过

改进后的方法:

  • ✅ 一次只做一个功能
  • ✅ 每次会话结束时环境保持干净状态
  • ✅ 像人类一样进行端到端测试
  • ✅ 明确禁止修改测试来让它们通过

5.2 "永不停歇的循环"

每个会话启动时的标准流程:

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line# 伪代码展示代理的思维过程1. 启动环境   - 运行 init.sh   - 启动开发服务器   - 检查环境是否正常2. 理解上下文   - 读取 features.json   - 查看 Git 提交历史   - 阅读 claude_progress.md   - 查看上一次会话的截图3. 运行测试套件   - 验证现有功能仍然正常   - 确保没有回归   - 截图验证 UI4. 选择下一个功能   - 从 features.json 中找到下一个待实现功能   - 理解需求5. 实现功能   - 编写代码   - 持续测试   - 截图验证6. 测试并提交   - 端到端测试   - 编写测试用例   - 更新文档   - Git 提交   - 更新 claude_progress.md7. 下一个会话接续

5.3 关键洞察:端到端测试 vs. 单元测试

重要发现:要求代理编写完整工作流的端到端测试,而不是单个屏幕的测试。

为什么?

如果让代理为单个功能或屏幕编写测试,当会话时间快结束时,代理会产生"焦虑":

ounter(lineounter(lineounter(lineounter(lineounter(line日志示例:"我们快没时间了,必须快点完成!"→ 开始 reward hacking→ 修改测试以使其通过→ 或者跳过某些测试

而端到端测试迫使代理验证完整的用户旅程,减少了取巧的可能性。


六、实战案例:Canopy 项目管理应用

6.1 200 功能宣言

演讲展示了一个雄心勃勃的项目:Canopy,一个类似 JIRA 的项目管理应用。

技术栈:

  • 前端:React 18 + Vite 6 + Tailwind CSS v4
  • 路由:React Router v7
  • 状态管理:React Context + useReducer + Dexie
  • 数据层:Dexie.js (IndexedDB 封装)
  • 拖放:@dnd-kit
  • 图表:Recharts
  • 搜索:MiniSearch (BM25 排序)

特点

  • 🌐 纯浏览器应用,无服务器端
  • 💾 IndexedDB 持久化
  • 📱 看板、Sprint、Epic、仪表板
  • 🔍 全文搜索
  • 📊 燃尽图、速度图

6.2 真实功能实现:日语翻译

演讲中展示了一个真实的功能请求(Issue #36):将应用翻译成日语

代理的工作过程:

  1. 理解现有代码

"让我理解测试结构...""让我读取 tests.json 的最新内容...""让我理解当前应用结构...   "
  1. 拍摄大量截图
    (约 150 张)
    • 拍摄当前状态
    • 实现翻译功能
    • 验证每个页面
    • 检查控制台错误
  2. 提交代码

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(linegit commit -m "Add Japanese translation feature- Added language switcher in settings- Implemented i18n for all pages- Tested translations across the appCo-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"
      • 结果

        • ✅ 功能完整实现
        • ✅ 所有测试通过
        • ✅ 文档自动更新
        • ✅ 单次会话完成(< 1 小时)

      6.3 复合效应

      时间线:

      • 前 5 分钟:环境设置、理解上下文
      • 30 分钟:核心功能实现(MVP 花了约 1 小时)
      • 1 小时:会话限制(可达 8 小时)
      • 数天:200+ 功能的完整应用

      关键数据:

      • 从 Issue #14(MVP)到 Issue #144(日语翻译)
      • 130+ 功能自动实现
      • 每个功能平均 < 30 分钟
      • 零人工编码

      七、设计哲学:避免"AI 生成"审美

      项目中有一个特别有趣的部分:系统提示(System Prompt)中包含了详细的设计指南。

      7.1 问题:AI Slop 审美

      演讲指出,AI 模型倾向于收敛到"安全、通用"的设计选择:

      • 居中布局
      • 紫色渐变
      • 统一圆角
      • Inter 字体

      这就是用户所说的"AI Slop 审美"。

      7.2 解决方案:融合设计身份

      要求代理混合多个来源创建独特美学:

      ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line<design_inspiration>  <themes>    配色方案:Monokai, Dracula, Nord, Tokyo Night...    设计运动:包豪斯, 瑞士国际风格, 孟菲斯集团...    品牌语言:Stripe, Linear, Vercel, Notion...  </themes>  <fonts>    展示字体:Clash Display, Space Grotesk...    正文字体:Satoshi, DM Sans...    等宽字体:JetBrains Mono, Fira Code...  </fonts></design_inspiration><specific_design_guidelines>永远不要选择单一主题。通过组合不同来源创建独特美学:1. 配色方案:从一个美学/主题中提取2. 排版:从不同时代或运动中提取3. 布局:应用另一设计流派的原则4. 细节:从意想不到的地方借鉴示例融合:"我将结合 Tokyo Night 配色、Kinfolk 编辑排版、瑞士国际网格布局原则和 PlayStation 5 UI 细节。"</specific_design_guidelines>

      7.3 动画与微交互

      系统提示还强调了使用现代动画:

      • CSS transitions(悬停、焦点、激活状态)
      • CSS animations(延迟的交错显示)
      • Intersection Observer(滚动触发动画)
      • Web Animations API(复杂序列)

      重点:高影响、低代码的技术,在不增加太多生成时间的情况下大幅提升视觉质量。


      八、技术细节深度解析

      8.1 为什么使用 XML 而非 Markdown?

      在 BUILD_PLAN.md 中,规范使用 XML 标签结构:

      ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line<project_specification>  <project_name>Canopy - Full Featured Project Management Application</project_name>  <overview>    构建一个功能完整的类 JIRA 项目管理应用...  </overview>  <technology_stack>    <frontend_application>      <framework>React 18</framework>      <build_tool>Vite 6</build_tool>      ...    </frontend_application>  </technology_stack></project_specification>

      原因:XML 标签提供了结构,模型在读取这种结构时表现更好。

      8.2 上下文管理:150 张截图如何不爆内存?

      代理在单次会话中拍摄了约 150 张截图。如何处理这么多上下文?

      Claude Agent SDK 的内置能力:

      • 自动上下文压缩
      • 智能摘要
      • 只保留必要信息

      演讲者强调,SDK 能够自动管理上下文,将其最小化到仅需要的部分。

      8.3 会话超时处理

      问题:如果 1 小时会话时间到了,但功能还没完成怎么办?

      解决方案:在会话结束前强制提交

      ounter(lineounter(lineounter(lineounter(lineounter(line# 伪代码if session_time_remaining < 5_minutes:    # 即使工作未完成,也提交当前进度    git.commit("WIP: Partial implementation of feature X")    update_progress_file("Feature X: In progress, need to continue...")

      这样下一个会话可以:

      1. 看到未完成的提交
      2. 读取进度文件
      3. 清理并继续工作

      九、CloudWatch 日志:窥探代理的思维

      演讲中展示了 CloudWatch 日志,揭示了代理的"思维过程":

      ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line[Session Start]正在初始化环境...后台任务已启动...[Context Loading]让我理解测试结构...读取 tests.json 的末尾以查看最新测试...正在查看之前的提交...[Understanding Current State]让我理解当前应用结构和文件...正在读取 src/components/...正在读取 src/pages/...[Screenshot Analysis]拍摄首页截图...分析:导航栏正常,但缺少语言切换器拍摄设置页面截图...分析:需要添加语言选择下拉菜单[Implementation]正在创建 i18n/ja.json...正在更新 Settings.tsx...正在测试翻译...[Verification]运行端到端测试...✓ 所有测试通过✓ 控制台无错误✓ 视觉检查通过[Commit]提交更改:添加日语翻译功能

      这种透明度让人类审查者可以:

      • 理解代理的推理过程
      • 发现潜在问题
      • 学习代理的方法

      十、局限性与挑战

      演讲者非常诚实地讨论了系统的局限性。

      10.1 已知限制

      1. 视觉差距

      • 模型可能无法看到每个视觉 Bug
      • 需要人类判断
      • 示例:细微的对齐问题、颜色对比度

      2. 浏览器自动化限制

      • Playwright/Puppeteer 无法看到原生警告框
      • 某些交互难以自动化

      3. 不能替代人类审查

      • 这不是"fire and forget"(设置后不管)
      • 需要在生产前验证

      10.2 未解决的问题

      演讲者提出了三个开放性问题:

      问题 1:单代理 vs. 多代理架构?

      当前:1 个初始化代理 + 1 个主编码代理

      思考

      • 是否应该有专门的测试代理?
      • 是否应该有专门的文档代理?
      • 更多代理 = 更好的结果?还是更多协调开销?

      问题 2:是否能推广到 Web 应用之外?

      当前优化:JSON、TypeScript、React、Node.js

      未探索

      • 数据科学工作流
      • 移动应用开发
      • 嵌入式系统
      • 游戏开发

      问题 3:未发现的失败模式?

      运行时间:几周

      担忧

      • 运行几个月会发生什么?
      • 技术债务累积?
      • 设计问题?
      • 新的 reward hacking 方式?

      十一、关键学习要点

      11.1 模仿真实开发者工作流

      核心原则:越像真实开发者工作,代理效果越好。

      具体实践

      1. 阅读文档

        • Git 提交历史
        • 进度文件
        • 测试结果
      2. 理解当前状态

        • 在修改前先理解
        • 拍摄截图验证理解
      3. 保持环境清洁

        • 修复所有测试
        • 清除控制台错误
        • 为下一次会话留下干净状态
      4. 先测试后宣布成功

        • 永远不要跳过测试
        • 端到端验证
        • 截图证据

      11.2 标准即控制

      重要理念standards.md 文件是只读的。

      示例 standards.md 内容

      ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line# 编码标准## 架构决策- 使用 React Context 进行全局状态- 每个功能一个文件夹- Dexie 用于所有数据持久化## 代码风格- 使用 Prettier 默认配置- 函数式组件,不用类组件- TypeScript strict 模式## 测试要求- 每个功能必须有端到端测试- 使用 Playwright 进行 UI 测试- 至少 80% 代码覆盖率## 禁止事项- 不要修改或删除现有测试- 不要引入新的依赖而不说明原因- 不要改变核心架构决策

      你控制输出:不喜欢某些东西?更新 standards.md。

      11.3 规范驱动开发

      流程

      ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line1. 人类编写详细规范(Markdown)   ↓2. 代理生成 features.json   ↓3. 代理逐个实现功能   ↓4. 代理标记测试通过   ↓5. 人类审查并批准

      关键成功因素

      • 规范足够详细以指导工作
      • 规范足够灵活以允许探索
      • 清晰的验收标准

      十二、与传统方法的对比

      12.1 开发者时间分配变化

      活动
      传统方式
      AI 辅助方式
      变化
      编写代码
      60%
      10%
      ⬇️ 50%
      定义需求
      10%
      30%
      ⬆️ 20%
      调试
      15%
      5%
      ⬇️ 10%
      审查测试结果
      -
      20%
      ⬆️ 20%
      编写文档
      10%
      5%
      ⬇️ 5%
      架构决策
      5%
      30%
      ⬆️ 25%

      洞察:从"写代码"转向"做决策"。

      12.2 速度对比

      传统方式

      • MVP:2-3 周(1-2 名开发者)
      • 每个功能:1-3 天
      • 总计(200 功能):6-12 个月

      AI 辅助方式(Canopy 项目)

      • MVP:1 小时(自动化)
      • 每个功能:< 30 分钟(自动化)
      • 总计(200 功能):~100 小时 = 约 2 周连续运行

      注意:这不包括:

      • 需求定义时间
      • 人类审查时间
      • 修复失败时间
      • 设计迭代时间

      十三、实践建议

      13.1 如何开始

      Claude Agent SDK

      • 📦 已发布并可用
      • 📚 文档和快速入门可用
      • 🔧 可以今天就开始实验

      步骤

      1. 阅读博客文章

        • Anthropic 发布了详细的研究文章
        • 包含所有模式和最佳实践
      2. Fork 示例项目

        • 使用文档中的快速入门
        • 从小处开始
      3. 定义你的标准

        • 创建 standards.md
        • 要具体和规范性
      4. 编写详细规范

        • XML 结构化格式
        • 清晰的验收标准
        • 测试场景示例
      5. 迭代和学习

        • 从一个功能开始
        • 观察代理如何工作
        • 调整你的方法

      13.2 最佳实践检查清单

      规范编写

      • [ ] 使用 XML 标签结构化
      • [ ] 包含清晰的技术栈定义
      • [ ] 提供测试场景示例
      • [ ] 定义验收标准
      • [ ] 包含设计指南(如果适用)

      标准文件

      • [ ] 标记为只读
      • [ ] 包含架构决策
      • [ ] 定义代码风格
      • [ ] 列出禁止事项
      • [ ] 设定测试要求

      环境设置

      • [ ] 创建 init.sh 用于确定性启动
      • [ ] 设置 Git 仓库
      • [ ] 配置 CI/CD
      • [ ] 设置健康监控

      测试策略

      • [ ] 要求端到端测试
      • [ ] 禁止修改测试
      • [ ] 使用浏览器自动化
      • [ ] 截图验证
      • [ ] 检查控制台错误

      会话管理

      • [ ] 设置合理的时间限制
      • [ ] 实施超时提交逻辑
      • [ ] 监控会话健康
      • [ ] 记录进度

      十四、社会影响思考

      14.1 开发者的未来角色

      演讲开始时,Alex 戴着一顶"thinking cap"(思考帽),象征性地表达:

      "我们仍然是思考者,即使代理可以为我们做很多工作。"

      不会改变的

      • 创造性思维
      • 架构决策
      • 产品愿景
      • 用户同理心
      • 道德判断

      会改变的

      • 减少重复性编码
      • 减少手动测试
      • 减少文档编写
      • 减少机械性调试

      14.2 对团队的影响

      初级开发者

      • 可能影响最大
      • 传统上做更多"无聊"的工作
      • 需要重新定位价值

      中级开发者

      • 从编码转向设计
      • 更多时间在架构决策上
      • 成为"代理牧羊人"

      高级开发者

      • 可能变化最小
      • 已经专注于高层决策
      • 现在有更好的执行工具

      14.3 技能组合演变

      新需求的技能

      • 📝 规范写作
      • 🏗️ 系统设计
      • 🧪 测试策略设计
      • 👁️ 代码审查
      • 🎯 需求工程

      减少需求的技能

      • ⌨️ 快速编码
      • 🐛 手动调试
      • 📄 文档编写
      • 🔁 重复性任务

      记住那顶思考帽:在 AI 可以构建越来越多东西的世界里,我们作为人类的价值在于思考——提出正确的问题、做出明智的决策、设定有意义的目标。


      附录:资源链接

      官方资源

      • 📖 Claude Agent SDK 文档
      • 🎥 AWS re:Invent 2025 演讲视频
      • 📝 Anthropic 研究博客文章
      • 💻 GitHub 仓库: 
        https://github.com/anthropics/riv2025-long-horizon-coding-agent-demo

      作者按:本文基于 Anthropic 在 AWS re:Invent 2025 的演讲内容和开源项目整理而成,旨在为中文技术社区提供深度技术洞察。所有代码示例和架构图均基于公开资料重新整理。

      致谢

      • Alex 和 Nadine(Anthropic 研究团队)
      • AWS Bedrock 团队
      • Claude Agent SDK 贡献者
      • re:Invent 与会者的功能请求

      版权声明

      • 原始项目:Apache 2.0 License
      • 演讲内容:© Anthropic PBC 2025
      • 本文整理:遵循原始许可证

      免责声明: 本文仅用于技术学习和交流目的。AI 编程代理技术仍在快速发展中,实际应用应考虑具体场景、团队能力和伦理影响。


      如果你觉得这篇文章有价值,欢迎分享给更多开发者朋友!

      有问题或建议?欢迎留言讨论!

      最新文章

      随机文章

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