Queue anything that will take a while:
$run = $session->queue('Analyze every page on our website and produce a content gap report.');
return response()->accepted([
'session_id' => $session->id,
'run_id' => $run->id,
'status' => $run->status,
]);
Queue behavior is configurable globally in config/clutch.php, or per session:
$session = Clutch::agent(ResearchAgent::class)
->for($user)
->onConnection('redis')
->onQueue('agents')
->timeout(seconds: 900)
->create();