AI Agents
All operations require authentication.
List AI agentsProduction
Path parameters
Project ID
Headers
Pagination cursor
Pagination size
Response
Date of the AI agent creation
Current state of the AI agent
Unique identifier of the AI agent
Reflects the readiness of the AI agent: READY, SUSPENDED when it is paused, or DELETING on the response to its deletion
CREATINGCREATION_PLANNEDDELETINGERROROUT_OF_SYNCREADYSUSPENDEDUNKNOWNUPDATINGLast target specification of the AI agent
Date of the last AI agent update
Example uses projectId = string
$ curl https:/ / api.eu.ovhcloud.com/ v2/ publicCloud/ project/ {projectId}/ ai/ agents/ agent \
-H "authorization: Bearer $OVH_TOKEN"[ { "createdAt": "2024-01-01T12:00:00Z", "currentState": { "aiEndpoints": true, "aiEndpointsIntegratedAuth": true, "enabled": true, "endpointUrl": "string", "name": "string" }, "id": "string", "resourceStatus": "CREATING", "targetSpec": { "enabled": true, "name": "string" }, "updatedAt": "2024-01-01T12:00:00Z" }]
Create an AI agentProduction
Creates an AI agent: a hosted assistant that answers on its own URL, given by currentState.endpointUrl, and reached with a token from the token action. An agent runs a model with a persona, plus whatever tools, memory and channels its configuration gives it. That configuration can come from a ready-made one published by OVHcloud, from a template of your own, or from settings supplied here — or from none of them, leaving an agent that cannot answer until it is given a model. Parts of it that OVHcloud manages are rejected here; the globalSettings preset says which. This is the only point at which this API sets an agent's configuration: from here on the agent holds its own and is configured through its endpoint. Create it paused to finish preparing it before it answers anyone.
Path parameters
Project ID
Request body (required)
Desired specification of the AI agent to create
Response
Date of the AI agent creation
Current state of the AI agent
Unique identifier of the AI agent
Reflects the readiness of the AI agent: READY, SUSPENDED when it is paused, or DELETING on the response to its deletion
CREATINGCREATION_PLANNEDDELETINGERROROUT_OF_SYNCREADYSUSPENDEDUNKNOWNUPDATINGLast target specification of the AI agent
Date of the last AI agent update
Example uses projectId = string
$ curl https:/ / api.eu.ovhcloud.com/ v2/ publicCloud/ project/ {projectId}/ ai/ agents/ agent \
-H "authorization: Bearer $OVH_TOKEN"{ "createdAt": "2024-01-01T12:00:00Z", "currentState": { "aiEndpoints": true, "aiEndpointsIntegratedAuth": true, "enabled": true, "endpointUrl": "string", "name": "string" }, "id": "string", "resourceStatus": "CREATING", "targetSpec": { "enabled": true, "name": "string" }, "updatedAt": "2024-01-01T12:00:00Z"}
Get an AI agentProduction
Path parameters
Agent ID
Project ID
Response
Date of the AI agent creation
Current state of the AI agent
Unique identifier of the AI agent
Reflects the readiness of the AI agent: READY, SUSPENDED when it is paused, or DELETING on the response to its deletion
CREATINGCREATION_PLANNEDDELETINGERROROUT_OF_SYNCREADYSUSPENDEDUNKNOWNUPDATINGLast target specification of the AI agent
Date of the last AI agent update
Example uses agentId = string, projectId = string
$ curl https:/ / api.eu.ovhcloud.com/ v2/ publicCloud/ project/ {projectId}/ ai/ agents/ agent/ {agentId} \
-H "authorization: Bearer $OVH_TOKEN"{ "createdAt": "2024-01-01T12:00:00Z", "currentState": { "aiEndpoints": true, "aiEndpointsIntegratedAuth": true, "enabled": true, "endpointUrl": "string", "name": "string" }, "id": "string", "resourceStatus": "CREATING", "targetSpec": { "enabled": true, "name": "string" }, "updatedAt": "2024-01-01T12:00:00Z"}
Update an AI agentProduction
targetSpec.enabled is mandatory, including on an update whose only intent is a rename. Restating the agent's current running state changes nothing; stating the other one pauses or resumes it. targetSpec.name is optional: omitting it, or restating the current name, leaves it untouched. Any other name renames the agent and redeploys it, keeping its identifier, its access tokens, its configuration and its data, and re-applying its paused state. A name another agent in the project already holds is rejected. The configuration is not settable here; it is read and changed through the agent itself.
Path parameters
Agent ID
Project ID
Request body (required)
Desired specification to reconcile the AI agent toward
Response
Date of the AI agent creation
Current state of the AI agent
Unique identifier of the AI agent
Reflects the readiness of the AI agent: READY, SUSPENDED when it is paused, or DELETING on the response to its deletion
CREATINGCREATION_PLANNEDDELETINGERROROUT_OF_SYNCREADYSUSPENDEDUNKNOWNUPDATINGLast target specification of the AI agent
Date of the last AI agent update
Example uses agentId = string, projectId = string
$ curl https:/ / api.eu.ovhcloud.com/ v2/ publicCloud/ project/ {projectId}/ ai/ agents/ agent/ {agentId} \
-H "authorization: Bearer $OVH_TOKEN"{ "createdAt": "2024-01-01T12:00:00Z", "currentState": { "aiEndpoints": true, "aiEndpointsIntegratedAuth": true, "enabled": true, "endpointUrl": "string", "name": "string" }, "id": "string", "resourceStatus": "CREATING", "targetSpec": { "enabled": true, "name": "string" }, "updatedAt": "2024-01-01T12:00:00Z"}
Delete an AI agentProduction
Deletion is asynchronous: the response describes the agent with resourceStatus: DELETING.
Path parameters
Agent ID
Project ID
Response
Date of the AI agent creation
Current state of the AI agent
Unique identifier of the AI agent
Reflects the readiness of the AI agent: READY, SUSPENDED when it is paused, or DELETING on the response to its deletion
CREATINGCREATION_PLANNEDDELETINGERROROUT_OF_SYNCREADYSUSPENDEDUNKNOWNUPDATINGLast target specification of the AI agent
Date of the last AI agent update
Example uses agentId = string, projectId = string
$ curl https:/ / api.eu.ovhcloud.com/ v2/ publicCloud/ project/ {projectId}/ ai/ agents/ agent/ {agentId} \
-H "authorization: Bearer $OVH_TOKEN"{ "createdAt": "2024-01-01T12:00:00Z", "currentState": { "aiEndpoints": true, "aiEndpointsIntegratedAuth": true, "enabled": true, "endpointUrl": "string", "name": "string" }, "id": "string", "resourceStatus": "CREATING", "targetSpec": { "enabled": true, "name": "string" }, "updatedAt": "2024-01-01T12:00:00Z"}
Redeploy an AI agent, refreshing its runtime while keeping its dataProduction
Refreshes the agent's runtime without touching its configuration or the data it holds.
Path parameters
Agent ID
Project ID
Response
Date of the AI agent creation
Current state of the AI agent
Unique identifier of the AI agent
Reflects the readiness of the AI agent: READY, SUSPENDED when it is paused, or DELETING on the response to its deletion
CREATINGCREATION_PLANNEDDELETINGERROROUT_OF_SYNCREADYSUSPENDEDUNKNOWNUPDATINGLast target specification of the AI agent
Date of the last AI agent update
Example uses agentId = string, projectId = string
$ curl https:/ / api.eu.ovhcloud.com/ v2/ publicCloud/ project/ {projectId}/ ai/ agents/ agent/ {agentId}/ redeploy \
-H "authorization: Bearer $OVH_TOKEN"{ "createdAt": "2024-01-01T12:00:00Z", "currentState": { "aiEndpoints": true, "aiEndpointsIntegratedAuth": true, "enabled": true, "endpointUrl": "string", "name": "string" }, "id": "string", "resourceStatus": "CREATING", "targetSpec": { "enabled": true, "name": "string" }, "updatedAt": "2024-01-01T12:00:00Z"}
Issue a scoped access token for an AI agentProduction
Returns a bearer token to present to the agent at currentState.endpointUrl. The token is returned once, here, and is never readable afterwards. Both body fields are optional: send {} for the defaults, which are the VIEWER role and the agent's own default lifetime. A lifetime longer than the agent's own maximum is rejected.
Path parameters
Agent ID
Project ID
Request body (required)
Token lifetime in seconds. Defaults to the agent's default.
Role granted to the minted token. Defaults to VIEWER.
ADMINOPERATORUSERVIEWERResponse
Expiration date of the token. Null when the token does not expire.
Role granted to the token
ADMINOPERATORUSERVIEWERBearer token used to authenticate against the AI agent. Returned only once, at mint time.
Example uses agentId = string, projectId = string
$ curl https:/ / api.eu.ovhcloud.com/ v2/ publicCloud/ project/ {projectId}/ ai/ agents/ agent/ {agentId}/ token \
-H "authorization: Bearer $OVH_TOKEN"{ "expiresAt": "2024-01-01T12:00:00Z", "role": "ADMIN", "token": "string"}
Get the AI agent configuration settings fixed by OVHcloudProduction
Part of an AI agent's configuration is managed by OVHcloud rather than by you: how callers authenticate to the agent, and whether the agent can run code. This route says which parts those are, so a configuration can be prepared knowing what will be accepted — anything OVHcloud manages is rejected if you set it yourself, whether on an agent or on a template. What it reports does not change from one agent to the next.
Path parameters
Project ID
Response
What this deployment reserves of, and offers of, an agent's own configuration
Example uses projectId = string
$ curl https:/ / api.eu.ovhcloud.com/ v2/ publicCloud/ project/ {projectId}/ ai/ agents/ preset/ globalSettings \
-H "authorization: Bearer $OVH_TOKEN"{ "agentConfig": { "auth": { "managed": true }, "exec": { "enabled": true } }}
Get the OVHcloud AI Endpoints provider presetProduction
States whether the OVHcloud AI Endpoints provider preset can be selected, whether OVHcloud provisions its credential so the caller need not supply one, the base URL whose /models sub-path lists the models available, and the model used when the caller names none.
Path parameters
Project ID
Response
OpenAI-compatible base URL, published so a client can list models from its /models sub-path
Model seeded when the caller states none. Empty when this deployment states no default.
Whether the OVHcloud AI Endpoints provider preset is available on this deployment
Whether OVHcloud provisions the AI Endpoints credential for the agent, so the caller does not have to supply one
Example uses projectId = string
$ curl https:/ / api.eu.ovhcloud.com/ v2/ publicCloud/ project/ {projectId}/ ai/ agents/ preset/ model/ aiEndpointsProvider \
-H "authorization: Bearer $OVH_TOKEN"{ "apiBase": "string", "defaultModel": "string", "enabled": true, "integratedAuth": true}
List built-in AI agent template presetsProduction
Presets are ready-made configurations OVHcloud publishes, offered alongside the templates a caller writes for themselves. Pass a preset's id as targetSpec.template.id on an agent creation to build an agent from it. Identifiers carry a reserved prefix, so a client can tell a preset from a template of its own.
Path parameters
Project ID
Headers
Pagination cursor
Pagination size
Response
Whether an agent created from this preset uses the OVHcloud AI Endpoints provider preset
Whether the AI Endpoints credential is minted by this service rather than supplied by the caller
What this preset is for. Empty when the deployment states none.
Identifier to pass as targetSpec.template.id when creating an agent from this preset
Human-readable name of the preset
Example uses projectId = string
$ curl https:/ / api.eu.ovhcloud.com/ v2/ publicCloud/ project/ {projectId}/ ai/ agents/ preset/ template \
-H "authorization: Bearer $OVH_TOKEN"[ { "aiEndpoints": true, "aiEndpointsIntegratedAuth": true, "description": "string", "id": "string", "name": "string" }]
Get an AI agent template presetProduction
A preset is a ready-made configuration OVHcloud publishes, offered alongside the templates a caller writes for themselves. Pass its id as targetSpec.template.id on an agent creation to build an agent from it. The identifier carries a reserved prefix, so a client can tell a preset from a template of its own.
Path parameters
Project ID
Template preset ID
Response
Whether an agent created from this preset uses the OVHcloud AI Endpoints provider preset
Whether the AI Endpoints credential is minted by this service rather than supplied by the caller
What this preset is for. Empty when the deployment states none.
Identifier to pass as targetSpec.template.id when creating an agent from this preset
Human-readable name of the preset
Example uses projectId = string, templatePresetId = string
$ curl https:/ / api.eu.ovhcloud.com/ v2/ publicCloud/ project/ {projectId}/ ai/ agents/ preset/ template/ {templatePresetId} \
-H "authorization: Bearer $OVH_TOKEN"{ "aiEndpoints": true, "aiEndpointsIntegratedAuth": true, "description": "string", "id": "string", "name": "string"}
List AI agent templatesProduction
The ready-made configurations OVHcloud publishes are absent from this list. They are served by the preset/template node.
Path parameters
Project ID
Headers
Pagination cursor
Pagination size
Response
Date of the template creation
Unique identifier of the template
Reflects the readiness of the template: READY, or DELETING on the response to its deletion
CREATINGCREATION_PLANNEDDELETINGERROROUT_OF_SYNCREADYSUSPENDEDUNKNOWNUPDATINGDistinguishes built-in (code-defined) from user-authored templates
BUILTINUSERDesired specification to replace the template with
Date of the last template update
Example uses projectId = string
$ curl https:/ / api.eu.ovhcloud.com/ v2/ publicCloud/ project/ {projectId}/ ai/ agents/ template \
-H "authorization: Bearer $OVH_TOKEN"[ { "createdAt": "2024-01-01T12:00:00Z", "id": "string", "resourceStatus": "CREATING", "source": "BUILTIN", "targetSpec": { "config": { "agent": { "name": "string" }, "auth": { "kagentJwt": { "allowUnlimited": true, "enabled": true, "maxTtlSeconds": 0, "secretB64": "string" }, "mode": "KAGENT_JWT", "oauth2": { "audience": "string", "issuer": "string", "jwksUri": "string", "ownerSub": "string", "requiredScopes": [ null ] } }, "builtins": { "network": true, "search": true, "searchApiKey": "string", "searchProvider": "string", "toolsDeny": [ "string" ], "wizard": true }, "channels": { "telegram": { "botToken": "string", "enabled": true, "webhookSecret": "string" }, "webex": { "accessToken": "string", "enabled": true, "webhookSecret": "string" } }, "exec": { "apiKey": "string", "autoSuspendIdleSeconds": 0, "baseUrl": "string", "defaultImage": "string", "enabled": true }, "llm": { "failover": { "on": [ null ] }, "fallbacks": [ { "maxTokens": null, "model": null, "providerId": null, "temperature": null } ], "maxContextMessages": 0, "maxTokens": 0, "model": "string", "providerId": "string", "temperature": 0, "vision": { "maxTokens": 0, "model": "string", "providerId": "string", "temperature": 0 } }, "mcpIndexer": { "embedderBatchSize": 0, "embedderModel": "string", "providerId": "string" }, "mcpServers": { "key": { "authKind": "BEARER", "enabled": true, "headers": { "key": null }, "mode": "FLAT", "url": "string" } }, "memory": { "consolidateOnTurnEnd": true, "consolidationCron": "string", "consolidationMaxRounds": 0, "corePredicates": [ "string" ], "embedderBatchSize": 0, "embedderModel": "string", "enabled": true, "gcCron": "string", "gcMaxSize": 0, "gcMinRetention": 0, "gcSoftLimit": 0, "halfLifeDays": 0, "identityPromotionThreshold": 0, "inferenceLlmFallback": true, "mergeSimilarityThreshold": 0, "providerId": "string", "ruleIdleGcDays": 0, "rulesMax": 0 }, "profiles": { "enabled": true, "items": { "key": { "description": null, "from": null, "maxTurns": null, "model": null, "soul": null, "tools": null } } }, "providers": { "key": { "aiEndpoints": true, "aiEndpointsIntegratedAuth": true, "apiBase": "string", "apiKey": "string", "displayName": "string", "models": { "key": null } } }, "relay": { "enabled": true, "maxMessagesPerRoom": 0, "maxRooms": 0, "roomCreation": "OPEN" }, "skills": { "builtins": [ "string" ], "enabled": true, "items": { "key": { "description": null, "instructions": null } } }, "soul": "string", "toolPermissions": { "judge": { "enabled": true, "model": "string", "providerId": "string", "soul": "string" }, "rules": [ { "action": null, "args": null, "phase": null, "reason": null, "result": null, "tool": null, "triggers": null, "unattended": null } ] }, "version": "string", "workspace": { "agentsPath": "string", "mount": [ { "accessKey": null, "backend": null, "bucket": null, "endpoint": null, "maxFileBytes": null, "maxFiles": null, "maxTotalBytes": null, "path": null, "prefix": null, "region": null, "ro": null, "secretKey": null } ], "scratchpad": { "cleanupCron": "string", "enabled": true, "maxDownloadBytes": 0, "path": "string", "retentionDays": 0, "spillBytes": 0 }, "skillsPath": "string", "zerofs": { "enabled": true, "mountPath": "string" } } }, "description": "string", "name": "string" }, "updatedAt": "2024-01-01T12:00:00Z" }]
Create an AI agent templateProduction
Registers a reusable configuration that a later agent creation can name through targetSpec.template.id. A template stores a configuration. It runs nothing by itself. targetSpec.name must be unique within the project's namespace.
Path parameters
Project ID
Request body (required)
Desired specification of the template to create
Response
Date of the template creation
Unique identifier of the template
Reflects the readiness of the template: READY, or DELETING on the response to its deletion
CREATINGCREATION_PLANNEDDELETINGERROROUT_OF_SYNCREADYSUSPENDEDUNKNOWNUPDATINGDistinguishes built-in (code-defined) from user-authored templates
BUILTINUSERDesired specification to replace the template with
Date of the last template update
Example uses projectId = string
$ curl https:/ / api.eu.ovhcloud.com/ v2/ publicCloud/ project/ {projectId}/ ai/ agents/ template \
-H "authorization: Bearer $OVH_TOKEN"{ "createdAt": "2024-01-01T12:00:00Z", "id": "string", "resourceStatus": "CREATING", "source": "BUILTIN", "targetSpec": { "config": { "agent": { "name": "string" }, "auth": { "kagentJwt": { "allowUnlimited": true, "enabled": true, "maxTtlSeconds": 0, "secretB64": "string" }, "mode": "KAGENT_JWT", "oauth2": { "audience": "string", "issuer": "string", "jwksUri": "string", "ownerSub": "string", "requiredScopes": [ "string" ] } }, "builtins": { "network": true, "search": true, "searchApiKey": "string", "searchProvider": "string", "toolsDeny": [ "string" ], "wizard": true }, "channels": { "telegram": { "botToken": "string", "enabled": true, "webhookSecret": "string" }, "webex": { "accessToken": "string", "enabled": true, "webhookSecret": "string" } }, "exec": { "apiKey": "string", "autoSuspendIdleSeconds": 0, "baseUrl": "string", "defaultImage": "string", "enabled": true }, "llm": { "failover": { "on": [ "AUTH" ] }, "fallbacks": [ { "maxTokens": 0, "model": "string", "providerId": "string", "temperature": 0 } ], "maxContextMessages": 0, "maxTokens": 0, "model": "string", "providerId": "string", "temperature": 0, "vision": { "maxTokens": 0, "model": "string", "providerId": "string", "temperature": 0 } }, "mcpIndexer": { "embedderBatchSize": 0, "embedderModel": "string", "providerId": "string" }, "mcpServers": { "key": { "authKind": "BEARER", "enabled": true, "headers": { "key": "string" }, "mode": "FLAT", "url": "string" } }, "memory": { "consolidateOnTurnEnd": true, "consolidationCron": "string", "consolidationMaxRounds": 0, "corePredicates": [ "string" ], "embedderBatchSize": 0, "embedderModel": "string", "enabled": true, "gcCron": "string", "gcMaxSize": 0, "gcMinRetention": 0, "gcSoftLimit": 0, "halfLifeDays": 0, "identityPromotionThreshold": 0, "inferenceLlmFallback": true, "mergeSimilarityThreshold": 0, "providerId": "string", "ruleIdleGcDays": 0, "rulesMax": 0 }, "profiles": { "enabled": true, "items": { "key": { "description": "string", "from": "string", "maxTurns": 0, "model": "string", "soul": "string", "tools": [ null ] } } }, "providers": { "key": { "aiEndpoints": true, "aiEndpointsIntegratedAuth": true, "apiBase": "string", "apiKey": "string", "displayName": "string", "models": { "key": { "contextWindow": null, "tools": null, "vision": null } } } }, "relay": { "enabled": true, "maxMessagesPerRoom": 0, "maxRooms": 0, "roomCreation": "OPEN" }, "skills": { "builtins": [ "string" ], "enabled": true, "items": { "key": { "description": "string", "instructions": "string" } } }, "soul": "string", "toolPermissions": { "judge": { "enabled": true, "model": "string", "providerId": "string", "soul": "string" }, "rules": [ { "action": "ALLOW", "args": { "key": null }, "phase": "AFTER", "reason": "string", "result": "string", "tool": "string", "triggers": [ null ], "unattended": "ALLOW" } ] }, "version": "string", "workspace": { "agentsPath": "string", "mount": [ { "accessKey": "string", "backend": "BLOB", "bucket": "string", "endpoint": "string", "maxFileBytes": 0, "maxFiles": 0, "maxTotalBytes": 0, "path": "string", "prefix": "string", "region": "string", "ro": true, "secretKey": "string" } ], "scratchpad": { "cleanupCron": "string", "enabled": true, "maxDownloadBytes": 0, "path": "string", "retentionDays": 0, "spillBytes": 0 }, "skillsPath": "string", "zerofs": { "enabled": true, "mountPath": "string" } } }, "description": "string", "name": "string" }, "updatedAt": "2024-01-01T12:00:00Z"}
Get an AI agent templateProduction
The ready-made configurations OVHcloud publishes are not returned here. They are served by the preset/template node.
Path parameters
Project ID
Template ID
Response
Date of the template creation
Unique identifier of the template
Reflects the readiness of the template: READY, or DELETING on the response to its deletion
CREATINGCREATION_PLANNEDDELETINGERROROUT_OF_SYNCREADYSUSPENDEDUNKNOWNUPDATINGDistinguishes built-in (code-defined) from user-authored templates
BUILTINUSERDesired specification to replace the template with
Date of the last template update
Example uses projectId = string, templateId = string
$ curl https:/ / api.eu.ovhcloud.com/ v2/ publicCloud/ project/ {projectId}/ ai/ agents/ template/ {templateId} \
-H "authorization: Bearer $OVH_TOKEN"{ "createdAt": "2024-01-01T12:00:00Z", "id": "string", "resourceStatus": "CREATING", "source": "BUILTIN", "targetSpec": { "config": { "agent": { "name": "string" }, "auth": { "kagentJwt": { "allowUnlimited": true, "enabled": true, "maxTtlSeconds": 0, "secretB64": "string" }, "mode": "KAGENT_JWT", "oauth2": { "audience": "string", "issuer": "string", "jwksUri": "string", "ownerSub": "string", "requiredScopes": [ "string" ] } }, "builtins": { "network": true, "search": true, "searchApiKey": "string", "searchProvider": "string", "toolsDeny": [ "string" ], "wizard": true }, "channels": { "telegram": { "botToken": "string", "enabled": true, "webhookSecret": "string" }, "webex": { "accessToken": "string", "enabled": true, "webhookSecret": "string" } }, "exec": { "apiKey": "string", "autoSuspendIdleSeconds": 0, "baseUrl": "string", "defaultImage": "string", "enabled": true }, "llm": { "failover": { "on": [ "AUTH" ] }, "fallbacks": [ { "maxTokens": 0, "model": "string", "providerId": "string", "temperature": 0 } ], "maxContextMessages": 0, "maxTokens": 0, "model": "string", "providerId": "string", "temperature": 0, "vision": { "maxTokens": 0, "model": "string", "providerId": "string", "temperature": 0 } }, "mcpIndexer": { "embedderBatchSize": 0, "embedderModel": "string", "providerId": "string" }, "mcpServers": { "key": { "authKind": "BEARER", "enabled": true, "headers": { "key": "string" }, "mode": "FLAT", "url": "string" } }, "memory": { "consolidateOnTurnEnd": true, "consolidationCron": "string", "consolidationMaxRounds": 0, "corePredicates": [ "string" ], "embedderBatchSize": 0, "embedderModel": "string", "enabled": true, "gcCron": "string", "gcMaxSize": 0, "gcMinRetention": 0, "gcSoftLimit": 0, "halfLifeDays": 0, "identityPromotionThreshold": 0, "inferenceLlmFallback": true, "mergeSimilarityThreshold": 0, "providerId": "string", "ruleIdleGcDays": 0, "rulesMax": 0 }, "profiles": { "enabled": true, "items": { "key": { "description": "string", "from": "string", "maxTurns": 0, "model": "string", "soul": "string", "tools": [ null ] } } }, "providers": { "key": { "aiEndpoints": true, "aiEndpointsIntegratedAuth": true, "apiBase": "string", "apiKey": "string", "displayName": "string", "models": { "key": { "contextWindow": null, "tools": null, "vision": null } } } }, "relay": { "enabled": true, "maxMessagesPerRoom": 0, "maxRooms": 0, "roomCreation": "OPEN" }, "skills": { "builtins": [ "string" ], "enabled": true, "items": { "key": { "description": "string", "instructions": "string" } } }, "soul": "string", "toolPermissions": { "judge": { "enabled": true, "model": "string", "providerId": "string", "soul": "string" }, "rules": [ { "action": "ALLOW", "args": { "key": null }, "phase": "AFTER", "reason": "string", "result": "string", "tool": "string", "triggers": [ null ], "unattended": "ALLOW" } ] }, "version": "string", "workspace": { "agentsPath": "string", "mount": [ { "accessKey": "string", "backend": "BLOB", "bucket": "string", "endpoint": "string", "maxFileBytes": 0, "maxFiles": 0, "maxTotalBytes": 0, "path": "string", "prefix": "string", "region": "string", "ro": true, "secretKey": "string" } ], "scratchpad": { "cleanupCron": "string", "enabled": true, "maxDownloadBytes": 0, "path": "string", "retentionDays": 0, "spillBytes": 0 }, "skillsPath": "string", "zerofs": { "enabled": true, "mountPath": "string" } } }, "description": "string", "name": "string" }, "updatedAt": "2024-01-01T12:00:00Z"}
Update an AI agent templateProduction
Replaces the template's target spec as a whole: a field left out of the body is not preserved, and targetSpec.config is mandatory. Secrets inside that configuration read back as [REDACTED]. Send the sentinel back unchanged to keep the stored value. Configuration blocks OVHcloud reserves or does not offer are left out of a read, and a body that does not restate them drops them from the stored template. Agents already created from this template are unaffected, since a template is read once, at agent creation time.
Path parameters
Project ID
Template ID
Request body (required)
Desired specification to replace the template with
Response
Date of the template creation
Unique identifier of the template
Reflects the readiness of the template: READY, or DELETING on the response to its deletion
CREATINGCREATION_PLANNEDDELETINGERROROUT_OF_SYNCREADYSUSPENDEDUNKNOWNUPDATINGDistinguishes built-in (code-defined) from user-authored templates
BUILTINUSERDesired specification to replace the template with
Date of the last template update
Example uses projectId = string, templateId = string
$ curl https:/ / api.eu.ovhcloud.com/ v2/ publicCloud/ project/ {projectId}/ ai/ agents/ template/ {templateId} \
-H "authorization: Bearer $OVH_TOKEN"{ "createdAt": "2024-01-01T12:00:00Z", "id": "string", "resourceStatus": "CREATING", "source": "BUILTIN", "targetSpec": { "config": { "agent": { "name": "string" }, "auth": { "kagentJwt": { "allowUnlimited": true, "enabled": true, "maxTtlSeconds": 0, "secretB64": "string" }, "mode": "KAGENT_JWT", "oauth2": { "audience": "string", "issuer": "string", "jwksUri": "string", "ownerSub": "string", "requiredScopes": [ "string" ] } }, "builtins": { "network": true, "search": true, "searchApiKey": "string", "searchProvider": "string", "toolsDeny": [ "string" ], "wizard": true }, "channels": { "telegram": { "botToken": "string", "enabled": true, "webhookSecret": "string" }, "webex": { "accessToken": "string", "enabled": true, "webhookSecret": "string" } }, "exec": { "apiKey": "string", "autoSuspendIdleSeconds": 0, "baseUrl": "string", "defaultImage": "string", "enabled": true }, "llm": { "failover": { "on": [ "AUTH" ] }, "fallbacks": [ { "maxTokens": 0, "model": "string", "providerId": "string", "temperature": 0 } ], "maxContextMessages": 0, "maxTokens": 0, "model": "string", "providerId": "string", "temperature": 0, "vision": { "maxTokens": 0, "model": "string", "providerId": "string", "temperature": 0 } }, "mcpIndexer": { "embedderBatchSize": 0, "embedderModel": "string", "providerId": "string" }, "mcpServers": { "key": { "authKind": "BEARER", "enabled": true, "headers": { "key": "string" }, "mode": "FLAT", "url": "string" } }, "memory": { "consolidateOnTurnEnd": true, "consolidationCron": "string", "consolidationMaxRounds": 0, "corePredicates": [ "string" ], "embedderBatchSize": 0, "embedderModel": "string", "enabled": true, "gcCron": "string", "gcMaxSize": 0, "gcMinRetention": 0, "gcSoftLimit": 0, "halfLifeDays": 0, "identityPromotionThreshold": 0, "inferenceLlmFallback": true, "mergeSimilarityThreshold": 0, "providerId": "string", "ruleIdleGcDays": 0, "rulesMax": 0 }, "profiles": { "enabled": true, "items": { "key": { "description": "string", "from": "string", "maxTurns": 0, "model": "string", "soul": "string", "tools": [ null ] } } }, "providers": { "key": { "aiEndpoints": true, "aiEndpointsIntegratedAuth": true, "apiBase": "string", "apiKey": "string", "displayName": "string", "models": { "key": { "contextWindow": null, "tools": null, "vision": null } } } }, "relay": { "enabled": true, "maxMessagesPerRoom": 0, "maxRooms": 0, "roomCreation": "OPEN" }, "skills": { "builtins": [ "string" ], "enabled": true, "items": { "key": { "description": "string", "instructions": "string" } } }, "soul": "string", "toolPermissions": { "judge": { "enabled": true, "model": "string", "providerId": "string", "soul": "string" }, "rules": [ { "action": "ALLOW", "args": { "key": null }, "phase": "AFTER", "reason": "string", "result": "string", "tool": "string", "triggers": [ null ], "unattended": "ALLOW" } ] }, "version": "string", "workspace": { "agentsPath": "string", "mount": [ { "accessKey": "string", "backend": "BLOB", "bucket": "string", "endpoint": "string", "maxFileBytes": 0, "maxFiles": 0, "maxTotalBytes": 0, "path": "string", "prefix": "string", "region": "string", "ro": true, "secretKey": "string" } ], "scratchpad": { "cleanupCron": "string", "enabled": true, "maxDownloadBytes": 0, "path": "string", "retentionDays": 0, "spillBytes": 0 }, "skillsPath": "string", "zerofs": { "enabled": true, "mountPath": "string" } } }, "description": "string", "name": "string" }, "updatedAt": "2024-01-01T12:00:00Z"}
Delete an AI agent templateProduction
Deletion is asynchronous: the response describes the template with resourceStatus: DELETING. Agents already created from it are unaffected, since a template is read once, at agent creation time.
Path parameters
Project ID
Template ID
Response
Date of the template creation
Unique identifier of the template
Reflects the readiness of the template: READY, or DELETING on the response to its deletion
CREATINGCREATION_PLANNEDDELETINGERROROUT_OF_SYNCREADYSUSPENDEDUNKNOWNUPDATINGDistinguishes built-in (code-defined) from user-authored templates
BUILTINUSERDesired specification to replace the template with
Date of the last template update
Example uses projectId = string, templateId = string
$ curl https:/ / api.eu.ovhcloud.com/ v2/ publicCloud/ project/ {projectId}/ ai/ agents/ template/ {templateId} \
-H "authorization: Bearer $OVH_TOKEN"{ "createdAt": "2024-01-01T12:00:00Z", "id": "string", "resourceStatus": "CREATING", "source": "BUILTIN", "targetSpec": { "config": { "agent": { "name": "string" }, "auth": { "kagentJwt": { "allowUnlimited": true, "enabled": true, "maxTtlSeconds": 0, "secretB64": "string" }, "mode": "KAGENT_JWT", "oauth2": { "audience": "string", "issuer": "string", "jwksUri": "string", "ownerSub": "string", "requiredScopes": [ "string" ] } }, "builtins": { "network": true, "search": true, "searchApiKey": "string", "searchProvider": "string", "toolsDeny": [ "string" ], "wizard": true }, "channels": { "telegram": { "botToken": "string", "enabled": true, "webhookSecret": "string" }, "webex": { "accessToken": "string", "enabled": true, "webhookSecret": "string" } }, "exec": { "apiKey": "string", "autoSuspendIdleSeconds": 0, "baseUrl": "string", "defaultImage": "string", "enabled": true }, "llm": { "failover": { "on": [ "AUTH" ] }, "fallbacks": [ { "maxTokens": 0, "model": "string", "providerId": "string", "temperature": 0 } ], "maxContextMessages": 0, "maxTokens": 0, "model": "string", "providerId": "string", "temperature": 0, "vision": { "maxTokens": 0, "model": "string", "providerId": "string", "temperature": 0 } }, "mcpIndexer": { "embedderBatchSize": 0, "embedderModel": "string", "providerId": "string" }, "mcpServers": { "key": { "authKind": "BEARER", "enabled": true, "headers": { "key": "string" }, "mode": "FLAT", "url": "string" } }, "memory": { "consolidateOnTurnEnd": true, "consolidationCron": "string", "consolidationMaxRounds": 0, "corePredicates": [ "string" ], "embedderBatchSize": 0, "embedderModel": "string", "enabled": true, "gcCron": "string", "gcMaxSize": 0, "gcMinRetention": 0, "gcSoftLimit": 0, "halfLifeDays": 0, "identityPromotionThreshold": 0, "inferenceLlmFallback": true, "mergeSimilarityThreshold": 0, "providerId": "string", "ruleIdleGcDays": 0, "rulesMax": 0 }, "profiles": { "enabled": true, "items": { "key": { "description": "string", "from": "string", "maxTurns": 0, "model": "string", "soul": "string", "tools": [ null ] } } }, "providers": { "key": { "aiEndpoints": true, "aiEndpointsIntegratedAuth": true, "apiBase": "string", "apiKey": "string", "displayName": "string", "models": { "key": { "contextWindow": null, "tools": null, "vision": null } } } }, "relay": { "enabled": true, "maxMessagesPerRoom": 0, "maxRooms": 0, "roomCreation": "OPEN" }, "skills": { "builtins": [ "string" ], "enabled": true, "items": { "key": { "description": "string", "instructions": "string" } } }, "soul": "string", "toolPermissions": { "judge": { "enabled": true, "model": "string", "providerId": "string", "soul": "string" }, "rules": [ { "action": "ALLOW", "args": { "key": null }, "phase": "AFTER", "reason": "string", "result": "string", "tool": "string", "triggers": [ null ], "unattended": "ALLOW" } ] }, "version": "string", "workspace": { "agentsPath": "string", "mount": [ { "accessKey": "string", "backend": "BLOB", "bucket": "string", "endpoint": "string", "maxFileBytes": 0, "maxFiles": 0, "maxTotalBytes": 0, "path": "string", "prefix": "string", "region": "string", "ro": true, "secretKey": "string" } ], "scratchpad": { "cleanupCron": "string", "enabled": true, "maxDownloadBytes": 0, "path": "string", "retentionDays": 0, "spillBytes": 0 }, "skillsPath": "string", "zerofs": { "enabled": true, "mountPath": "string" } } }, "description": "string", "name": "string" }, "updatedAt": "2024-01-01T12:00:00Z"}