
Trong vài tháng qua, tôi đã làm việc rất chăm chỉ để đưa tích hợp các tác nhân AI vào sản phẩm SaaS của mình lên một tầm cao mới. Đó là một hành trình rất dài, bắt đầu từ hơn một năm trước với những thử nghiệm đầu tiên. Tôi phải nói rằng việc hiểu tất cả các bộ phận chuyển động của một hệ thống do AI điều khiển không hề dễ dàng.
Là một nhà phát triển PHP, tôi đã gặp rất nhiều khó khăn, chủ yếu là vì hệ sinh thái PHP để phát triển các tính năng "Agentic" này vào các ứng dụng hiện có không tiên tiến và phong phú như các công nghệ khác.
Python và Javascript đang “lái xe buýt”, và rõ ràng là các nhà phát triển khác làm việc với các ngôn ngữ lập trình khác cũng đang tạo ra các sản phẩm của họ để có cơ hội bắt đầu hành trình của họ.
Sáu tháng trước khi tôi bắt đầu làm việc trên chương này, tôi đã cân nhắc một số gói đang được chú ý như LLPhant hoặc Prism . Có rất nhiều sự phát triển đằng sau các gói này và chúng đã triển khai rất nhiều thứ. Nhưng đối với nhu cầu của tôi, chúng có những điểm yếu quá nghiêm trọng để xem xét xây dựng nền tảng của chương này cho doanh nghiệp của tôi trên các thư viện này. Prism dành riêng cho Laravel, vì vậy bạn bị khóa chặt, và LLPhant có rất nhiều lớp khác nhau và trông giống một thư viện hơn là một khuôn khổ. Nó cũng thiếu các tính năng như Bộ nhớ, lịch sử trò chuyện, khả năng quan sát.
Ngay từ đầu tôi đã nhận ra rằng tôi không thể xem xét các ngôn ngữ lập trình khác. Điều đó không bền vững. Và tôi chắc rằng hầu hết các nhà phát triển chuyên về một công nghệ cụ thể cũng vậy.
Nếu bạn có ứng dụng PHP, bạn không thể triển khai tác nhân trong javascript hoặc Python, vì chúng cần dữ liệu và ngữ cảnh ứng dụng của bạn để tạo ra phép thuật của chúng. Việc chuyển dữ liệu và ngữ cảnh này sang một thực thể bên ngoài được viết bằng ngôn ngữ khác dẫn đến nhiều mã trùng lặp hoặc hạn chế kỹ thuật không bền vững.
Tôi tò mò muốn biết liệu chỉ mình tôi gặp khó khăn hay những cảm giác này cũng giống như các nhà phát triển PHP khác.
Tôi bắt đầu nghĩ rằng công cụ tôi tự tạo ra thực sự rất tốt, ít nhất là theo quan điểm của tôi.
Vì vậy, tôi quyết định phát hành công cụ nội bộ này dưới dạng một dự án nguồn mở: Neuron AI , một Framework nguồn mở để tích hợp các AI Agent đầy đủ tính năng vào ứng dụng PHP hiện có của bạn.
Hành trình tôi muốn khám phá được lấy cảm hứng từ LangChain, trao cho mọi người sức mạnh để tạo các thực thể Agentic vào các ứng dụng PHP, với bộ công cụ mã nguồn mở hoàn chỉnh. Và cung cấp hỗ trợ và khả năng hiển thị lâu dài nhờ dịch vụ giám sát và gỡ lỗi chuyên nghiệp do Inspector.dev cung cấp
Đồng thời tôi tin rằng nó thực sự có thể giúp các nhà phát triển PHP “nhảy vào lĩnh vực AI” với nền tảng vững chắc hơn.
Với tôi, đây có vẻ là một cơ hội rõ ràng. Tôi hy vọng nó có thể giúp bạn có được câu trả lời mà bạn đang tìm kiếm để tiếp tục xây dựng phần mềm tuyệt vời với ngôn ngữ lập trình ưa thích của bạn.
Sau đây là cách hệ thống được tổ chức:
Neuron AI được thiết kế để cung cấp cho bạn bộ công cụ hoàn chỉnh để triển khai các ứng dụng dựa trên AI, giúp dễ dàng tích hợp vào hệ thống hiện có của bạn.
Hầu hết các thành phần của khung Neuron AI không triển khai các trình xây dựng hoạt động, chúng chỉ cung cấp cho bạn các tính năng để triển khai hành vi tác nhân của riêng bạn. Hai lớp quan trọng nhất, Agent và RAG , được thiết kế để mở rộng nhằm tạo ra triển khai cụ thể của bạn. Chúng hiếm khi được sử dụng như các đối tượng độc lập.
Điều này đảm bảo tính di động của việc triển khai tác nhân vì tất cả các bộ phận chuyển động đều được đóng gói thành một thực thể duy nhất mà bạn có thể chạy bất cứ nơi nào bạn muốn trong ứng dụng của mình.
namespace App\Agents; use NeuronAI\Agent; use NeuronAI\Providers\Anthropic; use NeuronAI\Tools\Tool; class SEOAgent extends Agent { public function provider(): AIProviderInterface { // return an AI provider instance (Anthropic, OpenAI, Mistral, etc.) return new Anthropic( key: 'ANTHROPIC_API_KEY', model: 'ANTHROPIC_MODEL', ); } public function instructions() { return "Act as an expert of SEO (Search Engine Optimization). ". "Your role is to analyze a text and provide suggestions on how the content can be improved to better rank on Google search."; } public function tools(): array { return [ Tool::make( "get_file_content", "Use the url to get the content in plain text." )->addProperty( new ToolPropertry( name: 'url', type: 'string', description: 'The URL of the article you want to analyze.', required: true ) )->setCallable(function (string $url) { return file_get_contents($url); }) ]; } }
Nói chuyện với người đại diện
use NeuronAI\Chat\Messages\UserMessage; $response = SEOAgent::make($user) ->chat( new UserMessage("Give me your feedback about this article: https://inspector.dev/introduction-to-neuron-ai-create-full-featured-ai-agents-in-php/") ); echo $response->getContent(); // It seems like a good job has been done on the article, // however I can give you some tips to improve SEO:...
Chúng tôi cố ý quyết định xây dựng Neuron càng miễn phí càng tốt khỏi các phụ thuộc bên ngoài. Gói này chỉ đi kèm một phụ thuộc: “guzzlehttp/guzzle”: “^7.0”
Nếu không đưa hàng chục phụ thuộc vào ứng dụng, bạn sẽ không có nguy cơ bị khóa khỏi Neuron nếu bạn cần nâng cấp kiến trúc hiện tại, như khuôn khổ ứng dụng web (Laravel, Symfony, CodeIgniter, v.v.) lên phiên bản mới hơn hoặc tích hợp các phụ thuộc mới.
Dựa trên kinh nghiệm của chúng tôi, một chuỗi phụ thuộc xấu có thể là một bất ngờ rất khó chịu khi quá muộn. Bạn đã dành rất nhiều công sức để triển khai các tương tác AI của mình và đột nhiên nó trở thành nút thắt cổ chai vì các phụ thuộc khiến việc nâng cấp và phát triển phần còn lại của hệ thống trở nên bất khả thi.
Chúng tôi muốn bạn biết rằng với Neuron AI, điều đó không phải như vậy.
Mỗi thành phần của khung đều phụ thuộc vào giao diện riêng của nó. Điều này đảm bảo cho bạn khả năng tạo ra các triển khai cụ thể mới của mọi thành phần để tương tác với các hệ thống bên ngoài và chuyển chúng cho các tác nhân của bạn một cách tự tin.
Trong tài liệu về thành phần, bạn sẽ tìm thấy phần chuyên đề về cách triển khai thành phần mới, về cơ bản là mở rộng giao diện của thành phần đó.
Bạn có muốn triển khai Vector Store mới hay Embeddings Provider không? Hãy làm theo tài liệu và gửi cho chúng tôi PR với module mới của bạn. Chúng tôi sẽ rất vui khi tích hợp chúng như một phần của khuôn khổ để đảm bảo hỗ trợ và bảo trì của bên thứ nhất.
Neuron được thiết kế với một hệ thống tích hợp để làm cho các triển khai tác nhân và RAG của bạn có thể quan sát được. Bạn có thể bắt đầu theo dõi hoạt động và hiệu suất của tác nhân chỉ bằng một dòng mã. Hãy xem phần chuyên dụng trong phần khả năng quan sát .
Để tạo ra một tác nhân AI có đầy đủ chức năng, bạn phải làm cho nhiều thứ hoạt động cùng nhau. Ngoài LLM, bạn cần liên tục xử lý dữ liệu, tạo và lưu trữ các nhúng để cung cấp thông tin mới cho tác nhân của mình.
Dự án này hướng tới mục tiêu cung cấp các giải pháp dễ triển khai và mở rộng vào tất cả các lĩnh vực này.
Tại Inspector, chúng tôi ủng hộ sự tăng trưởng hữu cơ. Vì vậy, chúng tôi muốn bắt đầu giúp các nhà phát triển tạo ra các tác nhân đầu tiên của họ để khám phá các trường hợp ngoại lệ, nhu cầu mới và rõ ràng là sửa lỗi.
Chúng tôi hiện đang làm việc với nhóm người dùng nội bộ gồm hơn 10.000 nhà phát triển PHP đang bắt đầu làm việc với các Đại lý của mình và còn rất nhiều điều thú vị khác đang nổi lên.
Các trường hợp sử dụng thực tế sẽ là động lực thúc đẩy sự phát triển của khuôn khổ, vì vậy đừng ngần ngại liên hệ với chúng tôi nếu bạn muốn có thêm kiến thức từ kinh nghiệm của chúng tôi. Chúng tôi ở đây để giúp bạn.
Nếu khách hàng thúc đẩy bạn triển khai các tính năng AI vào ứng dụng, hãy thử Neuron, chỉ cần vài dòng mã để triển khai tác nhân đầy đủ tính năng đầu tiên của bạn.
Cảm ơn bạn đã đọc bài viết này, tôi mời bạn liên hệ với tôi nếu có bất kỳ câu hỏi, thắc mắc nào hoặc chỉ để phản hồi cho tôi. Và nếu bạn nghĩ công cụ này có thể hữu ích với những nhà phát triển PHP khác, vui lòng chia sẻ trên blog, phương tiện truyền thông xã hội và kênh YouTube của bạn.
Tìm hiểu thêm về inspector trên trang web: https://inspector.dev
Tốt nhất,
Valerio