The Email Triage use case automates email processing for capital markets trading desks by coordinating email classification and action extraction. It categorizes incoming emails by type (client requests, trade instructions, compliance alerts, market updates, internal memos, meeting requests), assesses urgency and sender importance, extracts action items with deadlines, and produces prioritized triage summaries for traders and portfolio managers.
- Faster response times -- automated urgency assessment and action extraction ensure time-sensitive trade instructions are surfaced immediately
- Prioritized workflow -- sender importance scoring and category classification help trading desks focus on high-impact communications first
- Deadline tracking -- explicit extraction of deadlines and SLAs prevents missed time-sensitive requests
- Reduced cognitive load -- structured triage summaries with recommended responses replace manual email scanning
- Compliance awareness -- compliance alerts are automatically flagged and prioritized alongside trade-related communications
graph TB
Request["Client Request"] --> Runtime["AgentCore Runtime"]
Runtime --> Orchestrator["Orchestrator"]
Orchestrator --> Classifier["Email Classifier<br/><small>Category, urgency & topic identification</small>"]
Orchestrator --> Extractor["Action Extractor<br/><small>Action items, deadlines & priorities</small>"]
Classifier --> Bedrock["Amazon Bedrock<br/>(Claude)"]
Extractor --> Bedrock
Classifier --> S3["S3 Sample Data"]
Extractor --> S3
Classifier --> Synthesis["Result Synthesis"]
Extractor --> Synthesis
Synthesis --> Response["Response"]
use_cases/email_triage/
├── README.md
└── src/
└── strands/
├── __init__.py
├── config.py # EmailTriageSettings
├── models.py # Pydantic request/response models
├── orchestrator.py # EmailTriageOrchestrator + run_email_triage()
└── agents/
├── __init__.py
├── email_classifier.py
└── action_extractor.py
The orchestrator uses a parallel fan-out pattern with a two-agent design. In full mode, both agents execute concurrently via asyncio.gather. Individual modes (classification, action_extraction) invoke a single agent. The orchestrator synthesizes results through a structured prompt that produces JSON with category, urgency, sender importance, topics, actions, deadlines, and prioritization recommendations.
| Agent | Role | Data Used | Output |
|---|---|---|---|
| Email Classifier | Classifies emails by content category (6 types), assesses sender importance (0-1 score) based on role/seniority/client relationship, determines urgency level, identifies key topics and workflow relevance | Email profile via s3_retriever_tool |
Category, urgency level, sender importance score, key topics, workflow relevance |
| Action Extractor | Extracts explicit and implicit action items, identifies deadlines and SLAs, captures key information (amounts, securities, counterparties, account numbers), prioritizes by urgency and business impact | Email profile via s3_retriever_tool |
Action items with assignees, deadlines, key information extracted, priority ranking, suggested next steps |
- Tool:
s3_retriever_tool-- retrieves email profiles and content from S3 - S3 data prefix:
samples/email_triage/ - Model: Claude Sonnet (via Amazon Bedrock), temperature 0.1, max 8192 tokens
- Config thresholds:
urgency_threshold=0.7,classification_confidence_threshold=0.8,max_actions_per_email=10
Request -- TriageRequest:
| Field | Type | Description |
|---|---|---|
entity_id |
str |
Email or batch identifier (e.g., EMAIL001) |
triage_type |
TriageType |
full, classification, action_extraction |
additional_context |
str | None |
Optional context |
Response -- TriageResponse:
| Field | Type | Description |
|---|---|---|
entity_id |
str |
Email identifier |
triage_id |
str |
Unique triage UUID |
timestamp |
datetime |
Triage timestamp |
classification |
ClassificationDetail | None |
Category, urgency, sender importance, topics, actions required, deadlines |
recommendations |
list[str] |
Prioritization recommendations |
summary |
str |
Executive summary |
raw_analysis |
dict |
Raw agent output |
# Deploy to AgentCore
USE_CASE_ID=email_triage ./scripts/deploy/full/deploy_agentcore.sh
# Test the deployment
./scripts/use_cases/email_triage/test/test_agentcore.shLocated at data/samples/email_triage/
| Entity ID | Sender Role | Subject | Description |
|---|---|---|---|
| EMAIL001 | Portfolio Manager | Urgent: Rebalance Request - Tech Sector Exposure | Hedge fund PM requesting 15% tech sector reduction before market close, includes trade instructions attachment, priority indicators: urgent + market close deadline |