plan = AiAssistantPlanner::plan($message, $historyMessages); $trace = AiAssistantRetriever::retrieve($trace, $userId, $sessionId); $trace = AiAssistantRanker::rank($trace); $trace = AiAssistantResponder::respond($trace); return [ 'success' => !empty($trace->responseResult['success']), 'answer' => $trace->finalAnswer, 'sources' => $trace->finalSources, 'context_text' => $trace->contextText, 'plan' => $trace->plan, 'result' => $trace->responseResult, 'trace' => $trace->toArray(), ]; } }