Ia telah lama sejak saya menulis artikel. saya bermaksud, mengapa saya mahu? anda memanggil AI mengenai topik, dan ia menghisap semua yang anda perlukan. Yang kinda membunuh kegembiraan untuk saya, saya akhirnya menyusun seperti 10 artikel tetapi tidak pernah menerbitkan mana-mana daripada mereka. Walau bagaimanapun, sebahagian daripada saya percaya orang suka membaca sesuatu yang dibuat manusia. Seperti, AI tidak akan membuat anda duduk melalui intro yang membosankan ini, tetapi hey, ia adalah manusia, gila, tetapi manusia. terima kasih, sebaliknya. Walau bagaimanapun, saya menulis tentang AI hari ini (ironi ha). baru sahaja meletupkan paket baru, Laravel Boost, yang pada asasnya menjadikan AI menghisap kurang. Ia menjadikannya lebih deterministik dengan memberikannya peraturan dan konteks tambahan untuk diikuti. . Laravel konteks yang WTF ialah MCP Saya tidak akan bercakap tentang kejuruteraan segera; terdapat banyak sumber di luar sana. . context LLM dilatih pada set data besar, dan set data itu adalah titik rujukan mereka. Sebagai contoh, jika data latihan hanya pergi sehingga 2023 dan anda bertanya tentang cuaca hari ini, ia tidak akan mempunyai petunjuk. Kami membolehkan LLM, memberi mereka konteks terkini, melalui alat. Anda mungkin telah menggunakan ini tanpa menyedari ia. Minta LLM mengenai berita terkini, dan anda akan melihat "mencari web".Ia adalah alat dalam tindakan, memberi makan AI data segar supaya ia boleh menjawab anda. Tetapi "searching web" hanyalah alat terbina dalam. Jika anda bertanya tentang tiket Jira terkini anda, ia tidak akan tahu. Dan berfikir tentang ia, pembekal seperti OpenAI atau Anthropic tidak boleh membina alat untuk setiap keperluan yang mungkin. Sebagai contoh, anda mungkin mahu LLM anda untuk menyiasat data syarikat dalaman.Ini di mana idea membawa alat anda sendiri datang. LLM boleh memanggil alat anda, mengambil data yang diperlukan, dan kemudian bertindak balas. Jadi rapi bahawa Anthropic memperkenalkan Protokol Konteks Model (MCP) untuk mendokumentasikan ini. Ia menyederhanakan bagaimana LLM memanggil alat, bagaimana anda menyambungkan alat ke dalamnya, dan bagaimana mereka mengambil lebih banyak konteks. Jadi, jika anda belum pernah mendengar tentang MCP, well, kami hanya meliputi mereka. Pada asasnya, mereka hanyalah lapisan tipis yang membolehkan LLM menggunakan alat (seperti alat "searching web") untuk mengambil lebih banyak konteks. MCP juga boleh melakukan sedikit lebih banyak. MCP juga boleh melakukan sedikit lebih banyak. Dan alat-alat ini boleh menjadi apa-apa: panggilan API, panggilan sistem, panggilan kaedah, apa-apa sahaja. selagi mereka boleh memberikan jawapan kembali kepada LLM, model boleh menggunakannya untuk menyelesaikan tugas. Sekarang anda tahu tentang MCPs. anda boleh membaca lebih lanjut tentang mereka . di sini Adakah Laravel Boost? Jadi Laravel Boost pada dasarnya ialah pelayan MCP yang mendedahkan satu set alat. alat-alat ini berputar di sekitar ekosistem Laravel, perkara-perkara seperti membaca laluan, memeriksa log, atau mencari dokumen Laravel. Jadi apabila anda memanggil LLM untuk memperbaiki SaaS anda, ia boleh memutuskan alat mana yang perlu digunakan.Walaupun, tiada apa yang dijamin, LLM boleh menjadi pelacur dan hanya mengabaikan alat-alat, membentuk kaedah yang tidak pernah wujud 🏽. Dan kemudian anda membatalkan perubahan, menjadi marah, segera lagi, dan berurusan dengan "Maaf, anda benar sepenuhnya"... Dan kemudian anda membatalkan perubahan, menjadi marah, segera lagi, dan berurusan dengan "Maaf, anda benar sepenuhnya"... Saya tidak akan meliputi bagaimana untuk memasang ia; sudah ada seorang pegawai dan a , dan sekumpulan panduan komuniti.Selain itu, saya agak terlambat untuk parti. Kumpulan Video YouTube Kejadian Laracaste Namun, saya mahu menunjukkan kepada anda bagaimana Laravel menggalakkan. Peningkatan kenapa Laravel Menggalakkan? Peningkatan Peningkatan Boost membolehkan anda memberi aplikasi anda "tujuan", pada asasnya deskripsi produk anda supaya AI tahu konteks. Aplikasi ini ialah SaaS yang menyediakan perkhidmatan X, dan lain-lain. Aplikasi ini ialah SaaS yang menyediakan perkhidmatan X, dan lain-lain. Anda tahu produk anda yang terbaik. Pertama, pastikan anda telah menerbitkan konfigurasi Boost: php artisan vendor:publish --tag=boost-config Pada masa penulisan, fail config kelihatan seperti ini: <?php declare(strict_types=1); return [ /* |-------------------------------------------------------------------------- | Boost Master Switch |-------------------------------------------------------------------------- | | This option may be used to disable all Boost functionality, which | simply provides a single and convenient way to enable or disable | Boost's AI development tools. | */ 'enabled' => env('BOOST_ENABLED', true), /* |-------------------------------------------------------------------------- | Boost Browser Logs Watcher |-------------------------------------------------------------------------- | | The following option may be used to enable or disable the browser logs | watcher feature within Laravel Boost. The log watcher will read any | errors within the browser's console to give Boost better context. */ 'browser_logs_watcher' => env('BOOST_BROWSER_LOGS_WATCHER', true), ]; Untuk menambah matlamat permohonan yang kami bicarakan, letakkan entri baru dalam konfigurasi: // omitted for breivety 'purpose' => 'Describe your application purpose' Untuk ini berlaku, anda perlu mencipta semula garis panduan: php artisan boost:install Dalam panduan yang diterbitkan, contohnya, jika anda menggunakan Cursor, anda akan menemui matlamat anda (saya harap kita semua melakukannya) dalam , dalam seksyen “Konteks Dasar”. .cursor/rules/laravel-boost.mdc kurang lebih Meningkatkan kapal dengan 15+ alat, tetapi bergantung kepada aplikasi anda, anda mungkin tidak memerlukan mereka semua. alat, anda diselamatkan daripada neraka frontend. secara peribadi, saya juga dan Sememangnya tidak berguna, LLM hanya boleh membaca konfigurasi secara langsung tanpa melompat melalui hoops itu. BrowserLogs GetConfig ListAvailableConfigKeys Tweak kepada Konfirmasi : boost.php <?php use Laravel\Boost\Mcp\Tools\GetConfig; use Laravel\Boost\Mcp\Tools\BrowserLogs; use Laravel\Boost\Mcp\Tools\ListAvailableConfigKeys; // omitted for breivety 'mcp' => [ 'tools' => [ 'exclude' => [BrowserLogs::class, GetConfig::class, ListAvailableConfigKeys::class], ], ], Tiga buah alat telah hilang. Dan sama seperti mengecualikan alat, anda boleh menambah anda sendiri. Sebagai contoh, saya suka mempunyai alat yang menyenaraikan semua peristiwa yang didaftarkan dalam aplikasi.Jika anda menarik dalam paket pihak ketiga, ini memudahkan LLM untuk mendeteksi peristiwa yang boleh disambungkan kepada bukannya membina logik tambahan atau memperluaskan kelas. Di bawah kapak, Boost menggunakan paket pihak pertama yang baru, , yang menangani penciptaan alat dan semua perkara yang menyeronokkan. anda boleh mencipta alat baru dengan: laravel/mcp php artisan make:mcp-tool ListEvents Kod alat untuk peristiwa senarai adalah seperti: <?php namespace App\Mcp\Tools; use Illuminate\Support\Facades\Artisan; use Laravel\Mcp\Server\Tool; use Laravel\Mcp\Server\Tools\Annotations\IsReadOnly; use Laravel\Mcp\Server\Tools\ToolInputSchema; use Laravel\Mcp\Server\Tools\ToolResult; use Symfony\Component\Console\Command\Command as CommandAlias; use Symfony\Component\Console\Output\BufferedOutput; #[IsReadOnly] class ListEvents extends Tool { public function description(): string { return 'List all available events defined in the application'; } public function schema(ToolInputSchema $schema): ToolInputSchema { return $schema; } /** * @param array<string> $arguments */ public function handle(array $arguments): ToolResult { $eventsOutput = $this->artisan('event:list'); return ToolResult::text($eventsOutput); } /** * @param array<string|bool> $options */ private function artisan(string $command, array $options = []): string { $output = new BufferedOutput; $result = Artisan::call($command, $options, $output); if ($result !== CommandAlias::SUCCESS) { return 'Failed to list routes: '.$output->fetch(); } return trim($output->fetch()); } } Kemudian masukkan, anda menebak ia, fail config: <?php use App\Mcp\Tools\ListEvents; use Laravel\Boost\Mcp\Tools\GetConfig; use Laravel\Boost\Mcp\Tools\BrowserLogs; use Laravel\Boost\Mcp\Tools\ListAvailableConfigKeys; // omitted for breivty 'mcp' => [ 'tools' => [ 'exclude' => [BrowserLogs::class, GetConfig::class, ListAvailableConfigKeys::class], 'include' => [ListEvents::class], // include the tool ], ], Dan seperti itu, anda telah menambah alat kustom. Tip Bonus: MCP server Boost menggunakan datang dengan inspektor, jadi anda boleh menguji alat-alat baru dengan segera. Tip Bonus: MCP server Boost menggunakan datang dengan inspektor, jadi anda boleh menguji alat-alat baru dengan segera. php artisan mcp:inspector laravel-boost Anda akan melihat semua alat yang tersedia, menguji mereka, dan lain-lain. Jangan panggil saya, jangan datang ke rumah saya Jika anda menggunakan seni bina monolit modular dengan direktori... berita buruk: Boost hanya memeriksa enums, model, dan kawalan di dalam . modules/ app/ Adalah baik jika terdapat cara asli untuk menyesuaikan ini, tetapi sehingga itu, kita melakukannya sendiri. Apa yang perlu anda lakukan ialah mengikat kepada kebiasaan anda sendiri yang memindai atau di mana-mana sahaja Laravel\Boost\Install\GuidelineAssist GuidelineAssist modules/ Panduan custom anda mungkin kelihatan seperti: <?php declare(strict_types=1); namespace App\Support; use Illuminate\Database\Eloquent\Model; use Laravel\Boost\Install\GuidelineAssist; use ReflectionClass; use Symfony\Component\Finder\Finder; class CustomGuidelineAssist extends GuidelineAssist { public function __construct() { $this->modelPaths = $this->discover(fn ($reflection) => ($reflection->isSubclassOf(Model::class) && ! $reflection->isAbstract())); $this->controllerPaths = $this->discover(fn (ReflectionClass $reflection) => (stripos($reflection->getName(), 'controller') !== false || stripos($reflection->getNamespaceName(), 'controller') !== false)); $this->enumPaths = $this->discover(fn ($reflection) => $reflection->isEnum()); } private function discover(callable $cb): array { $classes = []; if (empty(self::$classes)) { $finder = Finder::create() ->in([app_path(), base_path('modules')]) ->files() ->name('/[A-Z].*\.php$/'); foreach ($finder as $file) { $relativePath = $file->getRelativePathname(); $isModule = str_starts_with($file->getRealPath(), base_path('modules')); $className = $isModule ? 'Modules\\'.str_replace(['/', '.php'], ['\\', ''], $relativePath) : app()->getNamespace().str_replace(['/', '.php'], ['\\', ''], $relativePath); try { if ($this->fileHasClassLike($file->getRealPath()) && class_exists($className)) { self::$classes[$className] = $file->getRealPath(); } } catch (\Throwable) { // Ignore exceptions from class loading } } } foreach (self::$classes as $className => $path) { if ($cb(new ReflectionClass($className))) { $classes[$className] = $path; } } return $classes; } } Ia adalah terutamanya ibu bapa menemukan() dengan tweaks kecil. Ia adalah terutamanya ibu bapa menemukan() dengan tweaks kecil. Jangan lupa untuk mengikat semula dalam pembekal perkhidmatan.Selepas anda melakukannya, menguji alat "application-info" daripada pemeriksa harus menunjukkan semua model anda disenaraikan dengan betul. Itulah yang AI menghisap? Mungkin. tetapi ia menghisap lebih sedikit dengan alat yang betul, sesuatu seperti Boost. Tetapi jangan berhenti di sana. Terdapat MCP untuk segala-galanya: GitHub, Sentry, dan Linear. Mereka menambah banyak nilai. Anda juga boleh membina MCP anda sendiri untuk keseronokan. (ya, ia memasak kentang goreng), dan lain-lain yang memainkan senarai main Spotify berdasarkan betapa jahat kod itu. Kembali ke My Air Fryer https://x.com/OussamaMater/status/1954648925320655213?embedable=true Fakta yang menyeronokkan: walaupun saya merosakkan AI sedikit di sini, saya menggunakan AI untuk membetulkan grammar saya yang buruk. memperbaiki grammar sambil dihina, lucu lol. Maaf AI, anda boleh mendorong saya di atas garis kadang-kadang. Fakta yang menyeronokkan: walaupun saya merosakkan AI sedikit di sini, saya menggunakan AI untuk membetulkan grammar saya yang buruk. memperbaiki grammar sambil dihina, lucu lol. Maaf AI, anda boleh mendorong saya di atas garis kadang-kadang.