evo-ai is an Evolution CMS library that integrates Laravel AI SDK capabilities into Evolution-based projects. It provides Evo‑native config publishing, minimal shims for missing Illuminate\Foundation classes, and an sTask‑first queue bridge.
If you only need a quick start and examples, use this README. For full details see DOCS.md (EN) or DOCS.uk.md (UA).
- Evolution CMS 3.5+
- PHP 8.3+
- Composer 2.2+
Optional:
- sTask for async tasks (package constraint:
^1.0)
From your Evo core directory:
cd core
php artisan package:installrequire evolution-cms/evo-ai "*"
php artisan migratePublish configs and stubs (optional, auto‑publish is enabled):
php artisan vendor:publish --provider="EvolutionCMS\\evoAi\\evoAiServiceProvider" --tag=evoai-config
php artisan vendor:publish --provider="EvolutionCMS\\evoAi\\evoAiServiceProvider" --tag=evoai-ai-config
php artisan vendor:publish --provider="EvolutionCMS\\evoAi\\evoAiServiceProvider" --tag=evoai-stubsSet provider key in .env or core/custom/config/ai.php:
OPENAI_API_KEY=...
Run the built‑in smoke test:
php artisan ai:testFor local Ollama:
php artisan ai:test --provider=ollamause App\Ai\Agents\SupportAgent;
$agent = new SupportAgent();
$response = $agent->prompt('Hello from Evo');
echo $response->text;- sTask is the primary backend;
syncis a fallback. - evoAi does not implement Laravel Queue; it only provides SDK‑compatible dispatching.
Process queued tasks:
php artisan stask:workersTask UI workers (for testing):
evoai_smoke— fixed promptevoai_prompt— custom prompt from widget
AI runs as a normal manager user with role AI (auto‑created). The role is read‑only by default; to allow saving/publishing, elevate permissions manually (e.g. Publisher).
Example settings in core/custom/config/cms/settings/evoAi.php:
ai_actor_mode: service
ai_actor_email: ai@your-host
ai_actor_autocreate: true
ai_actor_block_login: true
ai_actor_role: AI
ai_actor_role_autocreate: true
If you need access to package interfaces, grant permissions stask and/or sapi to the AI role (grouped under sPackages).
php artisan make:agent SalesCoach
php artisan make:agent SalesCoach --structured
php artisan make:tool RandomNumberGeneratorGenerated classes are placed in core/custom/app/Ai/.... If autoloading is not updated, run composer dumpautoload.
See DOCS.md for full configuration reference, identity rules, queue contract, and advanced SDK usage.