Start Sql Server agent when sql server starts
There are couple of steps that you can do to address the problem that you faced :


Have a startup stored procedure using sp_procoption that runs and checks and alerts you that SQL Agent is not running.

IF EXISTS (  SELECT 1 
       FROM MASTER.dbo.sysprocesses 
       WHERE program_name = N'SQLAgent - Generic Refresher')
BEGIN
 SELECT @@SERVERNAME AS 'InstanceName', 1 AS 'SQLServerAgentRunning'
END 
ELSE 
BEGIN
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'yourDBMailProfile',
@recipients = 'dbateam@somecompany.com',
@body = 'Please check the status of SQL Agent. It is not running !',
@query = 'SELECT @@SERVERNAME AS [InstanceName], 0 AS [SQLServerAgentRunning]',
@subject = 'SQL Agent is not running',
@attach_query_result_as_file = 0 ; -- set it to 1 to receive as txt file attachment
END

Set SQL Agent service to restart