تخطَّ إلى المحتوى

Mastra - إطار عمل وكيل الذكاء الاصطناعي TypeScript

Mastra - إطار عمل وكيل الذكاء الاصطناعي TypeScript

Mastra هو إطار عمل مفتوح المصدر لوكلاء الذكاء الاصطناعي وسير العمل لـ TypeScript، من فريق Gatsby. بينما معظم أطر عمل الوكلاء موجهة للـ Python أولاً، يستهدف Mastra نظام JavaScript/TypeScript بأمان النوع الكامل: وكلاء مكتوبة بأدوات وذاكرة، سير عمل دائم معبّر عنه كرسوم بيانية مع فروع وإيقاف/استئناف، RAG مبادئ، تقييمات مدمجة، وساحة لعب تطوير محلية لتكرار الوكلاء في المتصفح.

التثبيت

الطريقةالأمر
إنشاء مشروعnpm create mastra@latest
أضفها إلى موجودnpm install @mastra/core
خادم التطويرnpm run dev (ساحة اللعب في localhost:4111)
موفر النموذجnpm install @ai-sdk/openai (يستخدم Vercel AI SDK)
التحققافتح ساحة اللعب

تحديد وكيل

import { Agent } from "@mastra/core/agent";
import { openai } from "@ai-sdk/openai";

export const supportAgent = new Agent({
  name: "support",
  instructions: "You are a concise support agent. Cite docs when possible.",
  model: openai("gpt-4o"),
  tools: { searchDocs },
});

const result = await supportAgent.generate("How do I rotate my API key?");
console.log(result.text);
الطريقةماذا تفعل
.generate(input)تشغيل مرة واحدة والعودة بالنتيجة
.stream(input)بث الرموز/الخطوات
toolsأدوات مكتوبة قد يستدعيها الوكيل
memoryذاكرة محادثة دائمة

الأدوات

import { createTool } from "@mastra/core/tools";
import { z } from "zod";

export const searchDocs = createTool({
  id: "search-docs",
  description: "Search the product documentation",
  inputSchema: z.object({ query: z.string() }),
  outputSchema: z.object({ results: z.array(z.string()) }),
  execute: async ({ context }) => {
    return { results: await search(context.query) };
  },
});

مخططات Zod توفر سلامة النوع من النهاية إلى النهاية — استدعاءات أداة الوكيل يتم التحقق منها وكتابتها على كلا الجانبين.

سير العمل (الرسوم البيانية الدائمة)

import { createWorkflow, createStep } from "@mastra/core/workflows";

const fetchData = createStep({ id: "fetch", execute: async () => ({ ... }) });
const analyze   = createStep({ id: "analyze", execute: async ({ inputData }) => ({ ... }) });

export const pipeline = createWorkflow({ id: "pipeline" })
  .then(fetchData)
  .then(analyze)
  .commit();
الميزةالغرض
.then()خطوات متسلسلة
.branch()مسارات شرطية
.parallel()خطوات متزامنة
.dowhile() / .foreach()حلقات على البيانات
إيقاف/استئنافتوقف مؤقت لإدخال بشري، استئناف لاحقًا
تنفيذ دائمالبقاء عند إعادة التشغيل

الذاكرة

النوعالاستخدام
سجل المحادثةالأدوار الأخيرة في السياق
الاستدعاء الدلاليبحث متجه على الرسائل السابقة
ذاكرة العملحقائق دائمة عن المستخدم
محولات التخزينLibSQL, Postgres, Upstash

مبادئ RAG

القطعةتوفير
تقسيم الوثيقةتقسيم الوثائق مع استراتيجيات قابلة للتكوين
التضميناتعبر موفري SDK AI
متاجر المتجهاتpgvector, Pinecone, Qdrant, Chroma
أداة الاسترجاعوكيل الاسترجاع السلكي كأداة

التقييمات والمراقبة

القدرةملاحظة
تقييمات مدمجةصلة الإجابة، الأمانة، السمية، الانحياز
مصنفات مخصصةحدد مقاييسك الخاصة
التتبعآثار متوافقة مع OpenTelemetry
ساحة اللعبافحص تشغيل الوكيل والأدوات والذاكرة محليًا

النشر

الهدفملاحظة
خادم Nodemastra build ينتج خادمًا قابلاً للنشر
Vercel / Cloudflare / Netlifyناشرون رسميون
بدون خادمسير العمل مصمم للمضيفين بدون حالة

Mastra مقابل أطر عمل الوكلاء الأخرى

الجانبMastraLangGraphCrewAI
اللغةTypeScriptPythonPython
سير العملرسم بياني دائم + إيقاف/استئنافرسم بياني ذو حالةطاقم العمل القائم على الأدوار
سلامة النوعقوية (Zod من النهاية إلى النهاية)كتابة Pythonكتابة Python
الأفضل لـفريق TS/JS، تطبيقات ويبوكلاء ذو حالة معقدةلعب دور متعدد الوكلاء

المقابل TypeScript لـ LangGraph؛ قارن مع CrewAI و AutoGen لـ Python.

الموارد