Yönetici Özeti ve Mimari Önem
Yazılım mühendisliği dünyası, Pi, Claude Code, OpenCode ve Codex gibi yerel kodlama aracı ve koşımlarının patlama yaşadığına tanık oldu. Geliştirici odaklı bu araçlar, otomatik kod üretimi için olağanüstü günlük sürücüler olarak hizmet verse de, bunları üretim düzeyindeki bulut ortamlarına taşımak kritik mimari eksiklikleri gün yüzüne çıkarmaktadır. Tarihsel olarak, sürekli çalışan ajan döngülerini sürdürmek, genellikle yerelleştirilmiş donanım sıçramalarına ve sürekli güç yönetimi yüküne neden olan özel yerel donanım gerektiriyordu. Bu uzun ömürlü koşum iş yüklerini bulut altyapısına kaydırmak, özellikle geçici sunucusuz yaşam döngüleri, bellek dalgalanması ve ağ kararsızlığı etrafında önemli karmaşıklıklar sunar.
Vercel'in "making-every-harness-durable" sürümü, Workflow SDK'nın World arayüzü üzerine inşa edilmiş gelişmiş bir açık kaynaklı adaptör ve yardımcı program paketi olan durable-harness paketini sunarak bu zorlukları doğrudan ele alır. Geliştiricilerin ajan mimarilerini sıfırdan yeniden oluşturmaya zorlamak yerine, durable-harness mevcut koşımları sararak oturum dosyalarını, dökümleri ve olay depolarını doğrudan sağlam, dayanıklı bir işlem günlüğüne yansıtır. Bu tasarım, temel geçici yürütme modelini soyutlayarak, dakika veya saatler süren uzun soluklu görevlerin, insan müdahalesi olmaksızın işlev zaman aşımına uğramalarından, ağ kesintilerinden ve sunucu çökmelerinden sağ çıkabilmesini sağlar. Ajan mantığını tek örnekli altyapı kısıtlamalarından ayırarak Vercel, esnek yerel geliştirme ile ölçeklenebilir ve son derece dayanıklı bulut dağıtımları arasındaki boşluğu doldurur.
Temel İyileştirmeler ve Geliştirici Ergonomisi
Bu sürümün temel inovasyonu, durum yönetimi ve kurtarma mekanizması etrafında dönmektedir. Bir ajan, bir depoyu okumak, dosya yazmak, bir birleştirme isteği (pull request) oluşturmak ve Sürekli Entegrasyonu (CI) beklemek gibi çok adımlı bir turu işlediğinde, herhangi bir beklenmedik kesinti tipik olarak yürütmeyi durdurur ve ara ilerlemeyi atar. durable-harness ile her eylem, yerel kuyruk mesajlarıyla desteklenen, dayanıklı günlüğe bir yürütme öncesi niyet ve yürütme sonrası sonuç kaydeder. Sunucusuz bir işlev yürütme sırasında ölürse, yeni oluşturulan bir işlev günlükleri inceler, oturum durumunu yeniden oluşturur ve önceki turun sona erdiği yerden tam olarak devam eder. Bu, gereksiz model çağrılarını ortadan kaldırır ve zaten başarıyla tamamlanmış görevler üzerindeki boşa harcanan hesaplama döngülerini önler.
Ayrıca sürüm, araç yürütme politikaları ve güvenlik sınırları üzerinde incelikli bir kontrol sunar. Geliştiriciler artık araçları açıkça 'safe' (eşdeğer/idempotent yeniden denemelere izin veren) veya 'never' (finansal işlemler gibi operasyonlar için tehlikeli çift yürütmeyi önleyen) olarak kategorize edebilir. Paylaşılan sunucusuz ana makinelerde rastgele kabuk komutları çalıştırmanın ve dosya mutasyonları yapmanın ciddi güvenlik riskleri oluşturduğu çok kiracılı ortamlar için Vercel; sanal ortamlar, konteynerleştirilmiş korumalı alanlar (sandboxes) ve oturum sürücüleri dahil olmak üzere izole çalışma alanı konfigürasyonları sağlar. Ek olarak, yapılandırılmış JSON belgeleri (io.docs), ajanların planlar ve yapılacaklar listeleri gibi yan kanal durumunu doğrudan oturum günlüğü içinde korumasına olanak tanır. Bu, ayrı bir veritabanı altyapısına ihtiyaç duymadan, durum mutasyonlarının doğrudan kullanıcı arayüzlerine kesintisiz gerçek zamanlı akışını sağlarken yardımcı ajan durumunun araç çağrılarıyla senkronize kalmasını garanti eder.
Mimari Karşılaştırma Matrisi
| Değerlendirme Metriği | Önceki Temel Çizgi (Geçici Bulut Sanal Makineleri / Yerel Çalıştırma) | Vercel making-every-harness-durable | Mimari Etki |
|---|---|---|---|
| Gecikme ve Kurtarma | Çökme durumunda yüksek gecikme; tam manuel yeniden başlatma ve oturum yeniden komut istemi gerektirir. | Sıfıra yakın kurtarma gecikmesi; Workflow SDK kuyrukları aracılığıyla otomatik günlük odaklı devam ettirme. | Zaman aşımlarından sonra manuel müdahaleyi ve gereksiz API faturalandırmasını ortadan kaldırır. |
| Bellek ve Kalıcılık | Uçucu yerel bellek veya yönetilmeyen sanal makine diskleri; çökmelerde durum kaybolur. | Postgres veya Vercel Worlds'e yansıtılan dayanıklı işlem günlükleri. | Geçici sunucusuz sınırlar boyunca mutlak oturum sürekliliğini garanti eder. |
| API'ler ve Araç Güvenliği | Kısıtlanmamış araç yürütme; arıza durumunda yüksek yinelenen yan etki riski. | Ayrıntılı araç güvenlik politikaları ('safe' ve 'never') ve izole korumalı alanlar. |
Kritik çift yürütme hatalarına ve çok kiracılı güvenlik ihlallerine karşı koruma sağlar. |
Uyarılar ve Geriye Dönük Uyumsuz Değişiklikler
Önceki sürümlerle tamamen geriye dönük uyumludur. durable-harness, mevcut araçları ve koşımları (Pi, fx, OpenCode ve Claude Code gibi) sarmalayan harici bir adaptör katmanı olarak çalıştığından, benimsenmesi çekirdek ajan komut istemlerinde veya temel kod tabanı mantığında uyumsuz değişiklikler gerektirmez. Bununla birlikte, özel koşum uygulamalarını taşıyan ekipler, geçici yerel durum dizinlerinden uzaklaşırken, temel depolama arka uçlarının özel bir Postgres örneği gibi kalıcı bir depoya işaret edecek şekilde doğru şekilde yapılandırıldığından emin olmalıdır. Otomatik çökme kurtarma dizileri sırasında eski araçlardaki yanlış kategorizasyon beklenmeyen davranışlara yol açabileceğinden, yürütme politikalarının ('safe' ile 'never') uygun şekilde atanmasını sağlamak için araç tanımlarına da özel dikkat gösterilmelidir.
Adım Adım Yükseltme Kılavuzu
Dayanıklılığı mevcut ajan koşum iş akışınıza entegre etmek, Workflow SDK'nın World arayüzü ve veritabanı bağlantı değişkenleri etrafında odaklanan minimum yapılandırma değişiklikleri içerir.
Adım 1: Paketi Yükleyin ve Ortam Değişkenlerini Yapılandırın
durable-harness paketini proje bağımlılıklarınıza ekleyin ve standart Vercel ortam değişkenlerini kullanarak ortamınızı dayanıklı bir depolama katmanını (Postgres gibi) hedefleyecek şekilde yapılandırın:
npm install durable-harness @vercel/workflow
Bağlantı değişkenlerinizi proje yapılandırmanızda ayarlayın:
VERCEL_WORKFLOW_DATABASE_URL=postgres://user:password@host:5432/dbname
Adım 2: Kod İçerisinde Koşum Adaptörünü Başlatın İlgili koşum adaptörünü içe aktarın ve çalışma alanını ile gerekli güvenlik seçeneklerini geçirerek ajan yürütme rotanız içinde örnekleyin:
import { WorkflowWorld } from '@vercel/workflow';
import { durableHarness } from 'durable-harness';
import { PiHarness } from 'durable-harness/pi';
export async function runAgentSession(prompt: string) {
const world = new WorkflowWorld({
namespace: 'agent-sessions',
});
const agent = durableHarness({
harness: new PiHarness(),
world,
workspace: './workspace',
builtins: true,
});
return await agent.run(prompt);
}
Adım 3: Araç Güvenlik Politikalarını Tanımlayın Özel ajan araçlarınızın, çökmelerden sonra otomatik devam ettirmeyi güvenli bir şekilde yönetmek için yürütme sınırlarını açıkça bildirdiğinden emin olun:
const customTools = {
lookupDatabase: {
policy: 'safe',
execute: async (query) => db.query(query),
},
processRefund: {
policy: 'never',
execute: async (amount) => paymentGateway.refund(amount),
},
};