PHPackages                             fomvasss/laravel-ai-tasks - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Queues &amp; Workers](/categories/queues)
4. /
5. fomvasss/laravel-ai-tasks

ActiveLibrary[Queues &amp; Workers](/categories/queues)

fomvasss/laravel-ai-tasks
=========================

AI task orchestrator for Laravel: routing, queue, audit, budget, webhooks

3.21.0(1w ago)381.6k31MITPHPPHP ^8.3

Since Nov 1Pushed 1w agoCompare

[ Source](https://github.com/fomvasss/laravel-ai-tasks)[ Packagist](https://packagist.org/packages/fomvasss/laravel-ai-tasks)[ Fund](https://send.monobank.ua/jar/5xsqtHvVrY)[ Fund](https://ko-fi.com/fomvasss)[ RSS](/packages/fomvasss-laravel-ai-tasks/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (38)Versions (39)Used By (1)

Laravel AI Tasks
================

[](#laravel-ai-tasks)

[![License](https://camo.githubusercontent.com/a4386c31b4a766f3e3477645bfcbb1b79fb8bf237a57d1dceed1aeee672bd72b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f666f6d76617373732f6c61726176656c2d61692d7461736b732e7376673f7374796c653d666f722d7468652d6261646765)](https://packagist.org/packages/fomvasss/laravel-ai-tasks)[![Latest Stable Version](https://camo.githubusercontent.com/c0aedde61de498a09077139a8bfd2bb5cb358c096c1e209f803867e3394f2371/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f666f6d76617373732f6c61726176656c2d61692d7461736b732e7376673f7374796c653d666f722d7468652d6261646765)](https://packagist.org/packages/fomvasss/laravel-ai-tasks)[![Total Downloads](https://camo.githubusercontent.com/393fae60afc159660f6666bcc4d4fe99905b79c822275f703381861155c3253e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f666f6d76617373732f6c61726176656c2d61692d7461736b732e7376673f7374796c653d666f722d7468652d6261646765)](https://packagist.org/packages/fomvasss/laravel-ai-tasks)

AI task orchestrator for Laravel. Handles routing, queuing, audit logging, budget tracking, and webhook processing on top of [laravel/ai](https://laravel.com/docs/ai-sdk) as the transport layer.

[Українська документація](README.uk.md)

Dashboard
---------

[](#dashboard)

Built-in web UI at `/ai-tasks` — runs list with stats, filters, and per-run detail (request, response, tokens, cost).

[![Dashboard](art/dashboard.gif)](art/dashboard.gif)

Configurable via `config/ai-tasks.php`:

```
'dashboard' => [
    'enabled'       => env('AI_DASHBOARD_ENABLED', true),
    'path'          => env('AI_DASHBOARD_PATH', 'ai-tasks'),
    'middleware'    => ['web'],
    'poll_interval' => env('AI_DASHBOARD_POLL', 3),       // seconds; 0 = off
    'theme'         => env('AI_DASHBOARD_THEME', 'system'), // light|dark|system
    'per_page'      => env('AI_DASHBOARD_PER_PAGE', 50),
],
```

Requirements
------------

[](#requirements)

- PHP ^8.3
- Laravel ^12 | ^13
- [laravel/ai](https://laravel.com/docs/ai-sdk) ^0.10

Installation
------------

[](#installation)

```
composer require fomvasss/laravel-ai-tasks
```

Publish configs and run migrations:

```
# laravel/ai provider config (credentials go here)
php artisan vendor:publish --provider="Laravel\Ai\AiServiceProvider" --tag=ai-config

# this package config (routing, budgets, queues)
php artisan vendor:publish --tag=ai-tasks-config

php artisan vendor:publish --tag=ai-migrations
php artisan migrate
```

Add API keys to `.env` — credentials are read by `laravel/ai`:

```
AI_DEFAULT=openai

OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GEMINI_API_KEY=...
DEEPSEEK_API_KEY=sk-...
GROQ_API_KEY=gsk_...
```

### Two config files

[](#two-config-files)

FilePurpose`config/ai.php`laravel/ai — API keys, provider URLs`config/ai-tasks.php`this package — models, prices, routing, budgetsHorizon / Queue
---------------

[](#horizon--queue)

Two queues are used by default, split by workload so a burst of slow provider calls can't starve fast postprocessing behind it:

- `ai` — `ProcessAiPayload`, the actual provider call. Slow (seconds), so it needs more processes and a long `timeout`
- `ai-post` — `PostprocessAiResult`, running `postprocess()`/`isAcceptable()` and dispatching retries/completion. Fast and lightweight, so a couple of processes and a short `timeout` are enough

```
AI_QUEUE=ai
AI_QUEUE_POST=ai-post
```

Example Horizon config:

```
'supervisor-ai' => [
    'connection'   => 'redis',
    'queue'        => ['ai'],
    'balance'      => 'auto',
    'minProcesses' => 2,
    'maxProcesses' => 20,
    'tries'        => 3,
    'timeout'      => 300,
],
'supervisor-ai-post' => [
    'connection'   => 'redis',
    'queue'        => ['ai-post'],
    'balance'      => 'simple',
    'minProcesses' => 1,
    'maxProcesses' => 8,
    'tries'        => 3,
    'timeout'      => 60,
],
```

Creating a Task
---------------

[](#creating-a-task)

```
php artisan ai:make-task SummarizeTask
php artisan ai:make-task Orders/AnalyzeTask --queued
```

```
