乐于分享
好东西不私藏

5个AI代理必备技能(以及为什么你的巨型提示词正在阻碍你)

5个AI代理必备技能(以及为什么你的巨型提示词正在阻碍你)

5个AI代理必备技能(以及为什么你的巨型提示词正在阻碍你)

从单片提示词到模块化技能架构的转变是2026年生产级AI代理的最大突破。以下是如何在任何框架中实现它。

你的代理系统提示词长达50,000个token。它包含了你的组织曾经写下的每一项政策、每一个边缘案例、每一个工作流程。无论用户询问退款政策还是天气,你都在每一轮对话中为所有这些内容付费。

这就是巨型提示词时代。而且它正在崩溃。

不是慢慢崩溃,也不是优雅地崩溃。它以最伤人的方式崩溃:成本飙升、指令遵循能力下降,以及模型神秘失败——比如它完全忽略了你在第847行告诉它要做的事情。

有一种更好的方法。它被称为技能架构,并且已经在Claude、OpenAI Codex、GitHub Copilot、VS Code以及LangChain的Deep Agents等开源框架中趋于一致。最棒的是?你不需要任何特定的供应商就能使用它。

本文你将学到:

  • • 巨型提示词问题:为什么将所有内容塞进一个巨大的系统提示词既昂贵又不可靠,而且随着代理能力的增长而变得更糟
  • • 技能架构:一个简单的文件夹结构如何通过渐进式披露,用模块化、可组合的能力取代单片提示词
  • • 跨框架实现:在任何代理框架中构建技能运行时的具体模式,包括Pydantic AI演练
  • • 生产就绪:验证、监控、安全缓解措施,以及使技能成为持久组织资产的治理模型

巨型提示词问题比你想象的更严重

让我们谈谈当你将所有内容堆进一个系统提示词时实际发生的情况。

首先是成本。Token计费与你发送的文本成正比,所以你添加的每一条指令、每一个边缘案例、每一项"以防万一"的政策都会在每一轮对话中被收费。那个50K token的系统提示词不是一次性投资。它是对每次互动的重复征税。

但成本甚至不是最可怕的部分。

Liu等人的研究记录的"中间丢失"效应表明,语言模型在长上下文中会形成U形注意力曲线。开头和结尾的指令会被遵循。埋在中间的指令?它们会被忽略、权重不足或完全被无视。

现在再加上工具模式。在Anthropic工程团队的一个真实例子中,58个工具在对话开始前就消耗了大约55K token。加上额外的MCP服务器,工具定义的开销可能接近100K+ token。这意味着在单个用户消息到达之前,你的整个上下文窗口就被能力描述占用了。

这张图表讲述了整个故事。你的代理始终背着一个图书馆,几乎没有思考的空间。

工程教训很明确:上下文中的不必要token并非中立。它们消耗预算、增加延迟并降低指令遵循能力。我们需要不同的架构。

技能登场:AI代理的渐进式披露

解决方案不是编写更好的巨型提示词。而是完全停止编写巨型提示词。

代理技能架构用模块化能力库取代了一个巨大的提示词,每个能力都打包为一个简单的文件夹。代理只在需要时加载所需的内容。可以想象一下,这就像背着图书馆里的每一本书, versus 背着一个卡片目录,当话题出现时从书架上取下书籍。

在磁盘上,一个技能几乎简单得可笑:一个包含必需的SKILL.md文件的文件夹,该文件带有YAML前置内容和Markdown正文。你可以选择添加scripts/references/assets/目录来存放更深入的资源。

my-skill/
├── SKILL.md          # 必需:指令 + 元数据
├── scripts/          # 可选:可执行辅助工具
│   └── validate.py
├── references/       # 可选:详细文档、示例
│   └── api-guide.md
└── assets/           # 可选:模板、配置
    └── template.json

YAML前置内容只需要两个字段:一个name(kebab-case,与目录名匹配)和一个description,解释技能的功能和使用时机。这是最小可行技能。

但真正的魔力不是格式。而是加载策略。

三级渐进式披露模型

这是使技能工作的核心架构概念。agentskills.io的开放规范和Anthropic的开发者文档都描述了相同的三级模型。

第一级:元数据。启动时,代理只加载每个技能的namedescription字段。每个技能大约100个token。即使你的库中有50个技能,发现阶段总共也只有5,000个token。相比之下,巨型提示词需要50,000+ token。

第二级:指令。当代理确定技能与当前任务相关时,它会将SKILL.md的完整正文加载到上下文中。规范建议将其保持在5,000个token以下和500行以下。任何更深层次的内容都被推送到引用文件中。

第三级:资源。如果工作需要详细的参考材料、模板或可执行辅助工具,代理会从references/assets/加载文件,并可以运行scripts/中的代码。这只在指令明确要求时发生。

使这一工作的关键约束是:规范指示作者将文件引用保持在SKILL.md的"一级深度"。没有嵌套检索链。只有当模型在需要时能够可靠地找到下一个文件时,渐进式披露才有效。

技能在实践中获胜的原因

架构很优雅,但它在生产中实际给你带来了什么?四件事。

与相关性成比例的token效率。 instead of paying a permanent "organizational knowledge tax" on every request, you pay small discovery costs upfront and load deep instructions only when needed. A 50-skill library costs 5K tokens for discovery. Loading one activated skill adds 3–5K more. That's 10K tokens versus 50K+ for the equivalent mega-prompt. On every turn.

可组合性。技能设计为共存。"品牌声音"技能、"安全审查"技能和"发布说明"技能可以在不同工作流程中组合,而无需将它们合并到单个提示词 blob 中。Anthropic的指南明确指出,代理可以同时加载多个技能,并且作者应该编写技能以相互配合,而不是假设排他性。

跨框架和团队的可移植性。这是让人们惊讶的部分。代理技能不是Claude独有的功能。带有SKILL.md和YAML前置内容的相同文件夹结构在OpenAI的Codex、GitHub Copilot、VS Code代理和LangChain的Deep Agents框架中都有文档记录和支持。你关心的工件(技能文件夹)是模型无关的。只有运行时策略(发现如何发生、存在什么沙箱)将其绑定到特定的 harness。

版本控制和治理。基于文件的技能自然兼容Git工作流程。代码审查、标记、审计、回滚。你的组织可以将程序知识视为审查过的工件,而不是粘贴到UI中的非正式行为。

在任何框架中构建技能运行时

这是实际应用的地方。你不需要特定供应商的SDK来实现技能。通用算法有五个步骤,并且可以映射到任何代理框架。

在本文的其余部分,我们将构建一个工作技能运行时。我们将从发现注册表开始,添加激活逻辑,最后完成Pydantic AI的完整集成模式。最后,你将拥有可以适应自己代理堆栈的代码。

步骤1:技能发现

第一项工作是扫描目录以查找技能并将其元数据解析到注册表中。

import os
import
 yaml
from
 dataclasses import dataclass, field
from
 pathlib import Path

@dataclass

class
 SkillMetadata:
    name: str
    description: str
    path: Path
    metadata: dict = field(default_factory=dict)

class
 SkillRegistry:
    def
 __init__(self, skill_dirs: list[str]):
        self
.skills: dict[str, SkillMetadata] = {}
        for
 directory in skill_dirs:
            self
._scan_directory(Path(directory))

    def
 _scan_directory(self, base_path: Path):
        """Scan for */SKILL.md files and parse frontmatter."""

        for
 skill_dir in base_path.iterdir():
            skill_file = skill_dir / "SKILL.md"
            if
 skill_dir.is_dir() and skill_file.exists():
                meta = self._parse_frontmatter(skill_file)
                if
 meta:
                    meta.path = skill_dir
                    self
.skills[meta.name] = meta

    def
 _parse_frontmatter(self, path: Path) -> SkillMetadata | None:
        """Extract YAML frontmatter from SKILL.md."""

        content = path.read_text()
        if
 not content.startswith("---"):
            return
 None
        _, fm, _ = content.split("---", 2)
        data = yaml.safe_load(fm)
        return
 SkillMetadata(
            name=data["name"],
            description=data["description"],
            path=path.parent,
            metadata=data.get("metadata", {})
        )

    def
 get_catalog(self) -> str:
        """Return compact catalog for model context (~100 tokens/skill)."""

        lines = []
        for
 skill in self.skills.values():
            lines.append(f"- {skill.name}: {skill.description}")
        return
 "\n".join(lines)

这给了我们一个注册表,在启动时扫描技能目录并构建一个紧凑的目录。注意get_catalog()只返回名称和描述。这是第1级:刚好足够模型知道什么可用。

步骤2:技能激活

有了注册表,我们可以发现技能。但代理需要一种实际加载技能的方法。让我们添加激活,这意味着将完整的SKILL.md正文读取到上下文中。

class SkillRegistry:
    # ... previous methods ...


    def
 activate_skill(self, name: str) -> str:
        """Load full SKILL.md body (Level 2 activation)."""

        if
 name not in self.skills:
            raise
 ValueError(f"Unknown skill: {name}")

        skill = self.skills[name]
        content = (skill.path / "SKILL.md").read_text()

        # Strip frontmatter, return body only

        parts = content.split("---", 2)
        body = parts[2].strip() if len(parts) >= 3 else content
        return
 body

    def
 load_reference(self, name: str, ref_path: str) -> str:
        """Load a reference file from a skill (Level 3 resources)."""

        skill = self.skills[name]
        full_path = skill.path / ref_path

        # Safety: ensure path doesn't escape skill directory

        if
 not full_path.resolve().is_relative_to(skill.path.resolve()):
            raise
 ValueError("Reference path escapes skill directory")

        return
 full_path.read_text()

现在我们的注册表处理所有三个级别。get_catalog()用于发现,activate_skill()用于加载指令,load_reference()用于拉入更深层次的资源。注意load_reference()中的路径遍历检查。捆绑可执行代码的技能会引入类似供应链的攻击面,我们需要从一开始就采取防御措施。

步骤3:将其连接到Pydantic AI

有了发现和激活逻辑,让我们将其连接到一个真正的代理框架。Pydantic AI的工具注册和运行图 introspection 使其成为自然的选择。

from pydantic_ai import Agent

# Initialize registry with your skill directories

registry = SkillRegistry(skill_dirs=["./skills", "./org-skills"])

# Create the agent with the skill catalog in its system prompt

agent = Agent(
    model="claude-sonnet-4-5-20250929",
    system_prompt=(
        "You are a helpful assistant with access to specialized skills.\n\n"

        "Available skills:\n"

        f"{registry.get_catalog()}\n\n"

        "When a user's request matches a skill, use the activate_skill "

        "tool to load its instructions before proceeding."

    ),
)

@agent.tool_plain

def
 activate_skill(name: str) -> str:
    """Load a skill's full instructions into context.
    Use when the user's request matches an available skill."""

    return
 registry.activate_skill(name)

@agent.tool_plain

def
 load_skill_reference(skill_name: str, ref_path: str) -> str:
    """Load a reference file from an activated skill.
    Only use when skill instructions direct you to a specific file."""

    return
 registry.load_reference(skill_name, ref_path)

@agent.tool_plain

def
 run_skill_script(skill_name: str, script_path: str, args: str = "") -> str:
    """Execute a script bundled with a skill.
    Only use when skill instructions explicitly require it."""

    import
 subprocess
    skill = registry.skills[skill_name]
    full_path = skill.path / script_path

    # Safety checks

    if
 not full_path.resolve().is_relative_to(skill.path.resolve()):
        return
 "Error: script path escapes skill directory"
    if
 not full_path.exists():
        return
 f"Error: script not found at {script_path}"

    result = subprocess.run(
        f"{full_path} {args}"
,
        shell=True, capture_output=True, text=True, timeout=30
    )
    return
 result.stdout or result.stderr

这就是整个技能运行时。代理在其系统提示中以轻量级目录开始,在需要时使用activate_skill加载完整指令,并可以拉入引用或运行脚本以完成更深层次的任务。每一部分都建立在之前的基础上。

跨框架故事

这里是关键见解:同样的模式在任何地方都有效。发现-激活-执行流程并不绑定到Pydantic AI。LangChain的Deep Agents描述了完全相同的机制:启动时解析前置内容,匹配时加载完整技能。OpenAI的Codex Skills文档使用相同的SKILL.md结构和相同的渐进式披露行为。

@agent.tool_plain装饰器替换为LangChain的@tool,或OpenAI的函数调用模式,或自定义框架中的普通函数。技能文件夹不会改变。

使技能生产就绪

技能很强大。它们也是影响代理行为的代码,这意味着它们需要与任何生产依赖项相同的严谨性。

验证:要测量什么

Anthropic的官方指南推荐三个具体的成功标准,这些标准适用于任何框架:

激活准确性。技能是否在90%+的相关查询上触发?使用10-20个代表性提示进行测试,并测量自动激活与手动调用。

工作流程效率。技能是否在合理数量的工具调用中完成任务?比较使用和不使用技能的运行,跟踪质量和token消耗。

可靠性。每个工作流程零(或接近零)失败的工具调用。跟踪错误、重试和回退率。

对于框架特定的可观察性,Pydantic AI的评估系统支持基于OpenTelemetry跟踪的基于跨度的评估。这意味着你可以评估内部代理行为(工具调用、激活模式、执行流程),而不仅仅是最终输出。这正是技能所需要的那种评估。

安全:技能是依赖项,像对待依赖项一样对待它们

这是很多团队措手不及的地方。因为技能可以在scripts/中捆绑可执行代码,并且可以指示代理加载额外资源,它们引入了供应链攻击面。

研究支持这一点。一项大规模实证研究发现,超过26%的分析技能包含至少一个漏洞模式,包括提示注入、数据泄露和权限提升。捆绑可执行脚本的技能包含漏洞的可能性是仅指令技能的2.12倍。

具体缓解措施:

使用规范的实验性allowed-tools前置内容来限制技能可以调用的工具。当技能只需要文件读取时,不要授予广泛的执行权限。

对于关键验证步骤,首选确定性脚本。Anthropic的指南说得很好:代码是确定性的,而语言解释不是。如果一个步骤必须可靠,使其成为脚本。

保持执行沙箱化。在技能执行环境中没有网络访问,没有运行时包安装。

像对待第三方依赖项一样对待第三方技能。这意味着来源跟踪、代码审查、签名和从开发到 staging 到生产的分阶段推出。

面向未来的论点

关于供应商锁定的底线,比你可能预期的更乐观。

技能文件夹格式(目录 + SKILL.md + 可选资源)在agentskills.io上明确标准化。它不是隐藏在专有UI后面。多个主要平台已经收敛于这个确切的工件边界。Claude、OpenAI Codex、GitHub Copilot、VS Code和LangChain的Deep Agents都记录了相同的结构。

所以这是一个可辩护的论点:投资于技能文件夹作为组织代理知识的持久单元。根据需要交换运行时。模型和代理harness会改变,但你的技能库是一个版本化的资产,你可以移植、审计和持续改进。

巨型提示词时代给了我们一个开始的方法。技能时代给了我们一个扩展的方法。

关键要点

巨型提示词的上限是真实的。Token成本与提示词大小线性相关,中间丢失效应意味着你精心编写的指令被忽略。渐进式披露解决了这两个问题。

技能只是文件夹。一个带有YAML前置内容和Markdown正文的SKILL.md。可选的脚本和引用。就是这样。简单就是特性。

模式是框架无关的。发现、激活、执行。五个步骤。在Pydantic AI、LangChain、OpenAI或自定义堆栈中工作。技能文件夹是可移植的工件。

将技能视为生产依赖项。验证激活准确性,监控token使用,沙箱执行,并像审查第三方代码一样审查第三方技能。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-13 07:12:33 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/515993.html
  2. 运行时间 : 0.201448s [ 吞吐率:4.96req/s ] 内存消耗:4,816.77kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=5c3af758aa5bdd0b7cc1eb77c28fa7dd
  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.80 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001096s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.002027s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000791s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000722s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001830s ]
  6. SELECT * FROM `set` [ RunTime:0.000615s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001926s ]
  8. SELECT * FROM `article` WHERE `id` = 515993 LIMIT 1 [ RunTime:0.001286s ]
  9. UPDATE `article` SET `lasttime` = 1776035553 WHERE `id` = 515993 [ RunTime:0.005773s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000740s ]
  11. SELECT * FROM `article` WHERE `id` < 515993 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001412s ]
  12. SELECT * FROM `article` WHERE `id` > 515993 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001213s ]
  13. SELECT * FROM `article` WHERE `id` < 515993 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002773s ]
  14. SELECT * FROM `article` WHERE `id` < 515993 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.007764s ]
  15. SELECT * FROM `article` WHERE `id` < 515993 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.005316s ]
0.203248s