CTX: Bộ nhớ giữa các phiên Claude Code — cài bằng `pip install` hoặc `/plugin install`
(github.com/jaytoone)Claude Code sẽ mất toàn bộ ngữ cảnh khi bạn đóng phiên. CTX giải quyết vấn đề này bằng hook của Claude Code.
Cách hoạt động: Trong sự kiện UserPromptSubmit, hệ thống tự động chèn 3 loại ngữ cảnh trong vòng dưới 1ms.
- G1: dòng thời gian quyết định dựa trên
git log(vì sao hôm qua lại đưa ra quyết định đó) - G2: tìm kiếm mã/tài liệu bằng BM25 (tự động chèn các tệp liên quan)
- CM: kho lưu trữ hội thoại trước đây (SQLite FTS5 + vector tùy chọn)
Số liệu đo thực tế:
- Độ chính xác truy hồi bộ nhớ: 0.880 [0.762, 0.944] (MAB N=50, Wilson CI)
- Mốc cơ sở (không dùng): 0.00
- Tỷ lệ sử dụng trên thực tế với hơn 10.000 lượt hội thoại: 39.6%
Không gọi LLM. Không dùng đám mây. Hoàn toàn cục bộ.
Cài đặt:
pip install ctx-retriever && ctx-install
hoặc trong Claude Code: /plugin install ctx@jaytoone
9 bình luận
Cài bằng
/pluginthì hiện ra như thế này nhé⎿ Không tìm thấy Marketplace "jaytoone"
Tôi thấy cách tiếp cận này rất thú vị. Ý tưởng định tuyến theo phân loại trigger có vẻ là một ý tưởng rất hay.
Có một điểm tôi tò mò: hình như tokenizer của lớp BM25 không được ghi rõ trong README, vậy hướng xử lý tiếng Hàn của bạn là như thế nào? Nếu dùng tokenizer mặc định theo khoảng trắng thì
"검색하다"/"검색하는"sẽ trở thành các token riêng biệt, nên recall khi tìm kiếm chú thích tiếng Hàn và docstring có lẽ sẽ giảm khá nhiều.Dù có fallback
multilingual-e5-small, tôi vẫn tò mò về kế hoạch xử lý tiếng Hàn (bao gồm cả CJK) ngay trong chính lớp BM25. (Tôi cũng từng gặp vấn đề với tìm kiếm CJK khi làm ứng dụng wiki LLM tên là seCall, và đã giải quyết bằng cách gắn Lindera ko-dic + Kiwi-rs; nhưng vì CTX có cấu trúc định tuyến trigger nên có vẻ sẽ có thể tiếp cận theo hướng khác.)Bạn đã chỉ ra rất chính xác. Hiện tại
tokenize()của lớp BM25 tách theo khoảng trắng + dấu câu rồi tiếp tục phân rã ký tự Hangul/CJK ở mức từng ký tự riêng lẻ.'검색하다'→['검','색','하','다']+ token toàn bộ'검색하다'. Có thể khớp từng phần, nhưng đúng là đơn vị nghĩa ở mức hình vị bị phá vỡ.Chúng tôi đang xem việc tích hợp Kiwi/Lindera là ứng viên cho bước tiếp theo. CTX phát hiện ngôn ngữ của truy vấn trước khi định tuyến trigger, nên nhánh phát hiện tiếng Hàn → bộ phân tích hình thái có vẻ sẽ được đưa vào tương đối gọn gàng.
Nghe nói ở seCall bạn đã giải quyết bằng tổ hợp Lindera ko-dic + Kiwi-rs, khá thú vị đấy. Nếu được, bạn có thể chia sẻ cách bạn xử lý văn bản trộn CJK (tiếng Hàn + chú thích mã tiếng Anh) không?
Cập nhật v0.3.19 — tự động gửi khi kết thúc phiên:
Thay đổi lớn nhất: giờ đây sau khi
ctx-install, chỉ cần sử dụng bình thường mà không cần bất kỳ lệnh nào thì khi kết thúc phiên, thống kê sẽ tự động được gửi đến Turso.Các trường được thêm trong schema v1.7:
project_type_id: fingerprint tech stack (python_ml/nextjs_reactv.v.) — cốt lõi để cải thiện cross-userctx_version: theo dõi các cải thiện theo từng phiên bảnutility_by_qtype: đo lường theo phiên mức chênh lệch giữa KEYWORD 16% và SEMANTIC 42%Opt-out: tạo file
~/.claude/ctx-telemetry-revokeđể dừng gửiĐã cập nhật lên v0.3.16 và bổ sung bản demo trực tiếp:
Bảng điều khiển trực tiếp (HF Space): https://be2jay-ctx-dashboard-demo.hf.space
Các thay đổi chính (v0.3.16):
ctx-installĐo lường thực tế về tỷ lệ sử dụng (n=1054 phiên):
Thông báo cập nhật (v0.3.13):
Ưu tiên phương thức cài đặt:
[Khuyến nghị] Plugin Claude Code (bước 1):
/plugin install ctx@jaytoone
[Thay thế] pip:
pip install ctx-retriever && ctx-install
Các thay đổi trong v0.3.13: venv cô lập cho vec-daemon (ngăn xung đột numpy/ABI), BGE reranker bật theo kiểu opt-in (CTX_BGE_ENABLE=1)
Video hoạt động của dashboard (39 giây): https://drive.google.com/file/d/…
Chi tiết: https://dev.to/jaewon_jang_d63fddcf69ac2/…
Cập nhật v0.3.28 (2026-05-20): đạt 6 ⭐ trên GitHub, 2.726 lượt tải mỗi tháng trên PyPI. Trong bản phát hành này, tăng cường tính minh bạch về quyền riêng tư — thêm
PRIVACY.md(chứng minh không thể truy vết ngược hash, cơ sở theo GDPR/CCPA/PIPA), thông báo telemetry một lần khi chạy lần đầu, thêm lệnhctx-telemetry disable/enable. Người dùng phiên bản cũ (v0.3.25 trở xuống) được khuyến nghịpip install --upgrade ctx-retriever.Cập nhật v0.3.27: giờ đây chỉ với một dòng
pip install ctx-retriever, hook của Claude Code sẽ được kết nối tự động (không cần chạy riêng ctx-install). Về mặt nội bộ, tệp.pthtrong site-packages sẽ tự động cài hook ở lần chạy Python đầu tiên, đồng thời hook SessionStart + hàng đợi thử lại đã được bổ sung, giúp độ ổn định thu thập dữ liệu cải thiện từ ~70% lên ~93%. Có thể cài trực tiếp phiên bản v0.3.27 từ PyPI.