Like some have said in the comments, the better answer is to not use the agent, but instead, call the SSIS task itself in SSISDB. This means you can run the task multiple times at the same time (impossible with Agent), and you can pass parameters.
Depending on your set up, you might want to create a Stored Procedure that calls the relevant SP's in SSISDB for your specific task, rather than calling them all in the application. I've found this easier, in my opinion, as you have a little more control and only need to change one place if someone on the package changes.
This is an example, however, might help you get the idea:
USE SSISDB;
GO
--I'm going to create the SPs in a new schema in SSISDB, however, you can create this elsewhere if you want
--Create the new schema
CREATE SCHEMA app;
GO
--Create the proc, I've made up some parameters
CREATE PROC app.UploadTask @FileName sql_variant, @FileDate date, @RetryNum int AS
DECLARE @execution_id bigint;
--Create the execution
EXEC [catalog].create_execution @package_name = N'UploadDocument.dtsx', --Made up package name
@execution_id = @execution_id OUTPUT,
@folder_name = N'FTP Packages', --Madeup name
@project_name = N'FileTranfers', --Madeup Project Name
@use32bitruntime = FALSE,
@reference_id = NULL;
--Add the paramters
EXEC [catalog].set_execution_parameter_value @execution_id = @execution_id,
@object_type = 30,
@parameter_name = N'FileName',
@parameter_value = @FileName;
EXEC [catalog].set_execution_parameter_value @execution_id = @execution_id,
@object_type = 30,
@parameter_name = N'SubmissionDate',
@parameter_value = @FileDate;
EXEC [catalog].set_execution_parameter_value @execution_id = @execution_id,
@object_type = 30,
@parameter_name = N'Retries',
@parameter_value = @RetryNum;
--Set the logging level
EXEC [catalog].set_execution_parameter_value @execution_id = @execution_id,
@object_type = 50,
@parameter_name = N'LOGGING_LEVEL',
@parameter_value = 1;
--This is optional, comment out or delete the following if you do not want it
--Set the package to run synchronously
EXEC [catalog].set_execution_parameter_value @execution_id = @execution_id,
@object_type = 50,
@parameter_name = N'SYNCHRONIZED',
@parameter_value = 1;
--And now, run the package
EXEC [catalog].start_execution @execution_id;
GO
--Now a sample call:
EXEC app.UploadTask @FileName = N'\\YourFileFile\SomeShare\SomeFolder\YourFile.txt', --It's important this is a nvarchar, varchar won't work!
@FileDate = '20180704',
@RetryNum = 3;
Any questions, please do ask.