Agent Frameworks

Mastra ile Agentic İş Akışları Oluşturma: TypeScript Geliştiricileri İçin Nesil Sonrası Bir Çerçeve

Yapay zeka uygulama geliştirme manzarası hızla değişiyor. Basit prompt mühendisliğinden karmaşık, durum bilgili agentic iş akışlarına geçiş yapıyoruz. LangChain ve LlamaIndex gibi çerçeveler bu alanda baskın olsa da, modern TypeScript geliştiricisine doğrudan seslenen yeni bir aday ortaya çıktı: Mastra.

Mastra sadece başka bir kütüphane değil; yapay zeka araçlarının oluşturulmasını, dağıtılmasını ve bakımını kolaylaştırmak için tasarlanmış kapsamlı bir çerçevedir. TypeScript'in tür güvenliğinden ve sağlam araçlarından yararlanarak Mastra, araç yönetimi, bellek işleme ve orkestrasyon gibi üretim düzeyinde yapay zeka uygulamaları oluşturmanın yaygın zorluklarını ele alır.

Neden Mastra? TypeScript Avantajı

Güvenilir yapay zeka araçları oluşturmak için en önemli engellerden biri, durum yönetimi ve araç entegrasyonunun karmaşıklığıdır. JavaScript ağırlıklı ekosistemlerde, sıkı tür denetiminin olmaması genellikle hata ayıklaması zor olan çalışma zamanı hatalarına yol açar. Mastra, "TypeScript öncelikli" yaklaşımıyla bu sorunu çözer.

Araçlara, araçlara ve iş akışlarına tanımlamak için bildirimsel (declarative) bir yol sunar. Bu, aracın davranışını, erişebileceği araçları ve kullandığı bellek bağlamını sıkı tür denetimli bir şekilde tanımlayabileceğiniz anlamına gelir. Bu yaklaşım, geliştiricilerin zihinsel yükünü önemli ölçüde azaltarak, şablon entegrasyon koduyla uğraşmak yerine aracın mantığına odaklanmalarını sağlar.

Çekirdek Mimari: Araçlar, Araçlar ve Bellek

Mastra, API'sini üç temel kavram etrafında yapılandırır:

  1. Araçlar (Agents): Karar vericiler. Kullanıcı girdisine ve mevcut araçlara dayanarak bir sonraki eylemi belirlemek için LLM'leri kullanırlar.
  2. Araçlar (Tools): Yetenekler. Aracın yürütebileceği işlevler veya API çağrılarıdır.
  3. Bellek (Memory): Bağlam. Mastra, konuşma geçmişini ve vektör tabanlı bilgi alımını yönetmek için yerleşik sağlayıcılar sunar.

Bu bileşenleri manuel olarak birbirine bağlamanız gereken bazı çerçevelerin aksine, Mastra entegre bir yaklaşım sunar. Araçlarınızı standart TypeScript işlevleri olarak tanımlarsınız ve Mastra, LLM için girdi ve çıktı işlemlerini otomatik olarak yönetir.

Başlarken: Pratik Bir Örnek

Mastra'da özel bir araçla bir aracın nasıl basitçe tanımlanacağına bakalım. Aşağıda bir hava durumu arama aracı oluşturma örneği yer almaktadır.

import { Mastra } from '@mastra/core';
import { OpenAI } from '@mastra/core/llm';
import { createTool } from '@mastra/core/tools';

// Özel bir araç tanımlayın
const getWeather = createTool({
  id: 'get-weather',
  description: 'Bir konum için mevcut hava durumunu alın',
  inputSchema: z.object({
    location: z.string().describe('Şehir ve eyalet'),
  }),
  execute: async ({ context }) => {
    // API çağrısını simüle edin
    return { temperature: 72, condition: 'Güneşli' };
  },
});

// Mastra'yı başlatın
const mastra = new Mastra({
  llms: {
    openai: new OpenAI({
      apiKey: process.env.OPENAI_API_KEY,
    }),
  },
  tools: {
    getWeather,
  },
});

// Aracı tanımlayın
const weatherAgent = mastra.createAgent({
  name: 'Hava Durumu Aracı',
  instructions: 'Yardımcı bir hava durumu asistanısınız.',
  model: mastra.llms.openai,
  tools: {
    getWeather,
  },
});

Bu örnekte, createTool'un Zod doğrulama şemasına dayanarak LLM için JSON şemasını nasıl otomatik olarak çıkardığına dikkat edin. Bu, her araç için manuel olarak JSON şemaları yazmaya kıyasla büyük bir zaman tasarrufu sağlar.

Bellek ve Durum Yönetimi

Mastra'nın öne çıkan özelliklerinden biri modüler bellek sistemidir. Varsayılan olarak araçların belleği yoktur, ancak kalıcı bellek sağlayıcılarını kolayca bağlayabilirsiniz. Mastra, geliştirme için basit bellek içi depolamayı ve uzun vadeli bilgi alımı için vektör tabanlı belleği destekler.

Bu sorumluluk ayrımı, aracın temel mantığını değiştirmeden bellek arka uçlarını değiştirmenize olanak tanır. Geçen haftaki konuşmadan gerçekleri hatırlamanız veya şirket belgelerinin vektör veritabanına erişmeniz gerekip gerekmediği fark etmeksizin, Mastra bunu sorunsuz hale getirmek için gereken bağlantıları sağlar.

Sonuç

Mastra, araç çerçevesi alanında olgunlaşmayı temsil eder. TypeScript ergonomisini önceliklendirmeyi, şablon kodu azaltmayı ve araçlar ile bellek için birleşik bir API sağlamayı hedefleyerek, sofistike yapay zeka uygulamaları oluşturmanın önündeki engelleri düşürür. TypeScript ekosistemine zaten hakim geliştiriciler için Mastra, sonradan eklenmiş gibi hissettiren değil, yerel hissettiren ikna edici bir ileri yol sunar. Yapay zeka araç manzarası gelişmeye devam ettikçe, geliştirici deneyimini ve tür güvenliğini önceliklendiren Mastra gibi çerçeveler, üretim düzeyindeki dağıtımlar için standart haline gelme eğilimindedir.

Share: