> **Experimental**
>
> `@aws-cdk/aws-bedrock-alpha` is an [**experimental**](/stability) (alpha) package: its API may change in any release, without a major version bump.
# AgentProps

Properties for creating a CDK managed Bedrock Agent.

TODO: Knowledge bases configuration will be added in a future update
TODO: Inference profile configuration will be added in a future update

Extends: AgentProps
Used as props by: Agent

- Stability: [Experimental](/cdk/api/stability.html)
- Source: [`bedrock/agents/agent.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0-alpha.0/packages/@aws-cdk/aws-bedrock-alpha/bedrock/agents/agent.ts#L184)

## Example

```ts
const parserFunction = new lambda.Function(this, 'ParserFunction', {
  runtime: lambda.Runtime.PYTHON_3_10,
  handler: 'index.handler',
  code: lambda.Code.fromAsset('lambda'),
});

const agent = new bedrock.Agent(this, 'Agent', {
  foundationModel: bedrock.BedrockFoundationModel.AMAZON_NOVA_LITE_V1,
  instruction: 'You are a helpful assistant.',
  promptOverrideConfiguration: bedrock.PromptOverrideConfiguration.withCustomParser({
    parser: parserFunction,
    preProcessingStep: {
      stepType: bedrock.AgentStepType.PRE_PROCESSING,
      useCustomParser: true
    }
  })
});
```

## Properties

- `actionGroups`: [AgentActionGroup](/cdk/api/v2/docs/@aws-cdk_aws-bedrock-alpha.AgentActionGroup.html)[] — The Action Groups associated with the agent.

  **Default:** Only default action groups (UserInput and CodeInterpreter) are added

- `agentCollaboration`: [AgentCollaboration](/cdk/api/v2/docs/@aws-cdk_aws-bedrock-alpha.AgentCollaboration.html) — Configuration for agent collaboration settings, including AgentCollaboratorType and AgentCollaborators.

  **Default:** No agent collaboration configuration.

  This property allows you to define how the agent collaborates with other agents
  and what collaborators it can work with.

- `agentName`: string — The name of the agent.

  **Default:** A name is generated by CDK. Supported pattern : ^([0-9a-zA-Z][_-]?){1,100}$

  This will be used as the physical name of the agent.

- `codeInterpreterEnabled`: boolean = false — Select whether the agent can generate, run, and troubleshoot code when trying to complete a task.

- `customOrchestrationExecutor`: [CustomOrchestrationExecutor](/cdk/api/v2/docs/@aws-cdk_aws-bedrock-alpha.CustomOrchestrationExecutor.html) — The Lambda function to use for custom orchestration.

  **Default:** Default orchestration

  If provided, custom orchestration will be used.
  If not provided, default orchestration will be used.

- `description`: string — A description of the agent.

  **Default:** No description is provided.

- `existingRole`: [IRole](/cdk/api/v2/docs/aws-cdk-lib.aws_iam.IRole.html) — An existing IAM Role to associate with this agent.

  **Default:** A new role is created for you.

  Use this property when you want to reuse an existing IAM role rather than create a new one.
  The role must have a trust policy that allows the Bedrock service to assume it.

- `forceDelete`: boolean = false — Whether to delete the resource even if it's in use.

- `foundationModel`: [IBedrockInvokable](/cdk/api/v2/docs/@aws-cdk_aws-bedrock-alpha.IBedrockInvokable.html) (required) — The foundation model used for orchestration by the agent.

- `guardrail`: [IGuardrail](/cdk/api/v2/docs/@aws-cdk_aws-bedrock-alpha.IGuardrail.html) — The guardrail that will be associated with the agent.

  **Default:** No guardrail is provided.

- `idleSessionTTL`: [Duration](/cdk/api/v2/docs/aws-cdk-lib.Duration.html) — How long sessions should be kept open for the agent.

  **Default:** 10 minutes

  If no conversation occurs
  during this time, the session expires and Amazon Bedrock deletes any data
  provided before the timeout.

- `instruction`: string (required) — The instruction used by the agent.

  This determines how the agent will perform his task.
  This instruction must have a minimum of 40 characters.

- `kmsKey`: [IKey](/cdk/api/v2/docs/aws-cdk-lib.aws_kms.IKey.html) — The KMS key of the agent if custom encryption is configured.

  **Default:** An AWS managed key is used.

- `memory`: [Memory](/cdk/api/v2/docs/@aws-cdk_aws-bedrock-alpha.Memory.html) — The type and configuration of the memory to maintain context across multiple sessions and recall past interactions.

  **Default:** No memory will be used. Agents will retain context from the current session only.

  This can be useful for maintaining continuity in multi-turn conversations and recalling user preferences
  or past interactions.

- `promptOverrideConfiguration`: [PromptOverrideConfiguration](/cdk/api/v2/docs/@aws-cdk_aws-bedrock-alpha.PromptOverrideConfiguration.html) — Overrides some prompt templates in different parts of an agent sequence configuration.

  **Default:** No overrides are provided.

- `shouldPrepareAgent`: boolean = false — Specifies whether to automatically update the `DRAFT` version of the agent after making changes to the agent.

  The `DRAFT` version can be continually iterated
  upon during internal development.

- `userInputEnabled`: boolean = false — Select whether the agent can prompt additional information from the user when it does not have enough information to respond to an utterance.
