1. Go to this page and download the library: Download rickphp/laravel-rick library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
rickphp / laravel-rick example snippets
namespace App\Workflows;
use App\Ai\Agents\ExtractClaimFacts;
use App\Ai\Agents\FlagRisk;
use App\WorkflowSteps\LoadClaim;
use App\WorkflowSteps\StoreDecision;
use Rick\Laravel\Workflow;
use Rick\Laravel\WorkflowBuilder;
final class ClaimDecisionWorkflow extends Workflow
{
public function name(): string
{
return 'claim-decision';
}
public function version(): string
{
return '1.0.0';
}
public function build(WorkflowBuilder $workflow): WorkflowBuilder
{
return $workflow
->budget(maxCostUsd: '0.25')
->step(LoadClaim::class, as: 'load-claim', label: 'Loading claim')
->agent(ExtractClaimFacts::class, as: 'facts', label: 'Extracting claim facts')
->agent(FlagRisk::class, as: 'risk', label: 'Flagging risk')
->awaitHuman('approve', schema: ['approved' => ['
namespace App\WorkflowSteps;
use App\Models\Claim;
use Rick\Laravel\WorkflowState;
final class LoadClaim
{
public function __invoke(WorkflowState $state): void
{
$claim = Claim::query()->findOrFail($state->input('claim_id'));
$state->put('claim', [
'id' => $claim->id,
'body' => $claim->body,
]);
}
}
namespace App\Ai\Agents;
use Laravel\Ai\Contracts\Agent;
use Laravel\Ai\Promptable;
final class FlagRisk implements Agent
{
use Promptable;
public function instructions(): string
{
return 'Assess the legal risk of the supplied claim facts and return a short verdict.';
}
}
use Rick\Laravel\Rick;
$run = ClaimDecisionWorkflow::start([
'claim_id' => $claim->id,
]);
$progress = $run->progress();
// awaitHuman is an input gate: read the pending key, then submit the payload.
if ($run->pendingInteraction()->exists()) {
$rick = app(Rick::class);
$pending = $rick->pendingInput($run->id());
$rick->submitInput($run->id(), $pending->key, ['approved' => true]);
}
use Rick\Laravel\Rick;
$rick = app(Rick::class);
$workflow = $rick->workflow('summary')
->rawPrompt('Summarize the latest customer feedback.')
->build();
$run = $rick->run($workflow);
echo $run->output();
use Rick\Laravel\Rick;
use App\Workflows\ClaimDecisionWorkflow;
$fake = app(Rick::class)->fake();
$fake->agent('facts', 'The claimant was in a rear-end collision.');
$fake->agent('risk', 'Low risk.');
$run = ClaimDecisionWorkflow::start(['claim_id' => 42]);
$fake->assertStepRan($run, 'load-claim');
$fake->assertStepRan($run, 'risk');
$fake->assertAwaitingHuman($run);
$fake->assertProviderAttempts(2);