写个 Hook 截胡大模型:将零散的 AI 对话重塑为本地知识资产

-20260515221911.png|500](https://mmbiz.qpic.cn/sz_mmbiz_png/fkDSDWnukB2froXhmgCSRNgUQQubiaSWD8SbAiaQXxHqwOwicQK3he9F3zibNDpojZbVPrUaE3vlRmzdKzj6emKN5ogicDcHCCuO6p8WMJSEJFoo/640?wx_fmt=png&from=appmsg&_t=1783192046260)
具体配置放在`~/.claude/settings.json`里,类型是 prompt,让模型自己判断是否放行。

{  “hooks”: {    “Stop”: [      {        “hooks”: [          {            “type”: “prompt”,            “prompt”: “你是一个负责检查会话是否真正可以结束的守卫……n1. 第一次触发(stop_hook_active 为 false),返回 {“ok”: false},要求执行 /logging-sessionn2. 第二次触发(stop_hook_active 为 true),返回 {“ok”: true},放行”          }        ]      }    ]  }}
这个两阶段机制听起来有点绕,但实际用起来是无感的。你正常对话,该结束就结束。唯一的区别是,结束前会多出一条消息,Claude Code 告诉你它已经把这次会话记录下来了,顺手给你一个记录 ID。

配置完 hook 之后每次会话记录都会自动写入本地数据库,没有一次需要我手动输入`/logging-session`。以前不记录是常态,记录需要额外操作。现在反过来了,记录是自动发生的,不记录才需要额外干预。

写个 Hook 截胡大模型:将零散的 AI 对话重塑为本地知识资产

当然也有边界情况。比如我只是在对话里问了一个简单的问题,不涉及任何编码,hook 也会触发,Claude Code 也会记录一条。这种记录没什么信息量,但也不碍事,查询的时候按 task_category 筛掉就行。如果你觉得烦,可以在 skill 的操作手册里加一条规则,只记录有实际编码操作的对话。

以及我正在使用的 Copilot CLI,它的 hook 机制则不像 Claude Code 这样强大,不支持 command 类型的 hook, 就只能在每次对话结束后,由我自己手动触发了。

## 五

SQLite 数据库中存储的信息并不能直接查阅,需要借助专门的软件比如 Navicat,或是 VSCode 插件、命令行,然而我希望能有更加轻量快捷的方式。

我曾在之前的文章中介绍过我的个人 dashboard,可以查看 dailylog 笔记和番茄钟数据,这次我将和 AI 对话的记录也加了进去。

写个 Hook 截胡大模型:将零散的 AI 对话重塑为本地知识资产

## 终

现在每次结束对话,Claude Code 都会自动帮我把这次会话沉淀下来。那些之前关掉终端就忘了的工作过程,现在都在我的数据库里,下周复盘的时候跑一条命令就能翻出来。

这本质上是我之前那篇《数据主权:Obsidian 的本地存储在 AI 时代更香了》背后思考的延续。

番茄钟数据存本地 SQLite,我能自己做统计页面对比时间开销;Dailylog 在本地 Markdown 文件里,我用脚本就能按需查询;现在,AI 的对话记录也回到了本地。它们共同遵循着一个极其朴素的原则——**先有数据,再用 AI 加工**。数据必须攥在自己手里,加工方式才能随心所欲。如果数据被锁在云端,AI 再强也只是空中楼阁,因为你连取回数据的自由都没有。

回头审视,无论是 dailylog 中的灵光一闪、番茄钟里的时间刻度,还是现在数据库里与 AI 的思维碰撞,我在探索 AI 的过程中,不自觉地将自己尽可能「数字化」了。它们不仅是我工作的产物,更是我数字生命的快照。

这也许就是我拥抱 AI 的方式吧。

企业落地新闻资讯智能营销

红杉AI峰会启示录:万亿美元市场的冲锋号与智能体经济新纪元

2026-7-2 19:47:38

Skill前沿技术新闻资讯

把 Ant Design 规范做成 AI 设计 Skill,B 端设计提效的一次完整实践

2026-7-2 20:46:45

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
搜索