Zum Inhalt springen
Abstrakte Formen aus Mattglas: eine kleine Kugel mit drei Armen, die in drei verschieden geformte Fassungen greifen, ein Arm leuchtet orange

Laravel 13 AI SDK: Erste Schritte mit Claude als Provider

Ein erster Tool-Calling-Agent in 30 Minuten. Provider-agnostisch über die Laravel AI SDK, mit Claude im Hintergrund.

3 min Lesezeit KI & AI

Was die AI SDK leistet

Provider-agnostische Tool-Calls aus Laravel heraus

Die Laravel AI SDK gibt Ihnen eine einheitliche API für Tool-Use, Streaming und strukturierte Outputs - egal ob Sie Claude, OpenAI oder ein lokales Modell ansprechen. Das ist nicht „noch eine LLM-Bibliothek“, sondern eine Provider-Abstraktion, mit der Sie Ihre Domain-Tools (Datenbank-Queries, Statamic-Entries, Stripe-Lookups) als first-class Tool-Calls registrieren. Der erste lauffähige Agent steht in ungefähr einer halben Stunde.

Die orange SIM-Karte gleitet auf ihrem Schlitten ins Telefon: der Anbieter wird einfach eingelegt und eingetragen.

Installation und Provider-Konfiguration

Das Paket landet als ganz normale Composer-Dependency in der Laravel-App. In der ai.php registrieren Sie Claude als Default-Provider und legen den API-Key sauber in der env-Datei ab. Wer mehrere Provider gleichzeitig nutzen will (z. B. Claude für Reasoning, ein lokales Modell für Klassifikation), pflegt mehrere Konfigurationen nebeneinander und ruft sie per Name auf.

terminal bash
composer require laravel/ai
php artisan vendor:publish --tag=ai-config

# .env
AI_DEFAULT=claude
ANTHROPIC_API_KEY=sk-ant-...
Eine aufgerollte Werkzeugtasche: jedes Werkzeug hat sein eigenes Fach, das neu registrierte orange Werkzeug steckt in seinem Platz.

Ein Tool registrieren

Tools sind in der AI SDK kleine PHP-Klassen mit deklariertem Input-Schema und einer handle-Methode. Claude entscheidet zur Laufzeit, wann es das Tool aufruft und welche Argumente es übergibt. Hier ein Beispiel-Tool, das eine Statamic-Entry-Suche kapselt - damit kann Claude beliebige Glossar-Begriffe nachschlagen, ohne dass wir ein extra Endpoint dafür bauen müssen.

app/AI/Tools/GlossaryLookup.php php
<?php

namespace App\AI\Tools;

use Laravel\AI\Attributes\Description;
use Laravel\AI\Tool;
use Statamic\Facades\Entry;

#[Description('Look up a glossary term by title and return its short definition.')]
class GlossaryLookup extends Tool
{
    public function handle(
        #[Description('The exact glossary title to look up.')]
        string $title,
    ): array {
        $entry = Entry::query()
            ->where('collection', 'glossary')
            ->where('title', $title)
            ->first();

        return [
            'found' => (bool) $entry,
            'definition' => $entry?->get('short_definition'),
            'url' => $entry?->url(),
        ];
    }
}
Ein Tischtennistisch: der orange Ball geht hin und her, bis die Antwort fertig ist.

Den Agenten aufrufen

Aus jeder Stelle der App heraus können Sie Claude jetzt mit Ihrem Tool-Inventar ansprechen. Die SDK kümmert sich um den Tool-Call-Loop: Claude antwortet, fragt nach Tool-Ausführung, Sie liefern das Ergebnis, und Claude formuliert die finale Antwort. Für UI-Zwecke gibt es Streaming, für Background-Jobs den klassischen synchronen Aufruf in einer Queue.

app/Http/Controllers/AskGlossaryController.php php
use App\AI\Tools\GlossaryLookup;
use Laravel\AI\Facades\AI;

$answer = AI::chat()
    ->tools([GlossaryLookup::class])
    ->message('Was ist der Unterschied zwischen Headless CMS und Monolith?')
    ->generate();

return view('glossary.answer', ['answer' => $answer->text()]);

Hat das geholfen? Wir machen Audit, Workshop oder Coaching auch live

Pakete direkt im Shop. Unser Standard-Tagessatz liegt bei 1.500 € netto.

Zum Shop