harness
Creates, updates, deletes, gets or lists a harness resource.
Overview
| Name | harness |
| Type | Resource |
| Id | aws.bedrock_agentcore_control.harness |
Fields
The following fields are returned by SELECT queries:
- get_harness
| Name | Datatype | Description |
|---|---|---|
allowed_tools | array | The allowed tools of the harness. All tools are allowed by default. |
arn | string | The ARN of the harness. (pattern: <code>arn:([^:]+)?:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:harness/[a-zA-Z][a-zA-Z0-9_]{0,39}-[a-zA-Z0-9]{10}</code>) |
authorizer_configuration | object | Represents inbound authorization configuration options used to authenticate incoming requests. |
created_at | string (date-time) | The createdAt time of the harness. |
environment | object | The compute environment on which the Harness runs. |
environment_artifact | object | The environment artifact for a harness, such as a container image containing custom dependencies. |
environment_variables | object | Environment variables exposed in the environment in which the harness operates. |
execution_role_arn | string | IAM role the harness assumes when running. (pattern: <code>arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/.+</code>) |
failure_reason | string | Reason why create or update operations fail. |
harness_id | string | The ID of the harness. (pattern: <code>[a-zA-Z][a-zA-Z0-9_]{0,39}-[a-zA-Z0-9]{10}</code>) |
harness_name | string | The name of the harness. (pattern: <code>[a-zA-Z][a-zA-Z0-9_]{0,39}</code>) |
harness_version | string | The version of the harness. Incremented on every successful UpdateHarness. (pattern: <code>([1-9][0-9]{0,4})</code>) |
max_iterations | integer | The maximum number of iterations in the agent loop allowed before exiting per invocation. |
max_tokens | integer | The maximum total number of output tokens the agent can generate across all model calls within a single invocation. |
memory | object | The memory configuration for a harness. |
model | object | Specification of which model to use. |
skills | array | The skills of the harness. |
status | string | The status of the harness. (CREATING, CREATE_FAILED, UPDATING, UPDATE_FAILED, READY, DELETING, DELETE_FAILED) |
system_prompt | array | The system prompt of the harness. |
timeout_seconds | integer | The maximum duration per invocation. |
tools | array | The tools of the harness. |
truncation | object | Configuration for truncating conversation context when it exceeds model limits. |
updated_at | string (date-time) | The updatedAt time of the harness. |
Methods
The following methods are available for this resource:
| Name | Accessible by | Required Params | Optional Params | Description |
|---|---|---|---|---|
get_harness | select | harness_id, region | harnessVersion | Operation to get a single harness. |
create_harness | insert | region, harnessName, executionRoleArn | Operation to create a harness. | |
update_harness | update | harness_id, region | Operation to update a harness. | |
delete_harness | delete | harness_id, region | clientToken, deleteManagedMemory | Operation to delete a Harness. |
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 |
|---|---|---|
harness_id | string | The ID of the harness to delete. |
region | string | AWS region (default: us-east-1) |
clientToken | string | A unique, case-sensitive identifier to ensure idempotency of the request. |
deleteManagedMemory | boolean | Whether to delete the managed memory on harness deletion. Default: true. If false, the memory is disassociated and becomes a regular customer-owned resource. |
harnessVersion | string | Specific version of the harness to retrieve. If omitted, returns the current Harness configuration, including its status. |
SELECT examples
- get_harness
Operation to get a single harness.
SELECT
allowed_tools,
arn,
authorizer_configuration,
created_at,
environment,
environment_artifact,
environment_variables,
execution_role_arn,
failure_reason,
harness_id,
harness_name,
harness_version,
max_iterations,
max_tokens,
memory,
model,
skills,
status,
system_prompt,
timeout_seconds,
tools,
truncation,
updated_at
FROM aws.bedrock_agentcore_control.harness
WHERE harness_id = '{{ harness_id }}' -- required
AND region = '{{ region }}' -- required
AND harnessVersion = '{{ harnessVersion }}'
;
INSERT examples
- create_harness
- Manifest
Operation to create a harness.
INSERT INTO aws.bedrock_agentcore_control.harness (
harnessName,
clientToken,
executionRoleArn,
environment,
environmentArtifact,
environmentVariables,
authorizerConfiguration,
model,
systemPrompt,
tools,
skills,
allowedTools,
memory,
truncation,
maxIterations,
maxTokens,
timeoutSeconds,
tags,
region
)
SELECT
'{{ harnessName }}' /* required */,
'{{ clientToken }}',
'{{ executionRoleArn }}' /* required */,
'{{ environment }}',
'{{ environmentArtifact }}',
'{{ environmentVariables }}',
'{{ authorizerConfiguration }}',
'{{ model }}',
'{{ systemPrompt }}',
'{{ tools }}',
'{{ skills }}',
'{{ allowedTools }}',
'{{ memory }}',
'{{ truncation }}',
{{ maxIterations }},
{{ maxTokens }},
{{ timeoutSeconds }},
'{{ tags }}',
'{{ region }}'
RETURNING
harness
;
# Description fields are for documentation purposes
- name: harness
props:
- name: region
value: "{{ region }}"
description: Required parameter for the harness resource.
- name: harnessName
value: "{{ harnessName }}"
- name: clientToken
value: "{{ clientToken }}"
- name: executionRoleArn
value: "{{ executionRoleArn }}"
- name: environment
description: |
The environment provider request configuration.
value:
agentCoreRuntimeEnvironment:
lifecycleConfiguration:
idleRuntimeSessionTimeout: {{ idleRuntimeSessionTimeout }}
maxLifetime: {{ maxLifetime }}
networkConfiguration:
networkMode: "{{ networkMode }}"
networkModeConfig:
securityGroups:
- "{{ securityGroups }}"
subnets:
- "{{ subnets }}"
requireServiceS3Endpoint: {{ requireServiceS3Endpoint }}
filesystemConfigurations:
- sessionStorage:
mountPath: "{{ mountPath }}"
s3FilesAccessPoint:
accessPointArn: "{{ accessPointArn }}"
mountPath: "{{ mountPath }}"
efsAccessPoint:
accessPointArn: "{{ accessPointArn }}"
mountPath: "{{ mountPath }}"
capacityProviderVolume:
volumeName: "{{ volumeName }}"
mountPath: "{{ mountPath }}"
- name: environmentArtifact
description: |
The environment artifact for a harness, such as a container image containing custom dependencies.
value:
containerConfiguration:
containerUri: "{{ containerUri }}"
- name: environmentVariables
value: "{{ environmentVariables }}"
- name: authorizerConfiguration
description: |
Represents inbound authorization configuration options used to authenticate incoming requests.
value:
customJWTAuthorizer:
discoveryUrl: "{{ discoveryUrl }}"
allowedAudience:
- "{{ allowedAudience }}"
allowedClients:
- "{{ allowedClients }}"
allowedScopes:
- "{{ allowedScopes }}"
advertisedScopeMapping: "{{ advertisedScopeMapping }}"
customClaims:
- inboundTokenClaimName: "{{ inboundTokenClaimName }}"
inboundTokenClaimValueType: "{{ inboundTokenClaimValueType }}"
authorizingClaimMatchValue:
claimMatchValue:
matchValueString: "{{ matchValueString }}"
matchValueStringList: "{{ matchValueStringList }}"
claimMatchOperator: "{{ claimMatchOperator }}"
privateEndpoint:
selfManagedLatticeResource:
resourceConfigurationIdentifier: "{{ resourceConfigurationIdentifier }}"
managedVpcResource:
vpcIdentifier: "{{ vpcIdentifier }}"
subnetIds:
- "{{ subnetIds }}"
endpointIpAddressType: "{{ endpointIpAddressType }}"
securityGroupIds:
- "{{ securityGroupIds }}"
tags: "{{ tags }}"
routingDomain: "{{ routingDomain }}"
privateEndpointOverrides:
- domain: "{{ domain }}"
privateEndpoint:
selfManagedLatticeResource:
resourceConfigurationIdentifier: "{{ resourceConfigurationIdentifier }}"
managedVpcResource:
vpcIdentifier: "{{ vpcIdentifier }}"
subnetIds: "{{ subnetIds }}"
endpointIpAddressType: "{{ endpointIpAddressType }}"
securityGroupIds: "{{ securityGroupIds }}"
tags: "{{ tags }}"
routingDomain: "{{ routingDomain }}"
allowedWorkloadConfiguration:
hostingEnvironments:
- arn: "{{ arn }}"
workloadIdentities:
- "{{ workloadIdentities }}"
- name: model
description: |
Specification of which model to use.
value:
bedrockModelConfig:
modelId: "{{ modelId }}"
maxTokens: {{ maxTokens }}
temperature: {{ temperature }}
topP: {{ topP }}
apiFormat: "{{ apiFormat }}"
additionalParams: "{{ additionalParams }}"
openAiModelConfig:
modelId: "{{ modelId }}"
apiKeyArn: "{{ apiKeyArn }}"
maxTokens: {{ maxTokens }}
temperature: {{ temperature }}
topP: {{ topP }}
apiFormat: "{{ apiFormat }}"
additionalParams: "{{ additionalParams }}"
geminiModelConfig:
modelId: "{{ modelId }}"
apiKeyArn: "{{ apiKeyArn }}"
maxTokens: {{ maxTokens }}
temperature: {{ temperature }}
topP: {{ topP }}
topK: {{ topK }}
additionalParams: "{{ additionalParams }}"
liteLlmModelConfig:
modelId: "{{ modelId }}"
apiKeyArn: "{{ apiKeyArn }}"
apiBase: "{{ apiBase }}"
maxTokens: {{ maxTokens }}
temperature: {{ temperature }}
topP: {{ topP }}
additionalParams: "{{ additionalParams }}"
- name: systemPrompt
value:
- text: "{{ text }}"
- name: tools
value:
- type_: "{{ type_ }}"
name: "{{ name }}"
config:
remoteMcp:
url: "{{ url }}"
headers: "{{ headers }}"
agentCoreBrowser:
browserArn: "{{ browserArn }}"
agentCoreGateway:
gatewayArn: "{{ gatewayArn }}"
outboundAuth:
awsIam: "{{ awsIam }}"
none: "{{ none }}"
oauth:
providerArn: "{{ providerArn }}"
scopes: "{{ scopes }}"
customParameters: "{{ customParameters }}"
grantType: "{{ grantType }}"
defaultReturnUrl: "{{ defaultReturnUrl }}"
inlineFunction:
description: "{{ description }}"
inputSchema: "{{ inputSchema }}"
agentCoreCodeInterpreter:
codeInterpreterArn: "{{ codeInterpreterArn }}"
- name: skills
value:
- path: "{{ path }}"
s3:
uri: "{{ uri }}"
git:
url: "{{ url }}"
path: "{{ path }}"
auth:
credentialArn: "{{ credentialArn }}"
username: "{{ username }}"
awsSkills:
paths:
- "{{ paths }}"
- name: allowedTools
value:
- "{{ allowedTools }}"
- name: memory
description: |
The memory configuration for a harness.
value:
agentCoreMemoryConfiguration:
arn: "{{ arn }}"
actorId: "{{ actorId }}"
messagesCount: {{ messagesCount }}
retrievalConfig: "{{ retrievalConfig }}"
managedMemoryConfiguration:
arn: "{{ arn }}"
strategies:
- "{{ strategies }}"
eventExpiryDuration: {{ eventExpiryDuration }}
encryptionKeyArn: "{{ encryptionKeyArn }}"
disabled: "{{ disabled }}"
- name: truncation
description: |
Configuration for truncating conversation context when it exceeds model limits.
value:
strategy: "{{ strategy }}"
config:
slidingWindow:
messagesCount: {{ messagesCount }}
summarization:
summaryRatio: {{ summaryRatio }}
preserveRecentMessages: {{ preserveRecentMessages }}
summarizationSystemPrompt: "{{ summarizationSystemPrompt }}"
- name: maxIterations
value: {{ maxIterations }}
- name: maxTokens
value: {{ maxTokens }}
- name: timeoutSeconds
value: {{ timeoutSeconds }}
- name: tags
value: "{{ tags }}"
UPDATE examples
- update_harness
Operation to update a harness.
UPDATE aws.bedrock_agentcore_control.harness
SET
clientToken = '{{ clientToken }}',
executionRoleArn = '{{ executionRoleArn }}',
environment = '{{ environment }}',
environmentArtifact = '{{ environmentArtifact }}',
environmentVariables = '{{ environmentVariables }}',
authorizerConfiguration = '{{ authorizerConfiguration }}',
model = '{{ model }}',
systemPrompt = '{{ systemPrompt }}',
tools = '{{ tools }}',
skills = '{{ skills }}',
allowedTools = '{{ allowedTools }}',
memory = '{{ memory }}',
truncation = '{{ truncation }}',
maxIterations = {{ maxIterations }},
maxTokens = {{ maxTokens }},
timeoutSeconds = {{ timeoutSeconds }}
WHERE
harness_id = '{{ harness_id }}' --required
AND region = '{{ region }}' --required
RETURNING
harness;
DELETE examples
- delete_harness
Operation to delete a Harness.
DELETE FROM aws.bedrock_agentcore_control.harness
WHERE harness_id = '{{ harness_id }}' --required
AND region = '{{ region }}' --required
AND clientToken = '{{ clientToken }}'
AND deleteManagedMemory = '{{ deleteManagedMemory }}'
;