AI Architecture Reference · AWS Bedrock · Multi-Agent

6R-ARF Bedrock
Prompt Architecture

How the 6R Application Rationalization Framework's AI agents are prompted, how they pass context between each other, and how model instructions map to 6R outputs. The same agent swarm that powered the 36-app healthcare engagement and the Digital Twin Simulator.

← Back to Demo Hub
Multi-Agent Design
The Agent Swarm

6R-ARF uses Amazon Bedrock's native multi-agent framework. Five agents run in a coordinated pipeline — each with a specific instruction set, tool access, and output contract. No custom orchestration code. Bedrock handles conversation state, action group routing, and guardrails.

🤖 Orchestrator Agent Claude Sonnet 4.6 · Iterates application backlog 📊 Telemetry Agent APM · CPU/RAM · Idle detection 🔗 Dependency Agent Graph traversal · Blast radius 📋 Procurement Agent Contracts · SaaS alternatives ⚙️ Provisioning Agent CMDB · Right-sizing ROI ⚗️ Synthesizer Agent 6R recommendation · Confidence · ROI Missing intel list PARALLEL EXECUTION
System Prompts
Agent Instruction Design

Each agent carries a specific system prompt that constrains its scope, defines its tools, and specifies its output format. This is what makes the recommendations defensible — every agent has a single job and a structured output contract.

🤖 Orchestrator — System Prompt
You are the 6R-ARF Orchestrator. For each application in the backlog:
1. Retrieve the application profile from the CMDB tool
2. Invoke the Telemetry, Dependency, and Procurement agents in parallel
3. Wait for all three to complete
4. Invoke the Provisioning agent with dependency results
5. Pass all outputs to the Synthesizer
6. Store the Synthesizer output to DynamoDB

// Timeout: 30s per action group
// On failure: mark dimension unavailable, reduce confidence
📊 Telemetry Agent — System Prompt
You analyze server utilization for a single application.
Use get_application_profile() to retrieve CPU/RAM metrics.
Use get_dependencies() to identify network traffic patterns.

Output JSON with:
- utilization_profile: zombie|oversized|moderate|healthy
- peak_cpu_pct, avg_cpu_pct, peak_ram_pct
- idle_hours_per_day
- right_sizing_recommendation

// Tools: MCP Graph Server (read-only)
🔗 Dependency Agent — System Prompt
You map application dependencies and assess migration risk.
Use get_dependencies(hop_depth=2) for upstream/downstream.
Use get_blast_radius() to quantify impact of migration.
Use detect_circular_dependencies() to flag blockers.

Output JSON with:
- upstream_count, downstream_count
- blast_radius_servers, blast_radius_apps
- circular_dependencies: boolean
- migration_risk: low|medium|high|critical

// Tools: MCP Graph Server (read-only)
📋 Procurement Agent — System Prompt
You identify SaaS alternatives and contract intelligence.
Use search_contracts(vendor_name) for renewal dates and costs.
Use search_market_intel(app_name) for SaaS migration paths.

Output JSON with:
- saas_alternative_available: boolean
- saas_vendor, saas_product
- contract_renewal_date
- estimated_saas_cost_delta
- repurchase_confidence: 0-100

// Tools: MCP Vector Server (read-only)
⚙️ Provisioning Agent — System Prompt
You calculate right-sizing ROI using CMDB and telemetry.
Receives dependency analysis as input context.
Use get_application_profile() for current VM specs.

Output JSON with:
- current_cores, current_ram_gb
- recommended_cores, recommended_ram_gb
- annual_savings_usd
- right_sizing_confidence: 0-100

// Runs after Dependency Agent completes
⚗️ Synthesizer Agent — System Prompt
You produce the final 6R recommendation from all agent outputs.
Apply the 6R decision framework in priority order:
RETAIN if life-safety or latency-critical
RETIRE if redundant and dependencies confirmed zero
REPURCHASE if SaaS alternative confirmed available
REFACTOR if internally developed and serverless viable
REPLATFORM if database-heavy and managed DB viable
REHOST as default for virtual workloads

Output: recommended_6r, confidence_score, roi_projection,
roi_variance, rationale_text, missing_intelligence_list
Data Handoff
How Prompts Move Data Between Layers

Each agent call is a structured data handoff. The Orchestrator passes application context down. Specialists return structured JSON. The Synthesizer correlates all outputs into a single recommendation. This is the data flow that powers every dashboard.

📥
1. Context In
application_id
vendor
vm_count
criticality
epic_integration
From DynamoDB
🔧
2. Tool Calls
get_application_profile()
get_dependencies()
get_blast_radius()
search_contracts()
search_market_intel()
Via MCP Servers
📊
3. Agent Outputs
utilization_profile
blast_radius
saas_alternative
right_sizing_roi
contract_renewal
Structured JSON
⚗️
4. Synthesis
6R decision logic
confidence scoring
ROI calculation
variance bounds
missing intel list
Synthesizer Agent
📤
5. Output
recommended_6r
confidence_score
roi_projection
rationale_text
missing_intel
To DynamoDB
Design Rationale
Why This Prompt Design

Three principles drove every prompt decision: single responsibility, structured output, and explicit uncertainty.

Single Responsibility

Each agent has one job. The Telemetry Agent never touches contracts. The Procurement Agent never touches network flows. This prevents hallucination cross-contamination and makes each output independently auditable.

Structured Output Contracts

Every agent returns typed JSON with defined fields. The Synthesizer validates all inputs before producing a recommendation. If a field is missing, the confidence score drops proportionally — the system never silently ignores missing data.

Explicit Uncertainty

The Synthesizer is instructed to populate missing_intelligence_list with exactly what data would improve the recommendation. This turns every low-confidence output into an actionable data collection roadmap — not just a warning.

MCP Tool Isolation

Agents never write SQL or API queries. They call named MCP tools with typed parameters. The MCP servers enforce read-only access to Neptune and OpenSearch. This means agents cannot accidentally modify production data.

Parallel Execution

Telemetry and Procurement run in parallel — they have no data dependency on each other. Dependency must complete before Provisioning (blast radius informs right-sizing). This cuts total analysis time by ~40% vs sequential execution.

Bedrock Guardrails

Amazon Bedrock's built-in guardrails prevent agents from producing recommendations that violate HIPAA constraints. PHI-handling applications without a valid BAA are automatically flagged — the model cannot override this gate.

Simulation Layer
Digital Twin Extension

The Digital Twin adds a sixth simulation layer on top of the standard agent swarm. The same agents run, but now they have access to the full dependency graph and telemetry time-series — enabling wave rehearsal and blast radius simulation before any production change.

Standard 6R-ARF
Agents analyze current state
Recommendations based on point-in-time data
Confidence scores reflect data quality
ROI projections with variance bounds
Cannot simulate future state
Cannot detect wave-level dependency breaks
★ Digital Twin Premium
Everything in Standard
Agents simulate migrated state
Wave rehearsal detects split stacks
Blast radius modeled before cutover
Right-sizing validated against 30-day telemetry
Co-dependency groups identified automatically
Open Digital Twin Simulator ↗