> ## 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 — outputoptimalisatie voor AI-agents

> Kennismaking met laravel/pao. Een officiële Laravel-package die de output van PHPUnit, Pest, PHPStan en Artisan in AI-agentomgevingen comprimeert naar JSON en het tokenverbruik met maximaal 99,8% verlaagt.

## Inleiding

[laravel/pao](https://github.com/laravel/pao) is een package die de output van PHP-ontwikkeltools optimaliseert voor AI-agents. **PAO (PHP Agent-Optimized output)** zet de uitgebreide output van PHPUnit, Pest, Paratest, PHPStan en Laravel Artisan automatisch om naar gestructureerde, compacte JSON.

Nu veel AI-agents, waaronder GitHub Copilot, zijn overgestapt op prijsmodellen op basis van tokenaantallen, leidt het verminderen van tooloutput direct tot kostenbesparing. PAO is ontworpen om dit probleem op te lossen en zal worden opgenomen als standaarddependency in de Laravel starter kits.

```mermaid theme={null}
graph TD
    A["Tool uitvoeren<br>(PHPUnit/Pest/PHPStan/Artisan)"] --> B{"AI-agent-<br>omgeving?"}
    B -->|Yes| C["Comprimeren en uitvoeren als JSON"]
    B -->|No| D["Normale output<br>(ongewijzigd)"]
    C --> E["AI-agent verwerkt de output<br>en bespaart tokens"]
    D --> F["Mens leest zoals gewoonlijk"]
```

## Waarom dit belangrijk is

Naarmate AI-agents dieper in de ontwikkelworkflow verankerd raken, heeft het aantal outputtokens van tools directe invloed op kosten en responssnelheid.

In een project met 1.000 tests beslaat de PHPUnit-output duizenden regels, terwijl een AI-agent alleen "geslaagd/mislukt, aantallen en de plek van de fouten" nodig heeft. PAO comprimeert deze informatie tot één compact JSON-object.

* **Testoutput**: tot 99,8% minder tokens
* **PHPStan-output**: alleen de noodzakelijke informatie als gestructureerde JSON
* **Artisan-output**: verwijdert ANSI-codes, lijntekens en witruimte voor tot 75% reductie

## Installatie

Vereist zijn PHP 8.3 of hoger, en PHPUnit 12-13 / Pest 4-5 / Paratest / PHPStan / Laravel 12 of hoger.

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

Alleen installeren is genoeg. PAO haakt via de autoloader van Composer automatisch in op PHPUnit, Pest, Paratest en PHPStan. In Laravel-projecten wordt de serviceprovider automatisch gedetecteerd en wordt ook de Artisan-outputoptimalisatie ingeschakeld.

<Info>
  PAO wordt alleen actief wanneer het een AI-agentomgeving detecteert. Voer je een tool zelf direct in de terminal uit, dan is PAO volledig uitgeschakeld en blijft de normale output behouden.
</Info>

## Ondersteunde AI-agents

PAO detecteert de volgende AI-agents automatisch.

| Agent          | Detectiemethode                           |
| -------------- | ----------------------------------------- |
| GitHub Copilot | Omgevingsvariabelen zoals `COPILOT_MODEL` |
| Claude Code    | `CLAUDECODE` of `CLAUDE_CODE`             |
| Cursor         | `CURSOR_AGENT`                            |
| Gemini CLI     | `GEMINI_CLI`                              |
| Devin          | Het bestand `/opt/.devin`                 |
| Codex          | Omgevingsvariabelen zoals `CODEX_SANDBOX` |

## Voor / na

### Testoutput (PHPUnit / Pest)

Een testsuite met 1.000 tests wordt als volgt omgezet.

**Voor (zonder 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)
```

**Na (met PAO)**

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

De output heeft altijd dezelfde omvang, ongeacht het aantal tests. Als een test faalt, bevat de output het bestandspad, regelnummer en de foutmelding.

### Pluginoutput zoals coverage

Extra output van Pest-plugins zoals `--coverage` of `--profile` wordt, ontdaan van ANSI-codes en opmaak, opgenomen in de array `raw`.

```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-output

```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-output

Uit de output van commando's zoals `php artisan about` worden ANSI-codes, lijntekens, puntscheiders en witruimte verwijderd.

**Voor (zonder PAO) — 2.111 tekens**

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

**Na (met PAO) — 535 tekens**

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

Bij commando's zoals `about`, `db:show` en `migrate:status` is tot 75% tokenreductie haalbaar.

## Integratie in de Laravel starter kits

PAO zal worden opgenomen als standaarddependency in de Laravel starter kits. Maak je een nieuw project aan, dan wordt PAO automatisch geïnstalleerd en kun je direct met AI-agents ontwikkelen tegen lagere tokenkosten.

## Samenvatting

`laravel/pao` werkt direct na installatie en is alleen actief in AI-agentomgevingen, waardoor het je bestaande ontwikkelworkflow op geen enkele manier beïnvloedt. Voor elk PHP- of Laravel-project dat de kosten van ontwikkelen met AI-agents wil verlagen, is deze package het overwegen waard.

<Card title="laravel/pao repository" icon="github" href="https://github.com/laravel/pao">
  Hier vind je de broncode en de meest recente lijst van ondersteunde tools en agents.
</Card>


## Related topics

- [Laravel Agent Detector — pakket voor het detecteren van AI-agents](/nl/blog/agent-detector-introduction.md)
- [Laravel Doctor — een diagnosetool voor applicaties](/nl/blog/laravel-doctor-introduction.md)
- [Laravel-updates van mei 2026](/nl/blog/changelog/202605.md)
- [Een custom agent voor Boost maken](/nl/advanced/boost-custom-agent.md)
- [Amazon Bedrock-driver voor de Laravel AI SDK](/nl/packages/laravel-amazon-bedrock.md)
