Türkçe

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 biçimde hareket etmesini sağlayan sınırdır. Yerel bir sohbet ChatGPT masaüstü uygulamasında, Codex CLI'da veya IDE uzantısında 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; örneğin hangi dosyaları değiştirebileceğini ve komutların ağı kullanıp kullanamayacağını tanımlar. Bir görev bu sınırlar içinde kaldığında ajan, onay almak için durmadan ilerlemeyi sürdürebilir. Bu sınırların ötesine geçmesi gerektiğinde onay akışı devreye girer.

Korumalı alan ne yapar?

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 platformun yerel güvenlik mekanizmalarını kullanır. Uygulama macOS, Linux, WSL2 ve yerel Windows arasında farklılık gösterse de tüm arayüzlerdeki temel fikir aynıdır: rutin görevlerin açıkça belirlenmiş sınırlar içinde özerk biçimde çalışabilmesi için ajana sınırlandırılmış bir çalışma alanı sağlamak.

Neden önemlidir?

Korumalı alan, onay yorgunluğunu azaltır. Ajan, düşük riskli her komutu onaylamanızı istemek yerine dosyaları okuyabilir, düzenlemeler yapabilir ve daha önce onayladığınız sınırlar içinde rutin proje komutlarını çalıştırabilir.

Ayrıca ajan tabanlı çalışmalar için daha anlaşılır bir güven modeli sağlar. Yalnızca ajanın niyetlerine güvenmezsiniz; ajanın zorunlu kılınan sınırlar içinde çalıştığına da güvenirsiniz. Böylece ajanı bağımsız çalışmaya bırakırken ne zaman durup yardım isteyeceğini bilmek kolaylaşır.

Başlarken

Varsayılan izin modu, korumalı alanı otomatik olarak uygular.

Ön koşullar

macOS'te korumalı alan, yerleşik Seatbelt çerçevesi kullanılarak herhangi bir ek ayar gerektirmeden çalışır.

Windows'ta 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'de önce paket yöneticinizle bubblewrap kurun:

Ubuntu/Debian

sudo apt install bubblewrap

Fedora

sudo dnf install bubblewrap

Codex, 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 paketle birlikte gelen 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 kurmak, bu yapılandırmanın güvenilir kalmasını sağlar.

Codex, bwrap eksik olduğunda veya yardımcı gerekli kullanıcı ad alanını oluşturamadığında 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 tercihen bwrap AppArmor profilini yükleyin.

İzinler nasıl çalışır?

Codex'in yerel işlemleri nasıl ele alacağını değiştirmek için kullandığınız arayüzün izin denetimini kullanın.

Onaylar, Codex'in bir işlemden önce ne zaman duraklayacağını; korumalı alan ise komutların hangi dosyalara ve ağ kaynaklarına erişebileceğini belirler. Bir onay, tek seferlik 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 depolar arasındaki erişimi genişletmek yerine ayrı projeler veya çalışma ağaçları kullanın.

ChatGPT masaüstü uygulamasında, yazma alanının 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ırma

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 başvurusu 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 özerkliğe sahip 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 almadan dosyaları düzenleyemez veya komut çalıştıramaz.
  • workspace-write: Ajan dosyaları okuyabilir, çalışma alanı içinde düzenleme yapabilir ve bu sınır içinde rutin yerel komutları çalıştırabilir. Bu, yerel çalışmalar için varsayılan ve 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; yalnızca ajanın tam erişimle hareket etmesini istediğinizde kullanılmalıdır.

Yaygın onay politikaları şunlardır:

  • untrusted: Ajan, güvenilen 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 istemek için durmaz.

Onaylar etkileşimliyken approvals_reviewer ile bunları kimin inceleyeceğini de seçebilirsiniz:

  • user: Onay istemleri kullanıcıya gösterilir. Bu varsayılan seçenektir.
  • auto_review: Uygun onay istemleri bir inceleyici ajana gider (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" öğelerini veya bunlara karşılık gelen CLI bayraklarını --sandbox workspace-write --ask-for-approval on-request birlikte kullanır. Ardından manuel onaylar için approvals_reviewer = "user" değerini koruyabilir veya otomatik onay incelemesi için approvals_reviewer = "auto_review" değerini 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 yetki yükseltmeleri, engellenen ağ erişimi veya hâlâ onay gerektiren yan etkili araç çağrıları gibi bu sınırdaki onay istekleri için kullanılabilecek approvals_reviewer seçeneklerinden biridir. Korumalı alan içinde zaten izin verilen işlemler ek inceleme olmadan çalışır. İnceleyicinin 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 yer alır. Yerel Windows kurulumu, davranışı ve sorun giderme bilgileri için Windows sayfasına bakın. Korumalı alan ve onaylara ilişkin yönetici gereksinimleri ile kuruluş düzeyindeki kısıtlamalar için Ajan onayları ve güvenlik sayfasına bakın.