Agent Orchestrator: Ein Laravel-Framework fuer KI-Agenten mit Multi-Tenancy

Agent Orchestrator: Ein Laravel-Framework fuer KI-Agenten mit Multi-Tenancy

Die Laravel-Welt hat zahlreiche Packages fuer die Anbindung an LLMs hervorgebracht -- von LarAgent ueber Vizra ADK bis Neuron AI. Was bisher fehlte, war ein Framework, das Multi-Tenancy als Kernkonzept behandelt und nicht als nachtraegliches Feature. Genau hier setzt Agent Orchestrator an.

Warum ein weiteres KI-Framework?

In SaaS-Anwendungen arbeiten mehrere Teams oder Mandanten auf einer gemeinsamen Plattform. Bestehende Laravel-KI-Packages behandeln Multi-Tenancy bestenfalls als optionales Plugin. Agent Orchestrator dreht dieses Verhaeltnis um: Team-Isolation, Kosten-Attribution und mandantenspezifische Agenten sind von Anfang an eingebaut.

Installation

composer require agenticorchestrator/agenticorchestrator
php artisan vendor:publish --provider="AgenticOrchestrator\AgenticOrchestratorServiceProvider"
php artisan migrate

Kernkonzepte

Agenten erstellen

Mit einem Artisan-Befehl wird ein neuer Agent generiert:

php artisan agent:make CustomerSupportAgent
use AgenticOrchestrator\Agents\Agent;
use AgenticOrchestrator\Tools\Attributes\Tool;
 
class CustomerSupportAgent extends Agent
{
    protected string $name = 'Customer Support';
    protected string $description = 'Bearbeitet Kundenanfragen';
    protected string $model = 'gpt-4o';
 
    public function instructions(): string
    {
        return "Du bist ein hilfreicher Support-Agent fuer {$this->team->name}.";
    }
 
    #[Tool('Kundenbestellung nachschlagen')]
    public function lookupOrder(string $orderId): array
    {
        return $this->team->orders()
            ->where('id', $orderId)
            ->firstOrFail()
            ->toArray();
    }
}

Das #[Tool]-Attribut registriert Methoden automatisch als Tools, die das LLM per Function Calling aufrufen kann. Die Schema-Generierung uebernimmt das Framework.

Multi-Tenancy

Agent Orchestrator unterstuetzt sechs Tenant-Resolver out of the box:

  • Jetstream Teams -- fuer Laravel Jetstream
  • Stancl Tenancy -- fuer stancl/tenancy
  • Spatie Multitenancy -- fuer spatie/laravel-multitenancy
  • Filament -- fuer Filament-Panels
  • Generic Eloquent -- fuer eigene Team-Modelle
  • Null-Resolver -- fuer Single-Tenant-Betrieb
// System-Agent (plattformweit, nur lesend)
class SystemHelpAgent extends Agent
{
    protected bool $isSystem = true;
}
 
// Team-eigener Agent
class TeamSalesAgent extends Agent
{
    protected bool $isSystem = false;
}
 
// Verfuegbare Agenten fuer ein Team abrufen
$agents = $team->availableAgents();

Workflow-Engine

Komplexe Ablaeufe werden als Workflows definiert -- mit sequenziellen, parallelen, bedingten und Schleifen-Schritten:

use AgenticOrchestrator\Workflows\Workflow;
use AgenticOrchestrator\Workflows\Patterns\ParallelPattern;
use AgenticOrchestrator\Workflows\Steps\{AgentStep, ConditionalStep};
 
class OnboardingWorkflow extends Workflow
{
    public function definition(): array
    {
        return [
            new AgentStep(WelcomeAgent::class, output: 'welcome'),
 
            ParallelPattern::make([
                new AgentStep(AccountSetupAgent::class, output: 'account'),
                new AgentStep(PreferencesAgent::class, output: 'prefs'),
            ]),
 
            new ConditionalStep(
                condition: fn ($ctx) => $ctx->get('customer.plan') === 'enterprise',
                then: new AgentStep(EnterpriseSetupAgent::class),
            ),
 
            new AgentStep(SummaryAgent::class, output: 'summary'),
        ];
    }
}

Neben diesen Basis-Patterns stehen Supervisor, MapReduce, Chain-of-Thought und Human-in-the-Loop-Schritte zur Verfuegung.

Memory-System

Fuenf Memory-Driver decken unterschiedliche Anforderungen ab:

DriverEinsatzbereich
SessionInnerhalb eines Requests
CacheRedis/Cache-basierte Persistenz
DatabaseLangfristige Speicherung in der Datenbank
VectorSemantische Suche ueber 5 Vector Stores
RAGRetrieval-Augmented Generation mit Chunking und Reranking
// Vector Memory konfigurieren
protected array $memory = [
    'driver' => 'vector',
    'vector_store' => 'pinecone',
    'namespace' => 'support',
];
 
// Nutzen
$this->getMemory()->store('customer_123', $preferences);
$results = $this->getMemory()->search('Rueckgaberichtlinie', limit: 5);

RAG-Pipeline

Die integrierte RAG-Pipeline bietet Document Loader, Chunking-Strategien und Retrieval mit Reranking:

use AgenticOrchestrator\Rag\RagPipeline;
 
$pipeline = RagPipeline::make()
    ->loadFrom('/docs/knowledge-base')
    ->chunkWith('recursive-character', chunkSize: 512)
    ->embedWith('openai')
    ->storeIn('qdrant')
    ->build();

Evaluierung mit LLM-as-Judge

Agenten lassen sich automatisiert bewerten -- mit eingebauten Metriken wie Relevanz, Genauigkeit, Hilfsbereitschaft und Sicherheit:

php artisan agent:evaluate CustomerSupportAgent

Produktions-Features

Agent Orchestrator bringt alles mit, was fuer den produktiven Einsatz noetig ist:

  • Rate Limiting -- pro Benutzer, Team, Agent oder Token-basiert
  • Caching -- fuer Antworten, Embeddings und Tool-Ergebnisse
  • Circuit Breaker -- automatische Unterbrechung bei Provider-Ausfaellen
  • Fallback-Chains -- automatischer Wechsel zwischen LLM-Providern
  • Usage Tracking -- Token-Verbrauch, Kosten und Latenz pro Team/Agent
  • Event-System -- fuer Observability und Monitoring

LLM-Provider

Ueber Prism PHP werden 10+ Provider unterstuetzt:

OpenAI, Anthropic, Google Gemini, Mistral, Ollama, Groq, xAI, DeepSeek und weitere.

Anforderungen

  • PHP 8.3+
  • Laravel 11.0+ oder 12.0+

Links


Sie bauen KI-gesteuerte SaaS-Anwendungen mit Laravel? Kontaktieren Sie mich fuer eine unverbindliche Beratung.