Tiến hóa Ứng dụng Laravel thành một AI Agent "Hạng Nặng"
Kỷ nguyên AI bùng nổ, và dĩ nhiên Laravel không thể đứng ngoài cuộc chơi. Đúng vậy, thứ tôi muốn nói đến chính là Laravel AI SDK. Nó cung cấp cho anh em developer một bộ API thống nhất để kết nối với các "pháp sư" AI hàng đầu như OpenAI, Anthropic, Gemini...

Nói tóm lại: cái thời kỳ cay đắng ngồi viết chay từng HTTP request API, rồi dán mắt vào màn hình để tự tuning prompt đã chính thức kết thúc. Laravel lại vừa thăng cấp rồi!

Những Tính năng "Tiền Tỷ" của Laravel AI SDK
Laravel AI SDK được thiết kế để làm mượt mà toàn bộ quy trình tương tác với AI. Nó giúp developer thao tác với các model AI một cách tự nhiên và trôi chảy hệt như cách chúng ta thao tác với database thông qua Eloquent vậy.
1. Interface Nhà cung cấp (Provider) Thống nhất
Trước đây, tích hợp các nền tảng AI khác nhau đồng nghĩa với việc bạn phải viết những đoạn code boilerplate hoàn toàn khác nhau. Giờ thì không. Với một bộ cú pháp PHP nhất quán duy nhất, bạn có thể chuyển đổi mượt mà giữa các model nền tảng (như GPT-4, Claude 3.5 hay Gemini Pro). Thiết kế này đập tan rủi ro bị "khóa chặt" (vendor lock-in) vào một nhà cung cấp và giúp bạn linh hoạt tối ưu chi phí/hiệu năng.
2. Kiến trúc Agent (Tác nhân AI)
"Agent" là đơn vị logic cốt lõi của SDK này. Nó đóng gói các chỉ thị prompt, quản lý ngữ cảnh (context), các công cụ (tools) có sẵn và định dạng đầu ra vào chung một class PHP. Nhờ đó, các logic nghiệp vụ phức tạp (như phân tích doanh số, review code, hay support khách hàng) được module hóa cực kỳ gọn gàng.
3. Đầu ra có cấu trúc (Structured Output) & Gọi Công cụ (Tool Calling)
SDK hỗ trợ ép model phải trả về dữ liệu JSON tuân thủ nghiêm ngặt một Schema cụ thể — điều mang tính sống còn đối với các quy trình tự động hóa. Hơn nữa, bằng cách định nghĩa "Tools", AI có thể tự mình gọi các hàm PHP ở local để lấy thông tin từ database hoặc thực hiện các phép toán phức tạp.
4. Đa phương thức & Tăng cường Truy xuất (RAG)
Không chỉ dừng lại ở việc sinh văn bản (text generation), SDK còn bao sân cả sinh hình ảnh, Speech-to-Text (STT), Text-to-Speech (TTS) và Vector Embeddings. Kết hợp với extension pgvector của PostgreSQL, developer có thể build các hệ thống Knowledge Base (Hệ tri thức) dựa trên tìm kiếm ngữ nghĩa cực kỳ thần tốc.
Chuẩn bị Môi trường Nền tảng
Trước khi bắt tay vào code Laravel AI ở local, bạn cần một môi trường chạy PHP thực sự "trâu bò" và ổn định.
Để tránh đau đầu với việc config thủ công, bạn có thể dùng ServBay để triển khai mọi thứ chỉ với một chạm.
- Cài đặt một chạm: ServBay tích hợp sẵn Nginx, MariaDB, PostgreSQL và Redis. Mặc dù bài viết này đang tập trung vào PHP, nhưng nếu kiến trúc microservice của bạn cần đến nó, ServBay thậm chí cho phép bạn cài đặt môi trường Java bằng một cú click chuột.
- Hỗ trợ Đa phiên bản: Nó hỗ trợ ngon lành PHP 8.2 trở lên, đáp ứng hoàn hảo yêu cầu tối thiểu khắt khe của Laravel AI SDK.
- Sẵn sàng cho Vector Database: PostgreSQL đi kèm của ServBay cho phép bật extension
pgvectorcực kỳ dễ dàng, đây chính là nền móng cho Vector Search (RAG).

Sau khi cài ServBay, chỉ cần vào panel thêm một host mới, trỏ thư mục gốc (document root) vào thư mục public của dự án Laravel là xong phim.
Cài đặt SDK & Cấu hình Bảo mật
Môi trường đã sẵn sàng, giờ thì kéo AI SDK về qua Composer:
composer require laravel/ai
Tiếp theo, publish các file config và chạy database migration. Việc này sẽ tạo ra các bảng cần thiết để lưu trữ lịch sử hội thoại:
php artisan vendor:publish --provider="Laravel\Ai\AiServiceProvider"
php artisan migrate
Khi cấu hình môi trường, bảo mật file .env là tối quan trọng. Laravel cung cấp sẵn tính năng mã hóa file môi trường để tránh lộ lọt API Key nhạy cảm:
# Mã hóa file môi trường
php artisan env:encrypt --readable
Việc thêm cờ --readable giúp giữ lại tên các biến để dễ nhìn, trong khi giá trị của chúng đã được mã hóa an toàn, cực kỳ tiện lợi khi muốn check xem config nào đang tồn tại mà không cần giải mã.
Xây dựng AI Agents
Laravel AI SDK giới thiệu khái niệm Agent. Thay vì nhồi nhét một đống logic bẩn vào Controller, bạn sẽ định nghĩa một class Agent. Ví dụ, hãy tạo ra một Chuyên gia CSKH có khả năng query database.
namespace App\Ai\Agents;
use Laravel\Ai\Contracts\Agent;
use Laravel\Ai\Contracts\Conversational;
use Laravel\Ai\Contracts\HasTools;
use Laravel\Ai\Concerns\RemembersConversations;
use Laravel\Ai\Promptable;
class SupportBot implements Agent, Conversational, HasTools
{
use Promptable, RemembersConversations;
public function instructions(): string
{
return 'Bạn là một nhân viên CSKH chuyên nghiệp. Hãy trả lời câu hỏi của người dùng dựa trên thông tin lấy được từ công cụ Order Lookup. Giữ thái độ lịch sự và chuyên nghiệp.';
}
public function tools(): iterable
{
// Cấp cho Agent "tay chân" để nó tự chui vào database tìm đồ
return [
new \App\Ai\Tools\OrderLookup,
];
}
}
Và ở tầng logic nghiệp vụ (Controller), bạn chỉ cần ĐÚNG MỘT DÒNG để gọi nó. Agent sẽ tự động quyết định xem lúc nào cần query database, lúc nào nên trả lời trực tiếp cho người dùng.
$bot = (new SupportBot($user->id))->forUser($user);
$response = $bot->prompt('Đơn hàng A1024 của tôi trôi dạt phương nào rồi?');
Vector Search & Truy xuất Dữ liệu (RAG)
Kết hợp với môi trường database cài sẵn của ServBay, việc dựng RAG giờ chỉ tốn vài dòng code.
Đầu tiên, dùng SDK để tự động tạo vector embeddings trong hàm booted của Eloquent model:
protected static function booted()
{
static::saving(function ($article) {
// Cứ mỗi khi nội dung thay đổi, tự động chuyển text thành vector và lưu vào DB
$article->embedding = Str::of($article->content)->toEmbeddings();
});
}
Khi tìm kiếm, sử dụng đối sánh ngữ nghĩa (semantic matching) trực tiếp. Ví dụ, nếu user search "Làm sao để lấy lại tiền", hệ thống sẽ tự động tìm ra bài viết "Chính sách Hậu mãi", cho dù trong bài đó chẳng có chữ "lấy lại tiền" nào cả.
$results = Article::query()
->whereVectorSimilarTo('embedding', $query, minSimilarity: 0.6)
->get();
Kiểm soát Chi phí & Cơ chế Dự phòng (Failover)
Lên Production, bạn không thể cứ nhắm mắt dùng model xịn nhất (và đắt nhất) cho mọi tác vụ được. SDK cung cấp các PHP Attributes giúp kiểm soát chi phí cực chuẩn. Dùng model rẻ cho các task phân loại đơn giản, và model thông minh cho các logic phân tích phức tạp.
use Laravel\Ai\Attributes\UseCheapestModel;
use Laravel\Ai\Attributes\Provider;
use Laravel\Ai\Enums\Lab;
#[Provider([Lab::OpenAI, Lab::Anthropic])] // Nếu OpenAI lăn đùng ra chết, tự động switch sang Anthropic
#[UseCheapestModel] // Tự động chọn model "ngon bổ rẻ" nhất (ví dụ: Claude Haiku hoặc GPT-4o-mini)
class FastClassifier implements Agent
{
use Promptable;
}
Thử nghĩ xem ngày xưa bạn phải viết bao nhiêu dòng code if-else, try-catch để làm được cái trò tự động failover và tối ưu chi phí này? Giờ thì sao? Chỉ tốn đúng 2 cái annotation.
Tự động hóa Testing (Automated Testing)
Đầu ra của AI luôn mang tính bất định; bạn không bao giờ biết nó sẽ "múa" ra cái gì. Nhưng SDK đã chuẩn bị sẵn hàm fake() để làm cho mọi thứ trở nên có thể kiểm soát và test được.
public function test_support_bot_flow()
{
// Giả mạo phản hồi của AI. Chạy bét nhè test case mà không tốn một xu tiền API!
SupportBot::fake(['Đơn hàng của quý khách đang được giao đến tận giường.']);
$response = (new SupportBot(1))->prompt('Trạng thái đơn hàng?');
SupportBot::assertPrompted(fn ($prompt) => str_contains($prompt->prompt, 'Đơn hàng'));
$this->assertStringContainsString('đang được giao', $response);
}
Tối ưu hóa khi Deploy Production
Khi app của bạn chuẩn bị "lên thớt", hãy dùng cache và route optimize để tăng tốc hiệu năng. Lệnh optimize của Laravel sẽ cân nhiều task cùng lúc:
php artisan optimize
Lệnh này sẽ thực thi:
- Config Cache: Gộp tất cả file config lại để giảm thiểu số lần đọc từ ổ cứng.
- Route Cache: Tăng tốc quá trình đăng ký route.
- View Cache: Pre-compile (biên dịch trước) các Blade template.
Ngoài ra, nhớ tắt chế độ debug trên production (APP_DEBUG=false) và sử dụng route health check /up tích hợp sẵn để theo dõi tình trạng sinh tồn của ứng dụng nhé.
Lời kết
Đừng dùng mấy phương pháp cũ rích, cồng kềnh để tích hợp AI nữa. Thời gian của anh em dev quý giá lắm.
Laravel AI SDK biến những logic tích hợp AI phức tạp thành một mô hình phát triển thuần chất Laravel. Giờ đây, developer có thể dồn toàn lực vào việc code logic nghiệp vụ AI thực sự, nhanh chóng xây dựng nên những ứng dụng thông minh có sức cạnh tranh khốc liệt trên thị trường.
All rights reserved