Skip to main content
Özel ilkeler, izlemeleriniz veya denetimlerinizden bir hata desenini, bir ajan çalışırken çalışan bir karara dönüştürür. Bir ilke bir işleme izin verebilir, ajanı rehberlik eder veya başka bir olaya neden olmadan önce işlemi reddedebilir. Davranış araçlarınız, yollarınız, komutlarınız, ortamlarınız veya işletme kurallarınıza bağlı olduğunda özel bir ilke kullanın. Mevcut bir kontrolü yeniden oluşturmamak için önce yerleşik ilke kataloğunu kontrol edin.

Özel bir ilke yazın

  1. Admin → policy editor sayfasına gidin, New policy seçin ve önlemek istediğiniz hatayı açıklayın.
  2. İlke kaynağını ekleyin, ardından editörde beklenen eşleşmeleri ve güvenli eşleşmeyenleri test edin. Her doğrulama hatasını çözün.
  3. Taslağı kaydedin ve Publish version seçerek değişmez bir sürüm oluşturun.
  4. Admin → enforcement sayfasına gidin, sürümü bir test makinesine observe modunda dağıtın ve Observe → policy altında kararlarını doğruladıktan sonra uygulamaya geçin. Özel bir ilke yazıp yayımlamak için kullanılan ilke editörü.

Dar bir kuralla başlayın

Bu ilke, yalnızca komut production’u hedeflediğinde yıkıcı Kubernetes komutlarını engeller. Bu tam hata modunun dışındaki her şey allow() döndürür.
İyi ilkeler bir cümleyle açıklanacak kadar dar olmalıdır. Gözlemlenebilir işlemi eşleştirin—ajanın sahip olmasını umduğunuz niyeti değil—ve kural uygulanmadığı anda allow() döndürün.

Bir karar seçin

Ajanın iyileşmesi gereken nedenini yazın. Neyin algılandığını ve bunun yerine ne yapması gerektiğini açıklayın.
Bir güvenlik sınırı için instruct() kullanmayın. Rehberlik sunumu ajan sistemine göre değişir. İşlem engellenmeli olduğunda deny() kullanın.

İlke nesnesi

Araçları fn içinde filtreleyin. match.toolNames genel özel ilke türünün parçası değildir.

İlke bağlamı

Her ilke bir PolicyContext alır. Her isteğe bağlı değeri gerçekten isteğe bağlı olarak görün. Ajan sürümleri ve olay türleri aynı alanları sağlamaz.

Yaygın araç girdileri

Failproof AI, bir ilkenin genellikle tek bir giriş şekli kullanabilmesi için desteklenen sistemler arasında yaygın araçları normalleştirir. Araç giriş değerleri unknown olarak yazıldığından savunmacı dönüştürme kullanın:

Olayı seçin

Olay kullanılabilirliği ve engelleme davranışı ajan sistemine bağlıdır. Karma bir filo arasında bir olaya güvenmeden önce Ajan sistemleri bölümüne bakın.
SessionStart, SessionEnd, UserPromptSubmit, PreToolUse, PermissionRequest, PermissionDenied, PostToolUse, PostToolUseFailure, Notification, SubagentStart, SubagentStop, TaskCreated, TaskCompleted, Stop, StopFailure, TeammateIdle, InstructionsLoaded, ConfigChange, CwdChanged, FileChanged, WorktreeCreate, WorktreeRemove, PreCompact, PostCompact, Elicitation, ElicitationResult, UserPromptExpansion, PostToolBatch ve Setup.

Yaygın ilke düzenlerini yazın

Korunan yollara yazmaları engelle

Zorunlu olmayan rehberlik verin

Oturum tamamlamasını kapılandırın

Reddedilen Stop olayı ajanın yeniden denemesini sağlayabilir. Yalnızca ajanın geçerli ortamda karşılayabileceği bir koşulla kapılandırın ve her alt işlemi veya ağ çağrısını sınırlandırın.

İlke dosyalarını yükleyin

Kural dosyaları

Kural dosyaları otomatik olarak yüklenir:
  • Proje ve kullanıcı ilke dizinleri her ikisi de yüklenir.
  • Dosyalar her dizin içinde alfabetik olarak yüklenir.
  • Bir dosya policies.js, policies.mjs veya policies.ts ile bitmelidir.
  • Bir dosyada birden çok customPolicies.add() çağrısı desteklenir.
  • Yerel modüllerden göreceli içe aktarmalar desteklenir.
  • Proje ilkeleri kaydedilebilir, böylece aynı kurallar depo izini takip eder.

Açık dosyalar

Doğrulamada veya yapılandırmada giriş dosyasını doğrudan belirtmek istediğinizde açık yolları kullanın:
Açık dosyalar ilk olarak yüklenir, arkasından proje kural dosyaları ve ardından kullanıcı kural dosyaları gelir. Her iki yol tarafından da keşfedilen bir dosya bir kez yüklenir.

Doğrulama ve test

Doğrulama modülü üretim yükleyiciyle yürütür ve en az bir ilke kaydını onaylar.
Doğrulama eksik dosyaları, söz dizimi hatalarını, çözülmemiş içe aktarmaları, üst düzey istisnalarını ve modül yükleme zaman aşımlarını yakalar. Eşleştirme mantığınızın doğru olduğunu kanıtlamaz. En az şu durumları test edin:
  • Eşleşmeli ve istenen ilke nedenini üretmeli olan bir işlem.
  • Yakında ama güvenli olan ve allow() döndürmeli olan bir işlem.
  • Eksik veya hatalı biçimlendirilmiş araç alanları.
  • Alternatif komut söz dizimi, yollar, alıntılama, büyük küçük harfler ve boşluklar.
  • Kullanılamayan bir alt işlem veya ağ bağımlılığı.
Sonucu Observe → policy altında özel ilkenize atfettirin. Farklı bir yerleşik ilke kararı verdi ise engellenen bir test yeterli değildir.

Çalışma zamanı davranışı

  • Yerleşik ilkeler özel ilkelerden önce değerlendirilir.
  • İlk deny daha fazla ilke değerlendirmesini durdurur.
  • Sistem engelleme yapmadığında birden çok instruct sonucu birleştirilebilir.
  • Bir ilke işlevinin 10 saniyelik yürütme süresi vardır.
  • Atılan istisna veya zaman aşımı günlüğe kaydedilir ve allow() olarak değerlendirilir.
  • Yüklenmesi başarısız olan bir kural dosyası atlanır; diğer özel dosyalar ve yerleşik ilkeler devam eder.
  • Üst düzey modül yüklemenin de 10 saniyelik süresi vardır.
  • Bulut observe modu ilkeyi çalıştırır ancak uygulama yapmadan allow olmayan bir kararı kaydeder.
İlke modüllerini belirleyici ve hızlı tutun. Üst düzey ağ çağrılarından veya sunucu başlatmadan kaçının. fn içinde işi sınırlandırın, bağımlılık başarısızlıklarını yakalayın ve bu başarısızlığın işleme izin verip vermemesi gerektiğini bilerek seçin.

API dışa aktarmaları

TypeScript PolicyContext, PolicyResult, CustomHook, PolicyDecision ve PolicyFunction dışa aktarır.

Özel ilkeleri dağıtın

Bir sürümü yayımlayın, observe modunda dağıtın, kararları doğrulayın ve uygulamaya geçin.