Hộp đen cho mọi phiên làm việc với AI — tự ghi, tự xếp theo dự án, tra lại trong tích tắc.
Mỗi phiên làm việc với AI là một chuyến bay. Khi máy bay hạ cánh, một hộp đen lặng lẽ ghi lại toàn bộ hành trình rồi cất vào kho hồ sơ theo từng tuyến (dự án) — không bao giờ làm gián đoạn chuyến bay. Muốn nhớ sâu, một điều tra viên đọc trọn hộp đen và viết bản tóm tắt. Về sau, khi bạn hỏi "hồi đó làm việc này ở đâu?", bàn tra cứu lật đúng hồ sơ trong tích tắc. Nhờ vậy bạn không bao giờ mất lại trí nhớ nghề đã tích cóp.
Click vào bất kỳ thành phần nào để xem chi tiết.
Ranh giới của hệ thống — biết trước để khỏi kỳ vọng sai
/clear, /exit, /compact.index/embed bằng tay.Ai và lúc nào thì hộp đen này phát huy giá trị
index lại.Cài từ package chia sẻ github.com/quynhfruby/vibe-history (repo chỉ chứa engine; history lưu riêng, không commit)
~/.claude + ~/.codex rồi wire hook tương ứng, backup trước khi sửa, không xoá gì mà không hỏi. Giữ nguyên vị trí folder sau khi cài (wiring trỏ vào đường dẫn này).~/.config/vibe-history/config.json, Windows %APPDATA%\vibe-history\config.json.{ "historyRoot": "/path/to/vibe-history", "enabled": true, "timezone": "Asia/Ho_Chi_Minh" }Hoặc env: $VIBE_HISTORY_ROOT / $VIBE_HISTORY_ENABLED / $VIBE_HISTORY_TZ (env thắng config). Mặc định kho: ~/Documents/vibe-history.<base> = thư mục repo đã cài.node <base>/core/vibe-history-qmd-cli.cjs indexsearch tức thì; vsearch/query cần đã embed.node <base>/core/vibe-history-qmd-cli.cjs search "flashsale countdown" -n 5Bỏ qua installer? Wire tay: Claude đăng ký SessionEnd+PreCompact chạy <base>/claude/vibe-history-capture.cjs; Codex set notify trong ~/.codex/config.toml trỏ <base>/codex/codex-vibe-history-notify.cjs. Skill vibe-history-enrich/-search đặt trong ~/.claude/skills/. Muốn recall sắc hơn: chạy enrich rồi index lại.
Hai lớp mục lục — index (từ khoá) và embed (ý nghĩa) — quyết định bạn tìm được gì
| Lệnh | Cần embed? | Cơ chế | Ví dụ |
|---|---|---|---|
| search (BM25) | Không | Khớp từ khoá trùng nhau — tức thì, không cần model | tìm "flashsale" → file có chữ "flashsale" |
| vsearch (vector) | Có | Khớp ý nghĩa gần nhau | "đếm ngược khuyến mãi" → vẫn ra "flash sale countdown" |
| query (hybrid) | Có | Lai BM25 + vector rồi xếp hạng lại (rerank) → chất nhất | câu hỏi mơ hồ, cần kết quả sát ý nhất |
index — mục lục từ khoásearch chạy được.embed — mục lục ý nghĩaembeddinggemma-300M); chỉ tải một lần.vsearch và query — không chạy thì hai lệnh này không có dữ liệu để so.index lẫn embed chạy tay — không có tiến trình nền tự reindex (chủ đích, tránh tốn máy).index (và embed nếu dùng tìm theo nghĩa).vsearch/query không trả ra — không phải mất dữ liệu, chỉ là chưa đánh chỉ mục.Ẩn dụ hộp đen ↔ hệ thống thật ↔ thuật ngữ ngành
| Trong câu chuyện | Là gì trong hệ thống | Thuật ngữ |
|---|---|---|
| Chuyến bay | Một phiên làm việc với AI | session |
| Bộ kích hoạt ghi | Hook chạy lúc phiên kết thúc / nén | SessionEnd · PreCompact |
| Băng ghi thô | Transcript gốc của phiên | JSONL transcript |
| Số hiệu tuyến | Dự án phiên thuộc về | git --git-common-dir |
| Máy giải mã | Dựng digest Markdown + nhãn tự động | markdown-builder |
| Hồ sơ chuyến bay | File .md, 1 file mỗi phiên | per-session .md |
| Điều tra viên | Điền tóm tắt/quyết định/bài học | enrich (semantic frontmatter) |
| Kho hồ sơ | Thư mục lưu, chia theo dự án | VIBE_HISTORY_ROOT |
| Mục lục kho | Chỉ mục từ khóa + ngữ nghĩa | qmd index · embed |
| Bàn tra cứu | Tìm theo từ khóa / ý nghĩa / lai | search · vsearch · query |