Agent Frameworks

ماسترا للذكاء الاصطناعي بدون خادم: نشر الوكلاء ذوي الحالة على دوال الحافة مع Vercel

بناء وكلاء ذكاء اصطناعي قابلين للتوسع هو عملية توازن. تحتاج إلى التنسيق القوي لإطار عمل، وزمن استجابة منخفض لحوسبة الحافة، وكفاءة التكلفة للبنية التحتية بدون خادم. هنا يبرز مزيج ماسترا ودوال Vercel Edge. توفر ماسترا مجموعة أدوات شاملة لبناء تطبيقات مدعومة بنماذج اللغة الكبيرة (LLM)، بينما يضمن وقت تشغيل Vercel Edge تنفيذ وكلائك عالميًا بأقل قدر من الأعباء.

في هذا الدليل، سنستكشف كيفية بناء وكيل ذكاء اصطناعي ذي حالة باستخدام ماسترا ونشره كدالة Vercel Edge. سنتناول التحديات الشائعة، مثل إدارة الحالة في البيئات بدون خادم وتحسين عمليات البدء الباردة.

لماذا ماسترا + Vercel Edge؟

ماسترا هو إطار عمل مفتوح المصدر مصمم خصيصًا لبناء وكلاء الذكاء الاصطناعي وتدفقات العمل. يوفر:

  • الوكلاء: قدرات LLM مغلقة مع أدوات وذاكرة.
  • تدفقات العمل: عمليات متعددة الخطوات حتمية مع منطق تفرع.
  • المقيّمون: مقاييس اختبار وتقييم مدمجة لمخرجات الذكاء الاصطناعي.

دوال Vercel Edge تعمل على الحافة، بالقرب من مستخدميك. توفر:

  • زمن استجابة منخفض: تنفيذ خلال أجزاء من الثانية عبر مناطق عالمية.
  • كفاءة التكلفة: نموذج فوترة لكل طلب.
  • دعم اللغات: دعم كامل للغة TypeScript وJavaScript.

يُمكّنك دمج هذه التقنيات من بناء وكلاء ذكاء اصطناعي متطورين يستجيبون في أقل من 100 مللي ثانية، بغض النظر عن موقع مستخدميك.

إعداد مشروعك

أولاً، قم بتبديد مشروع Vercel جديد مع وقت تشغيل Edge. ثم، ثبّت ماسترا:


npm create vercel@latest
cd your-project
npm install mastra

أنشئ ملفًا باسم edge.ts في جذر مشروعك. سيحدد هذا الملف نقطة الدخول لدالة Edge الخاصة بك.

بناء وكيل ذي حالة باستخدام ماسترا

أحد التحديات مع دوال Edge هو طبيعتها المؤقتة. يجب إدارة الحالة بشكل خارجي أو ضمن سياق الطلب. تبسّط ماسترا هذا الأمر من خلال فئة Agent، التي يمكنها التعامل مع إدارة الذاكرة والسياق.


import { Agent } from 'mastra';
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';

// Define your agent with memory capabilities
const myAgent = new Agent({
  name: 'SupportAgent',
  description: 'An agent that handles customer support queries.',
  model: openai('gpt-4o'),
  tools: {
    // Example tool: lookup_order
    lookup_order: {
      description: 'Looks up an order by ID',
      execute: async ({ orderId }: { orderId: string }) => {
        // In a real app, this would query a database
        return { status: 'shipped', trackingId: '1Z999AA10123456784' };
      },
    },
  },
});

export async function GET(request: Request) {
  const { message, userId } = await request.json();

  try {
    // Mastra handles the agent loop, tool execution, and response formatting
    const result = await myAgent.generate({
      messages: [
        { role: 'user', content: message },
      ],
      // Pass userId for state management if using Mastra's memory features
      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' },
    });
  }
}

إدارة الحالة في البيئات بدون خادم

دوال Edge غير ذاتية الحالة بالتصميم. إذا كان وكيلك يتطلب ذاكرة (مثل سجل المحادثة)، فلك خياران:

  1. حالة جانب العميل: أرسل سجل المحادثة الكامل مع كل طلب. هذا بسيط لكنه قد يؤدي إلى حمولات كبيرة.
  2. تخزين خارجي: استخدم قاعدة بيانات متوافقة مع البنية بدون خادم مثل Vercel KV أو Upstash Redis أو مثيل Postgres (مثل Neon) لتخزين حالة المحادثة. يمكن لماسترا التكامل مع هذه الخدمات عبر أدوات مخصصة أو وسيط (middleware).

للتطبيقات واسعة النطاق، يُنصح باستخدام ذاكرة مؤقتة خارجية مع مدة صلاحية (TTL) للحفاظ على انخفاض التكاليف وارتفاع زمن الاستجابة.

تحسين عمليات البدء الباردة

يمكن أن تضيف عمليات البدء الباردة زمن استجابة لوكيل الذكاء الاصطناعي الخاص بك. إليك بعض أفضل الممارسات:

  • حجم الحزمة: حافظ على حجم حزمة دالة Edge صغيرًا. استورد فقط مكونات ماسترا المحددة التي تحتاجها.
  • التسخين المسبق: استخدم ميزة keepAlive من Vercel أو الاستدعاءات المجدولة للحفاظ على دفء دالتك خلال ساعات الذروة.
  • التخزين المؤقت للنماذج: إذا كنت تستخدم نماذج محلية أو LLMs أصغر، فكّر في تخزين أوزان النموذج في الذاكرة (إذا كان وقت التشغيل يدعم ذلك) أو استخدام مزودي ai SDK من Vercel الذين يتعاملون مع تجميع الاتصالات.

النشر على Vercel

النشر مباشر:


vercel deploy

تأكد من أن vercel.json يحدد وقت تشغيل Edge لدالتك:


{
  "functions": {
    "edge.ts": {
      "runtime": "edge"
    }
  }
}

الخلاصة

نشر وكلاء الذكاء الاصطناعي ذوي الحالة على دوال Vercel Edge باستخدام ماسترا يوفر مزيجًا قويًا من الأداء وقابلية التوسع وتجربة المطور. من خلال الاستفادة من تنسيق وكلاء ماسترا وشبكة الحافة العالمية من Vercel، يمكنك بناء تطبيقات ذكاء اصطناعي استجابة وفعالة من حيث التكلفة تتوسع بسهولة. ابدأ صغيرًا بوكيل واحد، راقب زمن الاستجابة والتكاليف، وحسّن باستمرار لبناء ميزات مدعومة بالذكاء الاصطناعي قوية لمستخدميك.

Share: