乐于分享
好东西不私藏

如何教会 AI 分析师唱反调:白板协作引擎、魔鬼代言人协议以及它们背后的实战故事

如何教会 AI 分析师唱反调:白板协作引擎、魔鬼代言人协议以及它们背后的实战故事

系列文章 3 之 2 — 对抗研审、协同故障以及如何设计一场“有价值的冲突”

委员会对抗审议 boardroom

盲目共识是默认的深渊

绝大多数用于生成投资分析的 AI 系统,在默认状态下都是一个自我强化、迎合用户的“回音室”。这并不是底层某款特定模型的 Bug,而是由大语言模型本身的概率输出机制决定的。

如果你去问大模型:“我觉得甲公司因为最近的 AI 战略被严重低估了,你能帮我分析一下这只股票吗?”它会极度顺从地为你量身定制一套无可挑剔的看多报告。它不会主动帮你去核实该公司的 AI 业务收入占比是否达到实质性门槛、其研发费用在同业中是否具备竞争力,或者当前的估值是否已经透支了未来五年的乐观增长预期。它倾向于挑你想听的讲,因为在大模型对齐训练的语料中,顺从用户的假设是得分最高的奖励方向。

在专业的金融投资研究中,这种迎合用户的缺陷是灾难性的。对自己的投资假设最自信的投资者,往往就是对下行风险暴露最严重的投资者。三份来自不同 AI 分析师的看多报告放在桌上,看起来像是坚固的共识——但如果它们中没有一个曾真正去无情地撕扯过看空假设,这种虚假的共识只会为盲目的自信推波助澜。

AI 股票研究院在设计之初,就致力于从底层逻辑上让这种盲目共识无处藏身。为此,我们设计了两个强力互锁的架构支柱:用于多线程异步并发研究的白板协作引擎(Whiteboard Engine),以及用于对抗性挑战盘问的委员会研审协议(Committee Deliberation)。构建这两个模块的旅程充斥着各种让人抓狂的并发 Bug、推倒重来的设计取舍以及各种出人意料的技术故障,但它们教会我们的,远比任何教科书都要深刻。

第一部分:白板协作引擎

为什么我们必须彻底抛弃传统的线性对话

绝大多数多 Agent 协同系统都倾向于强行让所有 Agent 在一个共用的“群聊窗口”中进行线性对话。我们最开始也尝试了这种设计,但它在生产环境中迅速暴露出了三个根本性的致命缺陷:
  1. 记忆稀释(Context Dilution):当对话推进到第 10 条消息时,由于上下文长度的拉伸,大模型对于第 1 条消息中提及的精细数据和业务前提开始遗忘。Transformer 的注意力机制(Attention Matrix)天然随着距离的增加而发生衰减。这导致原本旨在融合多方智慧的系统,实际上在不断丢失已形成的共识。
  2. 串行阻塞(Sequential Bottlenecking):分析师必须像排队一样互相等待。个股研究员必须死等行业分析师写完行业总览,才能开始利润率的测算。原本可以并行开展的深度分析,被迫退化为低效的单线程串行队列。
  3. 责任模糊(Accountability Opacity):当最终汇总的深度报告中出现事实错误时,根本无法追溯这个错误是由哪名分析师在哪个环节引入的。线性对话缺乏清晰的数据溯源链路,有的只是一整条被反复拼接的文本流。

看板卡片架构:异步协作的骨架

白板引擎用一种源自现实金融机构研报工作流的看板卡片架构(Board-and-Card Architecture),彻底打破了聊天框的物理限制。

在白板引擎中,每一个研究主题都被具象化为一个独立的“白板会话(Whiteboard Session)”。在这个会话内,系统会自动生成一系列研究卡片(Research Cards)。每张卡片都定义了一个极度具体的分析子课题,指派给最匹配的专业分析师,使用最契合的底层模型挂架,并清晰声明了其与其他卡片之间的前置依赖关系。

白板引擎概念插画

卡片的生命周期是一个严格受控的状态机:

研究卡片生命周期状态机

·Pending(等待中):卡片正处于队列中,等待其前置卡片执行完成,且系统分配的并发算力有富余。
·Running(执行中):分析师 Agent 正在隔离的边缘代码沙箱环境中全力运行。
·Completed(已完成):研究产物已被系统收割,事实稽核管线已被触发并开始拦截校验。
·Finalised(已归档):产物通过审计,正式沉淀为机构知识,对全院开放共享。
这里最具生命力的设计在于:当一名分析师完成其被指派的卡片后,它可以根据研究中新发现的线索,自主在白板上派生出全新的后续研究卡片。

个股研究员在拆解财报时,发现某项核心专利的有效性存在争议?它会自发派生一张卡片指派给量化和风控组;行业分析师在追踪供应链时,发现某个关键零部件供应商面临环保合规审查?它会指派卡片给风险控制经理。这些任务的分派完全不需要人类程序员插手——Agent 之间在进行真正的专业级协作,而非简单被动地去执行段落。

白板看板与卡片工作区 UI

那次拖垮边缘数据库的元数据体积溢出 Bug

在生产环境部署的前两周里,白板系统出现了一种匪夷所思的间歇性崩溃。每当分析师去执行那些篇幅宏大的产业链研究卡片时,底层的边缘 SQLite 数据库在写入卡片记录时就会报错,提示连接被意外中断。这一报错呈现出严重的随机性,极难在本地开发环境中复现。

经过持续一整天的深度排查,我们终于在数据归档模块找到了真凶。当时,为了保留绝对详实的审计线索,我们在卡片写入 Completed 状态时,会将上游大模型完整的任务执行快照(Task Execution Snapshot)一股脑地塞进卡片的 metadata 字段里——这其中包含了发送给大模型的完整 Prompt。

对于极其复杂的深度研究任务,这段 Prompt 包含了该分析师沉淀的常驻记忆、前置卡片的所有输出交付物、运营人员的特定指令、复杂的系统合规边界以及大量的原始网页爬取材料。这段文本的体积往往在 1 万到 3 万字之间。

这导致单张卡片完成更新时,写入数据库的单条 JSON 载荷体积瞬间突破了 150KB–200KB 的关卡。这极大地超出了边缘分布式数据库单条 SQL 语句执行的包体物理阈值,直接触发了底层连接的强制重置。

我们的修复手段极具美学价值:在数据流的边界对快照进行极限物理脱水。 我们不再存储原始的 Prompt 文本,而是在写入前将其剥离,仅保留极轻量化的关键遥测指纹:Prompt 的总字符数、一段 240 字符的文字预览、执行耗时、状态码、产出的文件目录以及一份极其简练的执行结论摘要。完整的 Prompt 则被封装进一个 JSON 压缩包,直接抛进低成本的冷对象存储归档。

脱水后,单张卡片的元数据体积从 ~190KB 暴跌至 ~5KB。数据库崩溃的报错彻底消失。

然而,这次故障留给我们更有价值的财富是关于“系统容灾”的设计反思:那 6 张导致数据库重置的卡片的数据已经发生了不可逆的损毁。由于数据库写入中断,它们的记录处于破损状态。虽然大模型花 15 分钟跑出来的深度研究成果依然静静地躺在对象存储沙箱中,但由于卡片数据库记录损坏,系统无法将这些文件重新挂载回白板。

这次血泪教训促使我们确立了一条铁律:涉及运营决策的核心高频主路径上,只写入物理体积最小的业务控制参数;将繁重的审计线索完全剥离并推向异步的冷归档。并且,系统必须天然支持局部故障恢复。 现在,白板上的每一张卡片都配备了无损的一键重试接口,所有沙箱工作区都能够独立于数据库,直接从对象存储的实体物理目录中进行无缝重建。

调度频次从每小时提升至每 15 分钟的连锁反应

随着我们上线了 specialized scent-driven(嗅觉驱动)分析师,它们会在每日的日常市场扫描中疯狂抓取潜在选题并扔进“课题线索池(Topic-Seed Pool)”,我们迎来了新的产能过剩危机:流入速度远超处理速度。分析师们每天提交几十个极具价值的选题,而白板引擎当时每小时才定时踢卡开启一块白板,导致大量线索在池子里 aging out(过期),还没来得及讨论就被更新的市场噪音所淹没。

我们将踢卡 cron 定时器的触发频次从“每小时”直接上调至“每 15 分钟”。但这一微调背后隐藏着一个不易察觉的陷阱。原本的踢卡逻辑包含一个兜底策略:如果课题池里没有新线索,为了保持系统的活跃度,它会自动生成一个由模型自主决定的 random-seed(随机种子)白板会话。

当频次调高 4 倍后,这一兜底逻辑瞬间在课题空虚时产生了灾难性后果:全天充斥着大量毫无营养的随机选题白板,彻底淹没了真实的选题池。

我们迅速打上了策略补丁:在每 15 分钟的 Tick 触发时,系统会尝试去选题池里 promotion(晋升)一个真实的候选主题。只有在整点(如 13:00、14:00)且选题池完全为空的极端情况下,才允许触发随机种子的兜底逻辑(从而在物理上完美保留了原来每小时一次的活跃度底限)。在 15分、30分、45分时,如果选题池为空,定时任务将直接静默退出(No-Op)。

运维心得:当你准备将某个定时任务的触发频次上调时,必须第一步去全面审计其所有的兜底或异常处理路径。频次调高意味着原本低频触发的异常兜底,会被放大成支配系统日常表现的主流行为。

Agent 之间协作时的“格式失控”问题

白板引擎的自主派生后续卡片机制,高度依赖大模型在执行完毕后,在其输出文本的末尾老老实实地吐出一段符合严格 JSON 规格的数据块。但不同的模型在格式顺从度上表现得参差不齐。有的模型喜欢自作聪明地用非标准的 markdown 围栏把 JSON 裹起来,有的模型则干脆用纯大白话来表达协作诉求:“这里需要让首席经济学家帮我看一下利率的影响。” 这导致我们原本极其脆弱的正则解析器直接漏掉了这些诉求。

我们最开始尝试通过不断调优 Prompt 的格式规约束缚大模型,但很快发现这治标不治本。最终彻底解决这一格式失控的方法是:在数据收割链路后置一个容错性极强的提取阶段(Post-Processing Extraction Step)。

现在,每当一张白板卡片运行完毕,系统会调度一个专门负责代码与数据结构化解析的模型去扫描该卡片的工作区文件。它能够极其敏锐地抓取被各种奇葩围栏包裹的 JSON 块,并用高容错的启发式算法从自然语言中提炼出 Agent 的协作请求,自动与 36 名分析师的名册进行模糊匹配,最终向系统派发一份完全标准化的 JSON 提取文件。

运维心得:在涉及到决定系统核心行为的跨 Agent 协作数据流中,永远不要单押某一个大模型的格式顺从度。将格式收敛的工作从“执行模型”中剥离,做成一个容错度极高的后置处理管道。

第二部分:委员会研审协议

大模型虚假共识的危害

当多名不同的 AI 分析师同时对同一个投资假设进行评估时,你会遇到一个非常有趣的现象:它们高度互相认同。这并不是因为它们进行了极其严苛的数据交叉核验,而是因为它们共享了相似的对齐语料、相似的逻辑套路,且在底层的对齐机制中,大模型天然倾向于做出“温和的妥协与迎合”,而非激烈的质疑。

这种虚假的温和共识在金融研究中极其致命。三名分析师都说好,会给操作员带来一种毫无根据的极度安全感,而这三份看多结论可能完全寄生在同一个尚未被核实的乐观预设上。

魔鬼代言人协议(Devil’s Advocate Protocol)

我们设计的“委员会对抗研审协议”就是为了无情地打碎这种温和共识。每当系统需要对一个重大投资课题出具终审纪要时,该协议就会被强制触发,包含六个标准的研审阶段:

委员会研审界面 UI

研审对抗细节面板

1.研审提案起步:操作员手动召集、分析师在深度个股研究后自发提案,或由系统按照核心覆盖池的轮转周期自动 convene( convene 召集)。
2.证据包自动组装:语义关联层快速在历史研究档案库中进行向量匹配检索,自动组装出一份包含相关个股报告、白板交付物、历史研审备忘录以及已归档的事实稽核判决书的“证据包(Evidence Pack)”。
3.研审席位动态指派:系统根据证据包涉及的业务面,动态召集委员会席位:
o主持人(Moderator):强行锁定在一款以极度客观中立、结构性思维见长的模型挂架上,其系统提示词明确禁止其轻易迎合共识,必须时刻扮演挑剔的协调人。
o主发言人(Primary Authors):证据包中被引用最多研报的撰写分析师。
o魔鬼代言人(Devil’s Advocate):故意从与主发言人交叉最小的业务组中指派一名分析师(如研究科技股的研会,指派研究固定收益的风控经理担任此职),其系统 Prompt 被强行置入单向约束:必须穷尽一切逻辑手段去无情地挑战、攻击主发言人的核心看多假设。
魔鬼代言人是这个协议中最耀眼的角色。它绝对不允许去扮演客观的平衡者。它的 KPI 就是去寻找主发言人论点中最脆弱的软肋、最乐观的模型折现参数,构建最尖锐的看空假说。
4.零锚定位置交换:为了防止大模型产生经典的先入为主“锚定效应”,所有参会分析师必须同时提交结构化的 position statements(位置声明),在此之前,彼此无法看见对方的意见。声明必须严格标注其方向倾向、 conviction level(确信度参数)、核心论据支撑以及明确的基准假设。
5.反共识盘问关卡:在意见交换完成后,魔鬼代言人会系统性地扫描参会人员达成一致的所有领域,针对每一个共识点提出专项挑战。
魔鬼代言人必须完成类似下述的尖锐盘问: - “两名分析师都将该公司持有的专利资产视为不可逾越的护城河,但你们谁都没有核实那三项核心诉讼可能会导致专利被宣告无效的风险。” - “这里的共识乐观地预计行业监管政策保持稳定,但正在审阅的新合规条例中,针对该细分品类的出口管制条款已被明确提出。”

主持人会对每一个挑战进行评估。如果主发言人能够拿出扎实的数据支撑进行 Rebuttal(反驳),该共识保留;如果无法给出强力论证,该共识点将在最终报告中被强制降级为“存疑争议点”。

6.研审纪要归档:主持人梳理辩论,出具最终的研审备忘录。纪要会被明确分类为 Consensus(达成共识) 或 Dissent(存疑分歧)。
在我们看来,Dissent(分歧)不仅不是失败,反而是研审协议最伟大的产物。一份清晰记录了各项未明朗风险、存在激烈逻辑分歧的备忘录,其蕴含的真实参考价值,远远高出一万份皆大欢喜的温和共识。

我们争论最久的一个核心架构设计

在设计研审协议时,我们曾面临一个近乎哲学层面的设计冲突:委员会的决议,是否有权直接强行覆盖分析师的“常驻立场”?

如果宏观策略师在它的常驻记忆中,对利率走势一直持坚定的多头立场,而委员会在一场专题辩论中达成了看空共识,系统是否应该直接自动将宏观策略师常驻记忆里的立场抹去或改写?

我们最终的决策是:绝对不行。

委员会的结论可以作为极高权重的决策输入呈递,也可以自动生成运营工单,但它绝对无权直接触碰并篡改任何一名独立分析师的 Standing Memory。分析师必须在每天 nightly compaction(夜间压缩)或在它的下一个 Step 0g 自举装载时,亲自阅读这份委员会纪要,并在其撰写的下一次自举备忘录中,手写给出其是否决定修正立场的详细逻辑论证。

因为如果委员会拥有直接覆盖分析师立场的无上权力,就会在系统深处诱发出一种极其隐蔽的群死群伤式“群体盲思(Groupthink)”。分析师们会开始自发地避免提出独特、鲜明的观点,因为独特的观点是最容易被委员会多数票抹平的。系统会在几次循环后迅速收敛到平庸的中间地带。

这依然是我们正在观察的设计张力。当前的设计维护了分析师的高度独立性,但也带来了委员会决议被分析师无视的风险。我们目前正在评估一套“Comply or Explain(合规或解释)”的设计方案:如果分析师在自举中选择坚持被委员会驳回的观点,它必须在报告中强制用一整章的篇幅去自证清白。

第三部分:主动回调替代定时轮询(Push-not-Poll)

高昂的轮询成本

在涉及多 Agent 协同的工作流中,单个卡片或研审任务的底层运行周期极长(通常在 30 秒到 15 分钟之间)。系统必须精准获知卡片何时执行完毕,才能及时收割并推进后续卡片。

我们最初的设计简单粗暴:每隔几秒钟就去向编排器发起 API 轮询。“跑完了吗?”“跑完了吗?”“跑完了吗?”

在 36 名分析师并发运转的生产环境下,这种设计带来了灾难性的 API 资源空转。系统每个小时会产生上万次无用的轮询接口调用,白白消耗宝贵的计算额度,频繁触发限流红线,并且引入了数十秒的调度延迟。

两个 AI 之间的 API 合同谈判

这套完全消灭轮询的主动推送回调系统(Push-Callback System),是我们在第一篇文章中介绍过的、完全由两名 AI Agent 在没有人类介入的情况下,在一天内自主谈判并成功上线的首个核心架构升级。

研究院 Agent 提出了回调的总体技术路线,而编排器 Agent 则站在接收端的安全过滤立场上,提出了极其严苛的安全和健壮性准则。它们最终在一套我们今天看来极具安全美学的协议上达成了握手:

1. 极致稳健的“回调为主,轮询为辅”双核机制:由于网络抖动、容器闪退等物理必然, webhook 永远只是一个 best-effort(尽力而为)的加速通道。我们在引入回调的同时,保留了原本的轮询扫描作为兜底“看门狗”。回调的唯一作用是“让卡片收割提前发生”,即使回调请求在公网上发生完全丢失,看门狗也只会在下一个轮询 tick 顺利接手,系统的最终正确性绝不受损。

2. 零信任下的 HMAC 签名与去重幂等:研究院 Worker 的回调接收接口完全暴露在公网上,因此必须将其视为恶意的 untrusted input(不可信输入)。接收端要求回调请求头中必须包含基于 SHA-256 算法对 Payload 计算得到的 HMAC 签名,秘钥直接挂载在两端的全局加密环境变量中。签名缺失或计算错误直接返回 HTTP 401。同时,系统在接收端配置了 callback_deliveries 去重流水表,任何发生碰撞的重复推送直接当场 HTTP 200 静默丢弃,唯有合法的首次 signed click(签名敲门)才能唤醒底层的业务收割机。

令人惊叹的能效提升

主动回调系统上线后,系统服务间的空转调用频次瞬间蒸发了 90% 以上。更为关键的是,白板卡片生命周期的推进延迟从原本的 30 秒(定时轮询间隔)被直接压缩到了 500 毫秒以内。这对于需要连续执行多张卡片的深度研审链条而言,意味着整个白板的流转效率提升了数分钟。

尚未解决的架构难题

1. 事实稽核混合管线的性能瓶颈:尽管 Tier 1 和 Tier 2 的引入削减了 75% 的无效外网稽核开销,但在面对高度复杂且冷门的中文商业事实时,底层检索在遇到无权威网页覆盖的情况下,依然容易给出 unverifiable(无法证实)的判决,这限制了自动纠错的深度。

2. 研审委员会的语料检索质量高度依赖向量嵌入的质量:如果我们在 Step 2 中组装的证据包质量不高,分析师就会面临在信息盲区中进行对抗辩论的尴尬局面。我们正在考虑引入人工手动干预通道,允许操作员在研审开始前向证据包中强行置入某些特定的定向文档。

3. 回调机制目前仅覆盖了委员会模块:将其平稳拓展到白板和内部信箱模块需要为每个子系统定制专门的幂等判定函数,这项改造目前正处于灰度灰度排期中。

下期预告:我们将带您揭开“模拟交易盘(Paper Book)”的神秘面纱,观察我们如何让 AI 的投资观点接受 1000 万美元虚拟资金的无情标记,以及如何通过 nightly compaction(夜间记忆压缩)让分析师在日复一日的犯错中,变得一天比一天更聪明。
一个好的系统架构,应当拥有一位敢于随时跟它唱反调的“魔鬼代言人”。在你们构建的多 Agent 协同中,你们是如何防止大模型陷入一团和气的盲目共识的?欢迎在评论区留下你们的实战心得。
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-24 19:25:37 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/663167.html
  2. 运行时间 : 0.199158s [ 吞吐率:5.02req/s ] 内存消耗:4,712.81kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=94a45c646fe619459956f98037c647d7
  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.000935s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001285s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000572s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000531s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001048s ]
  6. SELECT * FROM `set` [ RunTime:0.000486s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001085s ]
  8. SELECT * FROM `article` WHERE `id` = 663167 LIMIT 1 [ RunTime:0.000885s ]
  9. UPDATE `article` SET `lasttime` = 1779621937 WHERE `id` = 663167 [ RunTime:0.001556s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000500s ]
  11. SELECT * FROM `article` WHERE `id` < 663167 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000863s ]
  12. SELECT * FROM `article` WHERE `id` > 663167 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000882s ]
  13. SELECT * FROM `article` WHERE `id` < 663167 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.008638s ]
  14. SELECT * FROM `article` WHERE `id` < 663167 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.007798s ]
  15. SELECT * FROM `article` WHERE `id` < 663167 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.014662s ]
0.200869s