← KÜTÜPHANE

ALTYAPI

AI ajanları için içerik müzakeresi: Accept başlığıyla markdown sunmak

AI ajanları token bütçelerinin büyük kısmını tarayıcılar için yazılmış HTML’i ayrıştırmaya harcar. İçerik müzakeresi, aynı URL’nin bir ajan istediğinde temiz bir markdown sürümü sunmasını sağlar ve insanların ve arama botlarının gördüğüne dokunmaz. Bunun doğru yolu ve kaçınılması gereken hata.

Modern bir web sayfasının büyük kısmı içerik değildir. Framework işaretlemesi, stil kancaları, scriptler ve navigasyon iskeleti birkaç yüz kelimelik asıl içeriği sarar. İnsanlar bu sargıyı hiç görmez. Sayfayı çeken bir AI ajanı ise herhangi bir kısmını kullanabilmek için hepsini bağlam penceresinden geçirmek zorundadır.

Markdown sürümleri bunu çözer: her sayfanın temiz ve yapılandırılmış bir metin sürümü, boyutun küçük bir kısmında, içeriği eksiksiz. Asıl soru bunları sunup sunmamak değil, bir ajanın onları nasıl bulduğu ve nasıl aldığıdır.

Doğru tetikleyici Accept başlığıdır

HTTP’nin cevabı baştan beri vardı: içerik müzakeresi. İstemci hangi biçimleri kabul ettiğini söyler, sunucu aynı kaynağın en uygun temsilini seçer. Markdown isteyen bir ajan kanonik URL’ye Accept: text/markdown gönderir ve markdown sürümünü doğru içerik türüyle ve önbelleklerin temsilleri ayrı tutması için bir Vary: Accept başlığıyla alır. Aynı URL’yi isteyen herkes tam HTML alır.

Keşif varsayıma değil, açık beyana dayanır: her sayfa markdown yolunu gösteren bir link rel alternate etiketiyle kendi sürümünü bildirir ve bir markdown site haritası tüm sürümleri tek yerde listeler. Ajan müzakere edebilir, bağlantıyı izleyebilir ya da .md yolunu doğrudan çekebilir.

Hata: user agent ile tetiklemek

Cazip kısa yol, bot user agent’larını tespit edip AI tarayıcısına benzeyen her şeye markdown dayatmaktır. Canlı testlerde bu belirli ve zarar veren bir şekilde bozulur: AI aramanın ve kullanıcının tetiklediği gezinmenin arkasındaki getiriciler HTML bekler, çünkü içerik çıkarma hatları HTML için kurulmuştur. Onlara markdown dayatırsanız çıkarıcıları boş dönebilir. Site, katmanın hizmet etmek için kurulduğu sistemlerin gözünde daha az görünür hale gelir.

Buradan çıkan kural: yalnızca Accept başlığıyla müzakere edin. Markdown isteyen ajanlar markdown alır. İstemeyen her bot, kendi hattının beklediğini alır. Bu da ikinci şarta götürür.

Varsayılan, önceden oluşturulmuş HTML olarak kalır

Markdown katmanı bir tamamlayıcıdır, ikame değildir. Her rotanın varsayılan temsili sunucuda oluşturulmuş, tamamen dolu HTML olmalıdır; çünkü AI ile ilgili getiricilerin çoğu JavaScript çalıştırmaz ve hiçbir zaman markdown Accept başlığı göndermez. Kök düğümü boş bir JavaScript kabuğu, markdown katmanı ne kadar iyi olursa olsun onlar için görünmezdir.

Sürümlerin bakımı da bir dışa aktarım gibi değil, içerik gibi yapılmalıdır. Sayfa metni değiştiğinde sürüm aynı commit’te değişir; yoksa insanlar sitenin güncel halini görürken ajanlar eski bir sürümünü alır.

Canlıda çalışıyor

Bu bir öneri değil. Burada anlatılan katman tkmstudio.com’da canlı çalışıyor: bu sitenin herhangi bir sayfasını Accept: text/markdown ile isteyin, sunucu markdown sürümünü döndürür; token sayısı bir yanıt başlığındadır, site haritası referans verilmiştir, Vary ayarlıdır. Okuduğunuz sayfanın da bir sürümü var. Müşteri projelerinde teslim ettiğimiz katmanın aynısı.