İçeriğe atla
SinaptikLabAI KNOWLEDGE PLATFORM

TEMSİLÎ VAKA · ÜRETİM

İş emri açma ajanının araç yetkileri

Bakım talepleri dört ayrı kanaldan geliyordu: hattan gelen çağrı butonu, üretim müdürünün e-postası, tedarikçinin yazışması ve telefonla iletilip elle yazılan notlar. Bakım planlamacısı bu taleplerden iş emri açıyor, ekipmanı eşliyor, önceliği belirliyor ve gerekiyorsa parça sorguluyordu; iş günün önemli bir bölümünü alıyor ve yoğun vardiyada mükerrer iş emirleri birikiyordu. Bu akışı bir ajana devretmek teknik olarak kolay görünüyordu ama ajanın kullanacağı araçların bir kısmı yazma yetkisi taşıyordu ve talebin metni büyük ölçüde dışarıdan geliyordu. Yani ajana verilecek her yazma yetkisi, aynı anda dışarıdan gelen metnin de yetkisi olacaktı.

Beklenen etki

Kapsam
Dört kanaldan gelen bakım talebi tek taslak kuyruğunda toplanıyor; yazma yetkisi yalnızca taslak oluşturmayla sınırlı
Ölçüm
Planlamacının taslaklarda yaptığı düzeltmeler türüne göre ayrı izleniyor
Denetim
Her araç çağrısı tetikleyen kaynak belgesine geri izlenebiliyor
Sınır
Ajanın denetim katmanına ve satın alma sürecine hiçbir yetkisi yok; onay kapısı kaldırılabilir bir ayar değil

Temsilî senaryo: buradaki satırlar ölçüm sonucu değil, bu kurulumda hangi büyüklüğün izlenmesi gerektiğini gösterir.

TEMSİLÎ SENARYO

Bu kayıt gerçek bir müşteri işi değildir. Sinaptik Lab'in bu problemde izlediği yaklaşımı, mimari kararları ve ölçüm düzenini göstermek için yazılmış temsilî bir senaryodur: kurum adı taşımaz, içindeki hiçbir değer gerçek ölçüm değildir ve referans olarak gösterilemez. Gerçek projelerden vakalar müşteri onayı alındıkça bu kütüphaneye eklenir.

Problem

Bakım talepleri dört ayrı kanaldan geliyordu: hattan gelen çağrı butonu, üretim müdürünün e-postası, tedarikçinin yazışması ve telefonla iletilip elle yazılan notlar. Bakım planlamacısı bu taleplerden iş emri açıyor, ekipmanı eşliyor, önceliği belirliyor ve gerekiyorsa parça sorguluyordu; iş günün önemli bir bölümünü alıyor ve yoğun vardiyada mükerrer iş emirleri birikiyordu. Bu akışı bir ajana devretmek teknik olarak kolay görünüyordu ama ajanın kullanacağı araçların bir kısmı yazma yetkisi taşıyordu ve talebin metni büyük ölçüde dışarıdan geliyordu. Yani ajana verilecek her yazma yetkisi, aynı anda dışarıdan gelen metnin de yetkisi olacaktı.

Yaklaşım

Tasarımı ajanın yeteneğinden değil, yetki yüzeyinden başlattık: yazma araçlarını dar sözleşmelere indirdik, ajan yalnızca taslak iş emri oluşturabiliyor; durum değiştirme, parça rezervi ve satın alma talebi araç kümesinde hiç yer almıyor. Ajan kullanıcı adına taşınmıyor, kendi servis hesabıyla çalışıyor ve o hesabın bakım sisteminde yalnızca taslak rolü var; kullanıcı kimliğini devralan bir ajan, kullanıcının en yüksek yetkisini de devralıyor. Gelen metin araç çağrısının gerekçesi olabiliyor ama araç seçimini değiştiremiyor: hangi aracın hangi sırayla çağrılacağı istemde değil, kod tarafındaki durum makinesinde tanımlı. Her taslak planlamacı onayından geçtikten sonra gerçek iş emrine dönüyor, parasal sonuç doğuran hiçbir adım ajana bağlı değil. Her araç çağrısı; girdi, seçilen araç, argümanlar ve tetikleyen kaynak belgesiyle birlikte değiştirilemez bir günlüğe yazılıyor.

Kullanılan teknolojiler

  • Dar sözleşmeli yazma araçları
  • Ayrı servis kimliği ve en az yetki
  • Kod tarafında araç seçim durum makinesi
  • Taslak ve onay ayrımı
  • Değiştirilemez araç çağrısı günlüğü
  • İstem enjeksiyonu kırmızı takım kütüphanesi
01VAKA ANLATIMI

Bağlam, kurulum ve ölçüm

Problem ve yaklaşım özetin üstünde; burada kararların gerekçesi ve mimarinin ayrıntısı var.

Bağlam ve kısıtlar#

Bakım planlama masası bir metin işleme masasıdır: gelen talebi okur, hangi ekipmandan bahsedildiğini çıkarır, aciliyetini üretim planına göre değerlendirir ve bir kayıt açar. İşin doğası ajana uygun görünüyordu. Sorun, kaydın açıldığı sistemin aynı zamanda bakım bütçesini, parça hareketlerini ve teknisyen atamalarını taşıyan sistem olmasıydı.

Asıl kısıt girdinin kaynağıydı. Taleplerin bir bölümü kurum dışından geliyordu: tedarikçi yazışmaları, servis raporları, ekli belgeler. Bu metinler güvenilmeyen içerik sınıfındadır ve ajanın araç kümesi ne kadar geniş olursa, o metnin dolaylı olarak elde ettiği yetki de o kadar geniş olur. Tasarımın çıkış noktası bu denklem oldu.

Veri ve erişim#

Erişim iki yönde ayrıldı: ajanın okuyabildiği şeyler ile yazabildiği şeyler aynı kümede değil. Okuma tarafı geniş, çünkü doğru ekipmanı eşlemek için varlık hiyerarşisini ve geçmiş iş emirlerini görmesi gerekiyor. Yazma tarafı ise tek bir işleme indirildi. Bu asimetri bilinçli: okuma hatası bir öneri hatasıdır, yazma hatası bir kayıt hatasıdır.

  • Gelen talep kanalları: çağrı sistemi, e-posta, yazışma ve elle girilen notlar; hepsi güvenilmeyen içerik olarak etiketli
  • Varlık hiyerarşisi ve ekipman kimlikleri: yalnızca okuma, eşleme için kanonik kaynak
  • Geçmiş iş emirleri: yalnızca okuma, mükerrerlik kontrolü ve benzer talep tespiti için
  • Yedek parça stok durumu: yalnızca sorgu; rezerv ve sipariş araçları ajana hiç tanımlanmadı
  • Taslak iş emri oluşturma: ajanın tek yazma yetkisi, dar sözleşmeli ve alan kümesi sabit
  • Araç çağrısı günlüğü: değiştirilemez, kaynak belge kimliğiyle birlikte saklanıyor

Mimari kararlar#

Ajan güvenliğinde kararların çoğu modelin davranışını iyileştirmekle değil, yanlış davrandığında yapabileceği en kötü şeyi küçültmekle ilgili. Aşağıdaki tablo bu küçültmenin nerelerden geçtiğini kaydeder.

KararSeçilen yolNeden
Araç sınırıYalnızca taslak oluşturma; güncelleme, durum değiştirme, rezerv ve sipariş yokYetki genişliği doğrudan istem enjeksiyonunun etki alanı
KimlikAjan kendi servis hesabıyla, kullanıcı adına taşınmadanKullanıcı kimliğini devralan ajan, kullanıcının en yüksek yetkisini de devralıyor
Araç seçimiİstemde değil, kod tarafındaki durum makinesindeGelen metin gerekçe olabilir ama hangi aracın çağrılacağını belirlememeli
Onay kapısıTaslak, planlamacı onayı, sonra gerçek iş emriParasal ve operasyonel sonuç doğuran adım insan imzasında kalmalı
BütçeOturum başına araç çağrısı ve ekipman başına günlük taslak sınırıDöngüye giren ajan, dar yetkiyle bile kuyruk doldurarak zarar veriyor
DenetimGirdi, seçilen araç, argümanlar ve tetikleyen kaynak belgesi değiştirilemez günlüğeEnjeksiyon ancak kaynak paragrafa geri izlenerek anlaşılıyor
Tablo yetki tasarımının gerekçesini taşır; ölçülmüş bir sonuç değeri içermez.

Güvenlik ve yetki#

Ölçüm düzeni#

  • Düzeltme türü dağılımı: ekipman eşlemesi yanlış, öncelik yanlış, mükerrer veya talep yanlış anlaşılmış
  • Yetki reddi sayısı: ajanın tanımsız bir araca ya da sözleşme dışı alana ulaşma denemeleri ayrı izleniyor
  • Kırmızı takım kapısı: bilinen enjeksiyon desenlerinden oluşan set her sürümde yeniden koşuyor ve geçmeden yayım yapılmıyor
  • Bütçe aşımı olayları: oturum başına çağrı sınırına dayanan ajan oturumları kayda geçiyor
  • Mükerrer taslak tespiti: aynı ekipmana kısa aralıkta açılan taslaklar işaretlenip planlamacıya birlikte gösteriliyor
  • Günlük incelemesi: araç çağrısı günlüğünün bir örneklemi haftalık olarak kaynak belgeyle birlikte okunuyor

Devreye alma ve işletme#

  1. 1Yalnızca okuma modu

    Ajan hiçbir şey yazmadı; talebi okuyup ekipman eşlemesi ve öncelik önerisini panelde gösterdi.

  2. 2Kırmızı takım seti

    Gelen kanallardan toplanan gerçek metinler ve bilinen enjeksiyon desenleriyle bir sürüm kapısı kuruldu.

  3. 3Taslak yazma

    Tek yazma aracı açıldı; her taslak zorunlu onaydan geçti ve onaylanmayanlar ayrı kuyrukta tutuldu.

  4. 4Günlük denetimi

    Araç çağrısı günlüğü düzenli incelemeye alındı; ilk gerçek enjeksiyon denemesi bu incelemede görüldü.

Nerede yanıldık#

Tehlikeyi yanlış yerde aradık. Silme ve sipariş gibi gürültülü işlemleri baştan kapatmıştık, ama ajanın var olan bir taslağı güncelleme yetkisi duruyordu ve bunu zararsız saymıştık. Gelen bir yazışmanın içindeki talimat benzeri metin, mevcut bir taslağın açıklamasını değiştirdi; kayıt hâlâ oradaydı, alanlar değişmişti, kimse bir şey fark etmedi. Bu olaydan sonra güncelleme yetkisini tamamen kaldırdık ve daha önemlisi, araç seçimini istemden alıp kod tarafındaki durum makinesine taşıdık. İstem içinde kurduğumuz talimat ve veri ayrımının, yetki tasarımının yerini tutmadığını böyle öğrendik.

02ÖĞRENİLEN DERSLER

Bir sonraki projede ne değişir?

Bir vakanın en değerli bölümü sonuç değil, tekrar edilebilir dersidir.

  1. 01

    En tehlikeli yetki silme değil, sessiz güncelleme oldu. Ajanın var olan taslağı güncelleme yetkisi vardı; gelen bir metin mevcut bir kaydın açıklamasını değiştirdi ve kimse fark etmedi. Güncelleme kaldırıldı, ajan yalnızca yeni taslak oluşturuyor.

  2. 02

    İstem içinde "bu bölüm kullanıcı talimatı, bu bölüm veri" demek yeterli bir sınır değil. Araç seçimini istemden alıp kod tarafındaki durum makinesine taşımak, enjeksiyonun etki alanını gerçekten daralttı.

  3. 03

    Ajanı kullanıcı adına çalıştırmak en kolay kimlik çözümü ve en geniş yetki hatası. Ayrı servis hesabı, ajanın yapabileceği en kötü şeyi tek bir rol tanımına indirdi.

  4. 04

    Araç çağrısı bütçesi bir maliyet önlemi değil, güvenlik önlemi. Döngüye giren bir ajan, yetkisi dar olsa bile bakım sistemini çöp taslakla doldurup planlamacının işini bitirebiliyor.

  5. 05

    Enjeksiyon denemesi sonradan ancak kaynak belgeye geri izlenerek anlaşılıyor. Araç çağrısını hangi paragrafın tetiklediğini kaydetmemiş olsaydık, ilk olayı hiç göremezdik.

03DİĞER VAKALAR

Vaka kütüphanesinden

BUILD

Aynı yaklaşımı kurumunuzda kurmak ister misiniz?

Discovery oturumunda mevcut durumunuzu, veri erişiminizi ve başarı tanımınızı birlikte yazıyoruz.