vizra/vizra-adk
Vizra ADK brings autonomous AI agents to Laravel: multi-model support (OpenAI/Anthropic/Gemini), tools, persistent memory, sub-agents, workflows, streaming responses, evaluation, and tracing—plus a Livewire dashboard for testing and monitoring.
Vizra ADK is a comprehensive Laravel package for building autonomous AI agents that can reason, use tools, and maintain persistent memory. Create intelligent, interactive agents that integrate seamlessly with your Laravel application.
# Install via Composer
composer require vizra/vizra-adk
# Publish config and run migrations
php artisan vizra:install
# Create your first agent
php artisan vizra:make:agent CustomerSupportAgent
# Start chatting!
php artisan vizra:chat customer_support
<?php
use Vizra\VizraADK\Agents\BaseLlmAgent;
use Vizra\VizraADK\Facades\Agent;
// Define your agent
class CustomerSupportAgent extends BaseLlmAgent
{
protected string $name = 'customer_support';
protected string $description = 'Helps customers with inquiries';
protected string $instructions = 'You are a helpful customer support assistant.';
protected string $model = 'gpt-4o';
protected array $tools = [
OrderLookupTool::class,
RefundProcessorTool::class,
];
}
// That's it! No registration needed - agents are auto-discovered
// Use your agent immediately
$response = CustomerSupportAgent::run('I need help with my order')
->forUser($user)
->go();
Tools extend your agent's capabilities:
use Vizra\VizraADK\Contracts\ToolInterface;
use Vizra\VizraADK\System\AgentContext;
class OrderLookupTool implements ToolInterface
{
public function definition(): array
{
return [
'name' => 'order_lookup',
'description' => 'Look up order information',
'parameters' => [
'type' => 'object',
'properties' => [
'order_id' => [
'type' => 'string',
'description' => 'The order ID',
],
],
'required' => ['order_id'],
],
];
}
public function execute(array $arguments, AgentContext $context): string
{
$order = Order::find($arguments['order_id']);
return json_encode([
'status' => 'success',
'order' => $order->toArray(),
]);
}
}
Vizra ADK supports Laravel's powerful macro pattern, allowing you to add custom methods to core classes without modifying the package:
use Vizra\VizraADK\Services\AgentBuilder;
use Vizra\VizraADK\Facades\Agent;
use Illuminate\Database\Eloquent\Model;
// Register a macro in your AppServiceProvider::boot()
AgentBuilder::macro('track', function (Model $model) {
$this->trackedModel = $model;
return $this;
});
// Step 1: Use the macro when registering the agent
Agent::build(CustomerSupportAgent::class)
->track(Unit::find(12)) // Track token usage for analytics
->register();
// Step 2: Run the agent using the executor API
$response = CustomerSupportAgent::run('I need help')
->forUser($user)
->go();
Learn more in the Macros Documentation.
For comprehensive documentation, tutorials, and API reference, visit:
Take your agents to the next level with Vizra Cloud - our professional evaluation and trace analysis platform designed specifically for AI agents built with Vizra ADK.
Join the waitlist at vizra.ai →
Vizra ADK is an open-source project that takes significant time and effort to maintain and improve. If you find this package valuable for your projects, please consider sponsoring its development!
Every contribution, no matter the size, makes a real difference in sustaining this project. Thank you for your support! 🙏
Vizra ADK is open-sourced software licensed under the MIT license.
Built with ❤️ by the Vizra team and contributors.
Special thanks to:
How can I help you explore Laravel packages today?