Overview
Agent Tasks are one-time or scheduled jobs delegated to AI agents, running on your Qovery-managed infrastructure like any other service. Each agent runs with its own resources, environment variables, and a domain allowlist controlling exactly what it can reach.Creating an Agent
1
Create an Agent Task
In your environment, open the Automations tab and click Create agent task. Choose Create from template to pick a ready-made template (see Ready-Made Templates below), or Create from scratch to configure every part yourself.While the environment has no agent task yet, the Automations tab shows the template catalog directly. Selecting a template opens the creation form pre-filled with that template.
2
Add Context (Optional)
Connect a Qovery service, a Git repository, or both, for the agent to load as context. A Qovery service’s linked Git repository is included automatically, no need to add it separately, connect a repository on its own only when it isn’t tied to a Qovery service.
3
Choose a Provider and Model
Pick Claude (Anthropic) or AWS Bedrock, then select an existing token or create a new one on the fly. A token created here is saved and can be reused by any other agent task in the organization, no need to re-enter credentials each time. Tokens can also be managed centrally from Organization Settings > Agent > Token. When you create an AWS Bedrock token, also select its AWS region (
eu-west-1 by default).Once a token is selected, pick the Model the agent runs on from the list of models available to that token. The first available model is selected by default. For AWS Bedrock, the models offered depend on the token’s AWS region. If the models can’t be loaded, check the token’s API key (Claude) or its AWS credentials and region (AWS Bedrock). Use Edit token next to the token selector to update the selected token. You can change the model later from the agent task’s Settings > AI configuration.4
Add MCP Servers (Optional)
If you added a Qovery service as Context in the previous step, Qovery’s own MCP server is created and selected automatically: organization-scoped, read-only, backed by a Viewer API token. No URL, header, or token to configure. This is also preconfigured for the Incident Analyzer (incident.io and Honeybadger) and Build & deployment optimizer templates.For anything else, connect any remote HTTPS MCP server with its own name, URL, and headers. MCP servers added here are available to every agent task in the organization and can also be managed from Organization Settings > Agent > MCP.To add Qovery’s own MCP server manually, for example with write access instead of the automatic read-only setup, use an API Policy Token (a regular API token works too):
- Server URL:
https://mcp.qovery.com/mcp - HTTP header name:
Authorization - HTTP header secret value:
Token <your API token or Policy API token>(Tokenwith a capitalT, then a space, then the token value)
5
Write Instructions
Describe the agent’s role and the steps it should follow in plain text. Reference credentials by the environment variable names you configure below, for example
INCIDENT_IO_API_KEY.6
Choose an Execution Mode
Run the agent in place, or in a clone of the environment. See Execution Mode below.
7
Add a Trigger
Required to run the agent automatically. See Triggers below.
8
Add an Output (Optional)
Send the agent’s result somewhere when it’s done. See Outputs below.

Ready-Made Templates
The template catalog groups the available templates by category:- Optimization: Build & deployment optimizer
- Incident Analyzer: Incident Analyzer with incident.io, Incident Analyzer with Honeybadger, Sentry Incident Analyzer, and Incident Analyzer
- Coding Agent: Jira Coding Agent, Linear Coding Agent, Slack Coding Agent, and Coding Agent
SENTRY_AUTH_TOKEN and SLACK_BOT_TOKEN respectively), and a domain allowlist pre-filled with the hosts they need (sentry.io and *.sentry.io, or slack.com, plus GitHub, GitLab, and Bitbucket). Incident Analyzer and Coding Agent are not tied to a specific provider: they work on the payload sent to their webhook.
If the template you need isn’t listed, click Request agent template in the Automations tab, describe the template you’d like Qovery to add next, and click Send request.
Execution Mode
Choose where the agent runs when it’s triggered:- In Place: runs directly in the current environment.
- Clone Environment: duplicates the entire environment first, then runs the agent in that isolated clone.
Limits
- Execution timeout: each run is capped at 1 hour.
- Cloned environment TTL: environments created by Clone Environment mode are deleted 3 days after creation.
- Iterations per run: up to 50 agent iterations per run by default. Override this with the
MAX_TURNSenvironment variable. The creation flow in the Console pre-fills theMAX_TURNSvariable with200, which you can change before creating the agent task. - Clone rate limit: up to 60 clones per hour, per organization, to prevent runaway environment creation.
Triggers and Outputs
Add a trigger to run the agent automatically, and optionally an output to send its result somewhere when it’s done. You can also trigger any agent task on demand: click the Trigger (play) button on its overview page, or from the Agent tasks list in the environment’s Automations tab.
Triggers
- On a schedule: a cron expression and timezone, for example
0 8 * * 1-5for 8:00 AM, Monday through Friday. - From a webhook: Qovery generates a unique URL for the agent task, visible later by hovering Webhook in the Trigger column of the Agent tasks list in the environment’s Automations tab (for example
https://webhook.qovery.com/api/v1/hook/...). Anything that can send a POST request to that URL starts the agent.
Outputs
Send the automation’s result to a webhook: a destination URL, custom headers, and a prompt describing how to shape the result before sending it. For example, to post the result to a Slack channel:1
Create a Slack Incoming Webhook
In Slack, add the Incoming Webhooks app to the channel and copy the generated URL (
https://hooks.slack.com/services/...).2
Add the output in Qovery
In Add output, paste that URL into Webhook URL. No custom headers are needed, Slack’s incoming webhooks accept a plain JSON POST.
3
Write the prompt
In Prompt, describe the message you want, for example: “Summarize the result as a short Slack message with the root cause and the recommended next step.”
Some agents use a different, more direct pattern instead: storing a chat webhook URL as a secret (for example
SLACK_WEBHOOK_URL), adding its hostname to the domain allowlist, and instructing the agent to post to it directly as one of its own steps. Use this pattern when the agent itself, not just the automation’s final output, should decide when and what to post.Configuration
General Settings
General Settings
A description of what the agent does.
Resources
Resources
CPU (mCPU), memory (MiB), and storage (GB) allocated to the agent, same as any other Qovery service. CPU and memory are required, with a minimum of 1000 mCPU and 2048 MiB. The ready-made templates start at these minimums.
Governance
Governance
A domain allowlist controls which external hosts the agent task can reach: comma-separated hostnames, or
* for all domains.Environment Variables
Environment Variables
Plain variables or encrypted secrets the agent’s instructions can reference by name. Secret values can’t be viewed again once set.
Advanced Settings
Advanced Settings
A Dockerfile fragment lets you install additional CLIs or binaries in the agent’s runtime before it starts.
After You Create It
Agent tasks appear in the Agent tasks list of your environment’s Automations tab, one-time tasks delegated to AI agents. Each one lists its name, whether it is enabled, its state, its last operation, and its trigger: Schedule with the date of the next run (or Paused), or Webhook, whose dedicated URL you can call to trigger the agent from outside Qovery. That same webhook URL is also shown on the agent task’s own overview page.Run History
The Runs tab of an agent task lists its runs, with these columns:- Date: when the run started and, once finished, when it ended (UTC), with the run ID. Hover the date to see the exact start and end times, or click the copy icon next to the run ID to copy it.
- Status:
Queued,Running,Completed,Failed, orCancelled. - Trigger:
Manual,Schedule, orWebhook. - Payload: the payload recorded for the run, or
—when there is none. - Duration: how long the run took.
- Prompt: the prompt the run used.
Tutorials
Incident Analyzer with incident.io
Ready-made agent that correlates a firing incident.io incident with recent changes, logs, and metrics
Incident Analyzer with Honeybadger
Ready-made agent that correlates a firing Honeybadger incident with recent changes, logs, and metrics
Build & deployment optimizer
Ready-made agent that proposes faster, cheaper build and deployment configurations
Jira Coding Agent
Ready-made agent that picks up a Jira issue and proposes the corresponding code change
Linear Coding Agent
Ready-made agent that picks up a Linear issue and proposes the corresponding code change
Agent Tasks Overview
Use cases and ready-made agent templates