Konfigurasikan polisi kotak pasir
Sama ada sesuatu larian ejen dikotak pasirkan ditentukan pada pelayan, semasa boot
(--sandbox). Togol Dayakan kotak pasir dan pemilih Bahagian belakang di
bawah Tetapan → Pelayan → Diagnostik & privasi ialah keutamaan yang disimpan
pada peranti anda. Pengesanan hos oleh kad Kotak pasir melaporkan apa yang
boleh dibalut oleh hos pelayan.
Dua kawalan sampai kepada sesuatu larian dan panduan ini merangkumi kedua-duanya:
peraturan tindakan di Tetapan → Ruang kerja → Kebenaran ejen, yang
menentukan apa yang boleh di-push, dibuka atau dicapai oleh ejen, dan bendera
--sandbox pelayan itu sendiri.
Apa yang mengekang sesuatu larian ejen
Bahagian bertajuk “Apa yang mengekang sesuatu larian ejen”Sesuatu ejen diikat oleh enam perkara. Yang pertama ialah kotak pasir OS dan itulah yang bersyarat — lima yang lain bertahan pada setiap hos.
| Sempadan | Apa yang dilakukannya |
|---|---|
| Kotak pasir OS | Seatbelt pada macOS, bubblewrap pada Linux dan WSL2. Membalut CLI Claude Code, penyesuai ACP dan alat bash harness. Tiada pada Windows dan pada Linux tanpa bwrap dan socat |
| Worktree-nya sendiri | Setiap perbualan mendapat checkout salin-semasa-tulis. Checkout asal dilipat ke dalam larian sebagai laluan tolak-tulis dan kotak pasirlah yang menguatkuasakannya |
| Kelayakan melalui broker | Broker kelayakan menempa persekitaran setiap larian dan membatalkannya semasa pembongkaran. Token GitHub di dalamnya boleh membaca tetapi tidak boleh push: push melalui Control Center, yang bertanya kepada peraturan push terlebih dahulu |
| Guardrail tindakan | Setiap alat yang mengubah keadaan mengisytiharkan kelas kesannya dan pengawal menyelesaikannya sebelum panggilan itu dijalankan. prompt tanpa pelulus yang bersambung ditolak |
| Pensanitasi persekitaran | ACP dan alat bash harness mendapat persekitaran yang ditapis. Claude Code melalui NoSandboxAdapter mewarisi persekitaran hos |
| Permukaan alat modus | Modus baca sahaja mengeluarkan alat yang mengubah worktree terus daripada permukaan dan memakukan kata kerja keluaran modus itu sendiri supaya ia masih boleh menyampaikan |
Tiga perkara kekal lebih lemah daripada yang kelihatan:
- Hanya harness terbina yang menguatkuasakan pintu alat, kontrak penyiapan dan
peraturan modus berstruktur. Penyesuai Claude Code tidak. Claude
Code khususnya dilancarkan dengan
--dangerously-skip-permissions, keranaclaude -pbukan interaktif jika tidak akan tersekat selama-lamanya pada gesaannya sendiri — jadi panggilan baca, tulis dan edit Claude sendiri tidak dilihat mahupun dipagari oleh Control Center, dan perintah bash-nya hanya diperiksa oleh hook yang membaca baris perintah. Di mana kotak pasir dihidupkan, itulah sempadan di sekelilingnya. - Alat fail dalam proses harness (read, write, edit, apply patch, search,
find, search_files) berjalan di dalam proses pelayan, jadi tiada profil kotak
pasir mengekangnya. Hanya alat
bashmelalui pelari perintah berkotak pasir. Alat-alat itu dibatasi oleh kekangan laluan mereka sendiri serta guardrail tindakan. - Pada hos tanpa bahagian belakang, baris pertama tidak terpakai sama sekali. ACP
dan alat
bashharness berpatah balik kepada pensanitasi persekitaran serta polisi perintah; Claude Code mewarisi persekitaran hos melaluiNoSandboxAdapter. Pelayan menyatakan hal itu dalam log permulaannya. Semak milik anda di bawah.
Tentukan apa yang boleh di-push oleh ejen
Bahagian bertajuk “Tentukan apa yang boleh di-push oleh ejen”Tiada togol bagi setiap ejen untuk git push, GitHub, penetikan atau rangkaian. Setiap satunya ialah peraturan tindakan:
| Peraturan | Lalai terbina | Apa yang diliputinya |
|---|---|---|
| Push ke remote | Tanya dahulu | Setiap git push ke GitHub, apa jua penyesuainya |
| Buka pull request | Tanya dahulu | gh pr create dan alat pull request |
| Terbitkan semakan atau cantuman | Tanya dahulu | gh pr merge, gh pr review, gh pr comment, gh pr close |
| Tulis ke penjejak luaran | Tanya dahulu | Penulisan tiket melalui alat Control Center dan gh issue |
| Akses rangkaian | Benarkan | Sama ada kotak pasir mempunyai rangkaian langsung, dan alat web harness |
- Pergi ke Tetapan → Ruang kerja → Kebenaran ejen
- Pilih skop — Ruang kerja, Ejen atau Ruang — dan pada baris peraturan itu, pilih Benarkan, Tanya dahulu atau Tolak
Peraturan push yang dihadkan kepada cabang, seperti satu yang menolak push ke
main, turut terpakai: lihat Guardrail.
Titik semak: minta ejen push satu cabang. Dengan Tanya dahulu anda mendapat
kelulusan yang menamakan repo dan ref; dengan Tolak, git mencetak
! [remote rejected] <ref> (Control Center policy: …).
Bagaimana setiap peraturan sampai kepada larian:
- Push dikuatkuasakan melalui apa yang dipegang larian. Token GitHub-nya
ialah token pemasangan GitHub App baca sahaja yang boleh membaca kandungan dan
bekerja dengan pull request. Konfigurasi git-nya menghantar setiap push GitHub
ke gerbang loopback pada
cc_server, yang bertanya kepada peraturan dan barulah memajukan push dengan token tulis yang tidak pernah dilihat ejen. Gerbang itu hanya memajukan ke repo worktree itu sendiri atau ke repo GitHub yang dipautkan kepada ruang kerja. Ini terpakai bagi setiap penyesuai. - Pull request dan isu dari shell dikenali melalui baris perintah, dalam
alat
bashharness dan, melalui hook, dalam alatBashClaude Code. Ejen yang menyembunyikan perintah (skrip,eval, panggilan API terus) melepasi semakan ini, tetapi tidak melepasi gerbang push. - Kunci penetikan tidak pernah diletakkan dalam kotak pasir. Ejen menulis tiket melalui alat MCP Control Center, yang bertanya kepada peraturan.
- Rangkaian diselesaikan sekali, apabila larian bermula. Tolak
mematikan rangkaian kotak pasir; Benarkan dan Tanya dahulu
membiarkannya hidup, dan dengan Tanya dahulu alat
web_fetchdanweb_searchharness masih bertanya pada setiap panggilan. Selagi rangkaian hidup, GitHub sentiasa berada dalam senarai benarkan keluar.
Semak sama ada larian ejen anda dikotak pasirkan
Bahagian bertajuk “Semak sama ada larian ejen anda dikotak pasirkan”Dua perkara menentukannya, kedua-duanya pada pelayan: sama ada hos menawarkan
bahagian belakang dan sama ada --sandbox dihidupkan. Semak kedua-duanya
mengikut urutan itu.
- Pergi ke Tetapan → Pelayan → Diagnostik & privasi
- Baca kad Kotak pasir. Fakta Hos ialah mesin tempat
cc_serverberjalan, bukan mesin yang anda sedang lihat. Medan Bahagian belakang menyenaraikan Kotak pasir natif (Seatbelt pada macOS, bubblewrap pada Linux dan WSL2) atau Tiada pengasingan. Fakta Berkuat kuasa ialah keutamaan peranti ini, bukan balutan yang sebenarnya digunakan oleh pelayan. - Baca log permulaan pelayan. Ia mencetak tepat satu daripada tiga baris:
agent sandbox ONserta nota bahagian belakang — larian dibalutno OS-native agent sandbox on this hostserta petunjuk pemasangan di mana ada — larian tidak dibalutagent sandbox DISABLED by --sandbox off— tarik diri yang disengajakan
GET /healthz tidak melaporkan keadaan kotak pasir, jadi log permulaan ialah
cara semaknya.
Untuk mematikan kotak pasir secara sengaja — hos tempat profil itu berkelakuan
buruk ialah sebab kewujudannya — mulakan pelayan dengan --sandbox off, atau
tetapkan CC_SERVER_SANDBOX=off. Lalainya ialah on dan on bermaksud
“gunakan bahagian belakang jika hos ada satu”, tidak pernah “wajibkan satu”.
Dua situasi tidak pernah mendapat balutan kotak pasir natif. Pada Windows
kuar natif sentiasa melaporkan tidak tersedia dan tiada apa yang perlu dipasang —
penghantaran ejen menggunakan none. Bahagian belakang microvm adalah
berasingan (terminal interaktif dan stesen) dan dipagari kuar pada runtime-nya
sendiri. Pada Linux dan WSL2 kedua-dua bwrap dan socat mesti berada pada
PATH; tanpanya kuar melaporkan tidak tersedia dan menamakan pakej yang hilang.
Pada Linux/WSL2 dengan bubblewrap dipasang, glob fail rahsia polisi standard tidak
boleh dikuatkuasakan untuk fail yang dicipta oleh ejen kemudiannya. Larian natif
sebegitu kini gagal dan bukannya secara senyap mengabaikan peraturan itu. Oleh
itu, kuar boot yang positif tidak menjamin bahawa penghantaran Linux boleh
bermula. --sandbox off ialah tarik diri tanpa kekangan yang disengajakan, bukan
sempadan keselamatan ganti.
Ketahui apa yang sudah dilarang oleh sesuatu modus
Bahagian bertajuk “Ketahui apa yang sudah dilarang oleh sesuatu modus”Modus disimpan per ruang dan menyuap penyelesai guardrail sebagai lapisan praset modus. Tiga daripada empat modus adalah baca sahaja dan modus baca sahaja menolak sebelas kelas kesan terus:
| Modus | Worktree | Ditolak oleh praset |
|---|---|---|
Ejen (chat) |
Boleh tulis | Tiada — lalai terbina terpakai |
| Rancang | Baca sahaja | Padam fail, tulis di luar worktree, commit, push, buka PR, terbitkan atau cantumkan, tulis ke penjejak luaran, pasang pakej, jalankan proses, ubah struktur ruang kerja, boot atau kendalikan kepungan |
| Semak | Baca sahaja | Sebelas yang sama. Tidak boleh dipilih oleh pengguna — penggubah hanya menawarkan Ejen, Rancang dan Orkestrakan |
| Orkestrakan | Baca sahaja | Sebelas yang sama |
Akses rangkaian dan akses rahsia sengaja tidak ditolak oleh modus baca sahaja: penyelidikan ialah tujuan sesuatu modus itu.
Wajibkan kelulusan sebelum sesuatu tindakan dijalankan
Bahagian bertajuk “Wajibkan kelulusan sebelum sesuatu tindakan dijalankan”Kelulusan ialah keputusan guardrail, bukan tetapan kotak pasir.
- Pergi ke Tetapan → Ruang kerja → Kebenaran ejen
- Tetapkan kelas tindakan kepada Tanya dahulu pada skop ruang kerja, ejen atau ruang
Keputusan Tanya dahulu mengganggu larian dan bertanya kepada anda. Apabila tiada pelulus yang bersambung, ia gagal tertutup dan tindakan itu ditolak. Lihat Konfigurasikan guardrail untuk urutan penyelesaian sepenuhnya.
Penyelesaian masalah
Bahagian bertajuk “Penyelesaian masalah”Ejen tidak boleh push dan saya tidak pernah menolaknya
Bahagian bertajuk “Ejen tidak boleh push dan saya tidak pernah menolaknya”Baca apa yang dicetak oleh git. Control Center policy: … bermakna satu
peraturan menolak push itu atau Tanya dahulu tidak dijawab.
… is not linked to this workspace bermakna push itu menyasarkan repo yang
bukan repo worktree itu sendiri dan tidak dipautkan kepada ruang kerja.
Control Center has no GitHub credential that can push … bermakna GitHub App
tidak dipasang pada repo itu dan tiada kelayakan sandaran yang boleh push:
pasang App pada repo itu atau sambungkan GitHub.
Kad Kotak pasir melaporkan tiada kotak pasir natif
Bahagian bertajuk “Kad Kotak pasir melaporkan tiada kotak pasir natif”Maka larian ejen pada hos itu tidak dibalut oleh Seatbelt atau bubblewrap dan
sempadan selebihnya ialah apa yang anda ada. Pada Linux dan WSL2, pasang
kedua-dua alat yang hilang — sudo apt-get install bubblewrap socat — dan
mulakan semula pelayan; log permulaan kemudiannya sepatutnya menyatakan kotak
pasir dihidupkan. Pada Windows tiada bahagian belakang natif untuk dipasang, jadi
ketatkan guardrail sebaliknya: lihat
Konfigurasikan guardrail.
Ejen mencapai fail di luar worktree-nya
Bahagian bertajuk “Ejen mencapai fail di luar worktree-nya”Alat mana yang mencapainya menentukan sama ada ini dijangka.
Alat fail dalam proses harness (read, write, edit, apply patch, search,
find, search_files) berjalan dalam proses pelayan, jadi tiada profil kotak pasir
terpakai kepadanya — batasnya ialah kekangan laluan mereka sendiri serta
guardrail. Perintah bash atau CLI Claude Code memang dibalut di mana bahagian
belakang wujud dan checkout berdaftar anda ditolak-tulis di dalam balutan itu
dalam setiap modus, termasuk ejaan yang diselesaikan melalui symlink (pada macOS
laluan yang dicapai melalui /tmp atau /var/folders diselesaikan di bawah
/private dan kedua-dua ejaan kini ditolak). Pada hos tanpa bahagian belakang,
tiada satu pun daripadanya terpakai. Sama ada cara, guardrail boleh menolak
Tulis di luar worktree terus.
Panduan berkaitan
Bahagian bertajuk “Panduan berkaitan”- Konfigurasikan guardrail
- Cipta dan konfigurasikan ejen
- Diagnosis ejen
- Bahagian belakang kotak pasir
- CLI cc_server: bendera
--sandbox