axyr / laravel-langfuse
Langfuse PHP SDK for Laravel
dev-main
2026-04-02 14:22 UTC
Requires
- php: ^8.2
- illuminate/contracts: ^12.0|^13.0
- illuminate/http: ^12.0|^13.0
- illuminate/support: ^12.0|^13.0
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.0
- orchestra/testbench: ^10.0|^11.0
- pestphp/pest: ^4.0
- phpmd/phpmd: ^2.0
- prism-php/prism: ^0.100
Suggests
- laravel/ai: Required for automatic Laravel AI SDK tracing (^0.4)
- neuron-core/neuron-ai: Required for automatic Neuron AI agent tracing (^3.0)
- prism-php/prism: Required for automatic Prism LLM call tracing (^0.100)
This package is auto-updated.
Last update: 2026-04-02 14:23:11 UTC
README
Laravel Langfuse
How much did your LLM calls cost yesterday? Which prompts are slow? Are your RAG answers actually good?
Langfuse answers these questions. This package gives your Laravel app a clean way to send traces, generations, scores, and prompts to Langfuse - the open-source LLM observability platform.
use Axyr\Langfuse\LangfuseFacade as Langfuse; $trace = Langfuse::trace(new TraceBody(name: 'chat-request')); $generation = $trace->generation(new GenerationBody( name: 'chat', model: 'gpt-4', input: [['role' => 'user', 'content' => 'Hello!']], )); // After the LLM responds: $generation->end( output: 'Hi there!', usage: new Usage(input: 12, output: 85, total: 97), );
Events are batched and flushed automatically. Zero-code auto-instrumentation is available for Laravel AI, Prism, and Neuron AI.
Features
- Full observability - traces, spans, generations, events, and scores with automatic parent-child nesting
- Prompt management - fetch, cache, compile, create, and list prompts with stale-while-revalidate caching
- Auto-instrumentation - zero-code tracing for Prism, Laravel AI, and Neuron AI
- Automatic batching - events queued and sent in batches, with optional async dispatch via Laravel queues
- Production-ready - Octane compatible, graceful degradation, auto-flush on shutdown, testing fakes
Installation
Requires PHP 8.2+ and Laravel 12 or 13.
composer require axyr/laravel-langfuse
Add your Langfuse credentials to .env:
LANGFUSE_PUBLIC_KEY=pk-lf-... LANGFUSE_SECRET_KEY=sk-lf-...
Documentation
Full documentation in the docs/ directory:
- Configuration - env vars, config publishing
- Tracing - traces, updating, nesting observations
- Generations - LLM generation tracking, usage and cost
- Spans and Events - non-LLM work, event logging
- Scores - numeric, boolean, categorical scores
- Prompt Management - fetch, cache, compile, create
- Integrations - Prism, Laravel AI, Neuron AI
- Middleware - request trace context
- Batching and Flushing - flush control, queued dispatch
- Testing - fakes and assertions
- Architecture - system diagram, Octane compatibility
Contributing
Contributions welcome. Open an issue first to discuss what you'd like to change.
composer test # Run tests composer pint # Fix code style
License
MIT
