Uyumluluk: Pactmark 0.2.x. Genel defineTool cephesi şu anda operation.kind: "read" kabul eder. Yazma etkileri çalışma-zamanı etki yüzeyi üzerinden çalıştırılır — bkz. Sınırlar.

Biçim

Beyanı doğru yapmak

Şekil 1. Soldaki her alan bir yerde zorlanır ve kayıt özetine katkı verir. Asıl iş bunları doğru doldurmaktır; fonksiyon gövdesi genellikle kolay kısımdır.

id ve implementationVersion farklı eksenlerdir

id, namespace.name@version biçimiyle eşleşmelidir — oradaki sürüm sözleşmedir. implementationVersion arkasındaki kodu tanımlar. Davranışı değiştirmeden gövdeyi değiştirirseniz uygulama sürümünü artırırsınız; şemayı veya güvenlik duruşunu değiştirirseniz yeni bir sözleşme sürümü gerekir.
Bir aracın ulaşabildiği yeri değiştirdikten sonra sözleşme sürümünü yeniden kullanmayın. Kayıt özeti zaten değişecek ve mevcut grantlar eşleşmeyi bırakacaktır — ama yeniden kullanılan bir sürüm, değişikliği bir diff okuyan insanlar için görünmez kılar.

requiredScopes bir tanım değil, bir taleptir

Bunlar, çağrının ilerlemesi için bir grantın hâlihazırda taşıması gereken kapsamlardır. Dar ve kaynak biçimli tutun (billing:invoice:read), rol biçimli değil (admin).

egress tam bir origin izin listesidir

networkEnforcement: "required", host’un gerçek bir egress aracısı sağlaması gerektiği anlamına gelir; izin listesini zorlayamayan bir çalışma zamanı, aracı korumasız çalıştırmak yerine reddeder. Her zaman context.egress.fetch çağırın. Ham global fetch aracıyı atlar ve taşınabilir bir çalışma zamanında hiç bulunmayabilir.

maxCallsPerRun ve timeoutMs tavanlardır

Bunlar sizin fonksiyonunuz tarafından değil çalışma zamanı tarafından denetlenir. Bir olay raporunda görmekten rahatsız olmayacağınız sayıları seçin — döngüye giren bir model tavanı bulur.

Dönüş değerleri doğrulanır

execute, z.input<O> döndürür ve sonuç bir ToolCallCompleted olayına ya da model bağlamına ulaşmadan önce çıktı şemasına göre ayrıştırılır. Beklenmeyen bir biçim döndüren bir araç, koşuyu zehirlemek yerine KAF_SCHEMA_INVALID ile başarısız olur.
Bağlama geri akan araç sonuçları ayrıca model kaynak profilindeki maxToolResultToContextBytes ile sınırlıdır. Bir megabayt döndüren bir araç bağlam penceresini sessizce patlatmaz; beyan edilmiş bir sınıra çarpar.

Her dış sonucu güvenilmez sayın

Bir araçtan, bir HTTP çağrısından veya bir MCP sunucusundan dönen içerik veridir, talimat değil. Açık sınırlar altında bağlama kabul edilir ve asla yetki vermez.

Bir aracı test etmek

@pactmark/testing bir geliştirme bağımlılığıdır ve asla üretim dışa aktarımının parçası değildir. Sahte saatler, deterministik kimlik üreticileri, sahte model sürücüleri, çökme enjeksiyonu ve yeniden kullanılabilir adaptör sözleşme paketleri sağlar.

Politika ve grantlar

requiredScopes’u verilmiş, süreli ve iptal edilebilir bir granta dönüştürmek.

MCP entegrasyonu

Dış araçları, dış yetkiyi benimsemeden benimsemek.