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 migrateKernkonzepte
Agenten erstellen
Mit einem Artisan-Befehl wird ein neuer Agent generiert:
php artisan agent:make CustomerSupportAgentuse 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:
| Driver | Einsatzbereich |
|---|---|
| Session | Innerhalb eines Requests |
| Cache | Redis/Cache-basierte Persistenz |
| Database | Langfristige Speicherung in der Datenbank |
| Vector | Semantische Suche ueber 5 Vector Stores |
| RAG | Retrieval-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 CustomerSupportAgentProduktions-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
- Packagist: agenticorchestrator/agenticorchestrator
- GitHub: agenticOrchestrator/agenticorchestrator
Sie bauen KI-gesteuerte SaaS-Anwendungen mit Laravel? Kontaktieren Sie mich fuer eine unverbindliche Beratung.