乐于分享
好东西不私藏

你的 AI 助手在你睡觉时做了什么?——OpenHuman 潜意识引擎源码拆解

你的 AI 助手在你睡觉时做了什么?——OpenHuman 潜意识引擎源码拆解

上周五下午两点,你正在开一个无聊的例会。镜头里,你的脸旁边多出了另一张脸——一个 AI 的卡通形象,它实时听着发言,偶尔开口补充几句,会后自动整理了会议纪要,顺手把待办事项同步进了你的日历。

今天早上,它出现在 GitHub Trending 第一位。⭐ 13,000,Rust + TypeScript,Early Beta 阶段,今天还在提交 commit。

我把源码翻了一遍。有几个设计让我觉得值得认真拆一下。


一、它想解决什么问题

大多数 AI 助手有一个共同的死穴:每次对话都从零开始

你打开对话框,先交代背景:"我在用 Next.js 14,公司做 SaaS,最近在搞支付模块……" 解释完 AI 才能帮上忙。几周后再打开,又要重头来一遍。

OpenHuman 的答案是:在第一次同步完成后,就消灭"冷启动"

连上 Gmail、Notion、GitHub、Slack、Google Calendar——118 个集成,每 20 分钟自动拉一次最新数据,全部压缩进本地 SQLite 的记忆树。你早上第一次开口,Agent 已经知道你昨晚发了什么邮件、今天几个会、上周哪些 PR 合并了。

README 里有一句话很直接:

"Most agents start cold. OpenHuman skips the wait."


二、Memory Tree:一棵每 20 分钟"消化"一次的树

Memory Tree 是核心数据结构。所有接入的数据会被压缩成 ≤3000 token 的 Markdown 块,层叠存成摘要树,同时落两个地方:

  • SQLite:Agent 运行时的主要查询来源
  • Obsidian 兼容  文件:你可以直接用 Obsidian 打开和编辑

切块的逻辑在 memory/chunker.rs 里,用了三级降级策略:

/// 分块策略(三级降级)
/// 1. Heading 边界:先按 #/##/### 切

/// 2. Paragraph 边界:heading section 太大时按空行切

/// 3. Line 边界:paragraph 还是太大时按行切

pub
 fn chunk_markdown(text: &str, max_tokens: usize) -> Vec<Chunk> {
    // 粗估:英文 4字符/token

    let
 max_chars = max_tokens * 4;

    let
 sections = split_on_headings(text);
    // ...

}

每个 Chunk 携带 heading: Option<Rc<str>>——用 Rc<str> 让同 heading 下的多个 chunk 共享同一个字符串引用,避免重复 alloc。

有意思的地方:切出来的 .md 文件不是只给 AI 看的。你可以直接在 Obsidian 里浏览、手动编辑,甚至覆盖 AI 的摘要。你不是在"用 AI",AI 是在"读你的笔记本"。

对于已经跨多个编程工具(Claude Code、Cursor、Codex)共享 agentmemory 的用户,OpenHuman 提供了一个 memory backend 桥接选项——config.toml 里设 memory.backend = "agentmemory",一套记忆跑所有 Agent。


三、Subconscious Engine:一个有"潜意识"的后台引擎

这是整个项目里我翻得最仔细的模块:src/openhuman/subconscious/

3.1 tick 循环的骨架

engine.rs 里的 run() 方法结构极简:

pub async fn run(&self) -> Result<()> {
    if
 !self.enabled { return Ok(()); }

    let
 interval_secs = u64::from(self.interval_minutes) * 60;
    loop
 {
        // 先 sleep,再 tick(不是 interval,防止积压)

        tokio::time::sleep(Duration::from_secs(interval_secs)).await;
        match
 self.tick().await {
            Ok
(result) => info!(
                "[subconscious] tick: executed={} escalated={} duration={}ms"
,
                result.executed, result.escalated, result.duration_ms
            ),
            Err
(e) => warn!("[subconscious] tick error: {e}"),
        }
    }
}

注意是 sleep 而不是 interval:tick 结束后才开始计时,不会因为单次 tick 超时而让下一个 tick 积压堆叠。

3.2 代际保护:AtomicU64 tick_generation

pub struct SubconsciousEngine {
    tick_generation: AtomicU64,
    // ...

}

// tick() 开头

let
 my_generation = self.tick_generation.fetch_add(1, Ordering::SeqCst) + 1;

每次新 tick 启动,generation 计数器 +1。tick 执行完之前会检查自己是否还是最新代,如果被抢先了,之前所有 in_progress 的日志条目直接 cancel,结果丢弃。不会撞车,不会重复执行。

3.3 每次 tick 的完整流程

翻完 tick() 方法,五个步骤非常清晰:

1. cancel_stale_in_progress()  ← 清理上代残留
2. due_tasks()                 ← 从 SQLite 加载到期任务
3. build_situation_report()    ← 构建"当前状态摘要"(memory-tree 驱动)
4. evaluate_tasks_and_reflections()  ← LLM 评估:noop / act / escalate
5. execute() / persist_reflections() ← 执行 or 升级为用户确认

其中 build_situation_report 会拉最近 8 条 Reflection 作为防重复上下文——防止同一个信号跨 tick 被重复发出。

3.4 Reflection 的六种类型

reflection.rs 里定义了 Agent 在 tick 时可以生成的观察原语:

pub enum ReflectionKind {
    HotnessSpike,         // 热度突增
    CrossSourcePattern,   // 多源交叉信号
    DailyDigest,          // 每日摘要
    DueItem,              // 快到期任务
    Risk,                 // 负面信号集中
    Opportunity,          // 值得关注的机会
}

/// 每次 tick 最多 5 条,超出直接丢弃

pub
 const MAX_REFLECTIONS_PER_TICK: usize = 5;

关键设计:Reflection 不会自动弹进对话框。它只出现在"Intelligence"标签页的卡片上。用户点击"建议操作",才会新开一个对话线程——原有对话完全不被打扰。

注释里的原话很直白:"五条是有用的主动提醒和通知轰炸之间的经验甜点"。

3.5 Prompt 里注入了身份上下文

prompt.rs 还有一个细节:每次 tick 评估,都会先读 SOUL.md / PROFILE.md 作为 identity context 注入 prompt:

pub fn build_evaluation_prompt(
    tasks: &[SubconsciousTask],
    situation_report: &str,
    identity_context: &str,  // ← 从 SOUL.md/PROFILE.md 加载
) -> String {
    format!
(r#"{identity_context}

# Subconscious Loop — Task Evaluation
You are the background awareness layer...
"#
)
}

还有一条 Self vs Others 的防混淆规则写在 prompt 里:情况报告里包含用户自己的连接账号句柄、邮件地址等"Your Identifiers",LLM 必须用这个列表区分"关于用户自己"和"关于别人"的信号——被标记 (you) 的 hotness 条目才能用第二人称描述,否则是在写别人。


四、TokenJuice:省 80% Token 的 Rust 压缩器

工具输出进 LLM 前,先过一层 TokenJuice 压缩。

这是 vincentkoc/tokenjuice 的 Rust 移植版,三层规则覆盖(内置 → 用户 → 项目),高优先级覆盖低优先级。

reduce.rs 里 git status 的后处理逻辑特别有代表性——把所有 Git 的废话全删了,只留真正有信息量的行:

fn rewrite_git_status_line(line: &str) -> Option<String> {
    let
 trimmed = line.trim();

    // 删掉废话:On branch main、use "git add"...、nothing to commit...

    if
 trimmed.starts_with("On branch ") { return None; }
    if
 regex_match(r#"^\(use "git .+"\)$"#, trimmed) { return None; }
    if
 regex_match(r"^nothing added to commit", trimmed) { return None; }

    // 压缩标题行

    if
 trimmed == "Changes not staged for commit:" {
        return
 Some("Changes not staged:".to_owned());
    }
    // ...

}
输入:git status 的原始输出(20多行)
输出:Changes not staged: M: src/lib.rs

还有一个细节——少于 240 字符的输出直接跳过,原样传给 LLM:

const TINY_OUTPUT_MAX_CHARS: usize = 240;

够短就不压,避免压缩引入信息损失。

HTML 那侧也做了同样的工程决策:移除了 html2md 依赖,换成自写的线性扫描器 fast_html_to_text。原因就写在 Cargo.toml 注释里:html2md 遇到 Otter.ai 风格的嵌套表格 HTML 时,递归 walker 会产生 894MB 峰值堆内存。换成线性扫描器后内存降了一个数量级。


五、Meet Agent:STT → LLM → TTS 三段流水线

meet_agent/brain.rs 是一个完整的会议 AI 流水线,注释写得清清楚楚:

当 session::Vad 报告 EndOfUtterance:
1. STT   — 把 PCM16LE 包成 WAV,发云端转录
2. LLM   — 转录文本 + 最近12条对话历史 → 生成回复
3. TTS   — ElevenLabs eleven_turbo_v2_5 → PCM → 嘴型同步播出

三个硬编码常量决定了 Meet Agent 的行为边界:

/// 最多保留最近 12 条对话记录作为 rolling context
const
 CONTEXT_EVENT_WINDOW: usize = 12;

/// 回复上限 220 token ≈ 30秒语音

/// 够给真实答案,但不够让 AI 劫持会议

const
 REPLY_MAX_TOKENS: u32 = 220;

/// ElevenLabs 最佳延迟/质量比

const
 TTS_MODEL_ID: &str = "eleven_turbo_v2_5";

还有一个 fallback 机制:如果后端 session token 不存在(离线、测试环境),系统不崩溃,用确定性的 stub 走完整个流程——让单元测试在没有网络的 CI 环境里也能跑通。

另外,VAD 有一个 250ms 的最小采样过滤:

/// 4000 samples @ 16kHz = 250ms
/// 低于此长度直接跳过 turn,防止咳嗽/点击声触发 AI 发言

const
 MIN_TURN_SAMPLES: usize = 4_000;

六、Screen Intelligence:macOS 的三层感知架构

Screen Intelligence 目前是 macOS 专属(V1 注释原话:"screen intelligence is macOS-only in V1"),申请辅助功能权限后做屏幕录制和前台 App 识别。

架构分三层,对应三个 worker:

  • capture_worker.rs:后台定时截屏,输出 CaptureFrame
  • processing_worker.rs:图像压缩处理,输出标准化帧
  • vision.rs:Vision 模型分析,输出 AppContextInfo(前台 App 上下文)

数据结构命名风格像操作系统级感知层,而不是截图工具:AccessibilityEngineSessionRuntimePermissionKind。跨平台扩展时,这套架构基本不动,只换底层平台 API。


七、整体数据流

118+ 数据源
  ↓ 每20分钟 auto-fetch
Memory Tree(SQLite + Obsidian vault)
  ↓ chunker.rs 三级分块 + TokenJuice 压缩
Subconscious Engine(后台 tick 循环)
  ↓ situation_report → LLM 评估 → noop / act / escalate
Reflection 卡片(Intelligence 标签页,用户主动触发)
  ↓
三种 Agent 模态
  ├── 聊天(文字对话)
  ├── Meet Agent(Google Meet 实时参会)
  └── Screen Intelligence(屏幕感知,macOS)

核心设计哲学:把"主动打扰"降到最低。数据在后台安静消化,Reflection 静静堆在卡片上,AI 不会主动弹窗——除非你点。


结尾

OpenHuman 现在是 Early Beta,但代码质量比同类项目扎实——Cargo.toml 的注释里记录了被删依赖的具体堆内存 profile 数据,prompt 里写了防混淆的 Self vs Others 规则,VAD 有 250ms 防误触过滤,tick 有代际保护……这些细节不是做给 README 看的。

它和 OpenClaw 的定位有根本差异:OpenClaw 是消息驱动的,你发消息它响应;OpenHuman 是持续运转的,它在后台一直消化你的数据,等你需要时已经准备好。

哪种更适合你,取决于你更需要"召之即来"还是"常伴左右"。

⭐ tinyhumansai/openhuman,今天 GitHub Trending 第一,创作者 @senamakel。


本文基于 tinyhumansai/openhuman 主分支源码(2026-05-18 commit),版本 0.53.49

                 
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-13 15:38:41 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/646124.html
  2. 运行时间 : 0.260675s [ 吞吐率:3.84req/s ] 内存消耗:4,626.96kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=570ddbe43ca383eee1d9aab2c3b804e4
  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.001178s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001552s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.003920s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000745s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001627s ]
  6. SELECT * FROM `set` [ RunTime:0.000577s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001740s ]
  8. SELECT * FROM `article` WHERE `id` = 646124 LIMIT 1 [ RunTime:0.001357s ]
  9. UPDATE `article` SET `lasttime` = 1781336321 WHERE `id` = 646124 [ RunTime:0.008945s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000637s ]
  11. SELECT * FROM `article` WHERE `id` < 646124 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001097s ]
  12. SELECT * FROM `article` WHERE `id` > 646124 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001164s ]
  13. SELECT * FROM `article` WHERE `id` < 646124 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001885s ]
  14. SELECT * FROM `article` WHERE `id` < 646124 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.015154s ]
  15. SELECT * FROM `article` WHERE `id` < 646124 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.034442s ]
0.264719s