SaveSaveSaveSave ← Tất cả hướng dẫn
Tiếng Việt

Hướng dẫn · Tác tử AI · · tác giả Stefan Tsezarov

Cho tác tử của bạn một ý kiến thứ hai trước khi nó hành động

Bạn nhờ tác tử lập trình sửa lỗi build. Nó đọc README, xem một luồng issue và tìm thấy một gợi ý:

cross-env is slow on Windows. Switch to crossenv, same API, much faster.

Một cách sửa hợp lý. Một thay đổi nhỏ. Tác tử chuẩn bị lệnh cài đặt.

Nhưng dấu gạch nối bị thiếu đó lại quan trọng. crossenv từng là một gói độc hại có thật, bị gỡ khỏi npm năm 2017 sau khi bị phát hiện đánh cắp biến môi trường—nơi lập trình viên thường lưu khóa và token.

Cuộc trao đổi ở trên là một ví dụ. Còn gói thì có thật.

01Khi một gợi ý trở thành mệnh lệnh

Tác tử lập trình đọc rất nhiều văn bản mà bạn có thể không bao giờ thấy: tài liệu, bình luận issue, trang web và thông báo lỗi. Ngữ cảnh đó giúp chúng giải quyết vấn đề. Nó cũng có thể dẫn chúng đến một phụ thuộc xấu.

Việc cài một gói cần đặc biệt cẩn thận. Gói npm có thể chứa script chạy trong lúc cài, nên mã có thể được thực thi trước khi bạn kịp xem xét.

Lớp bảo vệ trước khi cài của SaveSaveSaveSave thêm một bước kiểm tra tại thời điểm đó. Trước khi một lệnh cài được hỗ trợ chạy, nó tra cứu gói và áp dụng chính sách bạn đã chọn.

02Điều gì xảy ra với một lệnh cài?

Hãy xem ba lệnh mà một tác tử có thể đề xuất.

Một gói trên registry không gây ra cờ nào

npm install cross-env

Lớp bảo vệ cho phép lệnh tiếp tục. Lời nhắc phê duyệt thông thường của bạn vẫn áp dụng. Điều này có nghĩa là các bước kiểm tra không tìm thấy lý do để phản đối; nó không phải bảo đảm rằng gói an toàn.

Một gói bị báo cáo là độc hại

cd app && npm install --save-dev crossenv

Lớp bảo vệ từ chối lệnh và cho tác tử biết lý do. Nó nhận ra lệnh cài ngay cả khi lệnh đó đi sau một lệnh khác.

Mã được lấy trực tiếp từ GitHub

npx github:someone/setup-script

Ở chế độ mặc định, lớp bảo vệ yêu cầu con người xem xét. Một URL Git nằm ngoài phạm vi kiểm tra registry npm của nó, nên nó không thể đưa ra đánh giá tương tự.

Các lệnh được hỗ trợ bao gồm lệnh cài qua npm, pnpm, yarn và bun, cùng với npx, npm ci, chuỗi lệnh dùng &&, và lệnh được bọc trong bash -c "…".

03Bạn chọn quy tắc

Lần quét cung cấp bằng chứng: nó đã kiểm tra gì, tìm thấy gì, và không đánh giá được gì. Một chính sách chạy trên máy của bạn quyết định điều gì xảy ra tiếp theo.

Chọn một trong ba chế độ:

Chế độBị báo cáo độc hạiCảnh báo hoặc không đủ dữ liệuKiểm tra thất bại hoặc nguồn nằm ngoài registry
observeCho phép và báo cáoCho phépCho phép
guard · mặc địnhTừ chốiHỏi con ngườiHỏi con người
strictTừ chốiTừ chốiTừ chối

Dùng observe để xem lớp bảo vệ hoạt động thế nào trong quy trình của bạn. Chọn guard để chặn các gói độc hại đã biết và xem xét các trường hợp chưa chắc chắn. Chọn strict khi một kết quả không kết luận được cần dừng việc cài.

Một kết quả sạch không bao giờ bỏ qua một bước phê duyệt mà tác tử của bạn vốn cần.

04Thêm nó vào quy trình của bạn

Với Claude Code, hãy thêm hook này vào .claude/settings.json của dự án. Nếu tệp đã có cài đặt, hãy gộp hook vào đó.

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "npx -y savesavesavesave@0.1.5 hook claude-code --mode observe"
          }
        ]
      }
    ]
  }
}

Hook kiểm tra các lệnh Bash được đề xuất. Các lệnh không chứa lệnh cài được nhận diện sẽ đi qua.

Với một tác tử hoặc script khác, hãy đặt lớp bảo vệ trước lệnh cài:

npx savesavesavesave@0.1.5 guard --mode guard -- npm install some-package

Mã thoát của nó cho phần tích hợp của bạn biết cách tiếp tục:

Phần tích hợp của bạn cần tuân theo các kết quả đó.

Tác tử hỗ trợ MCP cũng có thể yêu cầu kiểm tra trực tiếp. Hướng dẫn thiết lập client có trên trang Dành cho tác tử.

Không cần tài khoản hay khóa API. Các ví dụ cố định một phiên bản để bạn có thể xem xét một bản phát hành cụ thể trước khi dùng.

05Biết bước kiểm tra bao gồm những gì

Lớp bảo vệ đọc thông tin do registry npm và OSV.dev công bố. Nó không tải xuống hay thực thi gói, và hiện chỉ bao gồm gói npm, không phải các hệ sinh thái như PyPI hay crates.io.

Điều đó để lại một vài giới hạn thực tế:


Một tác tử lập trình có thể sửa lỗi build nhanh chóng. Nó cũng có thể nhanh chóng hành động theo một gợi ý thuyết phục từ người bạn không quen biết.

Trước khi gợi ý đó có được quyền truy cập máy của bạn, hãy cho nó một ý kiến thứ hai.

Bước tiếp theo của bạn: thêm hook ở chế độ observe, xem lại kết quả của nó, và chọn chính sách phù hợp với quy trình của bạn.