Toolkit: ابزارهای آماده برای Laravel AI SDK
خلاصهٔ کاملتر
تو این مقالهی Laravel News اومده که Toolkit، ساختهی Pushpak Chhajed زیر برند Ship Fast Labs، یه کاتالوگ جامعهمحور از ابزارهای قابلاستفادهی مجدد برای Laravel AI SDK هست. همهی ابزارها تو یه مونوریپو زندگی میکنن ولی به صورت پکیجهای جدای Composer منتشر میشن، پس فقط اونایی رو نصب میکنی که یه ایجنت بهشون نیاز داره.
هر ابزار یه کلاسه که قرارداد Laravel\Ai\Contracts\Tool رو پیاده میکنه: یه description()، یه handle() و یه schema(). هیچ هستهی مشترک، سرویسپروایدری برای ثبت، یا کانفیگ منتشرشدهای وجود نداره. کافیه پکیج رو require کنی، ابزار رو بسازی و به متد tools() ایجنت پاس بدی:
use Shipfastlabs\Toolkit\Calculator\CalculatorTool;
use Shipfastlabs\Toolkit\Database\DatabaseQueryTool;
$tools = [
new CalculatorTool,
new DatabaseQueryTool,
];نکتهی مهم اینه که نتیجهها، حتی خطاها، به صورت رشته برمیگردن، پس مدل میتونه شکست رو بخونه و خودش رو جمعوجور کنه به جای اینکه درخواست خطا پرتاب کنه. ابزار Calculator یه رشتهی expression میگیره و به جای eval() پیاچپی، با یه پارسر بازگشتی محاسبهش میکنه و از عملگرها و پرانتز پشتیبانی میکنه؛ ورودی نامعتبر یا تقسیم بر صفر هم به صورت رشته به مدل برمیگرده.
ابزار Database فقط یه دستور SQL از نوع SELECT رو اجرا میکنه و سطرها رو به شکل JSON خوشخط برمیگردونه؛ گاردریلهاش هم اصل ماجران. فقط یه دستور تکی که با SELECT (یا یه CTE از نوع WITH … SELECT) شروع شه مجازه، کلیدواژههایی مثل INSERT و UPDATE و DELETE و DROP رد میشن حتی وسط یه دستور SELECT، کوئریهایی که جداکنندهی ; دارن رفیوز میشن، و اگه کوئری LIMIT نداشته باشه خودش بهش اضافه میشه. اشارهدادن connection به یه رپلیکای فقطخواندنی یه لایهی امنیت اضافه میده.
سه پکیج هم APIهای جستوجو و تحقیق رو رپ میکنن: Exa برای جستوجوی وب مبتنی بر امبدینگ و جوابهای دارای منبع، Perplexity با مدلهای Sonar و حالتهای web و academic و sec، و Tavily برای جستوجو و استخراج محتوا و کراول و نقشهبرداری سایت. هر پرووایدر کلید APIش رو از کانفیگ services لاراول میخونه، پارامترهای عددی به بازهی معتبر کلمپ میشن و خطاهای API به جای پرتاب شدن به صورت رشته برمیگردن.
یه پکیج جدا هم به اسم toolkit-jigsawstack به ازای هر اندپوینت JigsawStack یه ابزار میسازه که دستهبندیهایی مثل ترجمه، وب، بینایی، صدا و اعتبارسنجی رو پوشش میده و خروجی خام JSON هر اندپوینت رو برمیگردونه. به گفتهی نویسنده برای نصب فقط ابزارهای موردنیاز رو جدا require میکنی و ابزارهای ریموت کلید پرووایدرشون رو تو config/services.php میخوان.
نکات کلیدی:
- Toolkit یه کاتالوگ جامعهمحور از ابزارهای آماده برای Laravel AI SDK هست
- هر ابزار یه پکیج Composer جداست؛ بدون هستهی مشترک و بدون سرویسپروایدر
- هر ابزار قرارداد Tool رو با description() و handle() و schema() پیاده میکنه
- ابزار Calculator به جای eval() از یه پارسر بازگشتی استفاده میکنه
- ابزار Database فقط SELECT تکی رو میپذیره و LIMIT رو خودکار اضافه میکنه




