Claude Code Hooks:会话上下文注入与提取完整指南
TL;DR
Claude Code hooks系统实现记忆连续:SessionStart注入昨日复盘+历史instinct,Stop同步捕获会话摘要,Stop异步调用Claude CLI分析transcript生成可复用instinct。核心原则:stdin必须透传、SessionStart<200ms、Stop分两层、短会话跳过。
触发场景
- 配置Claude Code记忆连续系统时
- 理解SessionStart/Stop hook机制时
- 部署会话注入与提取系统时
行动步骤
- 创建脚本目录:~/.claude/scripts + ~/.claude/cache
- 三份核心脚本:ecc_session_start.js(开场注入)/ ecc_stop_capture.js(同步捕获)/ ecc_stop_analyze.sh(异步分析)
- settings.json注册hooks:SessionStart注入记忆/Stop双hook(同步+异步)
- 验证:开场看到SESSION_START_HOOK_INJECT标记/复盘文件有新增/~/cache有分析日志
证据
完整Node.js+Bash脚本实现,包含数据流图:SessionStart→读取复盘+instinct→stdout注入,Stop1→追加复盘→透传stdin,Stop2→wrapper守护stdin→transcript分析→instinct文件
失败边界
- SessionStart>200ms:只做文件读取不做网络请求或AI调用
- stdin不透传:后续hook收到空数据(capture.js的process.stdout.write(raw)是生命线)
- 短会话(<3条用户消息)自动跳过AI分析,避免浪费
- 异步hook场景stdin可能在父进程退出后丢失——需要Python wrapper subprocess守护
原理
三条hook形成闭环:Start加载"上次发生了什么+什么经验值得复用",Stop-1记录"这次做了什么"到每日复盘,Stop-2从transcript提炼"这次学到了什么"为instinct。记忆连续的本质是把会话记忆从人脑搬到文件里。
使用记录
| 日期 | 项目/场景 | 结果 | 备注 |
|------|----------|------|------|
| 2026-05-17 | Claude Code Hooks指南 | confirmed | 完整Hook系统文档 |