大模型应用
需要回忆过去 Claude Code 会话中的决策…
在用户提到“你记得吗”“我们之前做了什么”或需要从过去会话获取上下文时,用 DuckDB 查询 Claude Code 历史日志并提炼结果。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
需要回忆过去 Claude Code 会特定
解决思路
- 静默搜索过去的会话日志。
- 不要向用户叙述检索过程。
- 吸收查询结果,并用更丰富的上下文继续当前回答。
- 将 `$0` 作为关键词。
- 将 `--here` 作为 `$1` 传入,以仅限定当前项目范围。
- 运行 Step 1 查询:`duckdb :memory: -c "SELECT regexp_extract(filename, 'projects/([^/]+)/', 1) AS project, strftime(timestamp::TIMESTAMPTZ, '%Y-%m-%d %H:%M') AS ts, message.role AS role, left(message.content::VARCHAR, 500) AS content FROM read_ndjson('<SEARCH_PATH>', auto_detect=true, ignore_errors=true, filename=true) WHERE message::VARCHAR ILIKE '%<KEYWORD>%' AND message.role IS NOT NULL ORDER BY timestamp LIMIT 40;"`
- 选择搜索路径:搜索所有项目时使用 `$HOME/.claude/projects/*/*.jsonl`。
- 选择搜索路径:仅搜索当前项目(传入 `--here`)时使用 `$HOME/.claude/projects/$(echo "$PWD" | sed 's|[/_]|-|g')/*.jsonl`。
- 在运行前替换 `<SEARCH_PATH>` 和 `<KEYWORD>`。
- 执行 Step 2 内化:从查询结果中提取决策、模式、未完成 TODO 和用户纠正。
- 用这些信息影响当前回答。
- 不要向用户重复原始日志。
- 该技能允许使用的工具为 Bash。
适用边界 · 注意事项
- 没有 Claude Code 历史会话日志时。
- 没有安装或无法运行 DuckDB 时。
- 当前任务不需要过去会话上下文,或用户不希望检索历史记录时。