IBM Bob

Bob, ana bilgisayarla buluşuyor

IBM Bob Premium Package for Z'yi genel kullanıma sunuyoruz. Genel amaçlı bir modelin COBOL'unu neden yanlış anladığını ve bunu nasıl çözdüğümüzü anlattık.

Bob, ana bilgisayarla buluşuyor

Yazarlar

Louisa MuschalNicolas DangevilleStefan Liesche

Yayınlandı

Kategori

announcement

Paylaş

Bob, ana bilgisayarla buluşuyor

Bob'u başlatırken, ilginç sorunun yeni kod yazmak değil, halihazırda var olan bir sistemin içinde çalışmak olduğunu söyledik — değişiklik yapacak doğru yeri bulmak, bir ekibin yıllar önce belirlediği kurallara uymak, uzun süredir büyüyen dosyalar genelinde tutarlı davranışı korumak.

«Halihazırda var olan bir sistemin» en uzun süredir çalışan versiyonu bir ana bilgisayarda çalışıyor. Onlarca yıllık COBOL ve PL/I, milyonlarca satır, Db2, CICS, IMS ve toplu iş zamanlayıcıları aracılığıyla birbirine bağlı on binlerce program — karşılayamayacakları hiçbir aksaklığa yol açmadan işletmeyi çalıştırmaya devam eden kod.

Bugün IBM Bob Premium Package for Z (Bob PP4Z)'yi genel kullanıma sunuyoruz. IBM watsonx Code Assistant for Z'nin yerini alıyor ve IBM Z uzmanlığını — platform dilleri, middleware farkındalığı ve deterministik kurumsal genişlikte analiz — doğrudan Bob deneyimine taşıyor.

Bu, bir özellik turu değil, mühendislik hikayesidir. PP4Z'nin yaptığı her şeyi listelemek yerine, üç şey yapmak istiyoruz:

  1. Genel amaçlı bir modelin ana bilgisayar uygulamalarını kabul ettiğinden daha sık neden yanlış anladığını açıklamak.
  2. Bob'u olasılıklar yerine ortamınızla ilgili deterministik gerçeklere nasıl dayandırdığımızı göstermek.
  3. Z'ye özgü modlar, beceriler ve iş akışlarını incelemek — ve bunlarla neler oluşturabileceğinizi.

1. Ana bilgisayarın neden zor bir durum olduğu

Ana bilgisayar ortamına yöneltilen genel amaçlı bir model, hiçbir akıllı istemin gerçekten çözemediği üç sorunla karşılaşır. PP4Z'nin tasarımı her biri için çözümler sunuyor.

1.1. Ölçek ve bağlam penceresine etkisi

Tek bir iş uygulaması, COBOL, PL/I ve assembler genelinde on binlerce birbirine bağlı modül ve kurumsal bir zamanlayıcı tarafından zincirlenen binlerce toplu iş içerebilir. «Küçük» bir 200 program dilimi bile kolayca yüz binlerce satır anlamına gelir.

Bu bir bağlam penceresine sığmaz ve sorun yalnızca pencere değildir. Bağlam büyüdükçe model performansı düşer (Chroma Research Context Rot Study, 2025) — yanıtlar eksik, tutarsız veya güvenle yanlış hale gelir. «İlgili dosyaları» dahil etmek, hangi dosyaların ilgili olduğunu zaten bildiğinizi varsayar — oysa bulmaya çalıştığınız tam da buydu.

1.2. Kodda olmayan anlam

Ana bilgisayar kodu anlamsal olarak yoğundur. İş anlamı, alan adlarında ve onlarca yıllık kurallarda yaşar; bir ayrıştırıcının okuyabileceği bir şeyde değil. Bir kısmı tahmin edilebilir — SERIALN büyük olasılıkla bir seri numarasıdır, TOT-STTM muhtemelen toplam uzlaşma. Büyük çoğunluğu tahmin edilemez: C-M nedir? M-CAP? Neden CCZD öneki? NO-SIN, NO-EVN ve NO-CNT arasındaki fark ne?

Anlam gerçek ve yapısal öneme sahip, ancak yalnızca koddan tahmin edilemez. Geleneksel yanıt bir veri sözlüğüdür — ancak ölçek (milyarlarca değişken) bunu elle veya bir dil modeliyle kaba kuvvetle oluşturmayı zorlaştırır.

1.3. En olası yanıt doğru yanıt değildir

Bir dil modeli, eğitim dağılımına göre istatistiksel olarak olası olanı döndürür. Modeller deterministik değildir; aynı soru farklı günlerde farklı yanıtlar alabilir. Kontrol akışıyla ilgili yanlış bir yanıtın iş mantığını yanlış temsil edebileceği bir sistemde, bu önemli bir risktir.

Büyük olasılıkla kendiniz de karşılaştığınız bir senaryodur — fark ettiyseniz. Gerçek bir COBOL toplu iş uygulaması örnek alın: 233 program, 742 kopyalık, 20+ MB kod, yoğun çağrılan bir tarih yardımcı programı N991DATE. Meta verilere göre gerçek, 30 programın onu çağırdığıdır. Şimdi bir frontier modele doğrudan sorun:

  • 1. gün. Her şeyi yükleyemediği için statik CALL ifadelerini arar ve 13 raporlar. Dinamik çağrılar hakkında sorulunca regex'i genişletir ve 29 raporlar. Kaçırdığı CHKOUTB, ROCHKOUT.cbl adlı bir dosyada bulunur — çünkü kurala göre dosya adı genellikle PROGRAM-ID'siyle eşleşir ancak hiçbir zaman zorunlu değildir.
  • 2. gün. Aynı soru, farklı sezgisel yöntemler ve şimdi 31 raporlar — fazla sayım. Yanlış pozitif N285RODR, yalnızca working storage'da 'N991DATE' literalini bildirir ve asla kullanmaz. Model buna ancak birkaç takip sorusundan sonra ulaşır.

Bu sezgisel yöntemlerin hiçbiri mantıksız değildir. Sadece yeterince iyi değildir ve «X'i kim çağırıyor» etki analizi ve program anlama sırasındaki temel sorulardan biridir. Daha gelişmiş sorular — birden fazla programda güncellenen tablolar hangileri, okunan ama hiç yazılmayan dosyalar hangileri, PREMPZ72'deki WS-UIT02 hesaplamasına hangi değişkenler besleme yapıyor — desen eşleştirmenin sağlayamayacağı eksiksiz, hassas bir analiz gerektirir.

Sonuç «modeller ana bilgisayar program anlama için yararlı değildir» değildir. Üzerine akıl yürütülecek gerçek bir şey olduğunda model yanıt kalitesinin önemli ölçüde iyileştiğidir. Dil modelleri, veri işlemede mükemmeldir.

2. Bob'u olasılıklar yerine gerçeklere dayandırmak

PP4Z'nin yanıtı, modelden kaynak koddan sistemi yeniden oluşturmasını istemeyi durdurmak ve bunun yerine üzerine akıl yürütmesi için deterministik, sorgulanabilir bir ortam temsili vermektir. Üç mekanizma dayandırmayı sağlar: model, isteğin kendisindeki belirsiz z/OS yapılarını işaretlemesi için uyarılır; istemler yetkili IBM Z öngörüleri, IBM belgeleri, referans materyali, doğrulanmış örnekler ve daha fazlasıyla zenginleştirilir ve genel amaçlı programlama önyargıları aktif olarak bastırılır; model ise analiz meta verilerinden önce yanıt vermesi için yönlendirilir. Amaç, yanıtları bir eğitim dağılımına değil IBM Z sistemine izlenebilir kılmaktır.

2.1. Z Understand: ortamınızın sorgulanabilir modeli

Z Understand, PP4Z'nin altındaki statik analiz platformudur. Tam kaynağınıza erişimi olan bir sunucuda çalışır, COBOL, PL/I ve assembler ile JCL ve Control-M ile TWS gibi zamanlayıcılar için tarayıcılar sunar ve binlerce programı paralel olarak tek bir sorgulanabilir depoya işler. 10.000+ program ortamlarında deterministik, tutarlı yapı tutar.

Bunu farklı bir çıktıya sahip bir derleyici ardışık düzeni olarak düşünmek yardımcı olur: yürütülebilir bir dosya değil, yapılandırılmış, sorgulanabilir bilgi — veri tanımları, programlar ve işler arasındaki kontrol akışı, hassas veri akışı (REDEFINES ve bellek ofsetleri dahil) ve alt sistem etkileşimleri.

2.2. Modelin kendi sorgularını yazmasına izin vermek

Meta verilerin nasıl sunulduğu, meta verilerin kendisi kadar önemlidir. Sabit API'ler ve önceden tanımlanmış MCP sorgu kalıpları, bilinen ve beklenen sorular için çok verimlidir ancak açık uçlu analizde başarısız olur. Açık uçlu analiz sırasında gerçek bir soru, akıl yürütme ilerledikçe değişen birçok alt sorguya dönüşür.

Bu nedenle Bob'a sağlanan hazır sorguların ötesine geçmeyi ve meta verilere karşı kendi sorgularını oluşturup çalıştırmayı öğrettik. Bu, modellerin gerçekten iyi olduğu şeylere — akıl yürütme ve sorgu oluşturma — yaslanır ve yapılandırılmış verinin ölçeklendiği gibi ölçeklenir: 10 programınız da olsa 10.000'iniz de, sorgu aynıdır; yalnızca sonuç kümesi büyür.

2.3. Genişletilebilirlik, özel tarayıcılar ve çalışma zamanı verileri

Saf sözdizimsel analiz, dinamik çağrıların, API soyutlamalarının ve ön işlemcilerin gerçek akışı gizlediği durumlarda önemli ilişkileri kaçırır. Z Understand Extensibility çerçevesi bu boşluğu kapatır:

  • API çağrısı / makro çözümlemesi, dolaylı ve parametre güdümlü çağrıları gerçek hedeflerine eşler, genel çağrı kenarlarını JSON yapılandırması veya kullanıcı çıkışları aracılığıyla somut çağıran–çağrılan ilişkileriyle değiştirir.
  • Ön işlemci genişletilebilirliği, orijinal kaynak görünümünü korurken standart olmayan ifadeleri yorumlar, işlem öncesi ve sonrası kod arasında temiz eşleme yapar.
  • Özel tarayıcılar, şema güdümlü bir JSON arayüzü aracılığıyla özel dilleri, 4GL'leri ve hatta kod olmayan kaynakları tek bir modele getirir.

Statik analiz size ne olabileceğini söyler; çalışma zamanı verileri ne olduğunu söyler. PP4Z, hata ayıklayıcıyı bir veri toplama aracına dönüştürür ve bu hassas izleri Bob'a iletir.

2.4. Veri sözlüğü: tamlık yerine alaka

Milyarlarca değişkeni belgelemek ne mümkündür ne de sürdürülebilir, bu nedenle PP4Z bunu denemiyor. Deterministik analiz, değişkenleri gerçekten davranışı ne kadar yönlendirdiklerine göre sıralar — kullanım sıklığı, kod bölgeleri genelindeki dağılım, kontrol akışına katılım, veri tabanları ve G/Ç ile etkileşim — ve bir programın amacını ortaya koyan küçük grubu seçer.

Buradaki yararlı bulgu: sınırlı kapsam yeterlidir. Program başına yaklaşık ilk 10-20 değişkeni tanımlamak, kapsamlı belgeleme olmadan anlayışı önemli ölçüde iyileştirir. Z Understand Services bunu CLI'dan tüm portföyler genelinde otomatikleştirir, güven puanı yalnızca eşiğin üzerindeki tanımları tutar ve IDE'deki human-in-the-loop adımı geliştiricilerin çıktıyı gözden geçirmesine, düzeltmesine ve mevcut sözlüklerle uyumlu hale getirmesine olanak tanır.

3. Bob'u Z için özelleştirmek

Dayandırma, Bob'a iyi gerçekler verir. Özelleştirme, çıktıların açıklanabilir ve süreçlerin yönetişimi karşılaması gereken bir ortamda Bob'u öngörülebilir kılan şeydir. PP4Z dört parça üzerine inşa edilmiştir: modlar, araçlar, beceriler ve iş akışları.

  • Modlar, bir etkileşim akışı için rolü ve sınırları belirler. Bir mimar tarzı mod, kod değişikliğinin açıkça yasaklandığı analizlere, belgelemeye ve bağımlılık keşfine öncelik verir. Bir geliştirici modu, kodlama standardı uygulaması dahili olarak yerleştirilmiş şekilde üretim ve yeniden düzenlemeye göre ayarlanmıştır.
  • Araçlar, modele yapılandırılmış sistem bilgisine doğrudan erişim sağlar — program tarama, meta veri sorgulama, veri sözlüğü arama, kurumsal genişlikte analiz hizmetleri.
  • Beceriler, yinelenen uzmanlığı tekrarlanabilir, denetlenebilir adımlara kodlar. Uygulama planlama becerisi örneğin sabit bir sırayı zorlar: bağlamı edinmek ve doğrulamak, gereksinimleri çerçevelemek, meta verilerden etkiyi eşlemek, ardından kalıcı ve gözden geçirilebilir bir plan üretmek.
  • İş akışları, durumlu orkestrasyon ekler — sıralama uygulama, ara sonuçları doğrulama, hatalı girdide durma. Veri sözlüğü iş akışı, bazı değişkenler uydurmak yerine değişken bulamazsa durur.

Standartlar ve yönetişim, ek altyapı gerektirmeden depo düzeyinde agents.md kuralları aracılığıyla varsayılan olarak uygulanır. Kod yazmadan kendi becerilerinizi de oluşturabilirsiniz.

Bunlar birleştiğinde, tek bir istem uçtan uca bir görevi yönetebilir:

«Motor Poliçe Tablosuna aracın elektrikli olup olmadığını yakalayan bir sütun ekleyin. Kodlama standartlarımı uygulayın ve etkilenen tüm programları güncelleyin.»

Bob niyeti okur, bir plan oluşturur, doğru modları, becerileri ve depo kurallarını seçer ve programları analiz etmek, değişkenleri çıkarmak, veri tanımlarını güncellemek ve uyumlu sonuçlar üretmek için gereken araçları güvenli şekilde çalıştırır — yönetişim, yürütme ve akıl yürütme tek geçişte, değişiklikleri onaylayan sizsiniz.

4. Bugün neler oluşturabilirsiniz

  • Kaymasayan belgeler. Belgeleri deterministik meta veriler artı kaynak ve çalışma zamanı bağlamına dayandırılmış oluşturulmuş bir artifakt olarak ele alın — talep üzerine yeniden oluşturulabilir, mevcut sistemle uyumlu.
  • z/OS'ta deterministik COBOL'dan Java'ya geçiş. PP4Z, meta verileri dönüşümün omurgası olarak kullanır; mimarinin yeniden üretilebilir olması ve iş mantığının özetlenmek yerine hassas biçimde eşlenmesi için paralel kaynak ve hedef modelleri oluşturur.
  • Hedefli yeniden düzenleme ve işlev çıkarma. Bob, iş işleviyle açıklamalı yeniden düzenleme adaylarının sıralı bir listesini üretir, ardından net giriş ve çıkışlara sahip bağımsız modüller çıkarır.
  • Yerel z/OS araçları. Z Open Editor özellikleri artı yeni MCP araçları: IDE'den z/OS'ta derleme çalıştırmak için Dependency Based Build (DBB), Z Code Scan ve canlı hata ayıklama oturumlarını yapay zeka destekli kök neden analizine dönüştürmek için IBM Debug for z/OS.

Bu bir mühendislik gönderisi olduğu için dürüstlük adına: bunların hiçbiri geliştiricileri döngüden çıkarmaz ve öyle bir niyet de yoktur. Modlar, onay kapıları ve human-in-the-loop veri sözlüğü, bu sistemlerde «büyük ölçüde doğru» başarısızlık modu olduğu için, hedef olmadığı için vardır.

5. Nasıl erişim sağlanır

Bob Premium Package for Z (PP4Z), IBM Bob'un bir eklentisidir, indirmeniz gereken ayrı bir ürün değildir. PP4Z, kurumsal bir ortam içindeki canlı bir ana bilgisayar ortamına karşı çalışır — yetkilendirme satış odaklıdır.

  • IBM temsilcinizle başlayın veya bob.ibm.com'daki Satışla İletişim seçeneğini kullanın. Organizasyonunuz için temel IBM Bob planını ve Z eklentisini kuruyorlar.
  • Bob yöneticiniz Z eklentisiyle bir koltuk atadığında, IBM Bob'u kullandığınızda yetkilendirme algılanır. Bob IDE'yi yükleyin, oturum açın ve Z'ye özgü modlar, beceriler ve araçlar görünür.

6. Başlamak için

  1. Bob'u zaten kullanıyorsanız PP4Z, sahip olduklarınızın üstüne Z'ye özgü modlar, beceriler ve araçlar ekler.
  2. Çalışma alanınızdaki kodla ilgili daha derin içgörüler elde etmek için yerleşik anlama özelliğini kullanın.
  3. Doğru cevapları zaten bildiğiniz gerçek bir uygulamaya Z Understand'i yöneltin — ve Bob'un analizini gerçek doğruyla karşılaştırın.
  4. Hiçbir zaman doğrudan bir cevap alamadığınız bir soruyla başlayın: bu yardımcı programı gerçekten kim çağırıyor, bu iş hangi tablolara dokunuyor, bu değişken ne anlama geliyor?
  5. Veri ve akıl yürütmeyi birleştiren daha zorlu sorular sorun: «Konulara göre düzenlenmiş diyagramlarla bir çağrı grafiği ver»

Bağlantılar