Lore (rac-core): Khi AI Mã Hóa Gặp Gỡ Quyết Định Đội Ngũ – Hiệu Quả Hay Hạn Chế? 🤔🤖
Trong bối cảnh phát triển công nghệ nhanh chóng, các tác nhân AI mã hóa như Claude Code hay Cursor đang ngày càng trở nên phổ biến. Tuy nhiên, một vấn đề nhức nhối mà nhiều nhà phát triển gặp phải là: AI thường xuyên viết lại, vi phạm hoặc tái tạo các quyết định sản phẩm và kỹ thuật mà đội ngũ đã thống nhất hoặc loại bỏ. Chúng ta đã dành thời gian để đưa ra các quy tắc và hướng đi, vậy tại sao AI lại bỏ qua chúng?
Lore (rac-core), một công cụ mã nguồn mở, ra đời để giải quyết chính vấn đề này. Dựa trên triết lý Yêu cầu dưới dạng Mã (Requirements as Code – RAC), Lore lưu trữ các yêu cầu, quyết định, thiết kế và lộ trình của đội ngũ dưới dạng Markdown có kiểu dữ liệu (typed Markdown) ngay trong kho lưu trữ Git của bạn. Sau đó, nó phục vụ nguồn kiến thức này cho các tác nhân AI thông qua Giao thức Ngữ cảnh Mô hình (Model Context Protocol – MCP), đảm bảo AI trích dẫn và tuân thủ các quyết định đã có, thay vì đi chệch hướng hay lặp lại các phương pháp đã bị loại trừ. 💡
Lore Là Gì và Tại Sao Nó Quan Trọng?
Các tác nhân AI mã hóa hiện đại thường coi kiến thức sản phẩm như mã nguồn tạm thời và thiếu ngữ cảnh về các quy tắc bền vững của đội ngũ. Điều này dẫn đến tình trạng lãng phí thời gian và nguồn lực khi AI phải học lại hoặc đi ngược lại những gì đã được thống nhất.
Lore khắc phục vấn đề này bằng cách biểu diễn các yêu cầu sản phẩm, hồ sơ quyết định kiến trúc (ADR) và lộ trình dưới dạng Markdown có kiểu dữ liệu trực tiếp trong kho Git. Các tài liệu này được xác thực tại thời điểm commit/CI, sau đó được cung cấp cho AI qua một máy chủ MCP chỉ đọc. Điều này cho phép các tác nhân AI:
1. Truy vấn các quyết định của đội ngũ một cách xác định. 🎯 2. Tham chiếu các yêu cầu và ADR hiện có theo ID. 3. Ngừng lặp lại sai lầm và ngừng viết mã vi phạm quy tắc dự án.
Lore Hoạt Động Như Thế Nào?
* Markdown có kiểu dữ liệu, ngay trong kho lưu trữ: Mọi tạo phẩm (ví dụ: yêu cầu, ADR, thiết kế) đều được viết dưới dạng tệp Markdown thuần túy. Lore phân loại và xác thực chúng dựa trên một lược đồ nghiêm ngặt (ví dụ: kiểm tra xem một yêu cầu có bao gồm các tiêu đề như Vấn đề, Yêu cầu, Chỉ số thành công, Rủi ro và Giả định hay không). * Không có AI trong Lõi truy xuất: Khác với nhiều công cụ RAG, việc truy xuất của Lore hoàn toàn có tính xác định và có thể tái tạo. Cùng một trạng thái kho lưu trữ và truy vấn sẽ luôn trả về cùng một kết quả. Lore cung cấp dữ kiện; tác nhân AI thực hiện việc suy luận. 🧠 * Chỉ đọc khi phục vụ: Máy chủ MCP không thể ghi hoặc sửa đổi kho lưu trữ của bạn. Nó chỉ cung cấp bốn công cụ chỉ đọc cho tác nhân: * get_artifact * search_artifacts * get_related * get_summary * Quy trình làm việc của tác nhân: Khi được hỏi một câu như “Tôi có nên thêm tính năng xóa cứng vào mô hình người dùng không?”, tác nhân sẽ truy vấn Lore, định vị quyết định liên quan (ví dụ: một ADR về xóa mềm), trích dẫn nó theo ID và đề xuất một thay đổi tuân thủ.
Bắt Đầu & Cài Đặt Nhanh
Lore yêu cầu Python 3.11+ và có thể cài đặt dễ dàng qua pip hoặc uv:
bash pip install rac-core # Hoặc uv tool install requirements-as-code
Để thiết lập dự án, chỉ cần chạy rac quickstart từ thư mục gốc của kho lưu trữ. Sau đó, bạn có thể sử dụng các lệnh chính như rac validate <path>, rac inspect <path> và rac improve <path> để quản lý và cải thiện các tạo phẩm kiến thức của mình. 🛠️
Lore/RAC so với Phát triển theo Đặc tả (SDD)
Trong khi các công cụ Phát triển theo Đặc tả (SDD) như GitHub Spec Kit hay OpenSpec quản lý chu trình thay đổi tạm thời (specs, kế hoạch, tác vụ được tạo cho mỗi tính năng và được lưu trữ sau khi hoàn thành), Lore/RAC tập trung vào việc quản lý các yêu cầu bền vững – tức là các tài liệu tồn tại lâu dài, được kiểm soát phiên bản và quản lý trên nhiều thay đổi. Lore có thể dễ dàng kết hợp với các công cụ SDD để xử lý cả kiến thức dự án vĩnh viễn và quy trình làm việc thay đổi tạm thời.
| Khía cạnh | Lore / RAC | GitHub Spec Kit | OpenSpec | | :--- | :--- | :--- | :--- | | Sự bền vững của Yêu cầu | Tạo phẩm tồn tại lâu dài (yêu cầu, quyết định, thiết kế, lộ trình) tồn tại qua các thay đổi. | Đặc tả, kế hoạch và tác vụ được tạo cho mỗi tính năng dưới specs/<feature>/. | Các thư mục thay đổi được lưu trữ khi hoàn thành dưới openspec/changes/archive/. | | Quản lý thay đổi | Không có (kết hợp RAC với công cụ SDD). | Quy trình làm việc lệnh gạch chéo: chỉ định, làm rõ, lập kế hoạch, tác vụ, triển khai. | Quy trình làm việc lệnh gạch chéo: đề xuất, áp dụng, lưu trữ. | | Khả năng truy vết | Các liên kết Related có kiểu dữ liệu giữa các tạo phẩm; được xác thực trong CI qua rac relationships --validate. | /speckit.analyze chạy phân tích nhất quán và mức độ bao phủ giữa các tạo phẩm. | openspec validate kiểm tra các thay đổi và đặc tả về các vấn đề cấu trúc. |
Lore/RAC so với Định dạng Kiến thức Mở (OKF)
Tiêu chuẩn OKF của Google quy định cách lưu trữ kiến thức trong Markdown với front matter YAML. Tuy nhiên, OKF có tính tùy ý cao ở thời điểm đọc, cho phép các liên kết bị hỏng và thiếu trường. Lore/RAC lại thực thi xác thực nghiêm ngặt tại thời điểm ghi (write-time validation) trong CI để ngăn chặn các liên kết bị hỏng hoặc các quyết định không nhất quán bị hợp nhất vào nhánh chính. Nó đóng vai trò như một người gác cổng của kiến thức đội ngũ, đảm bảo tính toàn vẹn tham chiếu và tính nhất quán trạng thái. 🔒
Niềm tin, Bảo mật & Hệ thống đo từ xa
* Chỉ đọc nghiêm ngặt: Đã được kiểm chứng bằng các kiểm thử đơn vị mạnh mẽ. * Tự thử nghiệm (Self-Dogfooding): Chính corpus kế hoạch và kiến trúc của Lore (dưới rac/) cũng được quản lý và xác thực bởi RAC trong CI. * Đầu ra có tính xác định: Các kiểm thử vàng (golden tests) xác định đầu ra CLI và MCP. * Hệ thống đo từ xa lựa chọn tham gia kép: Ghi lại cục bộ yêu cầu cờ --telemetry rõ ràng và không bao giờ bao gồm đối số hoặc nội dung kho lưu trữ. Chia sẻ từ xa yêu cầu sự đồng ý rõ ràng (rac telemetry on hoặc trả lời trong quá trình rac init), chỉ gửi các ping hàng ngày ẩn danh mà không có dữ liệu nhạy cảm nào. 🛡️
Với Lore, các đội ngũ phát triển có thể hy vọng vào một tương lai nơi các tác nhân AI thực sự là những trợ lý thông minh, tôn trọng và tuân thủ các quyết định đã được dày công xây dựng. Liệu đây có phải là bước đột phá chúng ta đang chờ đợi để kiểm soát tốt hơn các trợ lý AI trong quy trình phát triển? Hãy cùng Kalera News theo dõi sát sao! 🚀