Hôm nay mình sẽ hướng dẫn anh em cài caveman bằng một lệnh, bật cách trả lời ngắn và gỡ skill khi cần.
Mình soạn hướng dẫn theo tài liệu chính thức được đăng trong repo, tức thư mục chứa code cùng phần chỉ dẫn của công cụ. Anh em sẽ thấy riêng phần chạy thử dựa trên log được cung cấp.
Mình dùng chữ skill để chỉ bộ hướng dẫn mà agent đọc trước khi trả lời. Anh em có thể hiểu agent là công cụ AI đang giúp mình làm việc với code, còn skill hướng dẫn công cụ ấy nên diễn đạt câu trả lời theo cách nào.
Bước một: Cài caveman bằng skill
Mình chọn cài riêng skill để anh em bắt đầu bằng việc rút gọn câu trả lời. Tài liệu còn đưa cách cài thêm các chức năng khác, nên anh em cần phân biệt bộ cài đầy đủ với phần hướng dẫn diễn đạt mà mình chọn ở đây.

Anh em mở terminal (cửa sổ gõ lệnh trên máy), rồi chạy nguyên lệnh ở dưới.
npx skills add JuliusBrussee/caveman -gSkill này chỉ làm agent trả lời ngắn lại, anh em chưa cài phần xử lý nội dung đọc vào. Việc rút gọn log, JSON, CSV mà agent đọc thuộc chức năng khác trong bộ cài đầy đủ, mình không cài ở đây.
Câu trả lời ngắn hơn chưa chắc là cả phiên chat tốn ít token hơn, vì agent còn tốn token để đọc nữa. Token là đơn vị tính lượng nội dung mà model đọc hoặc viết.
Bước hai: Bật skill trong phiên chat
Anh em mở lại agent, hỏi một câu bất kỳ rồi xem câu trả lời có đi thẳng vào việc, không chào hỏi dài dòng không. Nếu skill chưa tự bật sau khi cài, tài liệu bảo anh em nhập /caveman ngay trong chỗ đang trò chuyện với agent, chứ đừng nhập vào terminal vừa dùng.

Theo tài liệu, agent sẽ đưa câu trả lời lên trước, khỏi chào hỏi dài dòng. Code cần được giữ nguyên. Anh em cũng cần đối chiếu lệnh và thông báo lỗi, vì tài liệu yêu cầu giữ nguyên từng ký tự của những phần này khi agent đổi cách diễn đạt.
Tài liệu lấy ví dụ một câu trả lời 63 token rút còn 20 token, vẫn chỉ ra object mới và cách dùng useMemo. Anh em có thể nhìn cách viết này để kiểm tra agent đã đổi giọng hay chưa.
Mình luôn xem lệnh và thông báo lỗi có còn nguyên không trước, rồi mới xem câu trả lời ngắn bao nhiêu. Tài liệu còn yêu cầu giữ lại những từ phủ định và từ giới hạn, vì bỏ chúng có thể đổi nghĩa lời hướng dẫn dù code vẫn giống hệt.
Bước ba: Đọc cả phần bị lược
Anh em có thể hiểu prompt là yêu cầu gửi cho model để nó tạo câu trả lời.
Anh em chép prompt này cho agent: Giải thích vì sao component con bọc React.memo vẫn render lại khi mình truyền style={{color:'red'}}. Hãy trả lời hai lần, một lần bình thường, một lần lược từ nhưng giữ nguyên tên hàm và code. Cuối cùng, hãy cho biết bản ngắn bỏ mất ý nào để mình đặt hai bản cạnh nhau và so.
Mình sẽ đọc lại nguyên nhân, việc cần làm và điều kiện áp dụng trong hai bản, nhất là phần giải thích giúp người chưa biết code hiểu vì sao cách sửa có tác dụng.
Anh em cũng nên đối chiếu trực tiếp code và lệnh giữa các bản. Nếu phần giải thích bị lược làm hướng dẫn khó hiểu, anh em cứ yêu cầu agent nói lại bằng câu đầy đủ trước khi quyết định làm theo cách sửa được đưa ra.
Ít chữ chưa chắc rẻ hơn. Tài liệu ghi khi công cụ tính phí theo lượt yêu cầu, câu trả lời ngắn hơn có thể không làm chi phí giảm, nên anh em cần nhìn đúng cách đang trả tiền.
Bước bốn: Dừng hoặc gỡ khi cần
Khi cần đọc kỹ, anh em có thể dừng cách trả lời ngắn. Tài liệu hướng dẫn nhắn stop caveman trong phiên chat để trở lại cách giải thích bình thường, nên mình sẽ chọn thao tác này nếu chỉ đang vướng một vấn đề.
Anh em gõ /caveman status để xem skill đang ở chế độ nào, hoặc gõ /caveman off để tắt cách trả lời ngắn.
Nếu muốn bỏ hẳn skill, anh em chạy nguyên lệnh gỡ ở dưới.
npx skills remove JuliusBrussee/caveman -gLệnh này chỉ gỡ đúng cái skill mình cài ở bước một thôi nhé anh em. Nếu anh em cài bằng bộ đầy đủ thì đừng chạy lệnh này, vì nó chỉ gỡ phần skill.
Mình đã chạy thử yêu cầu rút gọn
Mình đã chạy thử yêu cầu rút gọn với một lỗi render lại của component React. Mình gửi prompt cho Claude Sonnet qua Claude Code, yêu cầu giải thích bình thường rồi lược từ nhưng giữ chính xác tên hàm và code, không kèm file hay công cụ nào.
Log ghi Claude Sonnet trả lời sau 22,3 giây cho prompt mình gửi. Toàn bộ câu trả lời của Claude Sonnet dài 402 chữ, bao gồm phần giải thích theo các cách diễn đạt và phần model tự đếm từ để so sánh kết quả.
Mình hỏi vì sao component con cứ render lại dù dữ liệu không đổi. Trong câu hỏi đó, component cha truyền xuống một object mới có nội dung giữ nguyên, và anh em có thể hiểu object là nhóm dữ liệu được gom lại trong code.
Theo phần model tự đối chiếu, bản ngắn vẫn giữ nguyên nhân cùng các cách sửa đã nêu. Tuy vậy, nó bỏ phần giải thích vì sao đưa object ra ngoài giúp tránh tạo mới mỗi lần, tức phần giúp người chưa biết code hiểu lý do của thao tác.
Mình chưa có log cài skill, nên phần cài đặt ở trên vẫn là hướng dẫn mình soạn theo tài liệu. Phần đếm từ cũng do model tự đưa ra, nên mình chỉ dùng lần chạy này để đối chiếu cách diễn đạt, chưa suy ra mức giảm token cho cả phiên chat.
Lỗi hay gặp
Nếu câu trả lời chưa đổi, anh em thử bật skill trong phiên chat. Tài liệu có nhắc trường hợp skill chưa tự bắt đầu sau khi cài, nên đây là chỗ mình sẽ kiểm tra trước khi tìm nguyên nhân ở phần khác.
Nếu lệnh cài báo lỗi, tài liệu gợi ý nhờ agent đọc phần hướng dẫn cài đặt trong repo rồi xử lý. Mình chưa có log xử lý lỗi cài đặt để kiểm tra cách này.
Nếu câu trả lời ngắn đến mức khó hiểu, anh em cứ yêu cầu giải thích đầy đủ hoặc dừng skill, vì tài liệu ghi người đang bối rối cần câu đầy đủ. Với mình, phần đáng giữ nhất sau khi rút gọn là lý do giúp anh em biết lúc nào nên áp dụng cách sửa.



