乐于分享
好东西不私藏

嵌入式工程师AI辅助开发笔记:Agent、Skill与MCP实践指南

嵌入式工程师AI辅助开发笔记:Agent、Skill与MCP实践指南

一、嵌入式工程师如何面对AI?

AI正在深刻改变软件开发方式。对于嵌入式工程师而言,AI并非威胁,而是提升效率的利器。关键在于理解AI的能力边界,并将其融入现有工作流。

核心原则

  • AI擅长:编写、调试、维护代码这类“战术性”工作
  • 人类聚焦:系统架构设计、战略决策、软硬件协同优化
  • 价值护城河:对物理世界交互、硬件边界条件的深刻理解

推荐学习路径

  1. 夯实基础:深入STM32/Linux嵌入式项目实践
  2. 补充Python及常用库(Numpy、Pandas),为AI数据处理做准备
  3. 学习TinyML,将AI模型部署到低功耗MCU
  4. 实践Agent开发,从低代码平台开始
  5. 构建“云-边-端”智能系统,实现端侧AI部署

二、AI Agent、Skill、MCP的概念与关系

2.1 AI Agent(智能体)

定义:以LLM为“大脑”,具备记忆、规划、工具调用能力的自主执行单元。

类比:一位总指挥,接收高层任务(如“测试串口通信”),自主分解步骤,调用合适工具,并根据反馈调整策略。

特点

  • 推理资源消耗较高
  • 适应性强,能处理未预见的异常
  • 可调用Skill和MCP Server完成具体动作

2.2 Skill(技能)

定义:一个声明式的标准化操作流程(SOP),通常以Markdown文本文件形式存在。

类比:操作手册或备忘单。当Agent需要完成特定任务(如“测试串口”)时,它读取Skill文档,按步骤执行。

特点

  • 轻量、快速、可复用
  • 不直接操作硬件,而是指导Agent调用哪些MCP工具
  • 通过关键词或用户指令触发

2.3 MCP(Model Context Protocol)

定义:一个开放标准的应用层协议,定义了AI与外部工具/资源之间的通信方式及工具描述格式。

类比:一个“万能遥控器”的通信协议。Agent通过MCP协议控制MCP Server(实际干活的程序),MCP Server再操作硬件或系统资源。

核心要素

  • MCP Server:独立的用户态进程,封装具体功能(如串口读写、SSH执行)。运行在与Agent相同或不同的主机上。
  • 传输方式:常用stdio(本地进程间通信)或HTTP(远程服务)。
  • 工具描述:MCP Server会列出所有可用工具及其参数、说明,供Agent理解调用。

MCP vs RESTful API:MCP专为LLM设计,工具描述包含自然语言说明,AI无需预训练即可理解如何调用。

2.4 三者关系总结

组件 角色 表现形式 生命周期
Agent 总指挥 推理引擎 + 记忆 + 规划 持续运行(会话级)
Skill SOP手册 .md文本文件 被Agent读取时生效
MCP Server 执行工具 独立进程 由Agent启动或常驻

协作流程:用户下达任务 → Agent理解并规划 → 读取对应Skill获取步骤 → 按步骤调用MCP Server提供的工具 → MCP Server执行具体操作(读写串口、SSH命令等)→ 结果返回Agent → Agent判定并生成报告。
已在笔记中新增「深入理解Agent」与「深入理解Skill」两个独立章节,使其与MCP内容更加均衡。整体结构保持不变,确保逻辑连贯且无个人信息残留。


三、深入理解Agent

Agent并非简单的大模型“包装壳”,而是一个具备自主闭环能力的智能体。其核心运行机制可归纳为 P-E-O-R循环

  • 规划:将用户的高层目标分解为若干可执行的子任务。
  • 执行:调用工具(如MCP Server、代码执行器、API等)完成任务。
  • 观察:接收工具返回的结果或环境反馈。
  • 反思:根据观察结果判断是否达成目标;若未达成,则重新规划。

3.1 Agent的四大核心组件

  1. 大模型(大脑):负责推理、生成计划和决策。
  2. 记忆
    • 短期记忆:当前会话的上下文信息(对话历史、任务状态)。
    • 长期记忆:跨会话持久化的知识(向量数据库、文件、外部存储)。
  3. 工具集:Agent可调用的外部能力,通过MCP或内置函数暴露。
  4. 规划模块:将复杂任务拆解为行动序列,支持动态调整。

3.2 Agent与普通LLM的区别

能力 普通LLM Agent
对话
一次任务执行 ✅(需人工分步引导) ✅(自主完成全流程)
工具调用 受限或需手动编写代码 ✅(通过MCP标准化调用)
错误恢复 ✅(观察→反思→重试/改方案)
跨会话记忆 ✅(借助长期记忆)

3.3 Agent的典型应用场景(嵌入式领域)

  • 自动化测试:烧录代码 → 运行测试 → 读取日志 → 判断通过率 → 生成报告。
  • 固件调试:通过JTAG/SWD读取内存 → 分析异常栈 → 定位bug → 提出修复建议。
  • 硬件验证:控制信号发生器 → 读取示波器数据 → 比对时序 → 标注异常波形。

四、深入理解Skill

Skill是为Agent编写的标准化操作流程文档,通常以Markdown(或YAML frontmatter + Markdown正文)格式存储。它告诉Agent:“当用户提到X场景时,请按照Y步骤执行,并注意Z事项”。

4.1 Skill的本质:上下文注入

Skill并非可执行代码,而是一段在运行时动态注入Agent系统提示词或上下文的文本。Agent读取Skill后,会将其中描述的步骤当作“行为准则”来遵循。

与普通Prompt的区别

  • Prompt:一次性指令,每次对话需重新描述。
  • Skill:可复用、可版本管理、支持参数化,且能组合使用。

4.2 一个标准Skill的结构

---
name: skill-name
description: 简短描述,用于Agent判断何时调用
---

# 技能标题

## 前置条件
- 需要用户提供的参数

## 执行步骤
1. 第一步:调用具体MCP工具或内置能力
2. 第二步:根据上一步结果做判断
3. ...

## 输出格式
要求Agent以特定模板输出结果

## 异常处理
遇到XX错误时,应该怎么做

4.3 Skill的触发方式

  • 显式调用:用户指令中包含技能名称(如“执行embedded-test技能”)。
  • 自动匹配:Agent根据用户自然语言描述,检索最相关的Skill并主动加载(需嵌入向量检索或关键词匹配)。
  • Slash Command:通过快捷命令(如 /test-uart)触发,可带参数。

4.4 编写高效Skill的最佳实践

  1. 步骤粒度适中:每一步应是Agent能直接调用一个MCP工具完成的原子操作。
  2. 包含判断分支:使用“若……则……否则……”描述异常流程。
  3. 提供示例:在Skill中加入输入/输出示例,减少Agent理解偏差。
  4. 参数化:使用 {{变量名}} 标记需要用户填充的内容。
  5. 明确失败处理:定义超时重试、错误上报等行为。

4.5 Skill与MCP、Agent的协作示例

假设Skill编写如下:

## 执行步骤
1. 调用 `serial_mcp``list_ports` 工具,获取可用串口列表。
2. 如果列表为空,则报告错误并终止。
3. 否则,选择第一个串口,调用 `open` 工具。

Agent在运行时会:

  • 语义理解步骤1 → 构造MCP请求 {"tool": "list_ports"} → 发送给MCP Server
  • 接收返回结果 → 判断是否为空 → 决定下一步

五、深入理解MCP

5.1 MCP不是什么?

  • 不是硬件接口(SPI、I2C、USB协议)
  • 不是驱动程序
  • 不是Agent的内置模块

5.2 MCP Server如何运行?

  • 位置:与Agent同一主机(本地工具)或远程服务器
  • 启动方式
    • stdio模式:由Agent客户端根据配置文件在启动时或会话开始时自动拉起子进程,会话结束则终止
    • HTTP模式:需单独部署为常驻服务,Agent通过HTTP调用

5.3 如何实现自定义MCP Server?

推荐框架:Python + FastMCP(极简装饰器模式)

示例:串口调试MCP Server(仅核心代码)

import serial
from fastmcp import FastMCP

mcp = FastMCP("MCU Debugger")

@mcp.tool
def uart_send(port: str, baudrate: int = 115200, command: str = "AT\r\n"):
    """向串口设备发送命令并等待响应"""
    with serial.Serial(port, baudrate, timeout=2) as ser:
        ser.write(command.encode())
        response = ser.readline()
    return response.decode().strip()

if __name__ == "__main__":
    mcp.run(transport="stdio")

开发步骤

  1. 编写核心功能函数(与普通脚本无异)
  2. 使用@mcp.tool装饰器注册工具,并写好文档字符串(AI会读取)
  3. 调用mcp.run(transport="stdio")启动服务

调试工具:MCP Inspector

npx @modelcontextprotocol/inspector python your_mcp_server.py

5.4 如何查找现有MCP服务?

  • Awesome MCP Servers:GitHub社区维护列表
  • MCP Registry:官方应用商店
  • 关键词搜索serial-mcp-serverssh-mcp-servermodbus-mcp-server
  • 嵌入式相关serial-tethermcp2serialssh-mcp-py

六、组合项目:自动化串口通信测试环境

6.1 项目目标

搭建一个全自动闭环:ClaudeCode编写测试代码 → SSH登录开发板并烧录 → 运行程序 → 通过USB转串口收发数据 → AI自动验证结果。

┌─────────────────────────────────────────────┐
│           你的 Ubuntu 主机                   │
│  ┌──────────────┐      ┌───────────────┐    │
│  │  ClaudeCode  │      │   MCP Server  │    │
│  │   (Agent)    │◄────►│  (独立进程)    │    │
│  └──────────────┘      └───────┬───────┘    │
│         ▲                       │            │
│         │ 读 Skill 文本          │ 通过       │
│         │                       │ /dev/ttyUSB0  │
│  ┌──────┴──────┐                │            │
│  │ Skill 文件  │                ▼            │
│  │ (.md)      │           ┌────────────┐    │
│  └─────────────┘           │ USB 串口线  │    │
│                            └─────┬──────┘    │
└──────────────────────────────────┼───────────┘
                                   │
                              ┌────┴─────┐
                              │ Linux    │
                              │ 硬件板子  │
                              └──────────┘

6.2 硬件拓扑

Ubuntu主机(运行ClaudeCode)
    ├─ USB转串口线 ──→ Linux开发板(UART)
    └─ 网络SSH ──────→ 开发板(用于烧录和执行)

6.3 所需组件

类型 名称 用途
MCP Server ssh-mcp-server(Node版)或 ssh-mcp-py 使AI能通过SSH执行命令、传输文件
MCP Server serial-mcp-server(实际命令为serial_mcp 使AI能操作本地USB串口设备
Skill embedded-test.md 定义完整测试流程的“剧本”
Agent ClaudeCode(已配置) 总指挥

6.4 详细配置步骤

步骤1:安装MCP Server

# 串口MCP(注意实际可执行文件名为 serial_mcp)
uvx --from serial-mcp-server serial_mcp

# SSH MCP(Node版本,支持密码认证)
npx -y @davidfei/ssh-mcp-server --host <开发板IP> --username <用户名> --password <密码>
若遇到权限问题:`sudo usermod -a -G dialout $USER` 后注销重登录。

步骤2:配置ClaudeCode的MCP客户端

在项目根目录创建或编辑 .mcp.json

{
  "mcpServers": {
    "ssh": {
      "command": "npx",
      "args": ["-y", "@davidfei/ssh-mcp-server", "--host", "192.168.1.100", "--username", "root", "--password", "123456"]
    },
    "serial": {
      "command": "uvx",
      "args": ["--from", "serial-mcp-server", "serial_mcp"]
    }
  }
}

重启ClaudeCode使配置生效。

步骤3:编写Skill文件

.claude/skills/ 目录下创建 embedded-test.md

---
name: embedded-test
description: 自动完成嵌入式代码编写、SSH烧录、串口验证的完整闭环
---

# 嵌入式自动化测试 Skill

## 工作流

### 1. 代码生成
根据用户需求,编写一个串口测试程序。例如:程序监听串口,收到 "PING" 则回复 "PONG"。

### 2. 远程烧录
- 使用SSH MCP的 `exec` 工具将编译好的二进制文件传输至开发板(可用scp或直接写入)
- 执行烧录/运行命令(如 `chmod +x test && ./test &`### 3. 串口验证
- 调用串口MCP的 `list_ports` 确认设备路径
- 调用 `open` 打开 `/dev/ttyUSB0`,波特率115200
- 调用 `write` 发送 "PING\n"
- 调用 `read` 等待响应(超时2秒)
- 调用 `close` 关闭串口

### 4. 结果判定
比较实际响应是否等于预期 "PONG",生成测试报告。

步骤4:触发执行

向ClaudeCode发送指令:

“执行 embedded-test 技能,测试串口回环。开发板IP 192.168.1.100,用户名root,密码123456,串口 /dev/ttyUSB0,波特率115200。”

Agent将自动完成所有步骤,并输出类似以下的报告:

--- 自动化测试报告 ---
测试时间:2025-01-15 14:32:07
目标板IP:192.168.1.100
串口设备:/dev/ttyUSB0
发送指令:PING
预期响应:PONG
实际响应:PONG
测试结论:✔️ 通过
耗时:23.4秒
--------------------

6.5 可选优化:添加快捷命令

.claude/commands/ 下创建 /test-uart.md

---
description: 一键触发嵌入式串口自动化测试
---
请执行embedded-test技能,开发板IP={{args}}。

之后只需输入 /test-uart 192.168.1.100 即可启动。

七、总结

  • Agent:AI的大脑与执行器,适合复杂、多变的推理任务。
  • Skill:固化经验的SOP文本,让Agent快速学会标准流程。
  • MCP:连接AI与外部世界的标准协议,MCP Server是独立的功能进程。
  • 嵌入式工程师的优势在于对硬件的深刻理解。通过将重复性工作(烧录、串口测试、日志分析)交给AI Agent + MCP,可以腾出精力专注在系统架构和软硬件协同创新上。

实践建议:从一个小型自动化测试场景开始,逐步构建自己的MCP Server和Skill库,将AI融入日常开发流。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-09 04:49:07 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/591770.html
  2. 运行时间 : 0.122696s [ 吞吐率:8.15req/s ] 内存消耗:4,931.66kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=711112cbf376423853067e23cd6ba8d8
  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.000894s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001406s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.002768s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000814s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001451s ]
  6. SELECT * FROM `set` [ RunTime:0.000553s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001542s ]
  8. SELECT * FROM `article` WHERE `id` = 591770 LIMIT 1 [ RunTime:0.003256s ]
  9. UPDATE `article` SET `lasttime` = 1778273347 WHERE `id` = 591770 [ RunTime:0.009134s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000638s ]
  11. SELECT * FROM `article` WHERE `id` < 591770 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001070s ]
  12. SELECT * FROM `article` WHERE `id` > 591770 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001067s ]
  13. SELECT * FROM `article` WHERE `id` < 591770 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001964s ]
  14. SELECT * FROM `article` WHERE `id` < 591770 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002270s ]
  15. SELECT * FROM `article` WHERE `id` < 591770 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002196s ]
0.124633s