Lybrary, một bộ nhớ mã nhận biết AST (cây cú pháp trừu tượng) bền vững dành cho các tác nhân AI (cài đặt máy chủ MCP pip).
URL bài viết: https://github.com/vibhu-dixit/lybrary URL bình luận: https://news.ycombinator.com/item?id=49219016 Điểm: 2 Bình luận: 0
🧠 lybrary
Bộ nhớ mã nhận biết cấu trúc động dành cho các tác nhân mã hóa AI.
pip install lybrary
Vấn đề
Mỗi khi một tác nhân AI bắt đầu một phiên làm việc, tác nhân đó sẽ đọc lại toàn bộ cơ sở mã của bạn từ đầu.
tác nhân: để tôi tìm kiếm logic xác thực...
tác nhân: đang đọc src/auth/middleware.py...
tác nhân: đang đọc src/auth/jwt.py...
tác nhân: đang đọc src/auth/session.py...
tác nhân: đang đọc src/utils/crypto.py...
↳ 4.000 token bị tiêu tốn trước khi viết một dòng mã nào.
Trên một cơ sở mã lớn, điều này xảy ra hàng chục lần mỗi phiên. Token bị lãng phí. Ngữ cảnh bị lấp đầy. Các tệp tương tự được đọc đi đọc lại.
Giải pháp
lybrary cung cấp cho tác nhân của bạn một bộ nhớ liên tục mà tác nhân có thể truy vấn thay vì đọc các tệp.
tác nhân: memory_query("luồng xác thực")
↳ 3 đoạn được trả về. 180 token. Hoàn tất.
Nó lập chỉ mục kho lưu trữ của bạn bằng cách sử dụng các ranh giới Cây cú pháp trừu tượng (AST) thực tế, tự động giữ cho chỉ mục luôn mới và hiển thị nó dưới dạng máy chủ Giao thức cộng tác đa tác nhân (MCP) mà bất kỳ Môi trường phát triển tích hợp (IDE) AI nào cũng kết nối nguyên bản.
✨ Tính năng
🌳 Phân đoạn nhận biết AST
tree-sitter phân tích mã của bạn — không bao giờ chia một hàm làm đôi
⚡ Daemon chạy nền
theo dõi các thay đổi tệp, chỉ lập chỉ mục lại những gì đã thay đổi
🔍 Tìm kiếm ngữ nghĩa
tìm kiếm vector với đóng gói ngân sách token
🔌 Máy chủ MCP
hoạt động với Kiro, Cursor, Claude Desktop, Windsurf ngay lập tức
📦 Hoàn toàn cục bộ
không có đám mây, không có khóa API, nhúng chạy trên máy của bạn
🐍 Cài đặt pip thuần túy
Python 3.11–3.14, không cần PyTorch, không cần biên dịch
Các ngôn ngữ được hỗ trợ: Python · JavaScript · TypeScript · TSX · Go · Rust · Java · C · C++
🚀 Bắt đầu nhanh
pip install lybrary
cd /đường/dẫn/đến/kho/lưu/trữ/của/bạn
lybrary init
lybrary start # xây dựng chỉ mục + khởi động daemon chạy nền
lybrary query "luồng xác thực"
Sau khi lybrary start, daemon tiếp tục chạy ngay cả khi bạn đóng thiết bị đầu cuối. Các thay đổi tệp được tự động nhận diện — chỉ các đoạn bị ảnh hưởng mới được lập chỉ mục lại.
🔌 Tích hợp MCP
Thêm vào cấu hình MCP của bạn (Kiro, Cursor, Claude Desktop, Windsurf):
{
"mcpServers": {
"lybrary": {
"command": "lybrary",
"args": ["mcp"]
}
}
}
Tác nhân của bạn hiện có ba công cụ:
Công cụ
Chức năng
memory_query
Tìm kiếm ngữ nghĩa — trả về các đoạn được xếp hạng với mã nguồn đầy đủ, đường dẫn tệp và số dòng
memory_status
Báo cáo trạng thái daemon, số lượng đoạn và các tệp được theo dõi
memory_update
Kích hoạt lập chỉ mục tăng dần hoặc đầy đủ, tùy chọn giới hạn trong các tệp cụ thể
Các tác nhân nên gọi memory_query trước khi đọc bất kỳ tệp nào.
Điều này thay thế việc đọc nhiều tệp bằng một truy vấn mục tiêu duy nhất — cắt giảm mức sử dụng token từ 80–90% trên các cơ sở mã lớn.
🖥️ Tham chiếu CLI
Lệnh
Mô tả
lybrary init
Tạo .lybrary/ và cấu hình mặc định
lybrary start
Lập chỉ mục (nếu cần) + khởi động daemon liên tục
lybrary stop
Dừng daemon
lybrary status
Hiển thị trạng thái đang chạy, số lượng đoạn, các tệp được theo dõi
lybrary index
Buộc (lập chỉ mục lại)
lybrary query
Tìm kiếm ngữ nghĩa trên bộ nhớ
lybrary logs
Xem / theo dõi nhật ký daemon
lybrary mcp
Khởi động máy chủ MCP (truyền tải stdio)
🏗️ Cách thức phân đoạn hoạt động
tệp của bạn
│
▼
trình phân tích cú pháp tree-sitter
│
▼
các nút định nghĩa AST ← hàm, lớp, phương thức, giao diện
│
├── class Foo ──────────► đoạn: toàn bộ thân lớp
│ ├── def bar ───────► đoạn: phương thức bar (cũng là đoạn riêng của nó)
│ └── def baz ───────► đoạn: phương thức baz (cũng là đoạn riêng của nó)
│
└── cấp độ mô-đun ────────► đoạn: import, hằng số, các câu lệnh cấp cao nhất
Mỗi đoạn nhận được một tiêu đề ngữ cảnh và được nhúng với MiniLM-L6-v2 thông qua ONNX Runtime — nhanh, cục bộ, không cần GPU.
🗂️ Kiến trúc
.lybrary/
├── config.toml # mô hình, kích thước đoạn, mẫu bỏ qua
├── index.db # SQLite: các đoạn + blob vector float32
├── file_hashes.json # bản đồ băm nội dung cho các cập nhật tăng dần
├── daemon.pid
└── daemon.log
Indexer — tree-sitter → các đoạn AST → nhúng fastembed / ONNX Runtime
Store — SQLite + numpy (độ tương đồng cosine thông qua tích vô hướng theo lô, không có cơ sở dữ liệu vector bên ngoài)
Daemon — bộ theo dõi tệp watchdog + debounce + phân đoạn/nhúng lại tăng dần
MCP — máy chủ FastMCP qua stdio
🗺️ Lộ trình
Bộ phân đoạn AST (đa ngôn ngữ, kiểu cAST)
Lập chỉ mục tăng dần thông qua băm nội dung
Daemon nền + bộ theo dõi tệp (Windows + Unix)
CLI (khởi tạo / bắt đầu / dừng / trạng thái / lập chỉ mục / truy vấn / nhật ký / mcp)
Máy chủ MCP (memory_query, memory_status, memory_update)
Mở rộng biểu đồ gọi/nhập
Tóm tắt tệp/gói phân cấp
Bộ nhớ quyết định xuyên phiên
Trợ giúp dịch vụ người dùng systemd / launchd
🤝 Đóng góp
Các vấn đề và PR đều được hoan nghênh. Chạy bộ kiểm thử với:
pip install -e ".[dev]"
pytest
📄 Giấy phép
MIT
Nguồn tin: Hacker News AI — Tác giả: vibhudixit_30. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.