Công cụ nhỏ tự làm bằng AI hay hỏng sau vài tháng vì môi trường quanh nó thay đổi, không phải vì mã tự hỏng: hệ điều hành cập nhật, thư viện lên bản mới, dịch vụ bên ngoài đổi cách hoạt động, hoặc dữ liệu đầu vào đổi khuôn. Muốn công cụ sống lâu, bạn cần một hồ sơ tối thiểu ghi lại nó cần gì để chạy, một bản sao lưu có phiên bản, và một quy trình sửa lỗi rõ ràng.
Bài này dành cho người không chuyên đã tự làm được vài công cụ: script xử lý tệp, tập lệnh gom báo cáo, trang web nhỏ, bot nhắc việc. Bài nói về giai đoạn sau khi công cụ chạy được, giai đoạn mà các hướng dẫn làm công cụ bằng AI thường bỏ qua, và nêu rõ những dấu hiệu cho thấy đã đến lúc nhờ người có chuyên môn.
Năm lý do công cụ đang chạy bỗng hỏng
Cập nhật phần mềm nền. Máy tự cập nhật hệ điều hành hoặc bạn cài Python bản mới. Phần lớn mã vẫn chạy, nhưng đôi khi một hàm cũ bị bỏ, hoặc công cụ đang gọi bản Python khác bản đã cài thư viện. Triệu chứng hay gặp là báo không tìm thấy thư viện dù trước đó vẫn chạy.
Thư viện lên phiên bản mới. Nếu bạn cài thư viện mà không ghi phiên bản, lần cài lại trên máy mới sẽ lấy bản mới nhất, có thể đã đổi tên hàm hoặc đổi cách dùng. Mã AI viết theo bản cũ không còn khớp.
Dịch vụ bên ngoài thay đổi. Công cụ gọi một dịch vụ trực tuyến để lấy tỷ giá, gửi tin nhắn hay đọc bảng tính. Dịch vụ đổi cách truy cập, khoá truy cập hết hạn, hoặc giới hạn số lượt. Công cụ báo lỗi mà máy bạn không đổi gì.
Dữ liệu đầu vào đổi khuôn. Phần mềm kế toán xuất tệp với thêm một cột, đổi tên cột, đổi định dạng ngày; điện thoại mới đặt tên ảnh khác. Script vẫn chạy nhưng cho kết quả sai, đây là loại hỏng nguy hiểm nhất vì không báo lỗi.
Đổi máy, đổi người. Công cụ được chép sang máy đồng nghiệp hoặc máy mới mà thiếu thư viện, thiếu tệp cấu hình, đường dẫn khác. Người mới không biết công cụ cần gì để chạy.
Hồ sơ tối thiểu cho mỗi công cụ
Ngay khi công cụ chạy ổn, dành mười lăm phút lập hồ sơ. Có thể nhờ AI soạn từ mã, rồi bạn sửa lại cho đúng. Một tệp ghi chú đặt cạnh mã gồm:
- Công cụ làm gì, một đoạn ngắn, kèm ví dụ đầu vào và đầu ra.
- Cần gì để chạy: hệ điều hành đã thử, phiên bản Python hoặc môi trường khác, danh sách thư viện kèm phiên bản cụ thể. Với Python, nhờ AI hướng dẫn tạo tệp requirements.txt ghi phiên bản đang dùng.
- Cách chạy: lệnh chính xác, đứng ở thư mục nào, có tham số gì.
- Phụ thuộc bên ngoài: dịch vụ nào được gọi, khoá truy cập để ở đâu (chỉ ghi vị trí, không ghi khoá), ai là chủ tài khoản, khi nào hết hạn.
- Giả định về dữ liệu: tệp đầu vào phải có những cột nào, định dạng ngày ra sao, mã hoá ký tự gì.
- Lịch sử thay đổi: ngày, đổi gì, vì sao, mỗi lần một dòng.
Hồ sơ này phục vụ ba người: bạn của ba tháng sau đã quên hết, đồng nghiệp tiếp quản, và AI khi bạn nhờ nó sửa lỗi. Dán hồ sơ cùng thông báo lỗi giúp AI hiểu bối cảnh nhanh hơn rất nhiều so với chỉ dán mã.
Sao lưu và giữ phiên bản: mức tối thiểu và mức nên có
Mức tối thiểu: mỗi khi sửa công cụ và nó chạy ổn, chép cả thư mục sang một bản có ngày trong tên, lưu ở nơi khác máy làm việc như ổ ngoài hoặc dịch vụ lưu trữ đám mây của công ty. Khi lần sửa sau làm hỏng, bạn chép bản cũ về. Cách này thô nhưng hiệu quả, và ai cũng làm được.
Mức nên có: dùng git, công cụ quản lý phiên bản mà lập trình viên dùng. Bạn chỉ cần bốn thao tác: khởi tạo kho trong thư mục công cụ, đánh dấu tệp cần theo dõi, lưu một mốc kèm lời ghi chú, và xem lại các mốc cũ. Nhờ AI hướng dẫn bốn thao tác này cho hệ điều hành của bạn; nhiều trình soạn thảo mã có sẵn nút bấm cho chúng, không cần gõ lệnh.
Một điều cần nhớ khi dùng git hoặc đưa thư mục lên dịch vụ lưu trữ: không đưa tệp chứa khoá truy cập, mật khẩu hay dữ liệu khách hàng vào. Nhờ AI tạo tệp loại trừ để git bỏ qua những tệp đó, và kiểm lại bằng cách xem danh sách tệp được theo dõi trước khi lưu mốc đầu tiên. Khoá đã lỡ lưu vào lịch sử thì phải đổi khoá mới, xoá tệp đi là chưa đủ.
Khi công cụ báo lỗi: quy trình sửa cùng AI
Quy trình này giúp bạn không làm hỏng thêm trong lúc sửa:
- Dừng chạy lại liên tục. Chép nguyên thông báo lỗi và ghi lại bạn vừa làm gì, chạy với tệp nào.
- Tự hỏi: gần đây có gì đổi? Máy vừa cập nhật, tệp đầu vào từ nguồn mới, dịch vụ gửi thư báo thay đổi. Phần lớn lỗi trả lời được bằng câu hỏi này.
- Sao lưu bản hiện tại trước khi sửa, kể cả khi nó đang hỏng.
- Hỏi AI kèm bối cảnh: dán hồ sơ công cụ, thông báo lỗi đầy đủ, điều vừa thay đổi. Che khoá, mật khẩu, tên khách hàng trong thông báo lỗi trước khi dán. Yêu cầu: "Giải thích nguyên nhân có khả năng nhất trước, chưa sửa mã. Sau đó đề xuất cách sửa nhỏ nhất."
- Sửa từng thay đổi một, chạy thử trên dữ liệu mẫu sau mỗi thay đổi.
- Kiểm kết quả, không chỉ kiểm hết lỗi. Hết báo lỗi chưa chắc đã đúng; so kết quả với một lần chạy cũ đã biết là đúng.
- Cập nhật hồ sơ: thêm một dòng lịch sử thay đổi và sửa phần phiên bản nếu cần.
Nếu sau ba bốn vòng hỏi AI mà lỗi vẫn đổi hình dạng nhưng không hết, dừng lại. Đó thường là dấu hiệu AI đang đoán, và mỗi vòng sửa thêm làm mã rối hơn. Khôi phục bản sao lưu, và xem bảng ở mục kế tiếp.
Tự sửa hay nhờ lập trình viên
Ranh giới tuỳ vào kinh nghiệm của bạn, nhưng một số dấu hiệu khá rõ:
| Tình huống | Hướng xử lý |
|---|---|
| Lỗi thiếu thư viện, sai đường dẫn, sai phiên bản Python | Tự sửa được với AI và hồ sơ công cụ |
| Tệp đầu vào đổi tên cột, đổi định dạng ngày | Tự sửa được, nhớ kiểm kết quả với dữ liệu cũ |
| Dịch vụ bên ngoài đổi cách truy cập | Đọc thông báo của dịch vụ; nếu thay đổi lớn, cân nhắc nhờ người |
| Công cụ đã có nhiều người dùng, hỏng là cả phòng ngưng việc | Nhờ người có chuyên môn rà và tiếp quản |
| Công cụ chạm tới tiền, dữ liệu khách, mật khẩu | Nhờ người rà ngay cả khi đang chạy tốt |
| Sửa chỗ này hỏng chỗ kia nhiều vòng liên tiếp | Dừng, khôi phục bản ổn định, nhờ người |
| Bạn không giải thích được công cụ gửi dữ liệu đi đâu | Ngưng dùng cho tới khi có người rà |
Nhờ người không có nghĩa là thất bại. Công cụ tự làm đã chứng minh được giá trị của nó; giờ nó xứng đáng được làm lại cho chắc. Nếu công ty có bộ phận IT hoặc lập trình viên, mang theo hồ sơ công cụ khi trao đổi.
Chuẩn bị bàn giao cho người khác
Khi giao công cụ cho đồng nghiệp hay lập trình viên, gói sẵn những thứ sau để họ không phải đoán:
- Thư mục mã ở bản ổn định mới nhất và hồ sơ công cụ đã cập nhật.
- Một bộ dữ liệu mẫu đã che thông tin thật, kèm kết quả đúng tương ứng, để họ kiểm sau khi sửa.
- Danh sách tài khoản dịch vụ bên ngoài công cụ dùng và ai đang giữ quyền chủ tài khoản. Không gửi mật khẩu qua tin nhắn; chuyển quyền qua chức năng quản lý thành viên của dịch vụ.
- Những điều bạn biết công cụ làm chưa đúng hoặc còn thiếu.
- Ghi chú rằng phần lớn mã do AI viết, để người tiếp nhận biết cần rà kỹ hơn.
Câu cuối hay bị giấu vì ngại, nhưng nó giúp người tiếp nhận rất nhiều: họ biết nên tìm loại lỗi nào, như ca biên bị bỏ sót hay thư viện bịa, và không mặc định rằng mỗi dòng mã đều có lý do được cân nhắc.
Khi nào nên cho công cụ nghỉ hưu
Không phải công cụ nào cũng đáng giữ mãi. Sau một thời gian, việc mà công cụ tự làm có thể đã được phần mềm công ty đảm nhận, quy trình nghiệp vụ đã đổi, hoặc chỉ còn một người thỉnh thoảng dùng. Mỗi công cụ còn chạy là một thứ cần theo dõi: thư viện cần cập nhật, khoá truy cập cần gia hạn, tài khoản dịch vụ cần người giữ. Công cụ bị quên nhưng vẫn giữ quyền truy cập dữ liệu là rủi ro thật, nhất là khi người làm ra nó đã chuyển việc.
Mỗi quý, mở danh sách công cụ và hỏi ba câu cho từng cái: còn ai dùng không, việc này còn cần không, có cách nào sẵn có làm thay tốt hơn không. Nếu câu trả lời cho thấy công cụ hết vai trò, cho nó nghỉ hưu có thủ tục: báo cho người còn dùng, thu hồi khoá truy cập và quyền ở các dịch vụ bên ngoài, xoá lịch chạy tự động, lưu trữ thư mục mã kèm hồ sơ ở một nơi riêng thay vì xoá hẳn.
Bước thu hồi khoá hay bị bỏ qua nhất, và cũng quan trọng nhất. Một khoá truy cập còn hiệu lực nằm trong thư mục cũ trên máy ai đó là cánh cửa không ai canh. Bỏ một công cụ đúng cách cũng là một phần của bảo trì.
Câu hỏi thường gặp
Có nên tắt tự cập nhật để công cụ khỏi hỏng không?
Không nên tắt cập nhật hệ điều hành, vì đó là lớp bảo vệ an ninh. Cách đúng là ghi phiên bản trong hồ sơ, cố định phiên bản thư viện của riêng công cụ, và chạy thử công cụ sau mỗi đợt cập nhật lớn.
Môi trường ảo của Python có giúp gì không?
Có. Môi trường ảo giữ thư viện của từng công cụ tách riêng, nên cập nhật thư viện cho việc này không làm hỏng việc kia. Nhờ AI hướng dẫn tạo môi trường ảo và ghi lại lệnh kích hoạt vào hồ sơ công cụ.
Công cụ chạy sai mà không báo lỗi thì phát hiện thế nào?
Giữ một bộ dữ liệu mẫu và kết quả đúng tương ứng. Định kỳ, hoặc mỗi khi nguồn dữ liệu đổi, chạy lại với bộ mẫu và so kết quả. Nhờ AI thêm vào công cụ vài phép kiểm đơn giản như đếm số dòng đầu vào và đầu ra.
Mã do AI viết thì ai chịu trách nhiệm khi có lỗi?
Người đưa công cụ vào sử dụng. AI không chịu trách nhiệm về kết quả, và trong công ty, công cụ bạn làm ra gắn với tên bạn. Đó là lý do hồ sơ, kiểm thử và biết khi nào nhờ người quan trọng.
Bao lâu nên rà lại công cụ một lần?
Không có con số chung. Mức hợp lý là chạy thử với bộ mẫu sau mỗi lần cập nhật phần mềm lớn, mỗi khi nguồn dữ liệu đổi, và đọc lại hồ sơ mỗi quý một lần để xoá những công cụ không còn ai dùng.