Dựa trên một trường hợp thực tế về lập trình tự động với Claude Code, chia sẻ một số kỹ thuật viết gợi ý

Bài viết này, thông qua một trường hợp thực tế, sẽ chia sẻ với mọi người một ví dụ sử dụng thực tế của Claude Code. Trước khi chia sẻ, hãy cùng làm một khảo sát nhỏ
Yêu cầu ban đầu: Một người dùng trả phí cao cấp muốn tôi thêm thời gian chỉnh sửa bài viết vào trong bài viết
Thoạt nhìn, yêu cầu này có vẻ khó thực hiện. Bởi vì các bài viết trên website của tôi không được lưu trữ trong cơ sở dữ liệu, mà đều được xây dựng bằng SSG của next.js. Nó hoàn toàn không có thời gian cập nhật.
Một kỹ thuật ở đây là: Khi giải quyết vấn đề, chúng ta không nên đưa trực tiếp yêu cầu gốc cho Claude Code, vì những lý do sau
1. Yêu cầu gốc tương đối mơ hồ, nó có thể hiểu sai, nếu một khi nó hiểu sai, cuối cùng mặc dù có thêm thời gian, nhưng thời gian đó chưa chắc đã đáng tin cậy
2. Token của Claude Code tiêu hao thực sự rất đắt, do đó, yêu cầu mơ hồ có thể dẫn đến việc tiêu hao một lượng lớn Token một cách vô nghĩa
Vì vậy, chúng ta cần phân tích yêu cầu gốc một lần, tôi đã tham khảo ý kiến trong deepseek trước, deepseek đã đưa cho tôi hai giải pháp
1. Thời gian xây dựng tệp, mỗi lần build, chúng ta cần lấy thời gian xây dựng của tệp, nhưng chiến lược đóng gói của turbopack hơi khác một chút, mỗi lần xây dựng, giá trị hash của tệp đều thay đổi, thời gian xây dựng này có thể không đáng tin cậy lắm
2. Thời gian commit git, tôi nghĩ, cái này nên khá đáng tin cậy
Sau khi có hướng giải quyết đại khái, tôi đã có gợi ý đơn giản này: Biên dịch thời gian commit của git vào phần đầu của mỗi bài viết .mdx
Claude Code vẫn khá đáng tin cậy, nếu gợi ý chính xác, nhìn chung không có vấn đề gì, cứ thế mà thực hiện
Sau khi tiêu hao 7 đô la hạn mức của tôi, mất khoảng 20 phút, cuối cùng đã thực hiện thành công.
Không có gì bất ngờ thì lại có bất ngờ, nó đã bỏ qua việc thay đổi 171 tệp.
Một điểm rất rắc rối ở đây là, thực tế những tệp bị bỏ qua ở đây, chỉ là truyền thêm một tham số pass, những cái khác hoàn toàn giống nhau
<PostLayout pass>...Nhưng nó không linh hoạt, định nghĩa tham số bổ sung được truyền thêm này thành một component tùy chỉnh hoàn toàn khác. Sau đó bỏ qua không xử lý nữa ~ ~
import Layout from 'components/post-layout';
import { getGitFileInfo } from '@/utils/git-info';
export default function Article({ children }: any) {
const gitInfo = getGitFileInfo('src/app/đường dẫn của bạn/page.mdx');
return (
{children}
);
}Nhưng tình hình thực tế là, kết quả tôi cần là như thế này, kết quả chạy hoàn toàn giống nhau.
import MdxLayout from 'components/mdx-layout';
export default function Article({ children }: any) {
return (
{children}
);
}Sau đó lúc này, tôi đã vấp phải một cái bẫy trong gợi ý
Tôi lại nhập gợi ý: Sử dụng cách tương tự như trên để tái cấu trúc 171 tệp bị bỏ qua
Cách diễn đạt của tôi, nghĩ kỹ lại thì nó có một chút mơ hồ. Bởi vì Claude Code đã đưa cho tôi một phương án đề xuất, nhưng tôi không chấp nhận phương án đó, ý của tôi là, sử dụng phương án đã sửa đổi hàng trăm tệp như trước để sửa các tệp bị bỏ qua, nhưng trong quá trình thực hiện, nó hiểu thành: phương án đề xuất mà nó đã đưa cho tôi ở trên
Sự mơ hồ này đã trực tiếp dẫn đến việc nó thực hiện theo phương án tôi không muốn trong 20 phút, giữa chừng còn xuất hiện 2 lần tự sửa lỗi, cứ thế mà nuốt chửng token của tôi, hai cách hiểu mơ hồ bắt đầu đánh nhau dẫn đến lỗi.
Cuối cùng tôi lại phải từ bỏ lần thực hiện này, làm rõ lại ngữ nghĩa của mình.
Tổng kết
1. Trong gợi ý, tốt nhất nên chứa giải pháp tương đối ổn định và chính xác, để AI càng ít suy nghĩ càng tốt, như vậy có thể giảm tỷ lệ ảo giác.
2. Gợi ý về yêu cầu tuyệt đối không được có sự mơ hồ, có mơ hồ dễ dẫn đến sai sót, mặc dù Claude Code cuối cùng có thể sửa chữa, nhưng như vậy sẽ gây tiêu hao một lượng lớn token. Và bởi vì LLM dựa trên cơ chế dự đoán để tạo ra kết quả, việc hiểu sai, mơ hồ từ sớm, đều sẽ dẫn đến mỗi bước sau đi càng ngày càng xa theo hướng sai, và nó còn sẽ cố gắng tự nhất quán logic, tạo ra một số thứ không tồn tại, càng viết vấn đề càng lớn, cũng tăng độ khó kiểm tra cho nhà phát triển, nếu bạn bị ảo giác của nó lừa qua, thì sẽ gây ra hậu quả nghiêm trọng
3. Sức ràng buộc của ngôn ngữ tự nhiên không chính xác bằng mã, trong gợi ý, chứa tên tệp, biến mã, từ chuyên ngành mã, thuật ngữ chuyên môn, sẽ giảm thiểu đáng kể ảo giác của Claude Code

