> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Laravel PAO – Output-Optimierungstool für KI-Agenten

> Vorstellung von laravel/pao. Ein offizielles Laravel-Paket, das die Ausgaben von PHPUnit, Pest, PHPStan und Artisan in KI-Agent-Umgebungen in JSON komprimiert und den Token-Verbrauch um bis zu 99,8 % reduziert.

## Einleitung

[laravel/pao](https://github.com/laravel/pao) ist ein Paket, das die Ausgaben von PHP-Entwicklungswerkzeugen für KI-Agenten optimiert. **PAO (PHP Agent-Optimized output)** wandelt die ausschweifenden Ausgaben von PHPUnit, Pest, Paratest, PHPStan und Laravel Artisan automatisch in strukturiertes, kompaktes JSON um.

Nachdem viele KI-Agenten – GitHub Copilot inbegriffen – auf tokenbasierte Preismodelle umgestiegen sind, führt die Reduktion der Werkzeugausgaben direkt zu Kostenersparnissen. PAO ist genau dafür konzipiert und soll als Standard-Abhängigkeit in die Laravel-Starterkits aufgenommen werden.

```mermaid theme={null}
graph TD
    A["Werkzeug ausführen<br>(PHPUnit/Pest/PHPStan/Artisan)"] --> B{"KI-Agenten-<br>Umgebung?"}
    B -->|Yes| C["Ausgabe in JSON komprimieren"]
    B -->|No| D["Normale Ausgabe<br>(unverändert)"]
    C --> E["KI-Agent verarbeitet mit<br>reduzierten Tokens"]
    D --> F["Mensch prüft wie gewohnt"]
```

## Warum das wichtig ist

Da KI-Agenten tief in den Entwicklungsworkflow integriert werden, wirkt sich die Anzahl der Tokens in Werkzeugausgaben direkt auf Kosten und Antwortzeiten aus.

In einem Projekt mit 1.000 Tests umfasst die PHPUnit-Ausgabe mehrere tausend Zeilen; der KI-Agent benötigt jedoch nur die Informationen „Erfolg/Fehlschlag, Anzahl, Fehlerstellen". PAO komprimiert diese Informationen auf ein einstelliges JSON-Objekt.

* **Testausgabe**: bis zu 99,8 % Token-Reduktion
* **PHPStan-Ausgabe**: strukturiertes JSON, das nur die nötigen Informationen liefert
* **Artisan-Ausgabe**: ANSI-Codes, Rahmenzeichen und Leerraum werden entfernt – bis zu 75 % Reduktion

## Installation

Erforderlich sind PHP 8.3 oder höher, PHPUnit 12–13 / Pest 4–5 / Paratest / PHPStan sowie Laravel 12 oder höher.

```bash theme={null}
composer require laravel/pao --dev
```

Es genügt die Installation. PAO klinkt sich über den Composer-Autoloader automatisch in PHPUnit, Pest, Paratest und PHPStan ein. In Laravel-Projekten wird der Service Provider automatisch erkannt und auch die Optimierung der Artisan-Ausgaben aktiviert.

<Info>
  PAO ist nur aktiv, wenn eine KI-Agenten-Umgebung erkannt wird. Bei manueller Ausführung in einem Terminal ist PAO komplett deaktiviert, und die reguläre Ausgabe bleibt erhalten.
</Info>

## Unterstützte KI-Agenten

PAO erkennt folgende KI-Agenten automatisch.

| Agent          | Erkennung                              |
| -------------- | -------------------------------------- |
| GitHub Copilot | Umgebungsvariablen wie `COPILOT_MODEL` |
| Claude Code    | `CLAUDECODE` oder `CLAUDE_CODE`        |
| Cursor         | `CURSOR_AGENT`                         |
| Gemini CLI     | `GEMINI_CLI`                           |
| Devin          | Datei `/opt/.devin`                    |
| Codex          | Umgebungsvariablen wie `CODEX_SANDBOX` |

## Before / After

### Testausgabe (PHPUnit / Pest)

Eine Test-Suite mit 1.000 Tests wird wie folgt transformiert.

**Before (ohne PAO)**

```
PHPUnit 12.5.14 by Sebastian Bergmann and contributors.

.............................................................   61 / 1002 (  6%)
.............................................................  122 / 1002 ( 12%)
...
..........................                                    1002 / 1002 (100%)

Time: 00:00.321, Memory: 46.50 MB

OK (1002 tests, 1002 assertions)
```

**After (mit PAO)**

```json theme={null}
{
  "tool": "phpunit",
  "result": "passed",
  "tests": 1002,
  "passed": 1002,
  "duration_ms": 321
}
```

Die Ausgabe hat unabhängig von der Testanzahl stets die gleiche Größe. Bei Fehlschlägen werden Dateipfad, Zeilennummer und Fehlermeldung ergänzt.

### Ausgabe von Coverage- und anderen Plugins

Zusätzliche Ausgaben von Pest-Plugins wie `--coverage` oder `--profile` werden von ANSI-Codes und Dekoration befreit und in einem `raw`-Array beigefügt.

```json theme={null}
{
  "tool": "pest",
  "result": "passed",
  "tests": 1002,
  "passed": 1002,
  "duration_ms": 1520,
  "raw": [
    "Http/Controllers/Controller 100.0%",
    "Models/User 0.0%",
    "Total: 33.3 %"
  ]
}
```

### PHPStan-Ausgabe

```json theme={null}
{
  "tool": "phpstan",
  "result": "failed",
  "errors": 2,
  "error_details": {
    "/app/Http/Controllers/Controller.php": [
      {
        "line": 9,
        "message": "Method Controller::index() should return int but returns string.",
        "identifier": "return.type"
      },
      {
        "line": 14,
        "message": "Call to an undefined method Controller::doesNotExist().",
        "identifier": "method.notFound"
      }
    ]
  }
}
```

### Laravel Artisan-Ausgabe

Aus Ausgaben wie `php artisan about` werden ANSI-Codes, Rahmenzeichen, Punkte-Trenner und Leerraum entfernt.

**Before (ohne PAO) – 2.111 Zeichen**

```
  Environment ................................................................
  Application Name ................................................... Laravel
  Laravel Version ..................................................... 13.3.0
  PHP Version .......................................................... 8.5.4
  Debug Mode ......................................................... ENABLED
```

**After (mit PAO) – 535 Zeichen**

```
 Environment ..
 Application Name .. Laravel
 Laravel Version .. 13.3.0
 PHP Version .. 8.5.4
 Debug Mode .. ENABLED
```

Bei Kommandos wie `about`, `db:show` und `migrate:status` ist mit bis zu 75 % Token-Reduktion zu rechnen.

## Integration in die Laravel-Starterkits

PAO soll als Standard-Abhängigkeit in die Laravel-Starterkits einziehen. Wird ein neues Projekt erstellt, wird es automatisch installiert; die Entwicklung mit KI-Agenten kann direkt mit reduzierten Token-Kosten beginnen.

## Fazit

`laravel/pao` läuft direkt nach der Installation und ist nur in KI-Agent-Umgebungen aktiv, sodass es bestehende Entwicklungs-Workflows in keiner Weise beeinträchtigt. Es lohnt sich, den Einsatz in jedem PHP-/Laravel-Projekt zu erwägen, das die Kosten für die Entwicklung mit KI-Agenten senken möchte.

<Card title="Repository laravel/pao" icon="github" href="https://github.com/laravel/pao">
  Quellcode sowie aktuelle Liste unterstützter Werkzeuge und Agenten finden Sie hier.
</Card>


## Related topics

- [Laravel-Updates Mai 2026](/de/blog/changelog/202605.md)
- [Einen eigenen Agenten für Boost erstellen](/de/advanced/boost-custom-agent.md)
- [Laravel Agent Detector – Paket zur Erkennung von KI-Agenten](/de/blog/agent-detector-introduction.md)
- [Laravel und KI-Entwicklung](/de/ai.md)
- [Laravel Boost](/de/boost.md)
