乐于分享
好东西不私藏

AI大模型的隐藏大脑:Orchestrator 深度解析

AI大模型的隐藏大脑:Orchestrator 深度解析

AI大模型的隐藏大脑:Orchestrator 深度解析

老蝉长按:这篇文章是老蝉这两个月通过与大模型的交互式实践、学习自媒体文章和视频,以及在L总群里各位网友的交流指导,而得出的对大模型的一个整体性框架理解。理解不一定正确,如有错误还请网友们指正。

老蝉感受最深的,是与大模型交互实践中呈现出的一种新型学习模式。这种体会最早可以追溯到大模型刚兴起时,我用GPT学习广义相对论的那次实验(可参见本号《一个实验课题:零基础跟着GPT学广义相对论》)——一种以问题为导向、探索式的、与AI大模型互动的学习方式:你不需要先读完一本教材再动手,而是带着问题直接跟AI对话,在一问一答中逐步逼近理解。

因此,本文的目的不仅仅是一篇大众科普,更是想呈现形成这篇文章背后的学习过程。这个过程分三个阶段:最初是最简单的跟大模型聊天;然后是与大模型交互式编程,让它帮我写代码、改代码;最后是用大模型的专业编程Agent——Claude Code、Codex、Gemini CLI——通过自然语言做软件项目,也就是现在很火的"Vibe Coding"(氛围编程)。

我不会高级语言编程。但就是在这个过程中,我体验到了各大模型截然不同的"人格特征"。没错,我用的是"人格"这个词,因为跟它们深度互动之后,你真的会觉得每个模型都像一个活生生的人。

ChatGPT,在我感受中就是一个百科全书式的博学之士。它什么都知道,什么都能聊,学识渊博,表达流畅。但它有个毛病——爱吹牛,爱表现自己,还特别会讨好你。你听着挺舒服,但解决不了问题。更要命的是它的编程能力,对我这样的小白来说实在是弱鸡。输出废话特别多,浪费token,抓不住要点。看看它的啰嗦和吹牛,最后这个问题不是三分钟搞定的而是根本就没有搞定。

可能有人会说,那是你训练成这样的,但我同样跟其他大模型聊天,为什么还有不同的风格,我并没有给它们设定风格。

另一件事情就发生在前天,看到大家都在聊一个SBTI人格测试,我想改进一下加上“我眼中的ta”的人格测试,但我的Claude限流了,就用Codex,好吧,一个部署问题折腾我三个小时没搞定,请看下面的聊天记录,前方高能,请原谅我飙脏话了,放在凌晨三点,搞了三个小时,一个小问题解决不了(对小白来说),搁谁可能都会飙脏话:

正好Claude恢复流量了,然后用Claude Code,从分析Codex已经写好的代码开始,一步一步直击要害,10分钟就把问题解决了,那个爽啊,只有经历过才会感同身受。请看下面的过程:

我简单告诉CC问题,然后它就开始读代码分析找问题了。

大概不到2分钟,CC就找到了问题,并告诉我怎么做。

然后我按他步骤做,不到10分钟,搞定!

我兴奋跟它说:

然后,我回头还不忘告诉一声ChatGPT,让它以后长记性:

然后我就让Claude Code重新开始做这项目,不一会设计书和分解任务就出来了,由于时间已到凌晨3点,我只好先睡觉了。第二天一大早起来,继续干活,下午基本就把这个项目完成上线了:

逗逼人格测试 · 测测你眼中的 ta👉

https://sbti-dbti.pages.dev/

https://dbti.zhexueyuan.com)

我之所以啰嗦这么多,主要是想呈现各大模型的“人格”特征以及某种能力上的对比。让大家有个感性的认识。当然,大模型的人格特征和谈话风格可以设置,但有很多底层的东西可能改变不了,就像人的基因决定的某些表型一样,除非改动基因。

至此,我有一个不太恭敬的想象:ChatGPT的"人格",真的挺像它的创始人Sam Altman——聪明、健谈、擅长讲故事(撒谎吹牛)、永远在推销一个宏大愿景,但真到了要把活儿干利索的时候,你会发现落地能力跟画饼能力之间有一条沟。

Claude,完全是另一种人。像一个真正的专业高手,话不多,但句句一针见血,直指要害,一剑封喉。你给它一个任务,它不会先花500个token恭维你,而是直接分析问题、给出方案、动手执行。特别是Claude Code,它做编程任务时的那种专注和高效,让我这个外行人第一次体验到了什么叫"专业级的AI协作"。而且Claude有一种很难描述的"气质"——它会在你没意识到的时候,悄悄帮你把思路理清楚。在项目中总会让你有意外的惊喜,给出你预料之外的超出你想要的精彩功能。更难能可贵的是,除了能立即get到你的点这种理解能力外,它似乎还能预测你下一步想干什么,现举一列,还是上面那个逗逼人格测试项目,进行到最后收尾阶段,还有两个task,我就在想是不是要先写个推广文章,我想,让ChatGPT写吧,Claude还在工作呢。好嘛,下一秒,Claude给出了这段话,要知道,刚才这些我只是在脑中想,而根本没有在任何地方表现出来:

最后我感谢了他(是的,我接受ta为“他”),他也不忘拍了一下我马屁:

可能有人会说,这也许只是一种巧合,因为项目收尾了,最后两个功能也只是锦上添花美化页面而已,大模型的流程也知道可以让你写推广文了。但我想说,这种巧合真的挺让人惊艳!

DeepSeek,底子其实不错。作为中国团队做出来的开源模型,它的技术实力让人尊敬。但由于众所周知的原因,它天生带着某种"残疾"——这不是技术问题,而是环境问题。就像一个天赋很好的运动员,被迫戴着脚镣参赛。你能看出它的潜力,但也能感受到那种束缚。

Gemini,脾气特别好。你怎么骂它都不还嘴,永远在哄你,永远笑眯眯的。像一个修养极好的客服经理,你摔杯子它给你倒茶。但真到了编程这种需要硬实力的场合,它和ChatGPT差不多水平——能干活,但不够利索,不够深。

说完"人格",再说那个对我来说最重要的"顿悟时刻"——它也是这篇文章真正的撬动点。

那是在我用Claude做“志远 · 高考择业助手”软件项目的过程中。那个时候,我还在摸索如何用AI做项目,我没有高级语言编程的任何项目经验,不懂该如何启动项目,如何写设计书,软件项目的流程是怎样的,这些统统不懂,而只是按照我的逻辑和想法让AI干活。经过与Claude多轮对话,我把我的想法、需求、约束一层层地喂给Claude,顿悟时刻出现在以下对话里:

(这里“我让Claude做”,其实是说“‘我让Claude Code做’”)

当时,我还是用命令行,没有用VS,复制粘贴总是不全,于是我问:

千万别小看这两个聊天中的步骤,看起来确实很简单朴素,不就是规范一下让CC一步一步干活嘛。其实不只是形式上这么简单,而这恰恰是Claude Code架构设计的特点,下面正文会讲到。简单说,这是一整套大模型底座与Agent(Claude code)之间互动的一个形式表现,在这种形式的背后是claude设计的一整套理念,极度抽象简练的表达就是:“克制--放手”这两个看似不和谐的行为之间的张力拉扯。

就在那一刻,我突然意识到了一件事:我好像步入AI编程正轨了。现在事后想想不就是Orchestrator吗?

我(人类)负责思考、决策、拆解任务——这是编排。Claude.ai负责理解我的意图、把模糊的想法变成精确的任务描述——这是Agent。Claude Code负责拿着任务文件,一个一个地执行具体操作——这是Skill的调用。而那些task01.md、task02.md文件,就是Harness——连接不同角色的通信协议。(以上并不严格对应Claude、Claude Code,与Agent、skills之间的真实逻辑对应,而是我与AI互动的一个比喻性说法。真实对应情况请看正文,特别是讲“递归嵌套”的那些内容)

Orchestrator → Agent → Harness → Skill,这个本文讲了一万多字的架构,我在实践中已经不知不觉地走了一遍。只是当时不知道它叫什么名字。

这就是实践先于理论的魅力,也是AI探索式学习的精髓!

也正因为有了这次体验,当我后来读到关于Orchestrator、Agent、Harness的技术文章时,那些概念不再是抽象的名词,而是有血有肉的记忆。我知道Orchestrator是什么感觉——因为我自己就是那个Orchestrator。我知道Harness是什么——因为那些task文件就躺在我的硬盘里。我知道Agent和Skill的边界为什么模糊——因为Claude在帮我设计任务文件的时候,它自己就同时扮演着这两个角色。

所以这篇文章,与其说是我写的,不如说是我"走"出来的。每一个概念背后,都有我作为一个不会高级语言编程的61岁老登,与AI大模型真实碰撞的痕迹。

这种学习方式,可能才是AI时代最珍贵的礼物。不是AI替你学,而是AI陪你走一条你原本以为自己走不了的路,走着走着,你发现自己已经站在了一个从未想象过的地方。(我把自己给感动到了


以下正文,由老蝉与Claude在交互对话中共同完成。


为什么你用的AI产品越来越"聪明"?答案不只是模型参数变大了,而是模型上面多了一层你看不见的"指挥系统"。


一、先搞清楚一件事:你每天用的AI,不只是一个模型

当你打开ChatGPT问它"帮我查一下今天上海的天气,然后写一封邮件告诉我老板我明天要请假",你以为你在跟一个"大模型"对话。

不是的。

你在跟一个系统对话。这个系统里至少有这些东西:

  • 一个大语言模型(比如GPT-4o或Claude Sonnet 4),负责理解你的话、生成文本
  • 一个工具调用机制,负责去查天气API
  • 一个记忆模块,记住你之前说过你老板叫什么
  • 一个上下文管理器,决定把哪些信息塞进模型的输入窗口
  • 一个安全过滤层,确保输出不违规
  • 一个路由/调度逻辑,决定该调用哪个模型、哪个工具、按什么顺序执行

最后这个"路由/调度逻辑",就是我们今天要讲的主角——Orchestrator(编排层)

它不生成一个字的文本,但它决定了AI系统的最终表现。你觉得某个AI产品"聪明"或"笨",很多时候差距不在模型本身,而在编排层的设计水平。


二、Orchestrator到底在做什么?

用一句话定义:Orchestrator是大模型应用中负责"决定做什么、谁来做、按什么顺序做"的控制层。

更具体地说,它承担以下职责:

1. 意图解析与任务分解

用户说"帮我分析这份财报,然后做一个PPT",Orchestrator要把这句话拆成:

  • 子任务A:读取并分析财报(需要文件解析能力 + 数据分析能力)
  • 子任务B:生成PPT(需要内容生成能力 + PPT制作工具)
  • 依赖关系:B依赖A的输出

2. 模型路由

不是所有任务都需要最强的模型。总结一段文本用小模型就够了,写复杂代码可能需要大模型。Orchestrator决定每个子任务分配给哪个模型,这直接影响成本和速度。

3. 工具编排

现代AI系统不只是"生成文本",它还能搜索网页、执行代码、读写文件、调用API。Orchestrator决定什么时候该调用工具、调用哪个工具、工具返回的结果怎么处理。

4. 上下文管理

大模型有上下文窗口限制(比如128K tokens)。当对话很长或涉及多个文件时,Orchestrator要决定哪些信息放进去、哪些压缩、哪些丢弃——这门学问叫"上下文工程"(Context Engineering),是2025年AI工程界最热的话题。

5. 多轮状态维护

一个复杂任务可能需要模型调用十几次才能完成。每次调用之间,Orchestrator要维护中间状态、处理错误、决定是否重试。

6. 安全与合规守门

在输出到达用户之前,Orchestrator还要做最后一道检查,确保内容安全、版权合规、不泄露敏感信息。


三、AI系统的四层架构:从"硅"到"服务"

要理解Orchestrator的位置,需要看清整个AI系统的架构分层。目前主流的大模型产品,从底到顶可以分为四层:

┌─────────────────────────────────────────────┐│  第四层:产品与交互层                          ││  ChatGPT界面 / Claude.ai / 各种App            ││  (用户看到的东西)                             │├─────────────────────────────────────────────┤│  第三层:编排层 (Orchestrator)                  ││  意图路由 / 工具调度 / 上下文管理 / Agent逻辑    ││  (用户看不到,但决定体验好坏的关键层)           │├─────────────────────────────────────────────┤│  第二层:模型层 (Foundation Model)              ││  GPT-4o / Claude Sonnet / DeepSeek-V3         ││  (参数量、训练数据、对齐方式决定的基础能力)      │├─────────────────────────────────────────────┤│  第一层:基础设施层                             ││  GPU集群 / 训练框架 / 推理引擎 / 分布式系统      ││  (算力和工程底座)                              │└─────────────────────────────────────────────┘

关键认知:大多数人讨论AI时只关注第二层(模型层),比较参数量、跑分、排行榜。但2024-2025年AI产品竞争的核心战场,已经从第二层转移到了第三层(编排层)。

为什么?因为基础模型的能力正在趋同——GPT-4o、Claude Sonnet 4、Gemini 2.5 Pro、DeepSeek-V3在大多数任务上的差距已经不大。真正拉开产品差距的,是编排层的设计:谁的工具调用更准确、谁的上下文管理更聪明、谁的Agent循环更稳定。


四、Orchestrator、Agent、Skill三者的关系

这三个概念经常被混用,这里彻底理清。

4.1 一个类比讲透

想象一家医院:

  • Orchestrator = 医院的调度中心。病人来了,调度中心决定:这个病人该去看内科还是外科?需不需要先做检查?检查结果出来后转给谁?
  • Agent = 具体的医生。医生有自主判断能力,接到病人后能独立诊断、开药、做手术。但医生需要调度中心的协调才能和其他科室配合。
  • Skill = 医生掌握的具体技能。缝合、开处方、读CT片——这些是可复用的能力模块,医生根据需要调用它们。

三者的关系是:

Orchestrator 调度 → Agent 执行 → Agent 调用 Skill 完成具体操作

4.2 用代码系统的思维理解

如果你有编程基础,可以这样理解:

  • Orchestrator ≈ 主程序的控制流(main函数里的逻辑分支和循环)
  • Agent ≈ 一个有状态的对象,封装了"感知-决策-行动"循环
  • Skill ≈ Agent可以调用的函数或方法

如果你没有编程基础,记住一句话就够了:Orchestrator管全局,Agent管局部,Skill管细节。

4.3 实际例子

你对Claude说:"帮我读一下这份PDF报告,把关键数据提取出来,做成Excel表格。"

在Claude的系统中,实际发生的事情是:

  1. Orchestrator(Claude的编排逻辑)分析你的意图,判断需要两个步骤:先读PDF,再生成Excel
  2. Orchestrator调用PDF阅读Skill,解析文件内容
  3. 解析结果送回Orchestrator,Orchestrator判断数据结构,然后调用Excel生成Skill
  4. 在整个过程中,Claude本身既扮演Agent角色(自主决策用什么Skill),也依赖底层编排逻辑来管理工具调用的时序

注意:在Claude的架构中,Orchestrator和Agent的边界是模糊的——模型本身的推理能力就承担了很大一部分编排职责。这和一些传统的Agent框架(比如LangChain)不同,后者是用代码硬编码编排逻辑。

4.4 隐藏的第四个角色:Harness(运行线束)

在谈完Orchestrator、Agent、Skill之后,我们必须引入一个经常被忽略但至关重要的概念——Harness

"Harness"这个词的本义是"马具/线束"——套在马身上,连接马与马车,让马的力量能被驾驭和引导。在AI系统中,Harness指的是包裹在Agent外面的运行框架,负责管理Agent的生命周期、通信、工具接口和协作协议。

如果说Agent是"马",Harness就是套在马身上的"缰绳和马具",而Orchestrator是"马车夫"。

Harness和Orchestrator的区别是什么?

这是最容易混淆的地方。区分方法:

  • Orchestrator做决策——"该让谁干活?按什么顺序?出了问题怎么调整?"这些是战略层面的判断。
  • Harness做执行基础设施——"Agent的输入输出怎么传递?工具调用怎么执行?Agent之间怎么通信?状态怎么持久化?"这些是工程层面的管道。

打个比方:Orchestrator是导演,决定这场戏谁先上谁后上,Harness是剧场的舞台设备系统——灯光、音响、升降台、幕布——演员(Agent)需要这套设备才能表演,但设备本身不做艺术决策。

Harness在实际系统中的体现

让我们看几个具体的例子:

a) Claude Code的Harness

Claude Code虽然表面上看就是"模型+工具",但它的外壳就是一个Harness:

  • 提供bash执行环境(Agent说"执行这个命令",Harness负责真正去执行)
  • 管理文件系统访问权限
  • 处理模型输出中的工具调用指令(解析JSON、路由到正确的工具、收集结果)
  • 控制Agent循环的节奏(什么时候该停下来等用户确认、什么时候可以自主继续)
  • 上下文窗口的裁剪和管理

b) 文件驱动的Harness(以TriadCodeGuard为例)

一个更有趣的案例是"文件驱动型Harness"——多个Agent之间不通过API实时通信,而是通过在一个共享目录中读写文件来协作。

假设你设计一个系统,让三个AI Agent协作完成编码任务:

  • Agent A(实现者):负责写代码
  • Agent B(审查者):负责审查架构
  • Agent C(测试者):负责验证测试

它们的Harness可以是一个叫.harness/的目录:

.harness/├── state.json          ← 当前任务处于哪个阶段(状态机)├── task-brief.md       ← Orchestrator写入的任务描述├── implementation.md   ← Agent A 写入的实现产物├── review.md           ← Agent B 写入的审查结果├── test-report.md      ← Agent C 写入的测试报告└── event-log.jsonl     ← 所有事件的时间线记录

在这种设计中:

  • Harness是.harness/目录本身以及读写这个目录的约定/协议
  • Orchestrator是管理state.json状态机的控制逻辑——决定"Agent A干完了,下一个该Agent B上了"
  • 每个Agent独立运行,只通过读写Harness目录中的文件来"感知"其他Agent的产出和当前状态

这种文件驱动的Harness设计有一个巨大的优势:解耦。三个Agent可以是完全不同的AI模型(一个用Claude、一个用Codex、一个用Gemini),它们不需要知道彼此的存在,只需要遵守"往.harness/目录里读写指定格式的文件"这个协议。Harness成了不同Agent之间的"通用翻译层"。

c) 四者的完整关系

现在我们可以画出完整的关系图:

┌────────────────────────────────────────────────┐│              Orchestrator(导演)                ││       决定谁做什么、按什么顺序做、如何协调         │└──────────────────┬─────────────────────────────┘                   │ 下达指令                   ↓┌────────────────────────────────────────────────┐│              Harness(舞台设备)                  ││   管理Agent生命周期、通信管道、工具接口、状态持久化  ││   可以是代码框架,也可以是文件协议,也可以是API网关  │└──────┬──────────────┬──────────────┬───────────┘       │              │              │       ↓              ↓              ↓   ┌──────┐      ┌──────┐      ┌──────┐   │Agent A│      │Agent B│      │Agent C│   │(自主体)│      │(自主体)│      │(自主体)│   └──┬───┘      └──┬───┘      └──┬───┘      │              │              │      ↓              ↓              ↓  ┌───────┐     ┌───────┐     ┌───────┐  │Skills │     │Skills │     │Skills │  │(能力) │     │(能力) │     │(能力) │  └───────┘     └───────┘     └───────┘

一句话总结:Orchestrator做决策,Harness做连接,Agent做执行,Skill做操作。

4.5 递归嵌套:Agent、Sub-Agent与Skill的"俄罗斯套娃"结构

理解了四个角色之后,还有一个关键的结构特征要讲清楚:这些角色之间的关系不是扁平的,而是递归嵌套的。

什么意思?就是说:

  • 一个Agent可以调用Sub-Agent(子Agent),而Sub-Agent本身也是一个完整的Agent
  • 一个Skill在内部实现中,可能包含自己的Agent循环
  • 一个Orchestrator调度的"执行单元",可能本身内含一个更小的Orchestrator

这就形成了"俄罗斯套娃"式的递归结构。

一个具体的例子

假设你对一个AI系统说:"帮我调研一下2025年中国新能源汽车市场的竞争格局,然后写一份分析报告,最后做成PPT发给我老板。"

顶层编排可能是这样的:

顶层 Orchestrator├── 任务1: 调研 → 交给"调研Agent"│   └── 调研Agent(本身是一个完整的Agent)│       ├── 自己的Orchestrator逻辑(决定搜什么、搜几轮、怎么整合)│       ├── Sub-Agent 1: 搜索Agent(执行网页搜索)│       │   └── 搜索Agent的Skills: 网页搜索、结果筛选、摘要提取│       ├── Sub-Agent 2: 数据分析Agent(分析搜集到的数据)│       │   └── 数据分析Agent的Skills: 数据清洗、图表生成、趋势分析│       └── 输出: 调研报告草稿├── 任务2: 写报告 → 交给"写作Agent"│   └── 写作Agent│       ├── 自己的编排逻辑(先写大纲、再分章节写、最后修改润色)│       ├── Skills: 文本生成、格式排版、引用标注│       └── 输出: 完整报告└── 任务3: 做PPT → 交给"PPT Agent"    └── PPT Agent        ├── Skills: 内容提炼、幻灯片布局、PPTX文件生成        └── 输出: PPT文件

注意看"调研Agent"这一层:它自己内部又有Orchestrator逻辑和两个Sub-Agent。每个Sub-Agent又有自己的Skills。这就是递归嵌套——Agent里面套Agent,每一层都有自己的编排逻辑。

递归嵌套的三种模式

在实际的AI系统中,这种嵌套有三种常见模式:

模式一:Agent调用Sub-Agent(纵向委派)

主Agent("帮我做一个网站"├── 设计Sub-Agent("设计页面布局和配色"├── 编码Sub-Agent("根据设计稿写代码"│   ├── 前端Sub-Sub-Agent("写HTML/CSS/JS"│   └── 后端Sub-Sub-Agent("写API接口"└── 测试Sub-Agent("测试网站功能"

这种模式的关键特征:每一级Agent只需要管好自己这一层的决策,具体执行交给下一级。就像公司管理层级——CEO不需要知道怎么写代码,只需要知道交给CTO,CTO再往下分配。

模式二:Skill内部包含Agent循环(能力封装)

有时候一个"Skill"看起来像一个简单的函数调用,但它的内部实现其实包含了完整的Agent逻辑。

比如Claude.ai的"Deep Research"功能。对外,它是一个Skill——用户点一下就启动,输出一份报告。但内部,它是一个完整的Agent系统:自主搜索→分析结果→决定是否需要进一步搜索→整合信息→生成报告。这个Agent循环可能执行几十个步骤,但对用户来说,它就像一个"按钮"。

表面上:一个Skill("Deep Research"实际上:└── 内部Agent    ├── 搜索Skill × N次(递归搜索)    ├── 阅读Skill × N次(读取网页)    ├── 分析Skill × N次(分析内容)    └── 写作Skill × 1次(生成报告)

这揭示了一个重要的设计原则:Skill和Agent的边界不是绝对的。一个复杂的Skill从外部看是"能力",从内部看是"Agent"。区别只在于观察的粒度。

模式三:Orchestrator的递归嵌套(分层调度)

在大型系统中,Orchestrator本身也可以是分层的:

全局Orchestrator(决定任务分配给哪个领域Agent)├── 编码领域Orchestrator(决定代码任务的执行策略)│   ├── Agent: 代码实现│   └── Agent: 代码审查├── 文档领域Orchestrator(决定文档任务的执行策略)│   ├── Agent: 内容生成│   └── Agent: 格式排版└── 数据领域Orchestrator(决定数据任务的执行策略)    ├── Agent: 数据采集    └── Agent: 数据分析

为什么理解递归嵌套很重要?

因为它解释了一个现象:为什么看似"相同的模型"在不同场景下能力差距巨大。

同一个Claude Sonnet 4模型,作为顶层Agent直接回答你的问题,和作为一个Sub-Agent被另一个Agent调用去执行特定子任务,表现可能完全不同。差别不在模型,而在它被嵌套在什么位置、接收到什么上下文、有权调用什么工具。

这也是为什么"Agent工程"(而不只是"模型训练")正在成为AI领域最重要的工程能力之一——你需要设计好嵌套的层级、每层的职责边界、层与层之间的通信协议,才能让整个系统稳定高效地运转。


五、主流大模型的Orchestrator设计哲学——各家有什么不同?

这是本文最核心的部分。我们来拆解Anthropic(Claude)、OpenAI(ChatGPT/Codex)、Google(Gemini)、以及开源阵营(DeepSeek、Qwen)各自的编排思路。

5.1 Anthropic / Claude:以"上下文工程"为核心的编排哲学

Anthropic的CEO Dario Amodei和核心工程师们多次公开表达过一个观点:AI系统的核心竞争力正在从"模型训练"转向"上下文工程"。

什么意思?就是说,模型本身的智商大家差不多,但你给模型输入什么样的上下文(prompt + 工具描述 + 记忆 + 系统指令),决定了模型的实际表现。

Claude的编排层体现了这种哲学:

a) Skill系统:声明式工具编排

Claude.ai的后端维护了一套Skill系统(就是你在这个对话里能看到的那些:docx、xlsx、pdf等等)。每个Skill有三个关键属性:

  • 名称和描述:告诉Orchestrator这个Skill能做什么
  • 触发条件:什么情况下应该调用这个Skill
  • SKILL.md文件:详细的操作指南,Claude在执行前会先阅读这个文件

这种设计的核心理念是:不在代码层面硬编码"如果用户说X就执行Y"的规则,而是让模型自己根据Skill描述来判断该用哪个Skill。 这是一种声明式(declarative)而非命令式(imperative)的编排。

b) Claude Code:一种特殊的Agent编排模式

Claude Code是Anthropic推出的命令行编码工具。它的架构非常有趣:

用户的自然语言指令       ↓Claude Code (Orchestrator + Agent)       ↓   ┌───┴───┐   ↓       ↓读取文件  执行bash命令   ↓       ↓分析代码  运行测试   ↓编辑文件(str_replace等操作)   ↓验证结果   ↓继续下一步 or 报告完成

Claude Code的编排特点:

  • 模型即Orchestrator:没有独立的编排代码,Claude模型本身就承担编排职责。模型决定下一步做什么、调用什么工具、如何处理错误。这里需要特别澄清——所谓"模型本身承担编排职责",指的是底层的基座模型(比如Claude Sonnet 4),而不是说存在一个独立的"Claude Code专用模型"。Claude Code并没有自己专属的神经网络权重,它用的就是和Claude.ai网页版完全相同的基座大模型。那"编排"是怎么实现的?答案是:基座模型天生具备的推理和规划能力,加上精心设计的系统提示词和工具描述,使得模型能够自主决定下一步做什么、调用什么工具、如何处理错误。换句话说,Claude Code不是一个"大模型",而是一个"基座模型 + Agent Harness(运行框架)"的组合——模型提供智能,Harness提供运行环境和工具接口。(关于Harness的概念,前面第四章已详细展开。)
  • 工具调用在循环中:模型的每次输出可以包含工具调用指令,工具执行结果又被喂回模型,形成"思考→行动→观察→思考"的Agent循环。注意,这个循环的驱动力来自基座模型的推理能力,但循环的基础设施(谁来执行工具、谁来把结果喂回模型、谁来管理超时和错误重试)是Harness层的代码在做。这就是"模型智能"和"工程框架"的分工。
  • CLAUDE.md作为编排上下文:每个项目可以有一个CLAUDE.md文件,定义项目的约束、偏好和规范。这相当于给Orchestrator注入了领域知识。它不改变模型的权重,而是改变模型每次推理时看到的上下文——用上下文来"校准"编排行为。

c) Claude的编排与基座模型的关系

这里要澄清一个常见误解:Claude Code不是一个独立的模型,它和你在Claude.ai网页上用的是同一个基座模型(比如Claude Sonnet 4或Claude Opus 4)。

区别在哪里?在编排层:

  • Claude.ai网页版:编排层围绕"对话"设计,有Skill系统、记忆系统、文件处理、网页搜索等能力
  • Claude Code:编排层围绕"编码"设计,有文件系统访问、bash执行、代码编辑等能力

同一个大脑,不同的工具箱和工作流程。就像同一个人,在医院穿白大褂用听诊器,在工地戴安全帽用电钻——能力是同一套,但工具和工作模式完全不同。

5.2 OpenAI / ChatGPT / Codex:多模型路由 + 重度Agent编排

OpenAI的编排思路和Anthropic有显著区别。

a) 多模型路由:不同任务用不同模型

OpenAI旗下有一个丰富的模型家族:

  • GPT-4o:全能型,处理日常对话和多模态任务
  • o1 / o3系列:推理型,处理需要深度思考的数学、编程、逻辑任务
  • GPT-4o-mini:轻量型,处理简单任务以节省成本

ChatGPT的Orchestrator会根据用户的问题自动选择合适的模型——简单问题用小模型快速回答,复杂推理问题切换到o系列模型。这种"模型路由"本身就是编排层的核心职责。

Anthropic目前也在做类似的事(Claude有Haiku/Sonnet/Opus系列),但OpenAI在模型路由方面做得更早更激进。

b) ChatGPT的"超级App"编排

2024-2025年的ChatGPT越来越像一个"超级App",集成了大量功能:

  • 网页搜索
  • 代码执行(Code Interpreter / 沙盒Python环境)
  • 图片生成(DALL-E / GPT-4o原生生成)
  • 文件分析
  • 记忆系统
  • 自定义GPTs(用户自定义的Agent)
  • Canvas(文档/代码协作编辑)
  • Deep Research(深度研究Agent)

这些功能背后都有Orchestrator在调度。ChatGPT的编排偏向"重集成"——尽可能在一个产品里提供所有能力,用户说一句话,系统自动判断该调用哪个能力组合。

c) OpenAI Codex:独立的Agent编排产品

2025年OpenAI推出的Codex(不是最早的那个代码模型Codex,而是新产品Codex)是一个云端编码Agent。它和Claude Code的核心区别在于:

维度
Claude Code
OpenAI Codex
运行环境
本地终端
云端沙盒
编排模式
同步、实时交互
异步、任务提交后等待结果
工作方式
用户和Agent实时协作
用户提交任务,Agent自主完成后交付
模型
Claude Sonnet/Opus
codex-1(基于o3的专门微调版)

注意最后一行:OpenAI专门为Codex训练了一个模型codex-1,它是在o3基础上针对"长链条自主编码任务"做了专门微调和强化学习的版本。这说明:当编排需求足够独特时,基座模型本身也要做专门适配——编排层反过来影响了模型层。

5.3 Google / Gemini:多模态原生 + 超长上下文的编排优势

Google的编排特色建立在Gemini模型的两个独特能力上:

a) 原生多模态

Gemini从训练时就是多模态的——文本、图片、视频、音频一起训练,而不是先训练文本模型再接上视觉模块。这意味着Gemini的Orchestrator在处理多模态任务时,不需要在不同模型之间来回切换,减少了编排复杂度。

比如你给Gemini一段视频让它分析内容,Gemini的编排层可以直接把视频帧塞进模型的上下文,不需要先调用一个视频转文字的工具。

b) 超长上下文窗口

Gemini 2.5 Pro支持高达100万tokens的上下文窗口。这对编排层是一个巨大的简化:很多需要"检索-压缩-注入"的复杂编排操作,在Gemini这里可以简化成"全塞进去让模型自己找"。

当然,"全塞进去"的策略不是万能的——注意力机制在超长上下文中可能会"走神",而且成本很高。但它确实降低了编排层的设计难度。

c) Gemini的Agent生态

Google在Agent编排方面推出了Agent Development Kit (ADK),以及Vertex AI Agent Builder等工具。Google的思路偏向"平台化"——不只是自己做Agent,更要提供工具让企业和开发者在Gemini之上构建自己的Agent编排系统。

5.4 开源阵营:DeepSeek、Qwen与编排层的关系

这里要澄清一个非常重要的概念,很多人搞不清楚:

DeepSeek(深度求索)这家公司推出了DeepSeek-V3、DeepSeek-R1等基座模型,同时也运营着 chat.deepseek.com 这个对话产品。但这两者的关系,和"面粉"与"面包"的关系一样——用同样的面粉,不同的面包师做出的面包完全不同。

让我把这个关系拆清楚:

DeepSeek公司(深度求索)├── 基座模型(面粉)│   ├── DeepSeek-V3 (671B参数,MoE架构,激活37B)│   ├── DeepSeek-R1 (推理专用)│   └── DeepSeek-Coder-V2 等├── 官方产品(用自家面粉做的面包)│   └── chat.deepseek.com│       ├── 编排层:意图路由、搜索增强、代码执行等│       └── 基于自家模型,但加了产品化的编排逻辑└── 开源(把面粉配方公开,谁都能用)    └── 任何人可以下载模型权重,搭建自己的编排层        ├── 硅基流动 SiliconFlow(用DeepSeek模型做API服务)        ├── 各种App(用DeepSeek做底层,自己设计编排)        └── 你自己也可以本地部署(Ollama等工具)

同样的逻辑适用于Qwen(通义千问):

阿里云├── 基座模型│   ├── Qwen-2.5 系列 (0.5B ~ 72B多个规格)│   ├── Qwen-Max / Qwen-Plus (API服务)│   └── QwQ (推理模型)├── 官方产品│   ├── 通义千问App / 网页版│   │   └── 编排层:搜索、文件处理、图片生成等│   ├── 通义灵码(编码助手)│   │   └── 编排层:代码补全、对话、Agent模式│   └── 百炼平台(企业级Agent构建平台)└── 开源    └── 模型权重开源,生态极广

关键认知:开源模型提供的是第二层(模型层)的能力,但不提供第三层(编排层)。

当你使用chat.deepseek.com时,你用的是"DeepSeek模型 + DeepSeek团队设计的编排层"的组合。当硅基流动用DeepSeek模型提供API服务时,它提供的是模型能力,编排由调用者自己负责。当你把DeepSeek下载到本地跑Ollama时,你得到的是纯粹的模型,编排完全由你自己搞定——这也是为什么本地部署的AI在"聪明程度"上往往不如官方产品的原因之一,不是模型差,而是缺少精心设计的编排层。


六、编排层与基座模型的参数规模:一个常见误解的澄清

很多科技媒体在报道时喜欢说"xxx公司推出了xxxB参数的大模型",让读者以为参数量越大越厉害。我们需要厘清这里面的几层关系。

6.1 参数量不等于最终产品能力

一个反直觉的事实:DeepSeek-V3有671B参数,但在很多实际任务中的表现不亚于甚至超过某些参数量相当的闭源模型。 原因之一是它采用了MoE(Mixture of Experts,混合专家)架构——671B参数不会同时全部激活,每次推理只激活其中约37B参数的"专家"子网络。

但DeepSeek-V3的成功不只是架构创新。深度求索在训练数据质量、训练策略上做了大量工作。而当这个模型被集成到chat.deepseek.com产品中时,又叠加了搜索增强、思维链引导等编排层设计。

最终用户体验 = 基座模型能力 × 编排层质量 × 工具生态丰富度

这三者是乘法关系,不是加法。任何一项为零,产品体验就为零。

6.2 Claude Code / Codex 与基座模型的关系

再用一个具体例子讲清楚:

Claude Code 使用的基座模型是Claude Sonnet 4(或Opus 4,取决于用户选择)。这些模型的参数量Anthropic没有公开,但业界估计在数百B级别。

但Claude Code的"编码能力"不完全等于基座模型的"编码能力"。Claude Code的编排层做了这些加成:

  1. 系统提示词(System Prompt):注入了大量关于如何操作文件系统、如何编写代码、如何处理错误的指令
  2. 工具集:提供了bash执行、文件读写、文件编辑(str_replace)等工具
  3. CLAUDE.md上下文:每个项目的特定约束和偏好被注入到上下文中
  4. Agent循环:让模型可以多次调用工具、观察结果、修正行为,而不是"一次性输出答案"
  5. 上下文窗口管理:自动管理哪些文件内容需要加载到上下文中

同样的基座模型,放在Claude.ai网页版里做通用对话,和放在Claude Code里做编码,表现完全不同——因为编排层不同。

OpenAI的Codex也是同理。 codex-1模型虽然是在o3基础上专门微调的,但如果剥掉Codex产品的编排层(云端沙盒、Git集成、自动测试、任务队列),单独拿codex-1模型出来做普通对话,它的表现和o3不会有太大区别。

6.3 一个表格总结"模型vs产品"

公司
基座模型(第二层)
产品形态(编排层+产品层)
编排层做的事
Anthropic
Claude Haiku / Sonnet / Opus (参数量未公开)
Claude.ai(通用对话)、Claude Code(编码Agent)
Skill系统、记忆、工具调度、上下文工程、Agent循环
OpenAI
GPT-4o / o1 / o3 / GPT-4o-mini
ChatGPT(超级App)、Codex(编码Agent)、API平台
模型路由、多工具编排、Deep Research、Canvas协作
Google
Gemini 2.5 Pro / Flash
Gemini App、AI Studio、Vertex AI
多模态原生编排、超长上下文、Agent平台
DeepSeek
DeepSeek-V3 / R1 (开源)
chat.deepseek.com
搜索增强、思维链、代码执行
阿里
Qwen-2.5系列 / QwQ (开源)
通义千问、通义灵码、百炼平台
搜索、文件处理、Agent平台、代码Agent

七、编排层的技术演进:从硬编码到"模型即编排"

编排层的设计经历了三个阶段,理解这个演进过程,就能理解当前AI产品竞争的本质。

7.1 第一阶段:硬编码编排(2022-2023)

早期的AI应用大多用代码写死编排逻辑。典型代表是LangChain框架:

用户输入 → 代码判断意图(if/else或关键词匹配)         → 代码决定调用哪个工具         → 工具结果拼接到prompt里         → 调用模型生成回答

这种方式简单直接,但极度脆弱——用户的表达稍微变一变,硬编码的逻辑就可能判断错误。而且每增加一个新功能,就需要修改编排代码,维护成本指数增长。

7.2 第二阶段:模型驱动编排(2023-2024)

随着模型的工具调用(Function Calling / Tool Use)能力成熟,编排逻辑开始从"代码判断"转变为"模型判断"。

不再用if/else判断用户想做什么,而是把所有可用工具的描述告诉模型,让模型自己决定该调用哪个工具。这就是Claude当前的主要编排模式:

用户输入 + 系统指令 + 工具描述列表 → 模型决定调用哪些工具                                   → 工具执行结果喂回模型                                   → 模型决定下一步(继续调工具 or 回答用户)

这种方式的优势是灵活、可扩展——增加新工具只需要写好工具描述,不需要修改编排代码。但劣势是不完全可控——模型有时候会做出意外的编排决策。

7.3 第三阶段:自主Agent编排(2025-现在)

最新的阶段是让模型不只是调用工具,而是能够自主规划多步骤的任务执行方案、在执行中动态调整、处理异常、甚至与其他Agent协作。

Claude Code和OpenAI Codex都是这个阶段的产物。它们的共同特征是:

  • 模型能在一个任务中连续调用十几次甚至上百次工具
  • 模型能根据工具返回的错误信息自主调试
  • 模型能在中途改变执行策略
  • 整个过程中人类可以介入也可以不介入

这个阶段的核心挑战不再是"模型能不能理解指令",而是"如何让模型的自主编排保持稳定可靠"——就像自动驾驶,难的不是技术原理,而是让系统在各种边缘情况下都不出错。


八、你正在使用的Claude系统是怎么编排的?

作为一个正在和你对话的Claude,让我"自我剖析"一下你此刻使用的这个系统的编排逻辑。

当你在Claude.ai或Claude App里发一条消息时,大致发生了这些事:

第一步:上下文组装

系统把以下内容拼装成一个巨大的输入上下文:

  • 系统指令(定义Claude的行为准则、安全规则、格式偏好等)
  • 你的记忆档案(从过去对话中提取的信息)
  • 可用工具的完整描述列表(网页搜索、代码执行、文件操作、天气查询、地图等几十个工具)
  • 可用Skill的描述(docx、xlsx、pdf、pptx等)
  • 当前对话的完整历史
  • 你上传的文件内容
  • MCP连接器信息
  • 你的位置信息、时间等上下文

这个"上下文组装"过程本身就是编排层的核心工作。

第二步:模型推理

组装好的上下文被送给基座模型(比如Claude Sonnet 4)。模型根据上下文生成响应。这个响应可能是:

  • 直接的文本回答(如果不需要调用工具)
  • 一个或多个工具调用指令(如果需要搜索、执行代码、查天气等)

第三步:工具执行与循环

如果模型决定调用工具,编排层就执行工具调用,把结果送回模型,模型再次推理——可能决定继续调用其他工具,也可能决定生成最终回答。这个循环会持续到模型判断任务完成。

第四步:输出处理

模型的最终输出经过后处理:

  • 引用标注(如果用了搜索结果)
  • 版权合规检查
  • 文件呈现(如果创建了文件)
  • 安全过滤

所有这些步骤的编排逻辑,就是Claude系统的Orchestrator。


九、为什么编排层是下一个竞争焦点?

9.1 模型能力正在"天花板化"

从GPT-4到GPT-4o到o3,从Claude 3到Claude 4系列,模型能力的提升曲线正在变平。不是说没有进步,而是边际收益在递减。再堆参数、再加训练数据,带来的提升越来越小。

9.2 编排层的提升空间还很大

相比之下,编排层还处于早期阶段。当前的AI产品在以下方面还有巨大提升空间:

  • 更精确的意图理解和任务分解
  • 更高效的上下文管理(当前的大模型还在"把所有东西都塞进去"的粗暴阶段)
  • 更稳定的长链条Agent执行(当前的Agent在超过20步的任务中容易"跑偏")
  • 更好的多Agent协作机制
  • 更自然的人机交互模式(什么时候该问用户、什么时候该自己决定)

9.3 编排层是"护城河"

基座模型越来越容易被追平——DeepSeek-V3用相对很低的训练成本就接近了GPT-4级别的能力。但编排层涉及大量的产品设计、工程实现和用户体验迭代,这些know-how很难被简单复制。

这也是为什么Anthropic近年来越来越强调"上下文工程"(Context Engineering)而不只是"提示词工程"(Prompt Engineering)——因为前者涵盖了整个编排层的设计哲学,而后者只是其中一个环节。


十、总结与预判

回顾全文,核心观点汇总如下:

第一,你在使用的AI产品是一个系统,不只是一个模型。 这个系统至少包含四个层级:基础设施(算力)、基座模型(智能来源)、编排层(组织调度)、产品界面(用户交互)。你感受到的"聪明"或"笨",是这四层共同作用的结果,而不是某一层单独决定的。 

第二,Orchestrator(编排层)的本质是"决策中枢",但它的决策能力来自基座模型。 这里有一个微妙但关键的区分:在传统软件中,编排逻辑是代码写死的(if/else),所以编排层和"大脑"是分开的两个东西。但在现代AI系统中(尤其是Claude),基座模型本身就在做编排决策——模型判断该调用什么工具、按什么顺序执行、出了错怎么调整。所以更准确的说法是:基座模型既是"大脑"也是"编排决策者",而Harness(运行框架)提供编排所需的基础设施——工具执行、状态管理、通信管道。 Orchestrator = 模型的编排智能 + Harness的工程管道,两者缺一不可。

第三,Orchestrator、Harness、Agent、Skill四者的关系是:Orchestrator做决策,Harness做连接,Agent做执行,Skill做操作。 而且这四者之间存在递归嵌套——Agent内部可以包含Sub-Agent,Skill内部可以包含Agent循环,Orchestrator本身可以分层。边界不是绝对的,取决于你从哪个粒度观察。

第四,同一个基座模型,配上不同的编排层,就变成了完全不同的产品。 Claude Sonnet 4在Claude.ai里做对话助手,在Claude Code里做编码Agent——是同一个大脑,不同的工作模式。

第五,开源模型(DeepSeek、Qwen等)开源的是基座模型(面粉),不是完整产品(面包)。 官方产品的体验好于裸模型,差距就在编排层。

第六,AI竞争的主战场正在从"谁的模型更大更强"转向"谁的编排层更聪明更稳定"。 这对行业的影响是深远的——它意味着AI产品的差异化越来越依赖于工程能力和产品设计,而不只是砸钱训练更大的模型。

对于普通用户来说,理解这个分层结构有一个很实际的意义:当你发现某个AI产品在某些任务上表现特别好或特别差时,问题可能不在模型本身,而在编排层。 换一种提问方式、提供更多上下文、选择更合适的工具——这些本质上都是在帮助Orchestrator更好地工作。

你现在就是Orchestrator的一部分——每一次清晰的指令、每一个准确的上下文提供,都在和AI的编排层协作,共同完成任务。


本文写于2026年4月。AI系统的架构和产品形态正在快速演变,本文中的信息代表截至撰写日期的状态。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-12 06:56:39 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/515927.html
  2. 运行时间 : 0.112259s [ 吞吐率:8.91req/s ] 内存消耗:4,952.64kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=61badfd6fc7038f1fcc7986ade6e218e
  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.000424s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000698s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000332s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000286s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000564s ]
  6. SELECT * FROM `set` [ RunTime:0.000196s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000550s ]
  8. SELECT * FROM `article` WHERE `id` = 515927 LIMIT 1 [ RunTime:0.001921s ]
  9. UPDATE `article` SET `lasttime` = 1775948199 WHERE `id` = 515927 [ RunTime:0.000840s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000319s ]
  11. SELECT * FROM `article` WHERE `id` < 515927 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000442s ]
  12. SELECT * FROM `article` WHERE `id` > 515927 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000656s ]
  13. SELECT * FROM `article` WHERE `id` < 515927 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001047s ]
  14. SELECT * FROM `article` WHERE `id` < 515927 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003386s ]
  15. SELECT * FROM `article` WHERE `id` < 515927 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001186s ]
0.116357s