شماره تماس : 09014413449

    ...

  • ...

  • ...

  • ...

ثبت نام / ورود

Agent لاراول, هوش مصنوعی در لاراول, Laravel AI SDK, Agent چندعاملی, RAG در لاراول

mba
21 مرداد 1405
دسته بندی laravel

  🧠 راهنمای جامع ساخت Agent هوشمند با لاراول ۱۳ (بدون نیاز به پایتون)

!  , 😊

 احتمالاً تا حالا کلی اصطلاح قشنگ و جدید شنیدی: Agent، هوش مصنوعی، RAG، Multi-Agent و چیزای دیگه. راستش رو بخوام بگم، تا چند وقت پیش، اگر یه توسعه‌دهنده‌ی PHP بودی و می‌خواستی یه Agent هوشمند بسازی، یا باید پایتون یاد می‌گرفتی، یا یه سرویس مجزا می‌نوشتی و از لاراول صدا می‌زدی، یا با یک سری API خام دست و پنجه نرم می‌کردی که اصلاً به درد کارای واقعی نمی‌خورد.

 

لاراول ۱۳ با **Laravel AI SDK** اومده و همه‌چیز رو عوض کرده. حالا می‌تونی مستقیماً تو خونه‌ی خودت، با همون لاراول دوست‌داشتنی، Agentهای هوشمند بسازی. دیگه نیازی نیست به پایتون پناه ببری!

 تو این مقاله، می‌خوام با هم دیگه ببینیم Agent چیه، چطور با لاراول ۱۳ می‌تونی بسازیش، و چه کارای جالبی می‌تونه انجام بده. قهوه‌ات رو بردار، بریم!

 قبل از اینکه بریم سراغ کدنویسی، بیایید یکم مفهوم رو روشن کنیم.

 

**یک Agent**، یه مدل هوش مصنوعیه که فقط یه پاسخ متن ساده نمی‌ده. بهش **ابزار (Tool)** می‌دی، بهش **حافظه (Memory)** می‌دی، و بهش می‌گی که می‌تونه از اینا استفاده کنه تا یه کار خاص رو انجام بده. مثلاً یه Agent پشتیبانی مشتری، می‌تونه سفارش‌ها رو تو دیتابیس چک کنه، سیاست‌های برگشت کالا رو از یه منبع معتبر بخونه، و بعد به سؤال کاربر جواب بده. این دیگه صرفاً یه چت‌بات ساده نیست؛ یه دستیار هوشمنده که با دنیای واقعی ارتباط برقرار می‌کنه.

 

لاراول AI SDK: جعبه‌ابزار جدیدت

 

Laravel AI SDK یه پکیج رسمیه که با یه دستور ساده نصب میشه:

 

تو ترمینال ادیتور ترجیحا phpstorm   بزنید

composer require laravel/ai

 

 

این SDK بهت یه API یکپارچه برای کار با **۱۴ ارائه‌دهنده‌ی مختلف** مثل OpenAI، Anthropic، Google Gemini، Groq و خیلیای دیگه میده. یعنی می‌تونی بینشون جابه‌جا شی بدون اینکه کدت رو عوض کنی.

 

 قدم اول: اولین Agent ساده‌ات

 

بیایید با یه مثال ساده شروع کنیم. فرض کن می‌خوای یه Agent بسازی که یه ایمیل سرد (Cold Email) برای معرفی شرکتت بنویسه. این کار، یه نمونه از الگوی **Prompt Chaining** (زنجیره‌ای کردن دستورات) هست که توش خروجی یه Agent، ورودی Agent بعدی میشه.

 

use function Laravel\Ai\{agent};
 
$company = "شرکت وب‌ریچ";
$role = "مدیر فنی";
 

// Agent اول: پیش‌نویس ایمیل

 
$draft = agent(instructions: 'یک نویسنده‌ی حرفه‌ای بیزینس هستی.')
    ->prompt("یک ایمیل سرد مختصر و شخصی‌سازی‌شده برای {$role} در شرکت {$company} بنویس.")
    ->text();
 
// Agent دوم: بررسی کیفیت ایمیل
$review = agent(
 
    instructions: 'یک تحلیل‌گر کیفیت ایمیل هستی. سخت‌گیر باش.',
 
    schema: fn ($schema) => [
 
        'hasPersonalisation' => $schema->boolean()->required(),
 
        'toneScore' => $schema->integer()->min(1)->max(10)->required(),
 
        'callToActionStrength' => $schema->integer()->min(1)->max(10)->required(),
 
    ]
 
)->prompt($draft);
 
// Agent سوم: بهبود ایمیل (اگر نمرات پایین بود)
 
if (!$review['hasPersonalisation'] || $review['toneScore'] < 7) {
 
    $finalEmail = agent(instructions: 'یک نویسنده‌ی حرفه‌ای بیزینس هستی.')
 
        ->prompt("این ایمیل رو با شخصی‌سازی بهتر و دعوت به عمل قوی‌تر بازنویسی کن:\n{$draft}")
 
        ->text();
 
} else {
 
    $finalEmail = $draft;
 
}
 
 
 

 

در این کد ساده، ما سه مرحله رو با سه Agent مجزا انجام دادیم. نکته‌ی جذاب، استفاده از **خروجی ساختاریافته (Structured Output)** در Agent دوم هست که بهمون یه JSON با فیلدهای مشخص برمی‌گردونه تا بتونیم راحت‌تر روش تصمیم‌گیری کنیم.

 پنج الگوی طلایی برای Agentهای چندگانه

 

برای کارهای پیچیده‌تر، فقط یه Agent کافی نیست. تحقیق منتشرشده توسط شرکت Anthropic (سازنده‌ی Claude) پنج الگوی پرکاربرد رو معرفی کرده که Laravel AI SDK هر پنج تاشو پشتیبانی می‌کنه:

 ۱. زنجیره‌ای کردن دستورات (Prompt Chaining)

همون مثالی که بالاتر زدیم. هر Agent یه کار رو انجام میده و نتیجه رو به بعدی میده. برای کارهایی با ترتیب مشخص مثل تولید محتوا و سپس ویرایشش عالیه.

  ۲. مسیریابی (Routing)

یک Agent به‌عنوان طبقه‌بند عمل می‌کنه و درخواست رو به متخصص مناسب ارجاع میده. مثلاً، یه درخواست پشتیبانی رو می‌گیره و تشخیص میده که "مسئله فنی" هست یا "درخواست بازگشت کالا"؟ هر کدوم رو به یه Agent با دستورات و ابزارهای مخصوص خودش می‌فرسته.

 ۳. موازی‌سازی (Parallelization)

چندین Agent رو به صورت همزمان اجرا می‌کنی و بعد نتیجه‌شون رو ترکیب می‌کنی. این کار خیلی سریع‌تر از اینه که پشت سر هم اجرا بشن.

 ۴. هماهنگ‌کننده-کارگرها (Orchestrator-Workers)

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

 ۵. Agentهای زیرمجموعه (Sub-Agents)

این یه قابلیت جدید در SDK هست که بهت اجازه میده یه Agent رو به عنوان **ابزار (Tool)** در اختیار Agent دیگه‌ای قرار بدی. هر Agent می‌تونه دستورات، ابزارها و حتی ارائه‌دهنده‌ی مخصوص به خودش رو داشته باشه. مثلاً، یه Agent اصلی پشتیبانی، برای سؤال‌های مربوط به بازگشت کالا، کار رو به یه `RefundAgent` می‌سپره که خودش دسترسی به ابزار چک کردن سفارش‌ها رو داره.

 
// Sub-agent (زیرمجموعه)
use App\Ai\Agents\RefundsAgent;
public function tools(): iterable
{
 
    // Agent اصلی، RefundsAgent رو به عنوان یک ابزار معرفی می‌کنه
 
    return [
 
        new RefundsAgent,
 
    ];
 
}

 

 

```

 

این یعنی چه؟ یعنی شما می‌تونید تیم کوچکی از متخصصین هوشمند بسازید که هرکدوم تخصص خودشون رو دارن و زیر نظر یه مدیر (Agent اصلی) کار می‌کنن!

 

 قابلیت‌های کلیدی که باید بلد باشی

 

علاوه بر الگوهای بالا، SDK این قابلیت‌های مهم رو هم داره:

 

- **فراخوانی ابزار (Tool Calling):** Agent می‌تونه به‌صورت خودکار تصمیم بگیره که از کدوم ابزار استفاده کنه. ابزارها کلاس‌های PHP معمولی هستن که یه متد `handle` دارن.

- **حافظه مکالمه (Conversation Memory):** با افزودن تریت `RemembersConversations`، تاریخچه‌ی مکالمه به‌صورت خودکار تو دیتابیس ذخیره و بازیابی میشه.

- **جستجوی برداری (RAG - Retrieval-Augmented Generation):** می‌تونی با استفاده از pgvector، جستجوی معنایی (Semantic Search) رو پیاده‌سازی کنی. یعنی Agent می‌تونه بهجای کلمات کلیدی، *معنی* سؤال رو بفهمد و جواب رو از یک پایگاه داده از مقالات پیدا کنه. این باعث میشه دیگه جواب‌های اشتباه (هالوسینیشن) نده. با یه کوئری ساده `whereVectorSimilarTo` می‌تونی این کار رو انجام بدی.

- **پخش زنده (Streaming):** می‌تونی پاسخ‌ها رو به صورت تکه‌تکه و زنده برای کاربر بفرستی که تجربه‌ای خیلی بهتر ایجاد می‌کنه.

   جمع‌بندی: آینده از آنِ کسانی است که می‌سازند

 دنیای توسعه وب در حال تغییره و هوش مصنوعی دیگه یه اپشن نیست، یه الزام شده. با لاراول ۱۳ و Laravel AI SDK، شما به عنوان یه توسعه‌دهنده‌ی PHP، نه تنها عقب نیستی، بلکه می‌تونی پیشرو باشی.

 

 

محمدباقر آیرملو - وب ریچ طراح سایت شما راهنمای ساخت Agent هوشمند با لاراول ۱۳ (بدون نیاز به پایتون)

نظرات

برای ارسال نظر شما باید ابتدا وارد حساب کاربری خود شوید.