拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Claude Subconscious性能开销评估:四个Hook到底拖慢Claude Code多少毫秒?

Claude Subconscious性能开销评估四个Hook到底拖慢Claude Code多少毫秒【免费下载链接】claude-subconsciousGive Claude Code a subconscious项目地址: https://gitcode.com/GitHub_Trending/cl/claude-subconsciousClaude Subconscious 是一款为 Claude Code 提供后台潜意识智能体的开源插件它在后台默默观察你的每一次会话、读取代码库、积累跨会话记忆并在每次提问前悄悄低语指导建议。既然它要通过 4 个 Hook 深度嵌入 Claude Code 的工作流那么最实际的问题就是这些 Hook 到底会给每次交互增加多少毫秒的等待本文基于源码逐个拆解四个 Hook 的触发时机、网络调用与超时上限给出可量化的开销估算。一、先搞清楚4 个 Hook 分别在什么时机被触发Claude Subconscious 的全部侵入性都定义在一个配置文件中hooks/hooks.json。4 个 Hook 的触发时机、对应脚本与超时上限如下Hook 时机脚本文件超时上限触发频率SessionStartscripts/session_start.ts5s每个会话仅 1 次UserPromptSubmitscripts/sync_letta_memory.ts10s每次提交提问 1 次PreToolUsescripts/pretool_sync.ts5s每次工具调用前 1 次最高频Stopscripts/send_messages_to_letta.ts120s异步每轮回复结束 1 次理解这张表是评估开销的关键频率越高、单次越重的 Hook才是性能瓶颈所在。二、逐个拆解每个 Hook 到底花多少时间每个 Hook 的执行时间 ≈ 进程启动成本 网络往返Letta API 本地文件读写。下面给出架构层面的估算实际值取决于你的网络与 Letta 服务器位置。1. SessionStart会话启动约 0.5~3 秒只发生一次新会话开始时session_start.ts 依次完成确认智能体身份 → 查询智能体详情 → 复用或创建对话 → 发送会话开始通知。首次使用会自动导入内置的 Subconscious 智能体多一轮 API 调用约 2~5 秒仍在 5s 上限边缘后续会话大部分调用命中本地缓存通常 0.5~2 秒。好消息是它每个会话只触发一次摊到整个会话里可以忽略不计。2. UserPromptSubmit每次提问前约 200~800 毫秒这是低语的入口。sync_letta_memory.ts 会在你的提示词送入 Claude 之前拉取智能体的记忆块和新消息再通过 stdout 注入上下文。关键设计在 第 335~338 行两个 API 请求查询智能体 查询消息通过Promise.all并行发起总耗时约等于最慢的那一个请求而不是两者之和——大约200~800 毫秒云端 Letta自托管服务器通常更低上限 10 秒。3. PreToolUse高频但克制通常 200~600 毫秒这是触发最频繁的 Hook——每次 Claude 调用工具读文件、执行命令等前都会执行。如果它重整个会话会被拖垮。源码 pretool_sync.ts 展示了几个轻量级设计两个请求fetchAgentfetchNewMessages同样并行执行第 300~303 行无变化则静默退出后台没新消息、记忆没更新时直接exit(0)不输出任何内容第 311~314 行此时开销只是一次网络往返stdin 读取带100ms 超时保护第 93~96 行避免卡死等待输入任何异常都被吞掉并静默退出第 354~358 行失败也不阻塞工具调用硬上限 5 秒。4. Stop阻塞耗时约 0 毫秒——真正的零拖累每轮回复结束后触发的 Stop Hook 看起来最重超时上限高达 120 秒但它采用了异步 Hook 模式hooks.json 第 44~56 行 中标记async: true主脚本只做三件轻活解析本地转录文件、把载荷写入临时文件、派生一个脱离的后台工作进程第 229~231 行然后立即退出。真正的重活——让后台智能体阅读完整会话记录、用 Read/Grep/Glob 探索代码库、更新记忆——全部交给独立的 send_worker_sdk.ts 在后台完成Claude Code 完全不等待它。也就是说Stop Hook 对用户可感知的贡献仅约 100~300 毫秒的进程启动与本地文件开销。三、为什么整体开销比想象中小三个关键工程决策跳过 npx直启本地 tsx每个 Hook 都通过 hooks/silent-npx.cjs 启动。它直接定位node_modules/tsx的本地 CLI第 38、65~67 行避免npx每次联网解析包名的几百毫秒额外开销——在 PreToolUse 这种高频场景下这个优化被放大成秒级差距。一切重活异步化同步路径只留一次网络往返 本地 IO三个同步 HookSessionStart / UserPromptSubmit / PreToolUse共享同一模式并行拉取最多两个 API然后要么静默退出、要么输出一小段文本。没有任何 Hook 会在主流程中调用大模型。一键归零的off模式每个脚本开头都会检查LETTA_MODE例如 session_start.ts 第 242~247 行。设置LETTA_MODEoff后脚本在读取任何输入前直接退出——此时全部开销仅剩进程启动成本数十毫秒方便你随时对照测试有/无插件的速度差异。四、自己动手测如何验证真实毫秒数插件把每个 Hook 的运行日志都写到临时目录$TMPDIR/letta-claude-sync-$UID/包含时间戳可以精确计算每次执行的耗时tail -f /tmp/letta-claude-sync-$(id -u)/*.log对照日志中各 Hook 的started/completed时间戳差值就能得到你网络环境下的真实开销。想看到更多细节可以设置LETTA_DEBUG1环境变量。五、结论四个 Hook 的真实代价把上面的估算汇总一下云端 Letta常规网络场景可感知新增延迟触发频率开会话0.5~3 秒首次更高每次会话 1 次每次提问约 0.2~0.8 秒每次提示 1 次每次工具调用约 0.2~0.6 秒无更新时更低高频每轮回复结束约 0 秒异步后台高频一句话总结Claude Subconscious 把最重的学习成本全部放进了异步后台同步路径上你付出的只是每次交互约几百毫秒的并行网络往返且所有 Hook 都有超时硬上限和静默失败兜底——即使 Letta 服务不可用也只会丢失后台记忆能力而不会拖垮或卡死 Claude Code。对于跨会话记忆 主动建议这类能力来说这个性能交换比是相当划算的。【免费下载链接】claude-subconsciousGive Claude Code a subconscious项目地址: https://gitcode.com/GitHub_Trending/cl/claude-subconscious创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门