Synapse: داشبورد توسعه برای ایجنتهای Laravel AI SDK
خلاصهٔ کاملتر
Synapse یه داشبورد توسعه از شرکت Redberry هست برای ایجنتهایی که با Laravel AI SDK (یعنی SDK رسمی لاراول برای ساختن اپهای مبتنی بر هوش مصنوعی) نوشته شدن. به گفتهٔ Laravel News، این ابزار کلاسهای ایجنت پروژهات رو پیدا میکنه، به هر کدوم یه playground چت تو مرورگر میده و هر جواب رو با جزئیات ثبت میکنه: tool callها با ورودی و خروجیشون، تعداد توکنها، قدمهای reasoning و exceptionها.
هیچ مرحله ثبت دستیای نداره. Synapse تو هر درخواست پوشههای app/Ai/Agents و app/Agents رو میگرده و هر کلاسی که Laravel\Ai\Contracts\Agent رو پیاده کرده باشه نشون میده. یعنی یه ایجنت جدید بسازی، با یه رفرش اضافه میشه. اگه ایجنتت جای دیگهست، باید مسیرش رو به discovery.paths اضافه کنی و برای مخفی کردن کلاسها هم discovery.ignore هست. پنل Info هم system prompt، schema ابزارها، temperature و max tokens رو نشون میده.
تو playground پیامها واقعاً به خود ایجنت میرن و جواب بهصورت stream میاد. میتونی عکس، سند یا صدا ضمیمه کنی. یه model selector هم داره که پیام بعدی رو با یه مدل دیگه اجرا میکنه، بدون اینکه کلاس ایجنت رو دست بزنی. مدلهای اضافه رو میشه تو playground.models تعریف کرد و مدل استفادهشده روی هر پیام ثبت میشه.
حافظه گفتگو دقیقاً از کد ایجنت پیروی میکنه. اگه ایجنت contract Conversational رو داشته باشه (معمولاً با trait RemembersConversations)، Synapse کل تاریخچه رو از جدولهای خودش میفرسته و به جدولهای اپت دست نمیزنه. اگه ایجنت stateless باشه، هر پیام جدا فرستاده میشه، درست مثل production، و برچسب Stateless میخوره.
هر tool call یه کارت جدا داره با اسم ابزار، وضعیت و مدت زمان، و با باز کردنش ورودی و خروجی رو بهصورت JSON میبینی. ابزارهای خود provider مثل web search استایل جدا دارن و وضعیتهای متفاوت Anthropic و OpenAI روی سه حالت pending، success و error یکی میشن. یه نکته ریز: sub-agentی که خطا بده هنوز بهعنوان tool call موفق نشون داده میشه، چون SDK خطا رو میگیره و رشته Agent failed: ... رو برمیگردونه.
نصبش بهصورت dev dependency با Composer و دستور synapse:install انجام میشه و داشبورد روی /synapse بالا میاد. فرانتاند کامپایلشده تو خود پکیجه، پس مرحله npm نداره و کلیدهای API رو از config/ai.php میخونه. برای پاک کردن گفتگوهای قدیمی هم دستور synapse:prune هست و با SYNAPSE_AUTO_PRUNE=true هر روز خودکار اجرا میشه.
نکات کلیدی:
- Synapse ایجنتها رو بدون ثبت دستی از app/Ai/Agents و app/Agents پیدا میکنه
- playground با stream، فایل ضمیمه و انتخاب مدل برای پیام بعدی
- tool callها، توکنهای cache-read و cache-write و reasoning برای هر جواب ثبت میشن
- خطاها با کلاس exception، پیام و stack trace نشون داده میشن
- بدون مرحله npm، داشبورد روی مسیر /synapse
- پاکسازی خودکار روزانه با SYNAPSE_AUTO_PRUNE=true




