Metadata-Version: 2.1
Name: substrai-cdk-bedrock-agent
Version: 0.2.0
Summary: AWS CDK construct for deploying production-ready Bedrock AI agents with Lambda, DynamoDB, and OpenSearch
Home-page: https://github.com/substrai/cdk-bedrock-agent
Author: Gaurav Kumar Sinha<gaurav@substrai.dev>
License: MIT
Project-URL: Source, https://github.com/substrai/cdk-bedrock-agent.git
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: JavaScript
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Typing :: Typed
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved
Requires-Python: ~=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aws-cdk-lib<3.0.0,>=2.100.0
Requires-Dist: constructs<11.0.0,>=10.0.0
Requires-Dist: jsii<2.0.0,>=1.132.0
Requires-Dist: publication>=0.0.3
Requires-Dist: typeguard==2.13.3

# substrai-cdk-bedrock-agent

AWS CDK construct for deploying production-ready Bedrock AI agents with Lambda, DynamoDB, and OpenSearch.

## Installation

```bash
pip install substrai-cdk-bedrock-agent
```

## Usage

```python
from aws_cdk import App, Stack
from substrai_cdk_bedrock_agent import BedrockAgentConstruct, BedrockAgentProps

app = App()
stack = Stack(app, "AgentStack")

agent = BedrockAgentConstruct(stack, "MyAgent", props=BedrockAgentProps(
    agent_name="my-assistant",
    model_id="anthropic.claude-3-5-sonnet-20241022-v2:0",
    lambda_code_path="./agent_lambda",
    lambda_memory_mb=1024,
    session_ttl_days=14,
))

# Access created resources
print(agent.agent_function.function_arn)
print(agent.session_table.table_name)
```

## What Gets Deployed

* **Lambda Function** — Agent logic with configurable runtime, memory, and timeout
* **DynamoDB Table** — Session state with TTL auto-expiry and point-in-time recovery
* **IAM Role** — Least-privilege permissions for Bedrock and DynamoDB
* **CloudWatch Log Group** — 2-week retention with structured logging
* **CloudWatch Alarms** — Error rate and P99 latency monitoring
* **X-Ray Tracing** — Active tracing enabled by default

## Configuration

| Property | Default | Description |
|----------|---------|-------------|
| `agent_name` | (required) | Name for all resources |
| `model_id` | `claude-3-5-sonnet` | Bedrock model identifier |
| `lambda_memory_mb` | 512 | Lambda memory allocation |
| `lambda_timeout_seconds` | 300 | Lambda timeout |
| `session_ttl_days` | 7 | DynamoDB session expiry |
| `alarm_error_threshold` | 5.0 | Error rate alarm (%) |
| `alarm_latency_threshold_ms` | 10000 | P99 latency alarm (ms) |

## License

MIT
