Search by

eloquage / laravel-prompt-renderer

zagambila

Configurable Blade prompt rendering for Laravel AI agents

Package info

github.com/eloquage/laravel-prompt-renderer

pkg:composer/eloquage/laravel-prompt-renderer

Fund package maintenance!

eloquage

Statistics

Installs: 7

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.3 2026-10-23 14:47 UTC

This package is auto-updated.

Last update: 2026-11-03 08:47:01 UTC


README

Laravel Prompt Renderer

Laravel Prompt Renderer

Tests Latest Version License

Render Blade prompt templates through one API with Blade, database, cache, stack, or custom sources.

Requirements: PHP 8.4+ and Laravel 11, 12, or 13.

Installation

composer require eloquage/laravel-prompt-renderer

Publish config (optional):

php artisan vendor:publish --tag=prompt-renderer-config

Publish views (optional):

php artisan vendor:publish --tag=prompt-renderer-views

Publish migrations when using the database or cache drivers:

php artisan vendor:publish --tag=prompt-renderer-migrations
php artisan migrate

Usage

use Eloquage\LaravelPromptRenderer\PromptRenderer;

$prompt = app(PromptRenderer::class)->render('example', [
    'context' => 'document review',
]);

Templates are qualified with the configured namespace (prompts by default):

  • render('example') → prompts.example
  • render('evidence.ocr-vision') → prompts.evidence.ocr-vision

Prompt sources

Set the active source via PROMPT_RENDERER_SOURCE or config('prompt-renderer.default_source'):

Driver Description
blade Default. Resolves views from app paths, published overrides, then package stubs.
database Loads Blade bodies from the prompt_templates table.
cache Caches template contents from an underlying driver (default: database).
stack Tries drivers in config('prompt-renderer.stack') order; first match wins.

Example stack configuration:

PROMPT_RENDERER_SOURCE=stack
'stack' => ['cache', 'database', 'blade'],

Laravel AI SDK

Use rendered prompts as agent instructions:

use Eloquage\LaravelPromptRenderer\PromptRenderer;
use Laravel\Ai\Contracts\Agent;
use Laravel\Ai\Promptable;

class ReviewAgent implements Agent
{
    use Promptable;

    public function __construct(private PromptRenderer $prompts) {}

    public function instructions(): string
    {
        return $this->prompts->render('example', [
            'context' => 'case review',
        ]);
    }
}

Custom drivers

Register custom sources in a service provider:

use Eloquage\LaravelPromptRenderer\Contracts\PromptSource;
use Eloquage\LaravelPromptRenderer\Managers\PromptSourceManager;

PromptSourceManager::extend('redis', fn (): PromptSource => new RedisPromptSource());

Testing

composer test
composer analyse
composer format

License

MIT.