0

Không chỉ có Python: Tìm hiểu Hệ sinh thái Phát triển PHP AI Agent và LLM

Ai cũng biết rằng hầu hết các LLM phụ thuộc rất nhiều vào Python. Nhưng vào năm 2026, nếu bạn nghĩ rằng chỉ có Python mới có thể xử lý các mô hình ngôn ngữ lớn (LLM), thì bạn đã nhầm. Cộng đồng PHP đã thiết lập một hệ sinh thái phát triển AI Agent hoàn thiện. Các nhà phát triển hoàn toàn có thể thực hiện mọi việc từ điều phối API cấp thấp đến điều phối đa tác tử (multi-agent) cấp cao hoàn toàn trong môi trường PHP thuần túy.

Bài viết này sẽ đi sâu vào các tầng cụ thể của hệ sinh thái PHP AI hiện tại, phân tích thiết kế cốt lõi của các khung công tác (framework) phổ biến và cung cấp các ví dụ tích hợp thực tế phù hợp với các kịch bản kinh doanh thực tế.

Hệ sinh thái PHP AI

Tầng giao tiếp cơ bản: Giao diện LLM và khả năng tương thích đa máy khách

Bước đầu tiên để tích hợp các mô hình lớn vào hệ thống nghiệp vụ là thiết lập một liên kết giao tiếp ổn định. Các công cụ ở tầng này loại bỏ các logic nghiệp vụ phức tạp, chỉ tập trung vào việc xây dựng yêu cầu, truyền tải và phân tích phản hồi.

Logic điều khiển cấp thấp của OpenAI PHP

OpenAI PHP SDK

Khi xử lý các nhu cầu AI tùy chỉnh cao, các nhà phát triển thường cần tinh chỉnh các tham số yêu cầu. OpenAI PHP là một SDK được hỗ trợ chính thức, do cộng đồng thúc đẩy, tránh việc trừu tượng hóa quá mức và ánh xạ hoàn toàn với API RESTful của OpenAI. Triết lý thiết kế của nó là cấp cho các nhà phát triển quyền kiểm soát chính xác đối với temperature, frequency penalty và luồng đầu ra (streaming).

Cài đặt dependency:

composer require openai-php/client

Trong các kịch bản kiểm tra chất lượng dịch vụ khách hàng thực tế, giá trị temperature thấp hơn thường được yêu cầu để đảm bảo tính ổn định của đầu ra. Đoạn mã sau đây minh họa cách sử dụng SDK này để gửi các yêu cầu với sự kiểm soát tham số nghiêm ngặt:

use OpenAI\Client;

$client = OpenAI::client($_ENV['OPENAI_API_KEY']);

$response = $client->chat()->create([
    'model' => 'gpt-4o',
    'temperature' => 0.2,
    'max_tokens' => 500,
    'messages' => [
        ['role' => 'system', 'content' => 'Đóng vai trò là người đánh giá tuân thủ nghiêm ngặt. Chỉ xuất ra "Hợp lệ" hoặc "Không hợp lệ" cùng với lý do ngắn gọn.'],
        ['role' => 'user', 'content' => 'Đánh giá nội dung tiếp thị sau: Đầu tiên trên toàn cõi mạng, trị dứt điểm bách bệnh.']
    ],
]);

echo $response->choices[0]->message->content;

Thiết kế cổng kết nối hợp nhất đa mô hình của Prism

Khi các mô hình xuất sắc liên tục xuất hiện trên thị trường, việc liên kết sâu sắc một hệ thống nghiệp vụ với một nhà cung cấp duy nhất sẽ mang lại rủi ro rất lớn. Khung công tác Prism sử dụng các contract (giao kèo) và thiết kế giao diện để loại bỏ sự khác biệt giữa các mô hình lớn khác nhau. Các nhà phát triển có thể tận dụng Prism để xây dựng một cổng dịch vụ AI thống nhất.

Ngoài việc tạo văn bản cơ bản, Prism còn hỗ trợ gọi công cụ (tool calling) - đây là nền tảng giúp các mô hình có khả năng thực thi hành động.

Cài đặt dependency:

composer require prism-php/prism

Dưới đây là một ví dụ cho thấy cách cấu hình Prism để mô hình có thể tự quyết định xem có nên gọi một hàm truy vấn thời tiết bên ngoài hay không, đồng thời cho phép chuyển đổi mượt mà giữa các nhà cung cấp mô hình khác nhau:

use Prism\Prism;
use Prism\Tools\Tool;

$weatherTool = Tool::make('get_weather')
    ->description('Lấy điều kiện thời tiết hiện tại cho một thành phố cụ thể')
    ->addParameter('city', 'string', 'Tên thành phố, ví dụ: Beijing');

$response = Prism::text()
    ->using('anthropic', 'claude-3-opus')
    ->withPrompt('Thời tiết ở Thượng Hải ngày mai thế nào? Tôi có cần mang theo ô không?')
    ->withTools([$weatherTool])
    ->generate();

if ($response->hasToolCalls()) {
    $calls = $response->getToolCalls();
    // Phía nghiệp vụ truy vấn API thời tiết thực tế bằng các tham số trong $calls, sau đó trả kết quả về cho mô hình
}

Tầng nghiệp vụ cốt lõi: Xây dựng Agent và Điều phối quy trình công việc

Khi một cuộc hội thoại đơn lẻ không thể đáp ứng nhu cầu nghiệp vụ, hệ thống cần có khả năng truy xuất thông tin từ cơ sở tri thức nội bộ hoặc xuất ra dữ liệu có cấu trúc nghiêm ngặt. Điều này đưa chúng ta vào lĩnh vực của các khung công tác Agent.

LLPhant Thúc đẩy thế hệ RAG (Retrieval-Augmented Generation)

Khung công tác LLPhant PHP

LLPhant chiếm một vị trí trong hệ sinh thái PHP tương tự như LangChain. Nó đi kèm với các trình tải tài liệu tích hợp (document loaders), trình tách văn bản (text splitters), trình tạo nhúng vector (embedding generators) và các mô-đun tích hợp cho các cơ sở dữ liệu vector khác nhau (như Qdrant, Milvus và Chroma).

Khi xây dựng hệ thống hỏi đáp cơ sở tri thức nội bộ của doanh nghiệp, LLPhant có thể xử lý các quy trình tiền xử lý tài liệu phức tạp.

Cài đặt dependency:

composer require thellphant/llphant

Đoạn mã sau minh họa cách LLPhant tách văn bản và lưu trữ vào cơ sở dữ liệu vector:

use LLPhant\Embeddings\OpenAIEmbeddingGenerator;
use LLPhant\VectorStore\Memory\MemoryVectorStore;
use LLPhant\Embeddings\DocumentSplitter\DocumentSplitter;
use LLPhant\Embeddings\Document;

$document = new Document();
$document->content = 'Chính sách thanh toán của công ty: Hạn mức thanh toán tiền ăn là 200 RMB mỗi ngày và phải cung cấp hóa đơn chính thức.';

// Tách tài liệu dài thành các đoạn nhỏ
$chunks = DocumentSplitter::splitDocument($document, 50);

$embeddingGenerator = new OpenAIEmbeddingGenerator();
// Tạo dữ liệu vector cho các đoạn
$embeddedDocuments = $embeddingGenerator->embedDocuments($chunks);

// Lưu vào cơ sở dữ liệu vector (sử dụng cơ sở dữ liệu trong bộ nhớ làm ví dụ ở đây)
$vectorStore = new MemoryVectorStore();
$vectorStore->addDocuments($embeddedDocuments);

Đầu ra có cấu trúc với Cognesy Instructor PHP

Trong các kịch bản trích xuất thông tin, việc phân tích ngôn ngữ tự nhiên phi cấu trúc do các mô hình lớn trả về rất dễ xảy ra lỗi. Cognesy Instructor PHP tận dụng khả năng gọi công cụ (gọi hàm) của các mô hình cơ sở cùng với cơ chế phản chiếu (reflection) của PHP 8 và các khai báo kiểu thuộc tính để buộc các mô hình xuất ra dữ liệu JSON khớp với các cấu trúc đối tượng cụ thể.

Cài đặt dependency:

composer require cognesy/instructor-php

Khi bạn đã định nghĩa mô hình dữ liệu, framework sẽ tự động tạo một JSON Schema và chèn nó vào yêu cầu:

use Cognesy\Instructor\Instructor;

class ProductReview {
    public string $sentiment; // Tích cực, tiêu cực, hoặc trung lập
    public array $keywords; // Các từ khóa đặc tính sản phẩm được đề cập
    public int $rating; // Đánh giá từ 1 đến 5
}

$instructor = new Instructor();
$reviewData = $instructor->respond(
    messages: [['role' => 'user', 'content' => 'Thời lượng pin của chiếc điện thoại này thật khủng khiếp, nhưng màn hình lại rất rõ nét. Tôi sẽ miễn cưỡng cho nó 3 sao.']],
    responseModel: ProductReview::class
);

// Tại thời điểm này, $reviewData là một phiên bản (instance) đã được điền đầy đủ của ProductReview
print_r($reviewData->keywords); 

Kiến trúc đường ống Middleware của PapiAI

PapiAI lấy cảm hứng từ mô hình củ hành (đường ống middleware) thường thấy trong các khung công tác web PHP hiện đại. Trước khi các yêu cầu được gửi đến LLM, dữ liệu sẽ đi qua một loạt các bộ chặn (interceptors). Thiết kế này lý tưởng để xử lý lọc từ nhạy cảm, giới hạn tần suất yêu cầu (rate limiting) và ghi nhật ký thống nhất.

Cài đặt dependency:

composer require papi-ai/papi-core

Tích hợp sâu với các Khung công tác Web Hiện đại

Symfony AI - Thành phần Agent

Thành phần Symfony AI chính thức cho phép các nhà phát triển sử dụng các trình điều phối sự kiện (event dispatchers) hiện có và các container tiêm phụ thuộc (dependency injection containers) để quản lý các tác tử (agent). Khi thực hiện các tương tác mô hình, hệ thống sẽ kích hoạt các sự kiện cụ thể, và mã nghiệp vụ có thể lắng nghe các sự kiện này để can thiệp vào logic hành vi của agent.

Laravel Boost

Trong lĩnh vực hỗ trợ phát triển, Laravel Boost đóng vai trò là một tập hợp các công cụ dựa trên Giao thức ngữ cảnh mô hình (Model Context Protocol - MCP). Nó cho phép các trình biên tập mã bên ngoài hoặc các mô hình lớn đọc trực tiếp các bảng định tuyến (routing tables), tệp di chuyển cơ sở dữ liệu (database migrations) và các mối quan hệ mô hình Eloquent của một dự án Laravel. Nó thu hẹp khoảng cách giữa các trợ lý AI và ngữ cảnh dự án PHP cục bộ.

Tầng cơ sở hạ tầng: Cộng tác đa tác tử và Khả năng quan sát

Khi quy mô hệ thống mở rộng và các agent đơn lẻ được nâng cấp thành các nhóm agent với các vai trò khác nhau, việc quản lý trạng thái và các đường ống gỡ lỗi trở nên cực kỳ phức tạp.

Định tuyến tác vụ và Máy trạng thái với PromptlyAgent

Quy trình làm việc của PromptlyAgent

Trong các hệ thống đa tác tử, PromptlyAgent đóng vai trò là người điều phối. Nó quản lý các quy trình công việc bằng cách sử dụng mô hình máy trạng thái (state machine). Khi người dùng gửi một yêu cầu trả hàng phức tạp, nút điều phối sẽ chia nhỏ tác vụ—trước tiên định tuyến nó đến một Agent tra cứu đơn hàng để lấy dữ liệu, sau đó chuyển nó đến một Agent xử lý hoàn tiền để xác thực logic. PromptlyAgent xử lý việc truyền dữ liệu và chuyển đổi trạng thái giữa các nút này.

Giám sát toàn trình (End-to-End) với Vizra ADK

Bản chất "hộp đen" của các ứng dụng AI thường khiến việc khắc phục sự cố gặp nhiều khó khăn. Vizra ADK tập trung vào việc giải quyết khả năng quan sát (observability) trong các hệ thống Agent. Nó ghi lại mức tiêu thụ token, độ trễ mạng, cũng như các tham số đầu vào/đầu ra của các cuộc gọi công cụ cho mỗi lần gọi LLM. Bằng cách phân tích dữ liệu đo lường từ xa (telemetry data) này, các kiến trúc sư có thể xác định chính xác bước nào đã gây ra sự sụt giảm chất lượng phản hồi hoặc thời gian chờ (timeout).

Môi trường phát triển cục bộ và Thiết lập cơ sở hạ tầng

Việc xây dựng các dự án hệ sinh thái PHP AI phức tạp đòi hỏi cao về môi trường thực thi bên dưới. Các khung công tác Agent hiện đại thường dựa trên các tính năng mới trong PHP 8.2 trở lên, chẳng hạn như các lớp readonly, enum và attribute. Việc duy trì đồng thời các hệ thống nghiệp vụ cũ cùng với các dự án AI tiên tiến thường dẫn đến xung đột phiên bản môi trường cục bộ.

Để giải quyết các khó khăn trong cấu hình môi trường cục bộ, việc sử dụng ServBay làm cơ sở hạ tầng phát triển bên dưới được khuyến khích. ServBay được thiết kế đặc biệt cho các nhà phát triển web và AI hiện đại, loại bỏ các cấu hình biên dịch và dependency tẻ nhạt. Với ServBay, các nhà phát triển có thể cài đặt PHP chỉ bằng một cú nhấp chuột. Phần mềm không chỉ tích hợp một loạt các tiện ích mở rộng phổ biến mà còn cung cấp khả năng cô lập phiên bản sạch sẽ.

Cài đặt PHP một cú nhấp chuột trong ServBay

ServBay cho phép nhiều phiên bản PHP cùng tồn tại trên cùng một máy mà không ảnh hưởng lẫn nhau. Các kỹ sư có thể phân bổ môi trường PHP 7.4 cho các dự án bảo trì truyền thống trong khi phân bổ liền mạch môi trường PHP 8.4 cho các dự án LLPhant hoặc PapiAI mới. Thiết kế đa phiên bản này giúp giảm đáng kể rào cản thiết lập ban đầu, cho phép các nhóm phát triển tập trung hoàn toàn vào việc tích hợp PHP với các LLM và quy trình công việc đa tác tử.

Kết luận

Hệ sinh thái phát triển PHP LLM đã phát triển từ các công cụ phân tán thành một ma trận có hệ thống. Từ việc kiểm soát chi tiết ở tầng SDK cấp thấp đến hỗ trợ RAG và đầu ra có cấu trúc cấp framework ở tầng trung gian, và quản lý trạng thái cho đa tác tử ở tầng cao, chuỗi công cụ đã hoàn toàn khép kín. Với các công cụ quản lý môi trường hiện đại như ServBay, các nhà phát triển có thể khám phá ranh giới của các ứng dụng AI trong môi trường PHP thuần túy mà không gặp trở ngại về hạ tầng. Nâng cấp từ các lệnh gọi hàm đơn giản lên các dịch vụ agent hoàn chỉnh đã trở thành kỹ năng thiết yếu cho các nhà phát triển backend PHP hiện đại để thích ứng với các bước chuyển dịch công nghệ trong tương lai.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí