Bu sayfa, depoda minimal-tool-agent örneği olarak gelen deterministik ajanın aynısını kurar: değiştirilemez bir bellek-içi katalogdan tek bir kayıt okur, doğrulanmış bir artifact üretir ve bir EvidenceRecord dışa aktarır. Sağlayıcı anahtarı yok, ağ yok.
Uyumluluk: Pactmark 0.2.x. Aşağıdaki her sembol, yazım için ihtiyacınız olan @pactmark/core parçalarını yeniden dışa aktaran @pactmark/agent’tan gelir.

1. Şemaları beyan edin

Bir sınırı geçen her şeyin sürümlenmiş bir şema kimliği vardır. semanticRevision, biçim benzer görünse bile bir anlam değişikliğini görünür kılan şeydir.
src/example.ts
.strict() kullanın. Açık bir nesne, sistemin geri kalanının hakkında hiç düşünmediği alanları sessizce kabul eder ve o alanlar özetlere, bağlamlara ve kanıta sızar.

2. Aracı tanımlayın

Bir araç yalnızca bir fonksiyon değildir. Politikanın zorlayacağı ve kayıt özetine katkı veren bir güvenlik beyanı taşır.
src/example.ts
maxCallsPerRun ve timeoutMs birer öneri değildir. Zorlanan tavanlardır — döngüye giren bir model bunları harcayarak aşamaz; zaten amaç tam olarak budur.

3. Model sınırını tarif edin

Deterministik bir yerel model bile bir güvenlik profili ve bir kaynak profili beyan etmek zorundadır. Bu iki özet koşuyla birlikte taşınır; böylece sağlayıcı, bölge, saklama veya çıktı tavanı değişikliği sessiz değil görünür olur.
src/example.ts
Sürücünün kendisi, ya bir tool_call ya da bir final değeri üreten bir async generator’dır. Burada tamamen deterministiktir; örneği test edilebilir kılan da budur:
src/example.ts
Sürücü araca adıyla değil kayıt özetiyle atıfta bulunur. Aracın şeması, güvenlik meta verisi veya uygulama sürümü değişirse o özet değişir ve eski referans çözülmeyi bırakır. Sapma bir sürprize değil, bir hataya dönüşür.

4. Ajanı derleyin

src/example.ts
default: "deny" ifadesine dikkat edin — tip yalnızca bu değeri kabul eder. Bir Pactmark politikasının varsayılan olarak izin verdiği hiçbir yapılandırma yoktur.

5. İşi talep edin

Şekil 1. WorkOrder taleptir, ajan değildir. Aynı derlenmiş ajan, farklı amaçlar, bütçeler ve veri sınıflarıyla pek çok farklı iş emri altında kabul edilebilir.
src/example.ts

6. Başlatın ve sonuçları okuyun

src/example.ts
Her okuma ilk argüman olarak authority alır. API’nin hiçbir yerinde ortamda dolaşan bir “geçerli kullanıcı” yoktur; tenant’lar arası erişimi bir çalışma-zamanı kazası değil, derleme-zamanı konuşması yapan şey budur.

Az önce ne inşa ettiniz

Derlenmiş bir sözleşme

Talimatlar, şemalar, araçlar, model profilleri, politika ve doğrulayıcılar — özetlerle sürümlenmiş kimliklere indirgenmiş hâlde.

Yalnızca-eklenen bir geçmiş

RunAccepted, ToolCallCompleted, RunCompleted — doğrulanmış, sıralı ve yeniden oynatılabilir.

İçerik-adresli bir artifact

Çıktı, tam baytlarının özeti altında saklanır ve doğrulama o özete bağlanır.

Dürüst bir hazırlık raporu

production: false, çünkü bellek deposu dayanıklılık değildir ve çerçeve bunu söyler.

Sonraki adımlar

Araca gerçek dişler takın

Egress izin listeleri, etki stratejileri ve her ToolSecurity alanının gerçekte ne zorladığı.

İnsan kararı ekleyin

Challenge, tek kullanımlık kanıt, atomik tüketim ve onayın asla feragat edemeyecekleri.

Mutsuz yolları test edin

Ret, iptal, bütçe tükenmesi, çökme sınırları ve kayıt sapması.

Gerçek bir sağlayıcı takın

@pactmark/ai-sdk, kimlik bilgisi referansları ve adaptörün neden ham sır görmediği.