Agent iş akışları · 2026-08-29
PentestCode LLMTR sağlayıcı kurulumu ve yetkili test yapılandırması
PentestCode aracını LLMTR üzerinden çalıştırmak için sağlayıcı eklentisini, anahtar çözümlemesini, model keşfini ve akıl yürütme alanı dönüşümünü yetkili sızma testi kapsamıyla birlikte kurun.
Yetkili test kapsamı yapılandırmadan önce gelir
PentestCode, saldırı yüzeyini bir ajan döngüsüyle inceleyen açık kaynaklı bir sızma testi aracıdır. Deposunun katkı bölümü aracın hangi ortamlarda koşturulmasını beklediğini açıkça yazar: bir CTF makinesi, bir HTB makinesi veya yetkili bir sızma testi. Bu rehber de aynı sınırın içinde kalır. Anlattığı şey sağlayıcı yapılandırmasıdır; saldırı tekniği, açık istismarı veya hedef seçimi anlatmaz.
Sağlayıcı anahtarını yerleştirmeden önce kapsamın yazılı olması gerekir. Yazılı izin, tanımlı bir hedef listesi ve üretim dışı bir ortam aşağıdaki adımların ön koşuludur. Bu üçü yoksa yapılandırma teknik olarak doğru olsa bile koşturma meşru değildir. Tespit atlatma, kitlesel tarama ve izinsiz hedefleme bu rehberin kapsamı dışındadır.
- Yazılı izin: kimin verdiği, hangi tarih aralığını kapsadığı ve iletişim noktasının kim olduğu belli olsun.
- Hedef kapsamı: alan adları, adres aralıkları ve kapsam dışı bırakılan sistemler ayrı ayrı listelensin.
- Ortam: üretim dışı bir kopya ya da kapsamda açıkça izin verilmiş bir sistem kullanılsın.
- Kayıt: koşturma tarihi, kullanılan model kimliği ve durdurma koşulu rapora yazılsın.
Anahtarı tanıtmanın iki yolu
Önce kodun nereden alınacağı: bu entegrasyon henüz üst akış deposuna alınmadı. Sağlayıcı eklentisi knowhycodata/pentestcode deposunda feat/llmtr-provider dalında duruyor. Aracın resmi yayımlanmış sürümünü kurarsanız LLMTR seçeneğini listede bulamazsınız; aşağıdaki adımlar o dalın çalıştırıldığı bir kurulumu varsayar.
PentestCode LLMTR sağlayıcısını o dalda yerleşik olarak taşır. Ayrı bir uzantı kurmak ya da elle taban adres yazmak gerekmez. Anahtar iki yoldan biriyle çözümlenir: etkileşimli oturum açma akışında listeden LLMTR seçilip anahtar yapıştırılır, ya da LLMTR_API_KEY ortam değişkeni tanımlanır. Eklenti bu iki yöntemi entegrasyon kaydına anahtar ve ortam değişkeni olarak ayrı ayrı bildirir, yani ikisi birbirinin yedeği değil, iki eşdeğer giriş noktasıdır.
Depodaki örnekte anahtar yer tutucusu sk- ön ekiyle yazılmış. LLMTR tarafında doğrusu bu değil: panelde üretilen anahtarlar llmtr- ön ekiyle başlar. Örneği birebir kopyalarsanız istek kimlik doğrulama hatasıyla döner, çünkü gönderilen dize hiçbir LLMTR anahtarıyla eşleşmez. Kurulumdan sonra yapılacak ilk göz kontrolü budur.
Taban adres varsayılan olarak gateway kökündedir. LLMTR_BASE_URL tanımlanırsa hem model keşfi hem de istekler o adrese gider. Kendi önünüzde bir vekil ya da hazırlık ortamı çalıştırıyorsanız değiştirilecek tek değer budur.
Anahtar ve taban adres için üç seçenek
# Etkileşimli akış: listeden LLMTR seçilir ve anahtar yapıştırılır
pentestcode auth login
# Ya da ortam değişkeni ile
export LLMTR_API_KEY=llmtr-your_key
# Vekil veya hazırlık ortamı için taban adres
export LLMTR_BASE_URL=https://llmtr.com/v1
Yapılandırma dosyasında model kimliği
Yapılandırma .pentestcode/pentestcode.jsonc dosyasında durur. Sağlayıcı bloğunda llmtr anahtarının altına bir model kimliği yazılır. Kimlik, gateway kataloğundaki kanonik biçimdir: sağlayıcı adı, eğik çizgi ve model adı. Eklenti bu dizeyi olduğu gibi isteğin model alanına koyar, dolayısıyla katalogda görünen kimlik ile dosyaya yazılan kimlik birebir aynı olmalıdır.
Deponun örneği openai/gpt-5.5 kullanıyor. Bu kimliğin LLMTR tarafındaki bağlaması Responses ucudur, ama eklenti OpenAI uyumlu istemciyi kullandığı için istek chat completions yolundan gider ve çalışır. Köprü tek yönlüdür: chat completions isteği, Responses bağlaması olan bir modele ulaşabilir. Ters yön geçerli değildir, yani yalnızca chat completions bağlaması olan bir modeli Responses ucundan çağırmanın karşılığı yoktur. Yapılandırmayı yazarken bu asimetriyi bilmek, çalışmayacak bir kimlik seçmenizi engeller.
Sağlayıcı bloğu: .pentestcode/pentestcode.jsonc
{
"provider": {
"llmtr": {
// Kanonik kimlik biçimi: saglayici/model
"model": "openai/gpt-5.5"
}
}
}
Model listesi nereden geliyor
Eklenti kataloğu iki kaynaktan doldurur. Birincisi kod içine gömülü tohum listedir; ikincisi gateway’in model ucundan yapılan canlı çekimdir. İkisi kimlik üzerinden birleştirilir ve çakışmada canlı kayıt kazanır, böylece bağlam pencereleri ve ücret alanları güncel kalır.
Canlı çekim yalnızca yapılandırılmış bir anahtar varken yapılır. Anahtar yoksa sağlayıcı zaten kullanılamaz durumdadır, bu yüzden başlangıçta ağa hiç çıkılmaz. Çekim ayrıca çatallanarak yürütülür, yani sağlayıcının kayıt olmasını bloklamaz; ağ yavaşsa araç yine de açılır. Oturum sırasında anahtar eklenip kaldırıldığında bağlantı olayı dinlenir ve liste yenilenir.
Tamamen çevrimdışı ya da yalıtılmış koşturmalar için LLMTR_SKIP_REMOTE_MODELS değeri 1 yapılır; bu durumda yalnızca tohum liste kalır. Ücret alanları katalog tarafında milyon token başına tutulur, gateway ise token başına ondalık dize verir, bu yüzden eklenti değerleri bir milyonla ölçekler. Bu bir fiyat kararı değil, birim dönüşümüdür.
| Durum | Kaynak | Sonuç |
|---|---|---|
| Anahtar tanımlı değil | Yalnızca tohum liste | Sağlayıcı görünür, başlangıçta ağ isteği yapılmaz |
| Anahtar var, gateway erişilebilir | Tohum liste ve canlı çekim birleşir | Çakışan kimliklerde canlı kayıt kazanır |
| Anahtar var, çekim başarısız | Tohum liste | Kayıt bozulmaz, katalog kullanılabilir kalır |
| LLMTR_SKIP_REMOTE_MODELS değeri 1 | Yalnızca tohum liste | Yalıtılmış koşturma, model keşfi için ağ trafiği yok |
Akıl yürütme alanı istekte nasıl yeniden yazılıyor
LLMTR arkasında düşünme kontrolü birbirinden farklı olan modeller vardır. Bazıları kademeli bir çaba parametresi kabul eder, bazıları yalnızca açık kapalı bir düşünme bayrağı taşır, bazıları hiçbir düşünme parametresi almaz. Eklenti bunu istek yolunda çözer: her modelin bildirdiği parametre listesinden bir mod çıkarır ve gövdeyi o moda göre düzenler. Yeniden yazıcı genel bir kayda bağlanır, yani paylaşılan istek yolunda sağlayıcıya özel bir dal bulunmaz.
Dönüşüm yalnızca gövdede bir çaba alanı varsa devreye girer. Çaba alanı taşımayan gövdeler ve JSON olarak ayrıştırılamayan gövdeler olduğu gibi geçer. Açıkça kapatma anlamına gelen değerler düşünmeyi açmaz, kullanıcının kendi yazdığı düşünme bayrağı ezilmez. Kademeli çabayı zaten kabul eden modeller bu katmana hiç uğramaz.
Bu ayrım yetkili bir koşturmada işe yarar, çünkü aynı yapılandırmayı farklı modellerle tekrarladığınızda çaba alanı bazı modellerde geçersiz parametre hatası üretirdi. Yeniden yazma katmanı bu hatayı istek gönderilmeden önce ortadan kaldırır ve koşturmanın ortasında model değiştirmeyi güvenli hale getirir.
| Mod | Nasıl tespit edilir | Gövdeye ne olur |
|---|---|---|
| Kademeli çaba | Model kademeli çaba parametresini bildirir | Gövde değişmez, çaba alanı olduğu gibi gider |
| Açık kapalı bayrak | Model yalnızca düşünme bayrağını bildirir | Çaba alanı silinir, düşünme bayrağı açılır |
| Parametresiz | Model hiçbir düşünme parametresi bildirmez | Çaba alanı silinir, yerine bir şey eklenmez |
| Bilinmeyen model | Kimlik henüz kataloğa yansımamıştır | Yeniden yazıcı çözülmez, gövde olduğu gibi gider |
Engagement için hangi modeli seçmeli
Ajan döngüsü araç çağrısına bağlıdır, bu yüzden ilk süzgeç yetenek bayrağıdır. Eklenti araç desteğini modelin bildirdiği parametre listesinden okur. Araç bildirmeyen bir model kataloğa yine girer, ama ajan işi için uygun değildir; kimliği seçmeden önce bu bayrağa bakın.
Türkiye’de barındırılan satırlarda llmtr/gemma-4 araç çağrısını ve görüntü girdisini birlikte taşır; arayüz çıktısı veya ekran görüntüsü incelenmesi gereken kapsamlarda bu ikisi bir arada anlamlıdır. Daha uzun bağlam ve kademeli çaba kontrolü gerekiyorsa zai/glm-5.3 kademeli çaba parametresini kabul eder, yani yukarıdaki tabloda gövdesi değiştirilmeyen sınıfa girer. deepseek/deepseek-v4-pro düşünmeyi kendi içinde yürütür ve ayrı bir düşünme parametresi almaz, dolayısıyla parametresiz sınıfa düşer.
Maliyet tarafında kural nettir: model fiyatlarına platform marjı eklenmez. LLMTR marjı yalnızca kredi yüklemede uygulanır ve yüzde 8’dir. Uzun koşturmalarda harcamayı belirleyen şey model seçimi, bağlam boyutu ve tekrar sayısıdır.
- Araç çağrısı bildirmeyen satırları ajan döngüsünde kullanmayın; llmtr/trendyol-asure-12b tohum listede araç desteği olmadan görünür.
- Kapsam Türkiye’de kalacaksa llmtr ön ekli satırları tercih edin.
- Aynı engagement içinde model değiştirdiyseniz rapora hangi adımda hangi kimliğin kullanıldığını yazın.
- Sağlayıcı isteklere atıf başlıkları ekler; kendi değerinizi tanımlarsanız sizinki korunur.
Doğrulama ve sık karşılaşılan durumlar
Kurulumdan sonraki ilk kontrol katalogdur. Sağlayıcı listede LLMTR adıyla görünmeli ve altında en az tohum modeller bulunmalıdır. Liste tamamen boşsa sorun anahtar çözümlemesindedir, ağda değil, çünkü anahtar yokken zaten uzak çekim yapılmaz.
İkinci kontrol tek bir kısa istektir. Yanıt gelmiyorsa sırasıyla anahtarın ön ekine, taban adrese ve seçilen kimliğin katalogda gerçekten bulunup bulunmadığına bakın. Emekli bir kimlik seçilmişse gateway isteği açıklayıcı bir yanıtla reddeder; bu bir ağ hatası değildir ve yeniden denemekle geçmez.
- Anahtar sk- ile başlıyorsa yanlış sağlayıcının anahtarını yapıştırmışsınızdır.
- Model listesi yalnızca tohum satırları gösteriyorsa canlı çekim hiç yapılmamıştır; anahtarın tanımlı olduğunu doğrulayın.
- Yalıtılmış testlerde ağ isteği görüyorsanız atlama değişkeni tanımlı değildir.
- Kimlik kanonik biçimde değilse katalog eşleşmesi bulunamaz ve model bilinmeyen sayılır.
Sık sorulan sorular
PentestCode için ayrı bir LLMTR uzantısı kurmam gerekiyor mu?
Hayır. Sağlayıcı, aracın çekirdek eklenti kümesinin içinde gelir. Yapmanız gereken anahtarı tanıtmak ve yapılandırma dosyasında bir model kimliği seçmektir. Elle taban adres yazmak yalnızca kendi vekilinizi kullanıyorsanız gerekir.
Çaba parametresi gönderdiğim halde model düşünmüyorsa ne olmuştur?
Seçtiğiniz model büyük olasılıkla kademeli çabayı değil, açık kapalı bir düşünme bayrağını ya da hiçbir düşünme parametresini bildiriyordur. İlk durumda çaba alanı silinip bayrak açılır, ikinci durumda alan tamamen kaldırılır. Kapatma anlamına gelen bir değer gönderdiyseniz düşünme kasıtlı olarak açılmaz.
Çevrimdışı bir ortamda sağlayıcı yine de görünür mü?
Görünür. Tohum liste kod içinde taşındığı için katalog boş kalmaz ve atlama değişkeni ile uzak çekim tamamen kapatılabilir. Ancak istekler gateway’e ulaşamıyorsa yalnızca liste görünür, koşturma yapılamaz.
Bu yapılandırma yetkisiz bir hedefe uygulanabilir mi?
Hayır. Rehber yalnızca sağlayıcı ve model yapılandırmasını anlatır. Aracın kendi deposu da koşturmayı CTF makinesi, HTB makinesi veya yetkili bir sızma testi bağlamına oturtur. Yazılı izin ve tanımlı hedef kapsamı olmadan koşturma yapılmaz.