Korumalı alan
Korumalı alan
Korumalı alanın ChatGPT ve Codex istemcilerinde nasıl çalıştığı
Korumalı alan, ajana makinenize sınırsız erişim vermeden özerk hareket etmesini sağlayan sınırdır. Yerel bir sohbet ChatGPT masaüstü uygulaması, Codex CLI veya IDE uzantısı içinde komut çalıştırdığında bu komutlar, varsayılan olarak tam erişimle çalışmak yerine kısıtlı bir ortamda çalışır.
Bu ortam, ajanın kendi başına neler yapabileceğini tanımlar; örneğin hangi dosyaları değiştirebileceğini ve komutların ağı kullanıp kullanamayacağını belirler. Görev bu sınırlar içinde kaldığında ajan onay için durmadan ilerlemeyi sürdürebilir. Bu sınırların ötesine geçmesi gerektiğinde onay akışı devreye girer.
Korumalı alanın işlevi
Korumalı alan yalnızca yerleşik dosya işlemlerine değil, başlatılan komutlara da
uygulanır. Ajan git gibi araçları, paket yöneticilerini veya test çalıştırıcılarını
çalıştırırsa bu komutlar aynı korumalı alan sınırlarını devralır.
Codex her işletim sisteminde platforma özgü yerel yaptırım mekanizmalarını kullanır. Uygulama macOS, Linux, WSL2 ve yerel Windows arasında farklılık gösterse de tüm yüzeylerde temel fikir aynıdır: ajana, rutin görevlerin açık sınırlar içinde özerk olarak çalışabileceği kısıtlı bir çalışma alanı sağlamak.
Neden önemlidir?
Korumalı alan, onay yorgunluğunu azaltır. Ajan, düşük riskli her komut için sizden onay istemek yerine, daha önce onayladığınız sınır içinde dosyaları okuyabilir, düzenlemeler yapabilir ve rutin proje komutlarını çalıştırabilir.
Ayrıca, ajan tabanlı çalışmalar için daha açık bir güven modeli sağlar. Yalnızca ajanın niyetlerine güvenmezsiniz; ajanın uygulanan sınırlar içinde çalıştığına da güvenirsiniz. Böylece ajanın ne zaman durup yardım isteyeceğini bilmeye devam ederken bağımsız çalışmasına izin vermek kolaylaşır.
Başlarken
Varsayılan izin modu, korumalı alanı otomatik olarak uygular.
Ön koşullar
macOS üzerinde korumalı alan, yerleşik Seatbelt çerçevesini kullanarak kutudan çıktığı gibi çalışır.
Windows üzerinde Codex, PowerShell'de çalıştırdığınızda yerel Windows korumalı alanını, WSL2'de çalıştırdığınızda ise Linux korumalı alan uygulamasını kullanır.
Linux ve WSL2 üzerinde önce paket yöneticinizle bubblewrap paketini yükleyin:
sudo apt install bubblewrapsudo dnf install bubblewrapCodex, PATH üzerinde bulduğu ilk bwrap yürütülebilir dosyasını kullanır. Kullanılabilir bir bwrap
yürütülebilir dosyası yoksa Codex paketlenmiş bir yardımcıya geri döner; ancak bu yardımcı,
yetkisiz kullanıcı ad alanı oluşturma desteği gerektirir. bwrap sağlayan
dağıtım paketini yüklemek bu kurulumun güvenilir kalmasını sağlar.
bwrap eksik olduğunda veya yardımcı gerekli kullanıcı ad alanını
oluşturamadığında Codex başlangıçta bir uyarı gösterir. Bu AppArmor ayarını kısıtlayan
dağıtımlarda, kısıtlamayı sistem genelinde devre dışı bırakmadan bwrap çalışmaya
devam edebilsin diye bwrap AppArmor profilini yüklemeyi tercih edin.
İzinler nasıl çalışır?
Codex'in yerel eylemleri nasıl işleyeceğini değiştirmek için kullandığınız yüzeyin izin denetimini kullanın.
Onaylar, Codex'in bir eylemden önce ne zaman duraklayacağını; korumalı alan ise komutların hangi dosyalara ve ağ kaynaklarına erişebileceğini belirler. Bir onay, bir kez veya oturum boyunca onaylama gibi farklı kapsamlar sunuyorsa görevin devam etmesini sağlayan en dar kapsamı seçin. Varsayılan olarak proje sınırını koruyun; ilgisiz depolara erişimi genişletmek yerine ayrı projeler veya çalışma ağaçları kullanın.
ChatGPT Work, kodu ve kabuk komutlarını yönetilen, yalıtılmış bir ortamda çalıştırır. Çalışma alanı politikası ve araca özgü denetimler, hangi özelliklerin kullanılabileceğini belirler. Ayar kullanılabiliyorsa kod ve kabuk komutlarının ağ erişimini yönetmek için Ayarlar > Veri denetimleri > Work ağ erişimi yolunu kullanın. Bu komutların genel internete erişebilmesi için Genel internet erişimine izin ver seçeneğini açın. Bu seçenek kapalıyken komutlar yalnızca yönetilen bir izin listesindeki gerekli ana bilgisayar adlarına erişebilir.
Web araması, eklentiler ve uzak tarayıcı ayrı denetimlere sahiptir. Değişiklikler, geçerli kod veya kabuk çalışması tamamlandıktan ve Work yürütme ortamını yeniledikten sonra geçerli olur. ChatGPT web, yerel Codex korumalı alanını veya onay modu seçicisini sunmaz.
ChatGPT masaüstü uygulamasında oluşturucunun altındaki izin denetimini kullanın. Yapılandırmanıza bağlı olarak menüde Onay iste, uygun onay istekleri için Benim için onayla, Tam erişim ve adlandırılmış ya da özel izin profilleri bulunabilir.
CLI'da izin seçiciyi açmak ve etkin izin profilini değiştirmek için
/permissions
girin.
IDE uzantısında oluşturucunun altındaki izin denetimini kullanın. Yapılandırmanıza bağlı olarak menüde Onay iste, uygun onay istekleri için Benim için onayla, Tam erişim ve adlandırılmış ya da özel izin profilleri bulunabilir.
Varsayılanları yapılandırın
Her seferinde aynı davranışla başlamak için varsayılanları config.toml içinde ayarlayın.
Yapılandırma temelleri bunun nasıl çalıştığını açıklar;
Yapılandırma referansı ise sandbox_mode,
approval_policy, approvals_reviewer ve sandbox_workspace_write.writable_roots için tam anahtarları
belgeler. Ajanın varsayılan olarak ne kadar özerk olacağını, hangi dizinlere
yazabileceğini, onay için ne zaman duraklaması gerektiğini ve uygun onay isteklerini
kimin inceleyeceğini belirlemek için bu ayarları kullanın.
Genel olarak yaygın korumalı alan modları şunlardır:
read-only: Ajan dosyaları inceleyebilir ancak onay olmadan dosyaları düzenleyemez veya komut çalıştıramaz.workspace-write: Ajan dosyaları okuyabilir, çalışma alanı içinde düzenleyebilir ve bu sınır içinde rutin yerel komutları çalıştırabilir. Bu, yerel çalışmalar için varsayılan, düşük sürtünmeli moddur.danger-full-access: Ajan, korumalı alan kısıtlamaları olmadan çalışır. Bu mod, dosya sistemi ve ağ sınırlarını kaldırır ve yalnızca ajanın tam erişimle hareket etmesini istediğinizde kullanılmalıdır.
Yaygın onay politikaları şunlardır:
untrusted: Ajan, güvenilir komut kümesinde bulunmayan komutları çalıştırmadan önce izin ister.on-request: Ajan varsayılan olarak korumalı alan içinde çalışır ve bu sınırın ötesine geçmesi gerektiğinde izin ister.never: Ajan, onay istemleri için durmaz.
Onaylar etkileşimliyken bunları kimin inceleyeceğini approvals_reviewer ile de
seçebilirsiniz:
user: Onay istemleri kullanıcıya gösterilir. Bu varsayılan seçenektir.auto_review: Uygun onay istemleri bir inceleyici ajana gönderilir (bkz. otomatik inceleme).
Tam erişim, sandbox_mode = "danger-full-access" ile approval_policy = "never" öğelerinin birlikte
kullanılması anlamına gelir. Buna karşılık daha düşük riskli yerel otomasyon
ön ayarı, sandbox_mode = "workspace-write" ile approval_policy = "on-request" öğelerinin veya bunlara karşılık gelen CLI bayrakları
--sandbox workspace-write --ask-for-approval on-request öğesinin birlikte kullanılmasıdır. Ardından manuel onaylar için
approvals_reviewer = "user" öğesini koruyabilir veya otomatik onay incelemesi için
approvals_reviewer = "auto_review" öğesini ayarlayabilirsiniz.
Ajanın birden fazla dizinde çalışması gerekiyorsa yazılabilir kökler, korumalı alanı tamamen kaldırmadan değiştirebileceği konumları genişletmenizi sağlar. Daha geniş veya daha dar bir güven sınırına ihtiyacınız varsa tek seferlik istisnalara güvenmek yerine varsayılan korumalı alan modunu ve onay politikasını ayarlayın.
Bir iş akışı belirli bir istisna gerektiriyorsa kuralları kullanın. Kurallar, korumalı alan dışındaki komut ön eklerine izin vermenizi, bunlar için onay istemenizi veya bunları yasaklamanızı sağlar; bu yaklaşım çoğu zaman erişimi genel olarak genişletmekten daha uygundur. IDE'ye özgü ayar giriş noktaları için Codex IDE uzantısı ayarları sayfasına bakın.
Otomatik inceleme, kullanılabilir olduğunda korumalı alan sınırını değiştirmez. Korumalı
alan yükseltmeleri, engellenmiş ağ erişimi veya hâlâ onay gerektiren yan etkili araç
çağrıları gibi bu sınırdaki onay istekleri için olası bir approvals_reviewer seçeneğidir.
Korumalı alan içinde zaten izin verilen eylemler ek inceleme olmadan çalışır.
İnceleyici yaşam döngüsü, tetikleyici türleri, ret semantiği ve yapılandırma ayrıntıları
için otomatik inceleme sayfasına bakın.
Platform ayrıntıları, platforma özgü belgelerde bulunur. Yerel Windows kurulumu, davranışı ve sorun giderme bilgileri için Windows sayfasına bakın. Korumalı alan ve onaylarla ilgili yönetici gereksinimleri ve kuruluş düzeyindeki kısıtlamalar için Ajan onayları ve güvenlik sayfasına bakın.