* Update README.md Signed-off-by: Eashan Kaushik <50113394+EashanKaushik@users.noreply.github.com> * Update README.md Signed-off-by: Eashan Kaushik <50113394+EashanKaushik@users.noreply.github.com> * Update README.md Signed-off-by: Eashan Kaushik <50113394+EashanKaushik@users.noreply.github.com> * Update README.md Signed-off-by: Eashan Kaushik <50113394+EashanKaushik@users.noreply.github.com> --------- Signed-off-by: Eashan Kaushik <50113394+EashanKaushik@users.noreply.github.com>
9.5 KiB
Customer Support Agent
Important
The examples provided in this repository are for experimental and educational purposes only. They demonstrate concepts and techniques but are not intended for direct use in production environments.
This is a customer support agent implementation using AWS Bedrock AgentCore framework. The system provides an AI-powered customer support interface with capabilities for warranty checking, customer profile management, Google calendar integration, and Amazon Bedrock Knowledge Base retrieval.
Table of Contents
- Customer Support Agent
Prerequisites
AWS Account Setup
-
AWS Account: You need an active AWS account with appropriate permissions
-
AWS CLI: Install and configure AWS CLI with your credentials
aws configure
-
Bedrock Model Access: Enable access to Amazon Bedrock Anthropic Claude 4.0 models in your AWS region
- Navigate to Amazon Bedrock Console
- Go to "Model access" and request access to:
- Anthropic Claude 4.0 Sonnet model
- Anthropic Claude 3.5 Haiku model
- Bedrock Model Access Guide
-
Python 3.10+: Required for running the application
-
Create OAuth 2.0 credentials for calendar access : For Google Calendar integration
- Follow Google OAuth Setup
Deploy
-
Create infrastructure
python -m venv .venv source .venv/bin/activate pip install -r dev-requirements.txt chmod +x scripts/prereq.sh ./scripts/prereq.sh chmod +x scripts/list_ssm_parameters.sh ./scripts/list_ssm_parameters.sh
Caution
Please prefix all the resource name with
customersupport
. -
Create Agentcore Gateway
python scripts/agentcore_gateway.py create --name customersupport-gw
-
Setup Agentcore Identity
- Setup Cognito Credential Provider
python scripts/cognito_credentials_provider.py create --name customersupport-gateways python test/test_gateway.py --prompt "Check warranty with serial number MNO33333333"
- Setup Google Credential Provider
Follow instructions to setup Google Credentials.
python scripts/google_credentials_provider.py create --name customersupport-google-calendar python test/test_google_tool.py
-
Create Memory
python scripts/agentcore_memory.py create --name customersupport python test/test_memory.py load-conversation python test/test_memory.py load-prompt "My preference of gaming console is V5 Pro" python test/test_memory.py list-memory
-
Setup Agent Runtime
Caution
Please ensure the name of the agent starts with
customersupport
.
agentcore configure --entrypoint main.py -er arn:aws:iam::<Account-Id>:role/<Role> --name customersupport<AgentName>
Use ./scripts/list_ssm_parameters.sh
to fill:
Role = ValueOf(/app/customersupport/agentcore/runtime_iam_role)
OAuth Discovery URL = ValueOf(/app/customersupport/agentcore/cognito_discovery_url)
OAuth client id = ValueOf(/app/customersupport/agentcore/web_client_id)
.
Caution
Please make sure to delete
.agentcore.yaml
before running agentcore launch.
rm .agentcore.yaml
agentcore launch
python test/test_agent.py customersupport<AgentName> -p "Hi"
- Local Host Streamlit UI
Caution
Streamlit app should only run on port
8501
.
streamlit run app.py --server.port 8501 -- --agent=customersupport<AgentName>
Sample Queries
-
I have a Gaming Console Pro device , I want to check my warranty status, warranty serial number is MNO33333333.
-
What are the warranty support guidelines ?
-
What’s my agenda for today?
-
Can you create an event to setup call to renew warranty?
-
I have overheating issues with my device, help me debug.
Scripts
Amazon Bedrock AgentCore Gateway
Create Amazon Bedrock AgentCore Gateway
python scripts/agentcore_gateway.py create --name my-gateway
python scripts/agentcore_gateway.py create --name my-gateway --api-spec-file custom/path.json
Delete Amazon Bedrock AgentCore Gateway
# Delete gateway (reads from gateway.config automatically)
python scripts/agentcore_gateway.py delete
# Delete with confirmation skip
python scripts/agentcore_gateway.py delete --confirm
Amazon Bedrock AgentCore Memory
Create Amazon Bedrock AgentCore Memory
python scripts/agentcore_memory.py create --name MyMemory
python scripts/agentcore_memory.py create --name MyMemory --event-expiry-days 60
Delete Amazon Bedrock AgentCore Memory
# Delete memory (reads from SSM automatically)
python scripts/agentcore_memory.py delete
# Delete with confirmation skip
python scripts/agentcore_memory.py delete --confirm
Cognito Credentials Provider
Create Cognito Credentials Provider
python scripts/cognito_credentials_provider.py create --name customersupport-gateways
Delete Cognito Credentials Provider
# Delete provider (reads name from SSM automatically)
python scripts/cognito_credentials_provider.py delete
# Delete specific provider by name
python scripts/cognito_credentials_provider.py delete --name customersupport-gateways
# Delete with confirmation skip
python scripts/cognito_credentials_provider.py delete --confirm
Google Credentials Provider
Create Credentials Provider
python scripts/google_credentials_provider.py create --name customersupport-google-calendar
python scripts/google_credentials_provider.py create --name my-provider --credentials-file /path/to/credentials.json
Delete Credentials Provider
# Delete provider (reads name from SSM automatically)
python scripts/google_credentials_provider.py delete
# Delete specific provider by name
python scripts/google_credentials_provider.py delete --name customersupport-google-calendar
# Delete with confirmation skip
python scripts/google_credentials_provider.py delete --confirm
Agent Runtime
Delete Agent Runtime
# Delete specific agent runtime by name
python scripts/agentcore_agent_runtime.py customersupport
# Preview what would be deleted without actually deleting
python scripts/agentcore_agent_runtime.py --dry-run customersupport
# Delete any agent runtime by name
python scripts/agentcore_agent_runtime.py <agent-name>
Cleanup
chmod +x scripts/cleanup.sh
./scripts/cleanup.sh
python scripts/google_credentials_provider.py delete
python scripts/cognito_credentials_provider.py delete
python scripts/agentcore_memory.py delete
python scripts/agentcore_gateway.py delete
python scripts/agentcore_agent_runtime.py customersupport<AgentName>
rm .agentcore.yaml
rm .bedrock_agentcore.yaml
🤝 Contributing
We welcome contributions! Please see our Contributing Guidelines for details on:
- Adding new samples
- Improving existing examples
- Reporting issues
- Suggesting enhancements
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🆘 Support
- Issues: Report bugs or request features via GitHub Issues
- Documentation: Check individual folder READMEs for specific guidance
🔄 Updates
This repository is actively maintained and updated with new capabilities and examples. Watch the repository to stay updated with the latest additions.