For the complete documentation index, see llms.txt. This page is also available as Markdown.

Configuration reference

Properties and environment variables for the SonarQube Server AI agents, on both the server side and the Agent Orchestrator. This page is for SonarQube Server 2026.5.

Configuration is split between two places. SonarQube Server needs to know where the components are, and the Agent Orchestrator needs its own database, storage, and connection settings.

To learn how to set SonarQube Server properties in general, see Configuration methods.

SonarQube Server properties

These tell SonarQube Server how to reach the components you deployed. Set each one to the address of the component in your deployment.

Property
Environment variable
Description

sonar.hunteragent.orchestrator.url

SONAR_HUNTERAGENT_ORCHESTRATOR_URL

The Agent Orchestrator address used for Hunter Agent jobs

sonar.remediationagent.orchestrator.url

SONAR_REMEDIATIONAGENT_ORCHESTRATOR_URL

The Agent Orchestrator address used for Remediation Agent jobs

sonar.vortex.analysis.url

SONAR_VORTEX_ANALYSIS_URL

The Vortex analysis address

sonar.vortex.enabled

SONAR_VORTEX_ENABLED

Enables Vortex analysis, where your license includes it.

Default value: true

sonar.agents.health.checkIntervalSeconds

SONAR_AGENTS_HEALTH_CHECKINTERVALSECONDS

How often SonarQube Server polls component health for the System page, in seconds

On Kubernetes, the Helm chart sets these for you when you enable the components. Set them yourself in a Docker Compose deployment, or when the components run somewhere the chart doesn't know about.

Hunter Agent scheduling

Property
Environment variable
Description

sonar.hunteragent.scheduler.enabled

SONAR_HUNTERAGENT_SCHEDULER_ENABLED

Dispatches scheduled Hunter Agent runs.

Default value: true

sonar.hunteragent.scheduler.threads

SONAR_HUNTERAGENT_SCHEDULER_THREADS

Threads used to dispatch scheduled runs.

Default value: 2

sonar.hunteragent.scheduler.pollingIntervalSeconds

SONAR_HUNTERAGENT_SCHEDULER_POLLINGINTERVALSECONDS

How often the scheduler looks for runs that are due, in seconds.

Default value: 10

Keep the defaults unless scheduled runs start too slowly. Raising the thread count increases the load the scheduler puts on your instance.

Request signing

The components authenticate to each other by signing each request with a key derived from one shared secret, rather than with tokens. SonarQube Server needs the secret itself, to derive the keys it accepts, and the agentic-shared key, to sign its own calls to the Orchestrator.

Property
Environment variable
Description

sonar.agentic.signing.secretFile

SONAR_AGENTIC_SIGNING_SECRETFILE

Path to the file holding the shared secret. A file with the same name and a .previous suffix is also accepted, so you can rotate the secret without downtime.

sonar.agentic.orchestrator.signingKeyPath

SONAR_AGENTIC_ORCHESTRATOR_SIGNINGKEYPATH

Path to the derived agentic-shared key SonarQube Server uses to sign its own calls to the Orchestrator.

On Kubernetes, the Helm chart derives the keys with a pre-install hook. With Docker Compose you derive them yourself, see Deploying with Docker Compose.

Vortex analysis context storage

SonarQube Server writes analysis context to the same location Vortex analysis reads it from, under its own property namespace. Point both at one location, see Setting up shared storage.

Property
Description

sonar.agentic.storage.type

The storage backend to use, either S3 or FILESYSTEM.

sonar.agentic.storage.bucket

Bucket holding analysis context.

sonar.agentic.storage.region

Storage region.

sonar.agentic.storage.endpoint

The storage endpoint. Leave empty to target Amazon S3.

sonar.agentic.storage.access-key

Access key. Leave empty to use the credentials already available to the host or pod.

sonar.agentic.storage.secret-key

Secret key.

sonar.agentic.storage.path-style-access

Uses path-style addressing. Most S3-compatible endpoints require it, and Amazon S3 does not.

Default value: true

sonar.agentic.storage.filesystem.base-dir

Root directory to use when the backend is a shared filesystem rather than object storage.

sonar.agentic.storage.presign-ttl-seconds

How long presigned URLs for analysis context stay valid, in seconds.

These are a separate namespace from the sonar.agentic.orchestrator.storage.* properties below, which cover agent job artifacts. The two can share one bucket, but each namespace has to be configured.

Agent Orchestrator properties

Set these on the Agent Orchestrator container. On Kubernetes, the Helm chart maps its own values onto them, so set the chart values instead where one exists, see Deploying with the Helm chart.

Storage

Property
Description

sonar.agentic.orchestrator.storage.type

The storage backend to use.

Default value: S3

sonar.agentic.orchestrator.storage.bucket

Bucket holding job artifacts.

Default value: agentic-jobs

sonar.agentic.orchestrator.storage.endpoint

The storage endpoint. Leave empty to target Amazon S3.

sonar.agentic.orchestrator.storage.region

Storage region.

Default value: us-east-1

sonar.agentic.orchestrator.storage.access-key

Access key. Leave empty to use the credentials already available to the host or pod.

sonar.agentic.orchestrator.storage.secret-key

Secret key.

sonar.agentic.orchestrator.storage.path-style-access

Uses path-style addressing. Most S3-compatible endpoints require it, and Amazon S3 does not.

Default value: true

sonar.agentic.orchestrator.storage.key-prefix

Prefix applied to all keys, so several instances can share one bucket.

sonar.agentic.orchestrator.storage.filesystem.base-dir

Root directory to use when the backend is a shared filesystem rather than object storage.

sonar.agentic.orchestrator.storage.presign-ttl-seconds

How long a presigned URL stays valid once handed to a runtime, in seconds. Keep it above the longest job timeout in Job dispatch: the URL is issued when a job is dispatched and isn't refreshed mid-run.

Job dispatch

Property
Description

sonar.agentic.orchestrator.runtime.hunter-push-url

The Hunter Agent runtime address. Set it for the Hunter Agent to receive jobs.

sonar.agentic.orchestrator.runtime.remediation-push-url

The Remediation Agent runtime address. Set it for the Remediation Agent to receive jobs.

sonar.agentic.orchestrator.watcher.hunter-timeout-seconds

How long a Hunter Agent job may run before the Orchestrator stops it and marks it failed, in seconds.

Default value: 44400

sonar.agentic.orchestrator.watcher.remediation-timeout-seconds

How long a Remediation Agent job may run before the Orchestrator stops it and marks it failed, in seconds.

Default value: 3600

sonar.agentic.orchestrator.watcher.timeout-seconds

Fallback timeout used when the per-type value above isn't set. No standalone default.

sonar.agentic.orchestrator.tasks.worker-threads

How many jobs can run at once.

Default value: 10

sonar.agentic.orchestrator.runtime.hunter-signing-key-path

Path to the key the Orchestrator uses to sign job pushes to the Hunter Agent runtime.

sonar.agentic.orchestrator.runtime.remediation-signing-key-path

Path to the key the Orchestrator uses to sign job pushes to the Remediation Agent runtime.

Raising the job concurrency also raises the peak load on your storage, your LLM provider, and the hosts running the sandboxes. Size those first, see Setting up shared storage.

Access to SonarQube Server

Property
Description

sonar.agentic.orchestrator.sonarqube.url

SonarQube Server address. Required: the Orchestrator reads project data and publishes results through it

sonar.agentic.orchestrator.sonarqube.signing-key-path

Path to the signing key the Orchestrator uses to sign requests to SonarQube Server

Request signing and inbound verification

The Orchestrator verifies each inbound call with the key derived for that caller. See Request signing for how the keys are derived.

Property
Description

sonar.agentic.orchestrator.inbound.verification-key-path

Path to the agentic-shared key used to verify inbound calls from SonarQube Server

sonar.agentic.orchestrator.inbound.hunter-verification-key-path

Path to the key used to verify inbound calls from the Hunter Agent runtime

sonar.agentic.orchestrator.inbound.remediation-verification-key-path

Path to the key used to verify inbound calls from the Remediation Agent runtime

sonar.agentic.orchestrator.job-capability.signing-key-path

Path to the key the Orchestrator uses to sign job capability tokens

Retention

Property
Description

sonar.hunteragent.deleteOlderThan

Days to keep Hunter Agent job artifacts. Set to 0 or less to disable.

Default value: 30

sonar.remediationagent.deleteOlderThan

Days to keep Remediation Agent job artifacts. Set to 0 or less to disable.

Default value: 30

sonar.agentic.orchestrator.purge.interval

How often the Orchestrator sweeps shared storage for expired artifacts.

Default value: 24h

Set the first two in General Settings > Housekeeping > Agentic, not as server properties.

DevOps platform

Set these only if your DevOps platform is self-managed and its API isn't at the public address.

Property
Description

sonar.agentic.orchestrator.remediation.github.api-base-url

GitHub API base address.

Default value: https://api.github.com

sonar.agentic.orchestrator.remediation.gitlab.api-base-url

GitLab API base address.

Default value: https://gitlab.com/api/v4

For a self-managed GitLab instance, the address on the project binding takes precedence over this value.

Your DevOps platform credentials stay in SonarQube Server. The Orchestrator requests a short-lived credential from SonarQube Server before each Git operation, so you configure repository access once, where you already manage it. See DevOps platform permissions.

Outbound proxy

Property
Description

sonar.agentic.orchestrator.http.proxy-user

Proxy user. Leave empty when the proxy needs no authentication

sonar.agentic.orchestrator.http.proxy-password

Proxy password

Set the proxy host and port through the JVM system properties, the same way you do for SonarQube Server. Set the credentials here.

LLM provider configuration

Register your LLM providers once in SonarQube Server, under Administration > Configuration > AI Capabilities > LLM Providers. The Orchestrator passes the right credentials to each job when it starts, so you configure the provider in one place rather than on each deployed component.

Next step

This page is a reference, not a step in the deployment itself. For the full sequence, see the Deployment roadmap.

Last updated

Was this helpful?