GNL
Dokümanlar menüsü
Studio@gnldev/studio

Agent versiyonlama

Bir agent'ın model/system/maxSteps sürümlerini journal'da tutar, yeni sürüm ekler ve seçilen sürümü aktif eder (promote) — runtime aktif sürümü çalıştırır.

Ne işe yarar / ne zaman kullanılır#

Kodda tanımlı bir agent'ın model/system-prompt/maxSteps kombinasyonunu prod'a almadan önce denemek, birden fazla sürümü yan yana tutmak ve gerektiğinde eskisine dönmek (rollback) istediğinizde kullanılır. Her yeni sürüm POST /managed-agents ile journal'a değişmez bir kayıt olarak eklenir (yeni deneme = yeni sürüm numarası); POST /managed-agents/:name/promote yalnızca hangi sürümün "aktif" (prod) olduğunu gösteren işaretçiyi taşır — rollback, eski sürüm numarasını tekrar promote etmekten ibarettir. Aktif sürüm, Studio Playground'dan o agent çalıştırıldığında (run/stream) açık bir model/system override'ı verilmediği sürece otomatik uygulanır. Her sürüm ekleme ve her promote agent.version/agent.promote olay adlarıyla denetim (audit) kaydına düşer.

Kurulum / import#

Ayrı bir kurulum adımı yoktur — agent versiyonlama, @gnldev/studio Studio API'sinin bir parçasıdır ve yazılabilir bir journal (listKeys/get/put destekleyen) verildiğinde kendiliğinden açılır:

import { createStudioApp } from '@gnldev/studio';

app.route('/studio', createStudioApp({
  reader: toJournal(storage.runs), // a writable journal agent versioning is ON
  gnl: createStudioRunner(gnl, config),
  auth,
}));

GET /capabilities üzerinden agentVersions alanı, journal yazılabilir olduğu için bu görünümün açık olup olmadığını bildirir; değilse (salt-okunur reader) ilgili uçlar 501 döner.

Adım adım kullanım#

1) Yeni bir sürüm ekleyin — name ve model zorunlu, diğerleri opsiyonel:

POST /studio/api/managed-agents
{ "name": "destek-botu", "model": "gpt-4o-mini", "system": "Kısa ve nazik yanıt ver.", "maxSteps": 4, "note": "daha kısa ton" }
// -> { ok: true, name: "destek-botu", version: 2, active: 1 }
//    a new version number + an audit 'agent.version'

Sürüm numarası otomatik artar (son sürümün version + 1); kayıt ilk kez oluşuyorsa active: null ile başlar (henüz hiçbir sürüm prod'a alınmamış demektir).

2) Denediğiniz sürümü aktif edin (promote) — rollback için eski sürüm numarasını tekrar promote edin:

POST /studio/api/managed-agents/:name/promote
{ "version": 2 }
// -> { ok: true, name: "destek-botu", active: 2, previous: 1 }
//    switches the active version (passing the eval gate first, when one is configured)

3) Kayıtları listeleyin — sürüm geçmişi + o an aktif sürüm no birlikte döner:

GET /studio/api/managed-agents
GET /studio/api/managed-agents
// -> { agents: [ { name: "destek-botu", active: 2, versions: [ { version: 1, model: "...", createdAt }, { version: 2, model: "...", note: "daha kısa ton", createdAt } ] } ] }

Aktif sürüm, Playground'dan POST /agents/:name/run veya /agents/:name/stream çağrıldığında, istek gövdesinde açıkça model/system verilmediği sürece otomatik uygulanır (managed sürüm devreye girdiğinde audit kaydında managedVersion: true işaretlenir).

API referansı#

typeAgentVersion

Tek (değişmez) sürüm kaydı: version, model, system?, maxSteps?, note?, createdAt.

typeManagedAgentRecord

Bir agent için tüm sürümler + aktif (prod) sürüm no: name, active (number | null), versions.

POST /managed-agents

name + model (zorunlu) ve system?/maxSteps?/note? ile yeni sürüm ekler; audit "agent.version".

POST /managed-agents/:name/promote

İstenen version numarasını aktif işaretler (rollback = eski sürümü tekrar promote); audit "agent.promote".

GET /managed-agents

O organizasyona (varsa) kapsanmış tüm agent kayıtlarını (sürüm geçmişi + aktif no) listeler.

Dikkat
Agent versiyonlama yazılabilir bir journal gerektirir (listKeys/get/put destekleyen) — salt-okunur bir reader ile mount edilmiş bir Studio'da ilgili uçlar 501 döner. Çok-organizasyonlu kurulumlarda bağlı kimliğin (orgId) yalnız kendi organizasyonunun sürümlerini gördüğü/yönettiği, bağsız operatörün ise paylaşılan (kök) namespace'i yönettiği unutulmamalı.
İlişkili
Promote öncesi bir eval suite'ini zorunlu kılmak için eval-gate, genel Studio yüzeyi için studio-inspector ve her sürüm/promote olayının denetim izini görmek için audit-log sayfalarına bakın.