乐于分享
好东西不私藏

别再让一个 AI 吞完整个项目上下文了:我用 OpenSpec + Agent 把研发流程拆干净

别再让一个 AI 吞完整个项目上下文了:我用 OpenSpec + Agent 把研发流程拆干净

最近我越来越确认一件事:

AI 写代码最大的坑,不是它不会写。

真正可怕的是:它太能写了。

需求没澄清完,它开始写。方案没定完,它开始写。接口归属还没搞清楚,它开始写。Review 发现问题后,它又带着前面一堆废弃上下文继续写。

最后代码确实“能跑”,但工程开始变味:到处是兼容补丁,到处是临时判断,到处是“先这样吧”。

这不是模型能力问题,这是工作流问题。

一个代理吞掉需求、设计、实现、Review 全部上下文,迟早会把项目吃成一锅粥。

所以我这次干了一件很简单但很爽的事:

用 OpenSpec 管流程,用 Agent 管角色,用文件做交接。

一句话:不让一个 AI 当全能选手,而是让每个代理只干自己那一段。

一、以前的问题:上下文污染,比 Bug 更难受

传统 AI 开发流程,经常是这样的:

  1. 用户说一个需求
  2. AI 开始分析
  3. 分析到一半发现接口不对
  4. 又补充数据库、菜单、权限、前端页面
  5. 继续写代码
  6. 写完 Review
  7. Review 后再修

看起来很顺。但上下文已经开始脏了。

一开始的猜测、后面推翻的方案、用户临时纠正的话、错误模块里的探索记录、失败命令、废弃接口,全都还在同一个上下文里。

AI 后面继续工作时,很容易把这些“历史废案”当成有效信息。

于是你会看到几种熟悉的坏味道:

  • 明明应该精准对接契约,它开始写兼容兜底
  • 明明只改一个接口,它顺手重构一片
  • 明明需求已经改了,它还引用旧判断
  • 明明 Review 只指出一个 bug,它把任务扩成“全面优化”

这就是上下文污染。它不像编译错误那么直接,但它会慢慢把代码库拖烂。

二、我的解法:OpenSpec + Agent,不靠聊天记忆交接

我把整个 OpenSpec 工作流拆成 5 个阶段:

  1. 需求澄清
  2. 变更制定
  3. 技术设计
  4. 代码实现
  5. 代码 Review

每个阶段一个明确产物。

不是靠“上个代理说过什么”,而是靠文件交接:

clarification.md  ->  需求澄清
proposal.md       ->  变更提案
specs/**/*.md     ->  行为规格
design.md         ->  技术设计
tasks.md          ->  实现任务
review.md         ->  代码 Review

这样一来,每个代理只需要读自己该读的文件。

需求澄清代理不用知道最终代码 diff。实现代理不用吃完整个需求讨论历史。Review 代理不用参与前面的方案争论,只看 OpenSpec、diff 和验证证据。

Agent 不是越全能越好,而是上下文越干净越好。

三、角色怎么拆?我用了 4 个代理

我没有一上来搞复杂平台,也没有做花哨调度。先用最朴素、最稳的方式:写 4 份代理说明。

agents/
├── requirement-clarifier.md
├── openspec-designer.md
├── implementation-worker.md
└── code-reviewer.md

1. Requirement Clarifier:需求澄清代理

它只负责弄清楚需求。它不能写 OpenSpec,不能写代码。

输出一个 clarification.md

# Requirement Clarification

## Background

## Current Problem

## Confirmed Facts

## Assumptions

## In Scope

## Out of Scope

## Open Questions

## Acceptance Criteria

## Suggested Change Id

这个代理最适合处理那种“页面为什么没数据”“这个弹窗为什么空”“这个状态为什么不同步”的问题。

它的重点不是马上修,而是先追链路:前端从哪里请求,后端查哪张表,数据归属是谁,是平台数据还是门店数据,是渲染问题还是数据源错了。

需求没澄清完,不进入下一步。

2. OpenSpec Designer:变更制定代理

它负责把澄清后的需求变成 OpenSpec artifacts。

它要检查已有 openspec/changes,能更新就更新,不重复创建;然后生成 proposal.mdspecs/**/*.mddesign.mdtasks.md

它也不能写业务代码。这一步的重点是把“我要什么”变成“系统 SHALL 做什么”。

3. Implementation Worker:代码实现代理

它只实现 approved tasks。它不重新解释需求,不扩大 scope,不顺手重构。

它的输入不是聊天记录,而是 clarification.mdproposal.mdspecs/**/*.mddesign.mdtasks.md

它按 tasks.md 一项一项做。每项都要能验证。

4. Code Reviewer:代码 Review 代理

Review 代理最重要的一点:它不改代码。

它只输出 findings:

# Review Findings

## Findings

## Open Questions

## Verification Reviewed

## Summary

它看的是 OpenSpec 是否被满足、diff 是否偏离设计、权限和路由是否正确、测试是不是假跑、有没有兼容性风险。

Review 不参与实现,能避免一个很常见的问题:写代码的人给自己找理由。

四、关键不是代理,而是 schema

只写 agents 文档还不够。因为代理说明只是“岗位职责”,真正控制 OpenSpec 阶段顺序的是 schema。

我新建了一个 schema:

openspec/schemas/agent-openspec/schema.yaml

然后把 openspec/config.yaml 的第一行改成:

schema: agent-openspec

这样 OpenSpec 就知道:现在不是默认的 proposal -> specs -> design -> tasks,而是新的代理友好流程。

clarification -> proposal -> specs -> design -> tasks -> code-review

这一步很爽。因为它让“先澄清,再设计,再实现,再 Review”变成了工具层面的约束,而不是一句口头约定。

五、核心 schema 直接贴出来

下面是关键版本,真实项目里可以直接按这个改。

name: agent-openspec
version: 1
description: Agent-aware OpenSpec workflow - clarification -> proposal -> specs -> design -> tasks -> code-review

artifacts:
  - id: clarification
    generates: clarification.md
    description: 需求澄清交接文档
    template: clarification.md
    instruction: >
      使用 openspec-explore skill 的探索方式,并遵守
      agents/requirement-clarifier.md 的职责边界。

      只澄清需求,不创建 OpenSpec 变更,不修改代码。输出必须让后续
      openspec-propose 阶段可以脱离完整聊天上下文工作。
    requires: []

  - id: proposal
    generates: proposal.md
    description: 概述变更的初始提案文档
    template: proposal.md
    instruction: >
      使用 openspec-propose skill,并遵守 agents/openspec-designer.md 的职责边界。

      基于 clarification.md 创建 proposal.md。创建前必须检查 openspec/changes
      是否已有相关变更;如果已有,应更新现有 change,而不是重复创建。
    requires:
      - clarification

  - id: specs
    generates: specs/**/*.md
    description: 变更的详细规格说明
    template: spec.md
    instruction: >
      使用 openspec-propose skill,并遵守 agents/openspec-designer.md 的职责边界。

      为 proposal 的 Capabilities 部分列出的每个能力创建 spec 文件。
      每条需求必须使用 SHALL/MUST,并至少包含一个 #### Scenario。
    requires:
      - proposal

  - id: design
    generates: design.md
    description: 包含实现细节的技术设计文档
    template: design.md
    instruction: >
      使用 openspec-propose skill,并遵守 agents/openspec-designer.md 的职责边界。

      中文友好要求:章节标题可以使用英文以保持 OpenSpec 结构稳定,但正文必须
      主要使用中文描述。
    requires:
      - clarification
      - proposal
      - specs

  - id: tasks
    generates: tasks.md
    description: 可跟踪任务的实现清单
    template: tasks.md
    instruction: >
      基于 specs 和 design 创建任务列表。每个任务必须使用:
      - [ ] X.Y 任务描述

      中文友好要求:任务描述、验证说明、风险提示应主要使用中文。
    requires:
      - specs
      - design

  - id: code-review
    generates: review.md
    description: 代码 review 报告
    template: review.md
    instruction: >
      使用 code-reviewer 代理,并遵守 agents/code-reviewer.md 的职责边界。

      只 review,不改代码。findings 必须优先输出,按 P1/P2/P3 排序。
    requires:
      - proposal
      - specs
      - design
      - tasks

apply:
  requires:
    - clarification
    - proposal
    - specs
    - design
    - tasks
  tracks: tasks.md
  instruction: |
    使用 openspec-apply-change skill,并遵守 agents/implementation-worker.md 的职责边界。

    只实现 approved OpenSpec tasks。每次只处理明确的任务切片。
    不得重新解释需求,不得扩大 scope,不得顺手重构无关代码。

注意这里的设计很克制。schema 不负责“真的启动子代理”。schema 只负责定义有哪些 artifact、先后依赖是什么、每一步的输出文件是什么、每一步应该遵守哪个 agent 边界。

schema 管顺序,agents 管边界,skills 做动作。

六、为什么要加 clarification.md?

因为很多需求不是一开始就清楚的。

比如用户说:“这个弹窗为什么没数据?”

糟糕的 AI 会马上改接口。靠谱的流程应该先问:弹窗数据来自哪个接口?接口查的是平台服务项,还是门店上架服务项?当前页面有没有 institutionId?业务期望是机构维度,还是平台维度?没数据是前端没调,还是后端查错表?

这些如果不写进 clarification.md,后面实现代理就很容易“凭感觉修”。

所以 clarification 不是形式主义。它是整个流程的地基。

七、design.md:标题可以英文,正文必须中文

OpenSpec 默认模板偏英文。但在中文团队里,如果 design.md 全是英文,Review 成本会变高。

尤其是业务系统,很多概念是中文语境里的:门店、平台、护理对象、长护险、服务项、服务套餐、参保名单、审核记录。

这些硬翻成英文,反而丢信息。

所以我加了一个规则:标题可以英文,正文必须主要使用中文。

## Context

用中文说明背景、当前状态、业务约束和相关系统。

## Goals / Non-Goals

用中文列出本次设计要达成的目标,以及明确不包含的范围。

## Decisions

用中文说明关键技术决策、原因和考虑过的替代方案。

## Data / API Flow

用中文描述数据来源、请求参数、状态流、跨端契约和权限边界。

## Verification Strategy

用中文说明后端、前端、SQL、端侧分别如何验证,并写出必要命令。

这个小改动非常值。它让文档既保持工程结构,又能让团队真正读得下去。

八、tasks.md:不要再写“实现后端”这种废话

我最怕的任务拆分是这种:

- [ ] 实现后端
- [ ] 实现前端
- [ ] 联调测试

看起来有计划,实际上没法执行。实现哪个接口?改哪个表?验证什么?失败怎么判断?都没有。

所以我把 tasks.md 模板改成中文可执行风格:

## 1. Preparation

- [ ] 1.1 用中文描述准备工作,例如确认现有代码、数据表、接口或页面入口
  - Verify: 用中文说明验证方式,可包含命令、SQL 或手工检查点

## 2. Implementation

- [ ] 2.1 用中文描述具体实现任务,保留必要的文件路径、类名、接口路径或字段名
  - Verify: 用中文说明完成后如何验证,必要时写出精确命令

任务越清楚,代理越不容易自作聪明。

九、Review 必须独立出来

很多人让同一个 AI 写完代码后顺手 Review。这当然也能做,但效果不够硬。

因为写代码的上下文里,已经装满了它自己的理由。

独立 Review 代理应该只看:

OpenSpec artifacts
git diff
verification evidence
project rules

它必须 findings first:

# Review Findings

## Findings

- [P1] path:line - 问题和影响
- [P2] path:line - 问题和影响

## Open Questions

## Verification Reviewed

## Summary

Review 代理只报问题,不修代码。修复再交回 Implementation Worker。职责一分开,质量会立刻上来。

十、落地以后怎么用?

先看 schema:

openspec schemas

你会看到:

agent-openspec
  Artifacts: clarification → proposal → specs → design → tasks → code-review

校验 schema:

openspec schema validate agent-openspec

查看某个阶段的指令:

openspec instructions clarification --change <change-id>
openspec instructions design --change <change-id>
openspec instructions tasks --change <change-id>
openspec instructions code-review --change <change-id>

执行实现阶段:

openspec instructions apply --change <change-id>

如果某个历史 change 没有 clarification.md,现在会被 block。这不是 bug,这是新流程在保护你。

Missing artifacts: clarification

你有两个选择:

# 新流程:补一个 clarification.md
openspec instructions clarification --change <change-id>

# 旧 change 临时走旧 schema
openspec instructions apply --change <change-id> --schema limit-context

十一、这个方案真正解决了什么?

它不是让 AI 更炫。它是让 AI 更守规矩。

以前的问题是:

一个代理 + 巨大上下文 + 模糊任务 = 代码开始漂

现在变成:

多个角色 + 文件交接 + OpenSpec 约束 = 每一步都能审

这套流程的价值不在“自动化程度更高”。而在“每一步都能停下来检查”。

需求错了,停在 clarification。方案错了,停在 design。任务太粗,停在 tasks。代码偏了,停在 review。不会一路错到生产。

十二、最后说句实话

AI 时代,真正拉开差距的不是“谁会 prompt”。

而是谁能把 AI 放进一个靠谱的工程流程里。

让它该澄清时澄清。该设计时设计。该实现时实现。该闭嘴 Review 时,就只 Review。

OpenSpec 给了我们规格驱动的骨架。Agent 给了我们职责隔离的肌肉。文件交接则是血管。

这三件事合在一起,AI 才不会像一个兴奋过头的实习生,到处乱改。

它会变成一个真正可控的工程协作者。

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