Copilot memory tới JetBrains ngày 11/8: agent giờ giữ và gọi lại được thông tin hữu ích xuyên các phiên chat, nên bạn thôi phải giải thích lại dự án mỗi sáng.
Đó là cải tiến thật cho một nỗi phiền thật. Nó cũng lặng lẽ thay đổi kiểu hỏng của cả công cụ, và nửa sau này xứng đáng được nghĩ tới ngang với phần tiện lợi.
Bộ nhớ thay đổi gì trong chuyện sai
Một agent không trạng thái hiểu sai dự án của bạn thì hiểu sai đúng một lần, trong một cuộc trò chuyện, nơi bạn nhìn thấy nó xảy ra và sửa được.
Một agent có trạng thái sẽ ghi cái hiểu sai đó lại. Rồi nó áp dụng nhất quán, ở những đầu việc chẳng liên quan gì nhau, trong những phiên chẳng có gì bất thường — và bạn không bao giờ chứng kiến khoảnh khắc nó được ghi. Hành vi ấy trông giống model kém đi hơn là giống một dữ kiện lưu trữ bị sai.
Đây không phải lý lẽ chống lại bộ nhớ. Đây là lý lẽ để biết rằng "kiểm tra xem nó đang nghĩ mình biết gì" giờ là một bước gỡ lỗi, và để có khả năng xem lẫn xoá kho đó khi agent bắt đầu sai một cách tự tin theo kiểu bám theo bạn qua nhiều dự án.
Đáng nhớ
Ba nhóm thực sự đáng đồng tiền, và chúng có chung một đặc điểm: chúng ổn định, và sai về chúng thì phát hiện rất rẻ.
- Quy ước — codebase này đặt tên ra sao, chia module thế nào, xử lý lỗi kiểu gì. Ổn định hàng tháng, nhắc lại thì mệt, và sai thì thấy ngay
- Ràng buộc — phiên bản framework bạn bị ghim, cơ sở dữ liệu bạn không đổi được, trình duyệt bạn buộc phải hỗ trợ. Đây là dữ kiện, không phải phán đoán
- Sở thích về cách tương tác — bạn muốn xem kế hoạch trước khi xem diff, hay muốn có test kèm mọi thay đổi. Những thứ này thuộc về bạn và hiếm khi lỗi thời
Không đáng nhớ
Ba nhóm còn lại tốn nhiều hơn tiết kiệm, và hai trong số đó chính là lý do các đội bảo mật đặt câu hỏi về bộ nhớ.
- Mọi thứ bí mật. Thông tin đăng nhập, token, dữ liệu khách hàng, URL nội bộ — kho bộ nhớ là thêm một nơi chúng cư trú, và bài của GitHub không nói kho đó nằm ở đâu hay tồn tại bao lâu
- Mọi thứ đang chuyển động. Sprint hiện tại, nhánh bạn đang đứng, thứ bạn gỡ lỗi hôm qua. Trạng thái tạm thời mà bị ghi nhớ còn tệ hơn không có trạng thái, vì nó lỗi thời một cách tự tin
- Phán đoán về con người. "Người rà soát này khó tính", "đội kia chậm" — một agent nhắc lại điều đó sau sáu tháng là một vấn đề không có mặt lợi nào
Những câu hỏi chưa có lời đáp
Thông báo của GitHub nói bộ nhớ bật/tắt được trong cổng cài đặt Copilot. Nó không nói bộ nhớ lưu ở đâu, tồn tại bao lâu, hay phạm vi là gì — theo người dùng, theo repository, hay theo tổ chức.
Phạm vi là thứ quan trọng nhất với một đội. Bộ nhớ theo repository là ngữ cảnh dùng chung và phần lớn là chuyện tốt. Bộ nhớ theo người dùng mà đi xuyên giữa các repository chính là cách một dữ kiện từ codebase của khách hàng này xuất hiện khi bạn đang làm cho khách hàng khác.
Chừng nào điều đó chưa được ghi trong tài liệu, giả định an toàn cho ai làm nhiều dự án khách hàng hoặc nhiều codebase tách biệt là giả định thận trọng, và thực hành an toàn là đừng nói với agent bất cứ điều gì bạn không muốn nó nhắc lại nhầm phòng.
Trước khi bật cho cả đội
Bốn câu hỏi, không câu nào cần một quy trình chính thức — nhưng phải có ai đó trả lời được.
- Người dùng có xem được những gì đã bị ghi nhớ về công việc của họ, và xoá được không?
- Phạm vi tới đâu — bộ nhớ có đi xuyên giữa các repository, và giữa các khách hàng không?
- Chuyện gì xảy ra khi có người nghỉ việc? Bộ nhớ của họ có thể sống dai hơn quyền truy cập của họ
- Ai sẽ nhận ra khi nó sai? Một dữ kiện sai được lưu lại tạo ra sự suy giảm chậm và lan toả, mà mặc định thì không ai được giao việc để ý điều đó
Nhớ cắt tỉa
Bộ nhớ mục theo một kiểu rất cụ thể: những quy ước nó học hồi tháng Ba đang mô tả một codebase đã được refactor từ lâu, và nó vẫn lễ phép áp dụng chúng một cách sai bét.
Hãy tạo thói quen rà lại những gì agent đã giữ sau mỗi thay đổi kiến trúc đáng kể — một lần migration, một lần nâng cấp framework, một lần sắp xếp lại module. Đó chính là lúc quy ước được lưu trở thành hư cấu được lưu.
Và nếu agent bắt đầu sai theo kiểu bám theo bạn qua những đầu việc chẳng liên quan, hãy xoá bộ nhớ trước khi đổ lỗi cho model. Đó là phép thử rẻ nhất hiện có và nó đúng đủ thường xuyên để đáng thử trước tiên.