Ölçeklenebilir yapay zeka ajanları oluşturmak bir denge işidir. Bir çerçevenin sağlam orkestrasyonuna, kenar bilişimin düşük gecikme süresine ve sunucusuz mimarilerin maliyet verimliliğine ihtiyacınız var. İşte Mastra ve Vercel Kenar Fonksiyonları kombinasyonu burada parlıyor. Mastra, LLM destekli uygulamalar oluşturmak için kapsamlı bir araç seti sağlarken, Vercel'in Kenar çalışma zamanı, ajanlarınızın minimal ek yük ile küresel olarak çalışmasını sağlar.
Bu kılavuzda, Mastra kullanarak durumlu bir yapay zeka ajanı oluşturmayı ve bunu bir Vercel Kenar Fonksiyonu olarak dağıtmayı inceleyeceğiz. Sunucusuz ortamlarda durumu yönetme ve soğuk başlatmaları optimizasyon gibi yaygın zorlukları ele alacağız.
Neden Mastra + Vercel Kenar?
Mastra, özellikle yapay zeka ajanları ve iş akışları oluşturmak için tasarlanmış açık kaynaklı bir çerçevedir. Şunları sunar:
- Ajanlar: Araçlar ve hafıza ile kapsüllenmiş LLM yetenekleri.
- İş Akışları:
- Değerlendiriciler: Yapay zeka çıktısı için yerleşik test ve değerlendirme metrikleri.
Vercel Kenar Fonksiyonları, kullanıcılara yakın kenarda çalışır. Şunları sağlar:
- Düşük Gecikme: Küresel bölgelerde milisaniyeler içinde çalıştırma.
- Maliyet Verimliliği: İstek başına ödeme faturalama modeli.
- Dil Desteği: Tam TypeScript ve JavaScript desteği.
Bu teknolojileri birleştirmek, kullanıcılarınız nerede olursa olsun 100ms'nin altında yanıt veren gelişmiş yapay zeka ajanları oluşturmanıza olanak tanır.
Projenizi Kurma
Öncelikle, Kenar çalışma zamanı ile yeni bir Vercel projesi başlatın. Ardından Mastra'yı yükleyin:
npm create vercel@latest
cd your-project
npm install mastra
Proje kök dizininizde edge.ts adında bir dosya oluşturun. Bu dosya, Kenar Fonksiyonu giriş noktanızı tanımlayacaktır.
Mastra ile Durumlu Bir Ajan Oluşturma
Kenar Fonksiyonlarındaki zorluklardan biri, geçici doğalarıdır. Durum, harici olarak veya istek bağlamı içinde yönetilmelidir. Mastra, hafıza ve bağlam yönetimini ele alabilen Agent sınıfı ile bunu basitleştirir.
import { Agent } from 'mastra';
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
// Hafıza yeteneklerine sahip ajanınızı tanımlayın
const myAgent = new Agent({
name: 'SupportAgent',
description: 'Müşteri destek sorgularını ele alan bir ajan.',
model: openai('gpt-4o'),
tools: {
// Örnek araç: lookup_order
lookup_order: {
description: 'Bir siparişi ID'ye göre arar',
execute: async ({ orderId }: { orderId: string }) => {
// Gerçek bir uygulamada bu, bir veritabanını sorgulayacaktı
return { status: 'shipped', trackingId: '1Z999AA10123456784' };
},
},
},
});
export async function GET(request: Request) {
const { message, userId } = await request.json();
try {
// Mastra, ajan döngüsünü, araç çalıştırmasını ve yanıt biçimlendirmesini yönetir
const result = await myAgent.generate({
messages: [
{ role: 'user', content: message },
],
// Mastra'nın hafıza özelliklerini kullanıyorsanız durum yönetimi için userId'yi iletin
metadata: { userId },
});
return new Response(JSON.stringify({
text: result.text,
usage: result.usage,
}), {
headers: { 'Content-Type': 'application/json' },
});
} catch (error) {
return new Response(JSON.stringify({ error: error.message }), {
status: 500,
headers: { 'Content-Type': 'application/json' },
});
}
}
Sunucusuz Ortamlarda Durumu Yönetme
Kenar Fonksiyonları, tasarım gereği durumsuzdur. Ajanınızın hafızaya (örneğin, sohbet geçmişi) ihtiyacı varsa iki seçeneğiniz var:
- İstemci Tarafı Durum: Her istekle birlikte tüm sohbet geçmişini gönderin. Bu basittir ancak büyük yüklemelere yol açabilir.
- Harici Depolama: Sohbet durumunu depolamak için Vercel KV, Upstash Redis veya bir Postgres örneği (ör. Neon) gibi sunucusuz dostu bir veritabanı kullanın. Mastra, özel araçlar veya ara yazılımlar aracılığıyla bunlarla entegre edilebilir.
Yüksek ölçekli uygulamalar için, maliyetleri düşük ve gecikmeyi yüksek tutmak üzere TTL'ye (Yaşam Süresi) sahip harici bir önbellek kullanılması önerilir.
Soğuk Başlatmaları Optimizasyon
Soğuk başlatmalar, yapay zeka ajanınıza gecikme ekleyebilir. İşte bazı en iyi uygulamalar:
- Yığın Boyutu: Kenar Fonksiyonu yığnınızı küçük tutun. Sadece ihtiyacınız olan belirli Mastra bileşenlerini içe aktarın.
- Ön Isıtma: Fonksiyonunuzun zirve saatlerinde sıcak kalmasını sağlamak için Vercel'in
keepAliveözelliğini veya zamanlanmış çağrıları kullanın. - Model Önbellekleme: Yerel modelleri veya daha küçük LLM'leri kullanıyorsanız, model ağırlıklarını bellekte önbelleğe almayı (çalışma zamanınız tarafından destekleniyorsa) veya bağlantı havuzlamasını yöneten Vercel'in
aiSDK sağlayıcılarını kullanmayı düşünün.
Vercel'e Dağıtım
Dağıtım basittir:
vercel deploy
Fonksiyonunuz için Kenar çalışma zamanını yapılandırdığından emin olmak için vercel.json dosyanızın doğru olduğundan emin olun:
{
"functions": {
"edge.ts": {
"runtime": "edge"
}
}
}
Sonuç
Mastra ile Vercel Kenar Fonksiyonlarında durumlu yapay zeka ajanlarını dağıtmak, performans, ölçeklenebilirlik ve geliştirici deneyiminin güçlü bir kombinasyonunu sağlar. Mastra'nın ajan orkestrasyonunu ve Vercel'in küresel kenar ağını kullanarak, zahmetsizce ölçeklenen, tepkisel ve maliyet etkin yapay zeka uygulamaları oluşturabilirsiniz. Tek bir ajanla küçük başlayın, gecikmenizi ve maliyetlerinizi izleyin ve kullanıcılarınız için sağlam yapay zeka destekli özellikler oluşturmak için yineleyin.