Bölüm 8 · Büyük dil modellerinin parçaları · Ders 36
Araç kullanan yapay zekâ ajanı
Hedef → düşün → araç çağır → gözle → tekrar
Veri. Bir depo robotuna dört görev veriyoruz: şarj kontrolü, raftan kutu taşıma, takvimdeki bakıma gitme, koridor denetimi. Robotun altı aracı var: sensör okuma, harita sorgusu, motor komutu, tutucu, takvim ve mesaj. Her araç aynı biçimde tanımlı (ad, açıklama, girdi şeması); ajan bu listeye bakıp hangisini çağıracağını seçer. Burada ajan bir dil modeli değil, birkaç kuraldan oluşan küçük bir planlayıcı; döngü ise gerçek ajanlarınkiyle aynı.
W = {"B3": (8, 5), "dock": (9, 1)} # haritaS = {"pos": (4, 1), "held": False, "fails": 1} # dünya; tutucu 1 kez kayardef gripper(op):if S["fails"]: S["fails"] -= 1; raise IOError("slip")S["held"] = op == "pick"; return S["held"]def move(xy): S["pos"] = xy; return xyTOOLS = {"map": W.get, "move": move, "grip": gripper} # ortak arayüzdef plan(m): # kurallı planlayıcı (LLM yok)if "drop" in m: return None, None # hedef tamamgoal = "dock" if S["held"] else "B3"if goal not in m: return "map", goal # yer bilinmiyor → sorif S["pos"] != m[goal]: return "move", m[goal] # oraya gitreturn "grip", "drop" if S["held"] else "pick"m, step = {}, 0 # bellekwhile step < 10: # en fazla 10 adımtool, arg = plan(m); step += 1 # düşünif tool is None: breakfor attempt in range(3): # en fazla 3 denemetry: m[arg] = TOOLS[tool](arg); break # çağır, gözleexcept IOError as e: print(step, tool, "error:", e)print(step, tool, arg, "->", m.get(arg))print("done after", step - 1, "tool steps")
Sahnedeki her sayı, aynı algoritmanın tarayıcında yapılan gerçek çalıştırmasından gelir (sabit tohum, her seferinde aynı sonuç). Python kodunu kendi bilgisayarında çalıştırırsan rastgele başlangıçlar farklı olacağı için sayılar biraz değişebilir.
Veri seti
Tüm veri setleri →Bu dersin kodu verisini kendi içinde üretir; indirilecek dosya yok. Kodu yine de aşağıda tarayıcında çalıştırabilirsin.
Kodu tarayıcıda çalıştırPython · NumPy · matplotlib · Pyodide
Python ve NumPy bu sayfada, tarayıcında çalışır (Pyodide). Kodu değiştirip yeniden çalıştırabilirsin; dersin veri setleri çalışma klasöründe hazır. Kod matplotlib kullanırsa grafikler çıktının altında görünür, yazdığı dosyalar (ör. egitim_gecmisi.csv) indirilebilir.
Çıktı
Çıktı burada görünecek.Nasıl çalışır
- Düşün: ajan hedefe ve şimdiye kadarki gözlemlere (belleğe) bakar ve bir sonraki adımı seçer: "kutunun yeri bilinmiyor → haritaya sor".
- Araç çağır: seçilen aracın adı ve girdileri (ör. drive_to {x: 8, y: 5}) ortak arayüzle gönderilir. MCP (Model Context Protocol) bu arayüzü standart yapar; aynı araç her ajana takılabilir.
- Gözle: aracın dönüşü belleğe yazılır. Hata dönerse aynı çağrı en fazla 3 kez denenir.
- Hedef sağlanınca döngü biter; sağlanmazsa en fazla 10 adımda durur.
- Şunu dene: araç hatasını kapat; yeniden denemeler kaybolur ve adım sayısı azalır. Görev 4’te LiDAR iki kez zaman aşımına uğrar, üçüncüde cevap verir.
Neden önemli
Bugünün yapay zekâ asistanları bu döngüyle çalışır: dil modeli "düşün" adımını yapar, araçlar (takvim, e-posta, veritabanı, kod çalıştırma) gerçek işi görür; MCP sayesinde binlerce araç aynı biçimde bağlanır. Robotikte aynı yapı, görev planlayıcının algılama, haritalama ve hareket modüllerini çağırmasıdır; hata durumunda yeniden deneme ve adım sınırı, sahada güvenli çalışmanın temelidir.
ESOF 323, 11. hafta: robotlarda derin öğrenme →