Agent Frameworks

ساخت گردش‌کارهای عاملی با Mastra: چارچوبی نسل جدید برای توسعه‌دهندگان TypeScript

زمینه توسعه برنامه‌های هوش مصنوعی به سرعت در حال تغییر است. ما از مهندسی ساده پرامپت به سمت گردش‌کارهای عاملی پیچیده و دارای حالت حرکت می‌کنیم. در حالی که چارچوب‌هایی مانند LangChain و LlamaIndex این حوزه را در اختیار داشته‌اند، مدعی جدیدی ظهور کرده که مستقیماً با توسعه‌دهندگان مدرن TypeScript صحبت می‌کند: Mastra.

Mastra تنها یک کتابخانه دیگر نیست؛ بلکه یک چارچوب جامع است که برای ساده‌سازی ایجاد، استقرار و نگهداری عامل‌های هوش مصنوعی طراحی شده است. با بهره‌گیری از ایمنی نوع (Type Safety) و ابزارهای قدرتمند TypeScript، Mastra به نقاط درد رایج ساخت برنامه‌های هوش مصنوعی آماده تولید، مانند مدیریت ابزارها، مدیریت حافظه و ارکستراسیون، پاسخ می‌دهد.

چرا Mastra؟ مزیت TypeScript

یکی از مهم‌ترین موانع ورود به حوزه ساخت عامل‌های هوش مصنوعی قابل اعتماد، پیچیدگی مدیریت حالت و یکپارچه‌سازی ابزارها است. در اکوسیستم‌های مبتنی بر JavaScript، فقدان تایپ‌های سخت‌گیرانه اغلب منجر به خطاهای زمان اجرا می‌شود که عیب‌یابی آن‌ها دشوار است. Mastra با رویکرد «TypeScript-first» این مشکل را حل می‌کند.

این چارچوب راهی اعلانی (Declarative) برای تعریف عامل‌ها، ابزارها و گردش‌کارها ارائه می‌دهد. این بدان معناست که شما می‌توانید رفتار عامل، ابزارهایی که در دسترس دارد و زمینه حافظه‌ای که استفاده می‌کند را به صورت دارای تایپ قوی تعریف کنید. این رویکرد بار شناختی توسعه‌دهندگان را به طور قابل توجهی کاهش می‌دهد و به آن‌ها اجازه می‌دهد تا بر منطق عامل تمرکز کنند، نه کدهای یکپارچه‌سازی تکراری.

معماری اصلی: عامل‌ها، ابزارها و حافظه

Mastra API خود را بر اساس سه مفهوم اصلی ساختاردهی می‌کند:

  1. عامل‌ها (Agents): تصمیم‌گیرندگان. آن‌ها از مدل‌های زبانی بزرگ (LLM) برای تعیین اقدام بعدی بر اساس ورودی کاربر و ابزارهای موجود استفاده می‌کنند.
  2. ابزارها (Tools): قابلیت‌ها. این‌ها توابع یا فراخوانی‌های API هستند که عامل می‌تواند آن‌ها را اجرا کند.
  3. حافظه (Memory): زمینه. Mastra ارائه‌دهندگان داخلی برای مدیریت تاریخچه مکالمه و بازیابی دانش مبتنی بر بردار ارائه می‌دهد.

برخلاف برخی چارچوب‌ها که در آن‌ها باید این اجزا را به صورت دستی به هم متصل کنید، Mastra رویکردی یکپارچه ارائه می‌دهد. شما ابزارهای خود را به عنوان توابع استاندارد TypeScript تعریف می‌کنید و Mastra به طور خودکار پردازش ورودی و خروجی برای LLM را مدیریت می‌کند.

شروع به کار: یک مثال عملی

بیایید نگاهی بیندازیم که تعریف یک عامل با یک ابزار سفارشی در Mastra چقدر ساده است. در زیر نمونه‌ای از ایجاد یک عامل جستجوی آب‌وهوا آورده شده است.

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

// Define a custom tool
const getWeather = createTool({
  id: 'get-weather',
  description: 'Get the current weather for a location',
  inputSchema: z.object({
    location: z.string().describe('The city and state'),
  }),
  execute: async ({ context }) => {
    // Simulate API call
    return { temperature: 72, condition: 'Sunny' };
  },
});

// Initialize Mastra
const mastra = new Mastra({
  llms: {
    openai: new OpenAI({
      apiKey: process.env.OPENAI_API_KEY,
    }),
  },
  tools: {
    getWeather,
  },
});

// Define the agent
const weatherAgent = mastra.createAgent({
  name: 'Weather Agent',
  instructions: 'You are a helpful weather assistant.',
  model: mastra.llms.openai,
  tools: {
    getWeather,
  },
});

در این مثال، توجه کنید که چگونه createTool به طور خودکار طرحواره JSON را برای LLM بر اساس طرحواره اعتبارسنجی Zod استنتاج می‌کند. این موضوع در مقایسه با نوشتن دستی طرحواره‌های JSON برای هر ابزار، صرفه‌جویی عظیمی در زمان ایجاد می‌کند.

مدیریت حافظه و حالت

یکی از ویژگی‌های برجسته Mastra، سیستم حافظه ماژولار آن است. به طور پیش‌فرض، عامل‌ها هیچ حافظه‌ای ندارند، اما می‌توانید به راحتی ارائه‌دهندگان حافظه پایدار را متصل کنید. Mastra هم از ذخیره‌سازی ساده در حافظه برای توسعه و هم از حافظه مبتنی بر بردار برای بازیابی دانش بلندمدت پشتیبانی می‌کند.

این جدایی دغدغه‌ها به شما امکان می‌دهد بک‌اند حافظه را بدون تغییر در منطق اصلی عامل خود جابجا کنید. چه نیاز به به خاطر سپردن حقایق از مکالمه هفته گذشته داشته باشید و چه نیاز به دسترسی به پایگاه داده برداری اسناد شرکت، Mastra پیوندهای لازم را برای ایجاد این فرآیند به صورت روان فراهم می‌کند.

نتیجه‌گیری

Mastra نشان‌دهنده بلوغ در فضای چارچوب‌های عاملی است. با اولویت دادن به تجربه کاربری TypeScript، کاهش کدهای تکراری و ارائه یک API یکپارچه برای ابزارها و حافظه، این چارچوب ورود به حوزه ساخت برنامه‌های هوش مصنوعی پیچیده را آسان‌تر می‌کند. برای توسعه‌دهندگانی که از پیش در اکوسیستم TypeScript مهارت دارند، Mastra مسیر پیش رویی جذاب ارائه می‌دهد که احساس بومی بودن می‌کند، نه یک فکر ثانویه. با ادامه تحول در فضای عامل‌های هوش مصنوعی، چارچوب‌هایی مانند Mastra که بر تجربه توسعه‌دهنده و ایمنی نوع تمرکز دارند، به احتمال زیاد به استاندارد برای استقرارهای درجه تولید تبدیل خواهند شد.

Share: