ai_agents_templates
Creates, updates, deletes, gets or lists an ai_agents_templates resource.
Overview​
| Name | ai_agents_templates |
| Type | Resource |
| Id | ovh.public_cloud.ai_agents_templates |
Fields​
The following fields are returned by SELECT queries:
- get
- list
successful operation
| Name | Datatype | Description |
|---|---|---|
id | string | Unique identifier of the template |
created_at | string (date-time) | Date of the template creation (wire: createdAt) |
resource_status | string | Reflects the readiness of the template: READY, or DELETING on the response to its deletion (CREATING, CREATION_PLANNED, DELETING, ERROR, OUT_OF_SYNC, READY, SUSPENDED, UNKNOWN, UPDATING) (wire: resourceStatus) |
source | string | Distinguishes built-in (code-defined) from user-authored templates (BUILTIN, USER) |
target_spec | object | Desired specification to replace the template with (wire: targetSpec) |
updated_at | string (date-time) | Date of the last template update (wire: updatedAt) |
An AI agent configuration template
| Name | Datatype | Description |
|---|---|---|
id | string | Unique identifier of the template |
created_at | string (date-time) | Date of the template creation (wire: createdAt) |
resource_status | string | Reflects the readiness of the template: READY, or DELETING on the response to its deletion (CREATING, CREATION_PLANNED, DELETING, ERROR, OUT_OF_SYNC, READY, SUSPENDED, UNKNOWN, UPDATING) (wire: resourceStatus) |
source | string | Distinguishes built-in (code-defined) from user-authored templates (BUILTIN, USER) |
target_spec | object | Desired specification to replace the template with (wire: targetSpec) |
updated_at | string (date-time) | Date of the last template update (wire: updatedAt) |
Methods​
The following methods are available for this resource:
| Name | Accessible by | Required Params | Optional Params | Description |
|---|---|---|---|---|
get | select | template_id, project_id | The ready-made configurations OVHcloud publishes are not returned here. They are served by the preset/template node. | |
list | select | project_id | x_pagination_cursor, x_pagination_size | The ready-made configurations OVHcloud publishes are absent from this list. They are served by the preset/template node. |
create | insert | project_id, target_spec | 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. | |
update | update | template_id, project_id, target_spec | 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. | |
delete | delete | template_id, project_id | 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. |
Parameters​
Parameters can be passed in the WHERE clause of a query. Check the Methods section to see which parameters are required or optional for each operation.
| Name | Datatype | Description |
|---|---|---|
api_host | string | The OVHcloud API host. Selected by OVH_ENDPOINT (ovh-eu, ovh-ca or ovh-us; default ovh-eu). (default: api.eu.ovhcloud.com, x-stackQL-envVarSelector: {"envVar":"OVH_ENDPOINT","default":"ovh-eu","values":{"ovh-eu":"api.eu.ovhcloud.com","ovh-ca":"api.ca.ovhcloud.com","ovh-us":"api.us.ovhcloud.com"}}) |
project_id | string | The Public Cloud project ID. Resolved from OVH_CLOUD_PROJECT_SERVICE when set. |
template_id | string | Template ID (wire: templateId) |
x_pagination_cursor | string | Pagination cursor (wire: X-Pagination-Cursor) |
x_pagination_size | integer | Pagination size (wire: X-Pagination-Size) |
SELECT examples​
- get
- list
The ready-made configurations OVHcloud publishes are not returned here. They are served by the preset/template node.
SELECT
id,
created_at,
resource_status,
source,
target_spec,
updated_at
FROM ovh.public_cloud.ai_agents_templates
WHERE template_id = '{{ template_id }}' -- required
AND project_id = '{{ project_id }}' -- required unless OVH_CLOUD_PROJECT_SERVICE is set
;
The ready-made configurations OVHcloud publishes are absent from this list. They are served by the preset/template node.
SELECT
id,
created_at,
resource_status,
source,
target_spec,
updated_at
FROM ovh.public_cloud.ai_agents_templates
WHERE project_id = '{{ project_id }}' -- required unless OVH_CLOUD_PROJECT_SERVICE is set
AND x_pagination_cursor = '{{ x_pagination_cursor }}'
AND x_pagination_size = '{{ x_pagination_size }}'
;
INSERT examples​
- create
- Manifest
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.
INSERT INTO ovh.public_cloud.ai_agents_templates (
target_spec,
project_id
)
SELECT
'{{ target_spec }}' /* required */,
'{{ project_id }}'
RETURNING
id,
created_at,
resource_status,
source,
target_spec,
updated_at
;
# Description fields are for documentation purposes
- name: ai_agents_templates
props:
- name: project_id
value: "{{ project_id }}"
description: Required parameter for the ai_agents_templates resource.
- name: target_spec
description: |
Desired specification of the template to create
value:
config:
agent:
name: "{{ name }}"
auth:
kagentJwt:
allowUnlimited: {{ allowUnlimited }}
enabled: {{ enabled }}
maxTtlSeconds: {{ maxTtlSeconds }}
secretB64: "{{ secretB64 }}"
mode: "{{ mode }}"
oauth2:
audience: "{{ audience }}"
issuer: "{{ issuer }}"
jwksUri: "{{ jwksUri }}"
ownerSub: "{{ ownerSub }}"
requiredScopes:
- "{{ requiredScopes }}"
builtins:
network: {{ network }}
search: {{ search }}
searchApiKey: "{{ searchApiKey }}"
searchProvider: "{{ searchProvider }}"
toolsDeny:
- "{{ toolsDeny }}"
wizard: {{ wizard }}
channels:
telegram:
botToken: "{{ botToken }}"
enabled: {{ enabled }}
webhookSecret: "{{ webhookSecret }}"
webex:
accessToken: "{{ accessToken }}"
enabled: {{ enabled }}
webhookSecret: "{{ webhookSecret }}"
exec:
apiKey: "{{ apiKey }}"
autoSuspendIdleSeconds: {{ autoSuspendIdleSeconds }}
baseUrl: "{{ baseUrl }}"
defaultImage: "{{ defaultImage }}"
enabled: {{ enabled }}
llm:
failover:
on:
- "{{ on }}"
fallbacks:
- maxTokens: {{ maxTokens }}
model: "{{ model }}"
providerId: "{{ providerId }}"
temperature: {{ temperature }}
maxContextMessages: {{ maxContextMessages }}
maxTokens: {{ maxTokens }}
model: "{{ model }}"
providerId: "{{ providerId }}"
temperature: {{ temperature }}
vision:
maxTokens: {{ maxTokens }}
model: "{{ model }}"
providerId: "{{ providerId }}"
temperature: {{ temperature }}
mcpIndexer:
embedderBatchSize: {{ embedderBatchSize }}
embedderModel: "{{ embedderModel }}"
providerId: "{{ providerId }}"
mcpServers: "{{ mcpServers }}"
memory:
consolidateOnTurnEnd: {{ consolidateOnTurnEnd }}
consolidationCron: "{{ consolidationCron }}"
consolidationMaxRounds: {{ consolidationMaxRounds }}
corePredicates:
- "{{ corePredicates }}"
embedderBatchSize: {{ embedderBatchSize }}
embedderModel: "{{ embedderModel }}"
enabled: {{ enabled }}
gcCron: "{{ gcCron }}"
gcMaxSize: {{ gcMaxSize }}
gcMinRetention: {{ gcMinRetention }}
gcSoftLimit: {{ gcSoftLimit }}
halfLifeDays: {{ halfLifeDays }}
identityPromotionThreshold: {{ identityPromotionThreshold }}
inferenceLlmFallback: {{ inferenceLlmFallback }}
mergeSimilarityThreshold: {{ mergeSimilarityThreshold }}
providerId: "{{ providerId }}"
ruleIdleGcDays: {{ ruleIdleGcDays }}
rulesMax: {{ rulesMax }}
profiles:
enabled: {{ enabled }}
items: "{{ items }}"
providers: "{{ providers }}"
relay:
enabled: {{ enabled }}
maxMessagesPerRoom: {{ maxMessagesPerRoom }}
maxRooms: {{ maxRooms }}
roomCreation: "{{ roomCreation }}"
skills:
builtins:
- "{{ builtins }}"
enabled: {{ enabled }}
items: "{{ items }}"
soul: "{{ soul }}"
toolPermissions:
judge:
enabled: {{ enabled }}
model: "{{ model }}"
providerId: "{{ providerId }}"
soul: "{{ soul }}"
rules:
- action: "{{ action }}"
args: "{{ args }}"
phase: "{{ phase }}"
reason: "{{ reason }}"
result: "{{ result }}"
tool: "{{ tool }}"
triggers: "{{ triggers }}"
unattended: "{{ unattended }}"
version: "{{ version }}"
workspace:
agentsPath: "{{ agentsPath }}"
mount:
- accessKey: "{{ accessKey }}"
backend: "{{ backend }}"
bucket: "{{ bucket }}"
endpoint: "{{ endpoint }}"
maxFileBytes: {{ maxFileBytes }}
maxFiles: {{ maxFiles }}
maxTotalBytes: {{ maxTotalBytes }}
path: "{{ path }}"
prefix: "{{ prefix }}"
region: "{{ region }}"
ro: {{ ro }}
secretKey: "{{ secretKey }}"
scratchpad:
cleanupCron: "{{ cleanupCron }}"
enabled: {{ enabled }}
maxDownloadBytes: {{ maxDownloadBytes }}
path: "{{ path }}"
retentionDays: {{ retentionDays }}
spillBytes: {{ spillBytes }}
skillsPath: "{{ skillsPath }}"
zerofs:
enabled: {{ enabled }}
mountPath: "{{ mountPath }}"
description: "{{ description }}"
name: "{{ name }}"
UPDATE examples​
- update
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.
UPDATE ovh.public_cloud.ai_agents_templates
SET
target_spec = '{{ target_spec }}'
WHERE
template_id = '{{ template_id }}' --required
AND project_id = '{{ project_id }}' --required unless OVH_CLOUD_PROJECT_SERVICE is set
AND target_spec = '{{ target_spec }}' --required
RETURNING
id,
created_at,
resource_status,
source,
target_spec,
updated_at;
DELETE examples​
- delete
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.
DELETE FROM ovh.public_cloud.ai_agents_templates
WHERE template_id = '{{ template_id }}' --required
AND project_id = '{{ project_id }}' --required unless OVH_CLOUD_PROJECT_SERVICE is set
;