<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Girish Mukim</title>
    <description>The latest articles on DEV Community by Girish Mukim (@girishmukim).</description>
    <link>https://dev.to/girishmukim</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F884165%2Ff893dcd2-3456-4eaa-bfbc-22232ac35175.png</url>
      <title>DEV Community: Girish Mukim</title>
      <link>https://dev.to/girishmukim</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/girishmukim"/>
    <language>en</language>
    <item>
      <title>BeSA Batch 09 Week6 - Supercharge Development with Kiro | Build Your AI-Enhanced SA Practice</title>
      <dc:creator>Girish Mukim</dc:creator>
      <pubDate>Sat, 28 Mar 2026 22:33:47 +0000</pubDate>
      <link>https://dev.to/girishmukim/besa-batch-09-week6-supercharge-development-with-kiro-build-your-ai-enhanced-sa-practice-2fm7</link>
      <guid>https://dev.to/girishmukim/besa-batch-09-week6-supercharge-development-with-kiro-build-your-ai-enhanced-sa-practice-2fm7</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl6kidy0zj98bzfzyr51h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl6kidy0zj98bzfzyr51h.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;BeSA Batch 09 – Week 6&lt;br&gt;
AI-Driven Development with Kiro and Building an AI-Enhanced SA Practice&lt;/p&gt;

&lt;p&gt;Disclaimer:&lt;br&gt;
These notes were drafted using AI for clarity, structure, and readability. They are intended solely for learning purposes.&lt;/p&gt;

&lt;p&gt;These are the structured notes from Week 6, focused only on the two role plays. Writing this as a quick revision for those who attended the session and a concise recap for anyone who couldn’t make it.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Role Play 1&lt;/strong&gt; – Supercharging Development with Kiro&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This conversation focused on AI-driven software development and how tools like Kiro are changing the way applications are built—from idea to production.&lt;/p&gt;

&lt;p&gt;Getting Started with AI-Driven Development&lt;/p&gt;

&lt;p&gt;To build AI-powered applications, a few foundational components are required:&lt;/p&gt;

&lt;p&gt;Infrastructure&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compute layer to run AI workloads&lt;/li&gt;
&lt;li&gt;Can include specialized AI hardware options&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Foundation models&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Serve as the “brain” of the system&lt;/li&gt;
&lt;li&gt;Accessed through managed services&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Supporting services&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Orchestration&lt;/li&gt;
&lt;li&gt;Memory&lt;/li&gt;
&lt;li&gt;Knowledge bases&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once these are in place, developers can start building applications using tools like Kiro or other AI-assisted development environments.&lt;/p&gt;

&lt;p&gt;Traditional vs AI-Optimized Infrastructure&lt;/p&gt;

&lt;p&gt;It was clarified that traditional compute (like EC2) can still be used.&lt;/p&gt;

&lt;p&gt;However, optimized AI infrastructure provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better performance&lt;/li&gt;
&lt;li&gt;Lower cost&lt;/li&gt;
&lt;li&gt;Improved scalability&lt;/li&gt;
&lt;li&gt;More specialized capabilities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The shift is toward purpose-built AI compute rather than general-purpose infrastructure.&lt;/p&gt;

&lt;p&gt;Evolution of AI Development Tools&lt;/p&gt;

&lt;p&gt;The progression of AI-assisted development was explained in three stages:&lt;/p&gt;

&lt;p&gt;Autocomplete phase (around 2023)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Basic code suggestions&lt;/li&gt;
&lt;li&gt;Similar to enhanced IntelliSense&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Assistant phase (around 2024)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Interactive AI assistants&lt;/li&gt;
&lt;li&gt;Developers could ask questions and get help&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agentic development phase (current)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI agents actively participate in development&lt;/li&gt;
&lt;li&gt;Assist in planning, design, and execution&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This represents a shift from assistance → collaboration → partial autonomy.&lt;/p&gt;

&lt;p&gt;Benefits of AI-Driven Development&lt;/p&gt;

&lt;p&gt;Key benefits highlighted:&lt;/p&gt;

&lt;p&gt;Faster time to market&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rapid creation of MVPs&lt;/li&gt;
&lt;li&gt;Faster experimentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Increased productivity&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers can focus on higher-level problems&lt;/li&gt;
&lt;li&gt;AI handles repetitive tasks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Developer autonomy&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agents can take decisions and execute tasks&lt;/li&gt;
&lt;li&gt;Developers and agents work together&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Improved code quality (with proper guidance)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Structured workflows can lead to better outcomes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Challenges to Be Aware Of&lt;/p&gt;

&lt;p&gt;Some limitations and risks were also discussed:&lt;/p&gt;

&lt;p&gt;Scaling AI development&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No centralized way to manage all knowledge and context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Black box behavior&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Limited visibility into how outputs are generated&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Control limitations&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hard to fully control agent behavior&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Code quality concerns&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Outputs need validation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These challenges reinforce the need for structured approaches.&lt;/p&gt;

&lt;p&gt;Vibe Coding vs Structured Development&lt;/p&gt;

&lt;p&gt;A distinction was made between quick coding approaches and structured development.&lt;/p&gt;

&lt;p&gt;Vibe coding&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fast, iterative, “build as you go” approach&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Small UI changes&lt;/li&gt;
&lt;li&gt;Quick fixes&lt;/li&gt;
&lt;li&gt;Simple enhancements&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Limitations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Not scalable&lt;/li&gt;
&lt;li&gt;Not suitable for complex systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Structured (spec-driven) development&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Starts with requirements and design&lt;/li&gt;
&lt;li&gt;Follows a defined process&lt;/li&gt;
&lt;li&gt;Suitable for production systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Key idea:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use vibe coding for prototyping&lt;/li&gt;
&lt;li&gt;Use structured development for production&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Spec-Driven Development with Kiro&lt;/p&gt;

&lt;p&gt;Kiro introduces a specification-driven workflow.&lt;/p&gt;

&lt;p&gt;Flow:&lt;/p&gt;

&lt;p&gt;Requirement → Design → Tasks → Implementation&lt;/p&gt;

&lt;p&gt;Instead of jumping directly into coding, the process ensures:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clear requirements&lt;/li&gt;
&lt;li&gt;Defined architecture&lt;/li&gt;
&lt;li&gt;Predictable execution&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This reduces ambiguity and improves scalability.&lt;/p&gt;

&lt;p&gt;Core Concepts in Kiro&lt;/p&gt;

&lt;p&gt;Specification&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Defines what needs to be built&lt;/li&gt;
&lt;li&gt;Acts as a contract&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Design&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Defines how the system will be built&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tasks&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Break down implementation steps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Steering files&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Guide the agent during development&lt;/li&gt;
&lt;li&gt;Act like constraints or guardrails&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Key insight:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clear specifications reduce back-and-forth with AI&lt;/li&gt;
&lt;li&gt;Provide better control over outcomes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agentic Development Environment&lt;/p&gt;

&lt;p&gt;Kiro acts as an agentic development environment where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI understands relationships between files&lt;/li&gt;
&lt;li&gt;Changes propagate across requirements, design, and code&lt;/li&gt;
&lt;li&gt;Context is maintained across the system&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This enables:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Consistency&lt;/li&gt;
&lt;li&gt;Better traceability&lt;/li&gt;
&lt;li&gt;Faster iteration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pricing Model&lt;/p&gt;

&lt;p&gt;The pricing model consists of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subscription cost&lt;/li&gt;
&lt;li&gt;Usage-based cost (based on model usage/credits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Higher-capability models cost more, while lighter models are cheaper.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Role Play 2&lt;/strong&gt; – Building Your AI-Enhanced SA Practice&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This conversation focused on how solutions architects can systematically integrate AI into their daily workflow and build a consistent AI-enabled practice.&lt;/p&gt;

&lt;p&gt;From Occasional Use to Systematic Practice&lt;/p&gt;

&lt;p&gt;A key shift discussed:&lt;/p&gt;

&lt;p&gt;From:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Using AI occasionally&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Building a consistent AI-driven workflow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This transition enables compounding benefits over time.&lt;/p&gt;

&lt;p&gt;AI Toolkit Categories&lt;/p&gt;

&lt;p&gt;A structured toolkit approach was recommended.&lt;/p&gt;

&lt;p&gt;Four categories:&lt;/p&gt;

&lt;p&gt;General-purpose AI tools&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used for broad tasks like research and drafting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Development tools&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Integrated into IDEs&lt;/li&gt;
&lt;li&gt;Used for coding and architecture generation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Specialized tools&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Example: diagram generation tools&lt;/li&gt;
&lt;li&gt;Convert text into structured outputs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enterprise AI tools&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used for sensitive data&lt;/li&gt;
&lt;li&gt;Include governance and compliance controls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Choosing the right tool depends on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Task type&lt;/li&gt;
&lt;li&gt;Data sensitivity&lt;/li&gt;
&lt;li&gt;Context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Daily Workflow Integration&lt;/p&gt;

&lt;p&gt;A structured daily workflow was outlined.&lt;/p&gt;

&lt;p&gt;Morning briefing&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provide AI with context for the day&lt;/li&gt;
&lt;li&gt;Set expectations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pre-meeting preparation&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Research customer&lt;/li&gt;
&lt;li&gt;Understand industry and tech stack&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;During engagement&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quick lookups&lt;/li&gt;
&lt;li&gt;Cost comparisons&lt;/li&gt;
&lt;li&gt;Service evaluations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Post-meeting analysis&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Paste notes into AI&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Extract:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Requirements&lt;/li&gt;
&lt;li&gt;Risks&lt;/li&gt;
&lt;li&gt;Action items&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Periodic review&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identify patterns across engagements&lt;/li&gt;
&lt;li&gt;Improve approach over time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This creates a continuous feedback loop.&lt;/p&gt;

&lt;p&gt;Prompt Library&lt;/p&gt;

&lt;p&gt;A key practice is maintaining a reusable prompt library.&lt;/p&gt;

&lt;p&gt;Common categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Discovery questions&lt;/li&gt;
&lt;li&gt;Architecture generation&lt;/li&gt;
&lt;li&gt;Cost analysis&lt;/li&gt;
&lt;li&gt;Security reviews&lt;/li&gt;
&lt;li&gt;Documentation templates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Saves time&lt;/li&gt;
&lt;li&gt;Standardizes quality&lt;/li&gt;
&lt;li&gt;Enables team-wide improvement&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;End-to-End Use of AI in Engagements&lt;/p&gt;

&lt;p&gt;Example workflow for a new customer:&lt;/p&gt;

&lt;p&gt;Discovery phase&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI-assisted research&lt;/li&gt;
&lt;li&gt;Faster understanding of customer context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Post-call analysis&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extract structured insights from notes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Design phase&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generate multiple architecture options&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Refinement phase&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Apply human judgment&lt;/li&gt;
&lt;li&gt;Adapt to real constraints&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI typically gets the solution:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;60–70% complete&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Human expertise takes it to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;90%+ completeness&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Where Human Judgment Matters&lt;/p&gt;

&lt;p&gt;Three key areas where AI cannot replace architects:&lt;/p&gt;

&lt;p&gt;Understanding human context&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Team dynamics&lt;/li&gt;
&lt;li&gt;Risk tolerance&lt;/li&gt;
&lt;li&gt;Organizational constraints&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Making trade-offs&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Decisions under uncertainty&lt;/li&gt;
&lt;li&gt;Balancing competing priorities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Communication strategy&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tailoring message for stakeholders&lt;/li&gt;
&lt;li&gt;Deciding what to present and how&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Key idea:&lt;br&gt;
AI can generate content, but cannot decide strategy.&lt;/p&gt;

&lt;p&gt;Responsible Use of AI&lt;/p&gt;

&lt;p&gt;Guidelines for safe usage:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Avoid sharing sensitive or regulated data in public tools&lt;/li&gt;
&lt;li&gt;Use anonymization where required&lt;/li&gt;
&lt;li&gt;Prefer enterprise-approved tools for customer data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Three key checks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is the data public?&lt;/li&gt;
&lt;li&gt;Is it customer-identifiable?&lt;/li&gt;
&lt;li&gt;Is it regulated?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Transparency with Customers&lt;/p&gt;

&lt;p&gt;Best practice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Be transparent about using AI&lt;/li&gt;
&lt;li&gt;Position it as part of your workflow&lt;/li&gt;
&lt;li&gt;Emphasize validation and judgment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Focus should remain on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quality of recommendations&lt;/li&gt;
&lt;li&gt;Customer outcomes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Action Plan&lt;/p&gt;

&lt;p&gt;Simple steps to get started:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pick one workflow and integrate AI&lt;/li&gt;
&lt;li&gt;Build a prompt library&lt;/li&gt;
&lt;li&gt;Engage with a learning community&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mindset Shift&lt;/p&gt;

&lt;p&gt;Final takeaway:&lt;/p&gt;

&lt;p&gt;AI does not replace core strengths of an architect.&lt;/p&gt;

&lt;p&gt;Key differentiators remain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Judgment&lt;/li&gt;
&lt;li&gt;Customer relationships&lt;/li&gt;
&lt;li&gt;Ability to synthesize complexity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI amplifies these strengths rather than replacing them.&lt;/p&gt;




&lt;p&gt;Week 6 Consolidated Takeaways&lt;/p&gt;

&lt;p&gt;From the first role play:&lt;br&gt;
AI-driven development is evolving toward agentic environments where structured, specification-driven workflows improve quality, scalability, and speed.&lt;/p&gt;

&lt;p&gt;From the second role play:&lt;br&gt;
Building a consistent AI-enabled workflow is critical for architects, with human judgment remaining the key differentiator in decision-making and communication.&lt;/p&gt;

&lt;p&gt;This final week brought together two important themes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How AI transforms software development workflows&lt;/li&gt;
&lt;li&gt;How professionals evolve their practices to effectively leverage AI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This concludes the 6-week learning series for BeSA Batch 09.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>aws</category>
      <category>solutionarchitect</category>
      <category>besa</category>
    </item>
    <item>
      <title>BeSA Batch 09 Week5 - Model Context Protocol in Practice and AI‑Powered Solution Validation</title>
      <dc:creator>Girish Mukim</dc:creator>
      <pubDate>Mon, 23 Mar 2026 22:15:35 +0000</pubDate>
      <link>https://dev.to/girishmukim/besa-batch-09-week5-model-context-protocol-in-practice-and-ai-powered-solution-validation-2dhk</link>
      <guid>https://dev.to/girishmukim/besa-batch-09-week5-model-context-protocol-in-practice-and-ai-powered-solution-validation-2dhk</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkyd202e8bc2waftf7pkf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkyd202e8bc2waftf7pkf.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Week 5 - Model Context Protocol in Practice and AI‑Powered Solution Validation&lt;br&gt;
Batch 09 – BeSA Cloud Academy&lt;/p&gt;

&lt;p&gt;Disclaimer:&lt;br&gt;
These notes were drafted using AI for clarity, structure, and readability. They are intended solely for learning purposes.&lt;/p&gt;

&lt;p&gt;These are the structured notes from Week 5, focused only on the two role plays. Writing this as a quick revision for those who attended the session and a concise recap for anyone who couldn’t make it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Role Play 1&lt;/strong&gt; – Understanding Model Context Protocol (MCP)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This conversation focused on understanding MCP (Model Context Protocol) and why it is becoming a foundational concept in agentic AI architectures.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Why MCP Matters&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When building AI agents that need to perform real actions, a key challenge is connecting the agent to external systems.&lt;/p&gt;

&lt;p&gt;Examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Querying databases&lt;/li&gt;
&lt;li&gt;Creating tickets&lt;/li&gt;
&lt;li&gt;Accessing APIs&lt;/li&gt;
&lt;li&gt;Checking inventory&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The core question becomes:&lt;br&gt;
How does the agent connect to all these tools in a scalable and standardized way?&lt;/p&gt;

&lt;p&gt;MCP addresses this problem.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What is MCP&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;MCP (Model Context Protocol) is an open protocol that standardizes how AI applications:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provide context to LLMs&lt;/li&gt;
&lt;li&gt;Enable access to tools and external systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Key idea:&lt;br&gt;
Instead of building custom integrations for every combination of client and tool, MCP provides a standard interface.&lt;/p&gt;

&lt;p&gt;Analogy used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Like a universal connector (similar to USB-C).&lt;/li&gt;
&lt;li&gt;Without MCP → every integration is custom.&lt;/li&gt;
&lt;li&gt;With MCP → one standard interface works everywhere.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From Custom Integrations to Standardization&lt;/p&gt;

&lt;p&gt;Before MCP:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Each AI client needed custom integration with each tool.&lt;/li&gt;
&lt;li&gt;This results in an N × M problem.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With MCP:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tools are built once as MCP servers.&lt;/li&gt;
&lt;li&gt;Any client can use them.&lt;/li&gt;
&lt;li&gt;This reduces complexity to an N + M model.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Key benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reduced engineering effort&lt;/li&gt;
&lt;li&gt;Better scalability&lt;/li&gt;
&lt;li&gt;Improved maintainability&lt;/li&gt;
&lt;li&gt;Strong alignment with architectural best practices&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alignment with Architecture Principles&lt;/p&gt;

&lt;p&gt;MCP aligns well with key architecture principles such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Designed for change&lt;/li&gt;
&lt;li&gt;Modular scalability&lt;/li&gt;
&lt;li&gt;Standardization&lt;/li&gt;
&lt;li&gt;Operational efficiency&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It also integrates easily with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;External data sources&lt;/li&gt;
&lt;li&gt;APIs&lt;/li&gt;
&lt;li&gt;Enterprise systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Core MCP Components&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The architecture was explained using a simple analogy.&lt;/p&gt;

&lt;p&gt;Host&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Acts as the control plane (e.g., Amazon Bedrock).&lt;/li&gt;
&lt;li&gt;Responsible for orchestrating communication.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MCP Clients&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Interact with the host.&lt;/li&gt;
&lt;li&gt;Represent the interface layer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MCP Servers&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provide specialized capabilities.&lt;/li&gt;
&lt;li&gt;Each server is responsible for a specific function (e.g., database access, ticketing).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The host mediates all communication between the model and MCP servers.&lt;/p&gt;

&lt;p&gt;Core Concepts for Agents&lt;/p&gt;

&lt;p&gt;Three key concepts were highlighted:&lt;/p&gt;

&lt;p&gt;Tools&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Functions the agent can invoke.&lt;/li&gt;
&lt;li&gt;Example: lookup employee, create ticket.&lt;/li&gt;
&lt;li&gt;Tool descriptions are critical because they guide the agent’s decision-making.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Resources&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data or documents the agent can read.&lt;/li&gt;
&lt;li&gt;Example: policy documents, knowledge bases.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prompts&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Predefined templates for structured interaction.&lt;/li&gt;
&lt;li&gt;Help users initiate consistent workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Summary:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tools → actions&lt;/li&gt;
&lt;li&gt;Resources → context&lt;/li&gt;
&lt;li&gt;Prompts → structured interaction&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Request Flow&lt;/p&gt;

&lt;p&gt;The typical flow works as follows:&lt;/p&gt;

&lt;p&gt;User input → Host → LLM (with tool descriptions)&lt;br&gt;
→ LLM selects tool → Host routes request to MCP Server&lt;br&gt;
→ Server returns data → LLM generates response&lt;/p&gt;

&lt;p&gt;Important point:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The LLM does not directly communicate with MCP servers.&lt;/li&gt;
&lt;li&gt;The host acts as a control layer for security and governance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Communication Methods&lt;/p&gt;

&lt;p&gt;Two communication mechanisms were discussed:&lt;/p&gt;

&lt;p&gt;stdio&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used for local processes on the same machine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;HTTP with Server-Sent Events&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used for remote and enterprise-grade integrations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Multi-Tool Orchestration&lt;/p&gt;

&lt;p&gt;Agents can use multiple tools in sequence.&lt;/p&gt;

&lt;p&gt;Example scenario:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check weather&lt;/li&gt;
&lt;li&gt;Find calendar availability&lt;/li&gt;
&lt;li&gt;Schedule an event&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The LLM handles reasoning and dependency between steps.&lt;/p&gt;

&lt;p&gt;Building MCP-Based Systems&lt;/p&gt;

&lt;p&gt;Typical steps involved:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create MCP server&lt;/li&gt;
&lt;li&gt;Register tools with clear descriptions&lt;/li&gt;
&lt;li&gt;Implement error handling&lt;/li&gt;
&lt;li&gt;Perform testing (unit, integration, natural language)&lt;/li&gt;
&lt;li&gt;Enable logging and debugging for traceability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Production Patterns on AWS&lt;/p&gt;

&lt;p&gt;Recommended approach:&lt;/p&gt;

&lt;p&gt;Lambda-backed MCP servers&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Serverless&lt;/li&gt;
&lt;li&gt;Scalable&lt;/li&gt;
&lt;li&gt;Cost-efficient&lt;/li&gt;
&lt;li&gt;Event-driven&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For long-running workflows:&lt;/p&gt;

&lt;p&gt;Use Bedrock Agent Core&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Supports long sessions (up to 8 hours)&lt;/li&gt;
&lt;li&gt;Provides session isolation&lt;/li&gt;
&lt;li&gt;Designed for stateful interactions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Security Considerations&lt;/p&gt;

&lt;p&gt;Security is critical when exposing tools to AI systems.&lt;/p&gt;

&lt;p&gt;Key practices:&lt;/p&gt;

&lt;p&gt;Principle of least privilege&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Assign minimal required permissions using IAM roles&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Human-in-the-loop&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Required for destructive or sensitive operations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Input validation&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prevent prompt injection or malicious inputs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Architectural decisions remain human-driven, especially for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scope definition&lt;/li&gt;
&lt;li&gt;Security boundaries&lt;/li&gt;
&lt;li&gt;Integration design&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Role Play 2&lt;/strong&gt; – AI-Powered Solution Validation&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This conversation focused on validating AI-generated architectures to ensure they are production-ready.&lt;/p&gt;

&lt;p&gt;While AI can generate solutions quickly, validation ensures they work in real-world conditions.&lt;/p&gt;

&lt;p&gt;Why Validation is Critical&lt;/p&gt;

&lt;p&gt;AI-generated architectures may:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Look correct&lt;/li&gt;
&lt;li&gt;Follow best practices&lt;/li&gt;
&lt;li&gt;But fail under real-world constraints&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Architects must validate designs across:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Technical feasibility&lt;/li&gt;
&lt;li&gt;Business constraints&lt;/li&gt;
&lt;li&gt;Organizational realities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI provides the technical baseline, but human validation ensures practical fit.&lt;/p&gt;

&lt;p&gt;Validation Framework&lt;/p&gt;

&lt;p&gt;A structured validation approach was discussed.&lt;/p&gt;

&lt;p&gt;Key dimensions:&lt;/p&gt;

&lt;p&gt;Context (Business Fit)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the architecture align with business goals?&lt;/li&gt;
&lt;li&gt;Does it match customer constraints?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Security and Compliance&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Are regulatory requirements met (e.g., PCI DSS)?&lt;/li&gt;
&lt;li&gt;Are encryption and segmentation implemented?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reliability and Performance&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can the system handle expected load?&lt;/li&gt;
&lt;li&gt;Are there bottlenecks?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cost Reality&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is the architecture cost-effective?&lt;/li&gt;
&lt;li&gt;Are there opportunities to optimize?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feasibility&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can the team build and operate this system?&lt;/li&gt;
&lt;li&gt;Does it match their skill set?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Value Alignment&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the solution provide real value to the business?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Security and Compliance Validation&lt;/p&gt;

&lt;p&gt;AI can identify potential issues such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Missing encryption&lt;/li&gt;
&lt;li&gt;Lack of segmentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Architects must:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prioritize based on compliance requirements&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Distinguish between:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mandatory controls&lt;/li&gt;
&lt;li&gt;Best practices&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Risk tolerance of the organization plays a key role.&lt;/p&gt;

&lt;p&gt;Reliability and Performance Validation&lt;/p&gt;

&lt;p&gt;AI can highlight bottlenecks such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Database connection limits&lt;/li&gt;
&lt;li&gt;Service throttling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Architects must:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Validate these concerns with actual numbers&lt;/li&gt;
&lt;li&gt;Consider real traffic patterns&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scaling for peak events (e.g., holiday traffic).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Applying Business Context&lt;/p&gt;

&lt;p&gt;AI often suggests optimal technical designs.&lt;/p&gt;

&lt;p&gt;However, these may not align with business needs.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI recommends multi-region deployment for high availability&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Business reality may prefer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Single-region&lt;/li&gt;
&lt;li&gt;Multi-AZ setup&lt;/li&gt;
&lt;li&gt;Lower cost&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Human judgment is required to right-size solutions.&lt;/p&gt;

&lt;p&gt;Cost Optimization&lt;/p&gt;

&lt;p&gt;AI tools can provide real-time cost estimates.&lt;/p&gt;

&lt;p&gt;They can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Break down costs by service&lt;/li&gt;
&lt;li&gt;Suggest alternatives&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Switching from a premium database option to a standard one&lt;/li&gt;
&lt;li&gt;Saving costs when advanced features are not required&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Architects balance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cost&lt;/li&gt;
&lt;li&gt;Performance&lt;/li&gt;
&lt;li&gt;Requirements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Preparing for Stakeholder Questions&lt;/p&gt;

&lt;p&gt;AI can be used to simulate critical stakeholders.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompt AI to act as a skeptical CTO&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This helps generate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tough questions&lt;/li&gt;
&lt;li&gt;Risk scenarios&lt;/li&gt;
&lt;li&gt;Objections&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Architects can then:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prepare structured responses&lt;/li&gt;
&lt;li&gt;Back answers with data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Presenting Options Instead of Answers&lt;/p&gt;

&lt;p&gt;Instead of a single solution, multiple options can be presented.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;Option A&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Accept downtime risk&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Option B&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-region deployment (higher cost)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Option C&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add buffering mechanisms (lower cost alternative)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This approach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Builds trust&lt;/li&gt;
&lt;li&gt;Enables informed decision-making&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Key Takeaways from Validation Discussion&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Validation is a critical skill in AI-assisted architecture.&lt;/li&gt;
&lt;li&gt;AI accelerates design, but validation ensures correctness.&lt;/li&gt;
&lt;li&gt;Real-world constraints must always guide final decisions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The combination of AI speed and human judgment leads to better outcomes.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Week 5 Consolidated Takeaways&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;From the first role play:&lt;/em&gt;&lt;br&gt;
MCP provides a standardized way for agents to interact with tools and external systems, reducing complexity and enabling scalable, modular architectures.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;From the second role play:&lt;/em&gt;&lt;br&gt;
AI-generated architectures must be rigorously validated across business, technical, and operational dimensions before being considered production-ready.&lt;/p&gt;

&lt;p&gt;This week emphasized two key themes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Standardization in agent integration through MCP&lt;/li&gt;
&lt;li&gt;The importance of validation to ensure AI-generated solutions work in real-world scenarios&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
      <category>besa</category>
      <category>solutionarchitects</category>
      <category>mcp</category>
    </item>
    <item>
      <title>BeSA Batch 09 Week4 - Architecting AI Systems: Scaling with Bedrock AgentCore and Designing at Speed</title>
      <dc:creator>Girish Mukim</dc:creator>
      <pubDate>Tue, 17 Mar 2026 00:48:55 +0000</pubDate>
      <link>https://dev.to/girishmukim/besa-batch-09-week4-architecting-ai-systems-scaling-with-bedrock-agentcore-and-designing-at-speed-42bg</link>
      <guid>https://dev.to/girishmukim/besa-batch-09-week4-architecting-ai-systems-scaling-with-bedrock-agentcore-and-designing-at-speed-42bg</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flvqk33bykj8ufbtwbl0a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flvqk33bykj8ufbtwbl0a.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Week 4 - Architecting AI Systems: Scaling with Bedrock AgentCore and Designing at Speed&lt;br&gt;
Batch 09 – BeSA Cloud Academy&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt;&lt;br&gt;
These notes were drafted using AI for clarity, structure, and readability. They are intended solely for learning purposes.&lt;/p&gt;

&lt;p&gt;These are the structured notes from Week 4, focused only on the two role plays. Writing this as a quick revision for those who attended the session and a concise recap for anyone who couldn’t make it.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Role Play 1&lt;/strong&gt; – Architecting for Production with Amazon Bedrock Agent Core&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This conversation focused on a healthcare technology company that had successfully built agent prototypes using the Strands framework but was struggling to move those agents into production.&lt;/p&gt;

&lt;p&gt;The company’s use case involves AI agents assisting with clinical documentation processing across multiple hospitals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prototype to Production Challenge&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The customer described several challenges they were facing while scaling their prototype.&lt;/p&gt;

&lt;p&gt;High concurrency requirements&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The organization has about 500 physicians across three hospitals.&lt;/li&gt;
&lt;li&gt;Each physician handles 20–30 patients.&lt;/li&gt;
&lt;li&gt;This results in thousands of concurrent agent sessions.&lt;/li&gt;
&lt;li&gt;Their current system cannot handle this scale.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sensitive healthcare data&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The system handles PHI (Personal Health Information).&lt;/li&gt;
&lt;li&gt;HIPAA compliance requires strict isolation between sessions.&lt;/li&gt;
&lt;li&gt;Each physician should only access data relevant to their patients.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;External system integrations&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The agents must connect to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Insurance systems&lt;/li&gt;
&lt;li&gt;Healthcare databases&lt;/li&gt;
&lt;li&gt;External APIs&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;These systems require different authentication methods such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API keys&lt;/li&gt;
&lt;li&gt;OAuth-based access.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Observability and auditability&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Healthcare systems require full traceability.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It must be possible to track:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who accessed what&lt;/li&gt;
&lt;li&gt;When it was accessed&lt;/li&gt;
&lt;li&gt;What actions were performed.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;The customer emphasized that a “black box” AI system is not acceptable in this environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Prototype-to-Production Gap&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The solutions architect explained that this situation is very common.&lt;/p&gt;

&lt;p&gt;Many teams successfully build prototypes, but production systems introduce additional challenges.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Four key areas typically create the gap:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Performance&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Managing large numbers of concurrent agent sessions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Scaling&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure bottlenecks appear when workloads grow.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Security&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensuring agents only access data allowed for a specific user.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Governance&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tracking activity, usage, and access for compliance purposes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Introduction to Amazon Bedrock Agent Core&lt;/p&gt;

&lt;p&gt;To address these challenges, the conversation introduced Amazon Bedrock Agent Core.&lt;/p&gt;

&lt;p&gt;Agent Core is described as a modular suite of services designed to help move agent applications into production environments.&lt;/p&gt;

&lt;p&gt;A key point mentioned was that existing Strands agent code does not need to be rewritten.&lt;/p&gt;

&lt;p&gt;Instead, Agent Core services can be integrated alongside existing frameworks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent Core Architecture Components&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Agent Core consists of multiple modular services that can be adopted based on requirements.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Runtime&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The runtime provides a serverless environment for deploying agents.&lt;/p&gt;

&lt;p&gt;Key capabilities include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wrapping the agent in a container.&lt;/li&gt;
&lt;li&gt;Exposing an endpoint for interaction.&lt;/li&gt;
&lt;li&gt;Automatically scaling from zero to thousands of concurrent sessions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This eliminates the need to manage infrastructure manually.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Session Management&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Clinical workflows often involve long interactions.&lt;/p&gt;

&lt;p&gt;The runtime supports sessions lasting up to eight hours.&lt;/p&gt;

&lt;p&gt;This enables complex medical documentation workflows to complete without interruption.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Identity and Access Management&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Two types of identity control were discussed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Inbound authentication&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensures only authorized users can access the agent.&lt;/li&gt;
&lt;li&gt;Can integrate with identity providers such as Cognito or Okta.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Outbound authorization&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Allows the agent to securely access external systems.&lt;/li&gt;
&lt;li&gt;API credentials are stored in a credential provider backed by Secrets Manager.&lt;/li&gt;
&lt;li&gt;This prevents sensitive credentials from being exposed in the application.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gateway and Tool Management&lt;/p&gt;

&lt;p&gt;When agents interact with many tools, a new challenge emerges.&lt;/p&gt;

&lt;p&gt;If every tool is included in the prompt context, it can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Increase token usage.&lt;/li&gt;
&lt;li&gt;Expand the context window unnecessarily.&lt;/li&gt;
&lt;li&gt;Reduce response accuracy.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Agent Core Gateway addresses this problem.&lt;/p&gt;

&lt;p&gt;It indexes tools such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;APIs&lt;/li&gt;
&lt;li&gt;Lambda functions&lt;/li&gt;
&lt;li&gt;MCP servers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using semantic search, the gateway retrieves only the tools relevant to a specific request.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benefits include:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reduced token usage.&lt;/li&gt;
&lt;li&gt;Lower operational costs.&lt;/li&gt;
&lt;li&gt;Improved response accuracy.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Memory Capabilities&lt;/p&gt;

&lt;p&gt;Agent Core provides two memory layers.&lt;/p&gt;

&lt;p&gt;Short-term memory&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Maintains state within an active session.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Long-term memory&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stores persistent information such as user preferences or conversation history.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This allows agents to maintain context across interactions.&lt;/p&gt;

&lt;p&gt;Key Takeaways from the Production Discussion&lt;/p&gt;

&lt;p&gt;Moving from prototype to production requires solving operational challenges such as scaling, security, and governance.&lt;/p&gt;

&lt;p&gt;Production-ready agent systems must support:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High concurrency workloads&lt;/li&gt;
&lt;li&gt;Secure data isolation&lt;/li&gt;
&lt;li&gt;Integration with external systems&lt;/li&gt;
&lt;li&gt;Auditability and observability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agent Core provides modular services designed to address these needs without requiring a full redesign of existing agents.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Role Play 2&lt;/strong&gt; – Rapid Architecture and Design at Speed&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This conversation explored how AI tools can significantly accelerate architecture design workflows for solutions architects.&lt;/p&gt;

&lt;p&gt;The scenario involved a new customer engagement requiring a complete architecture proposal within three days.&lt;/p&gt;

&lt;p&gt;Traditional Architecture Design Timeline&lt;/p&gt;

&lt;p&gt;Previously, preparing a full architecture proposal could take two to three weeks.&lt;/p&gt;

&lt;p&gt;Tasks involved:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Industry research&lt;/li&gt;
&lt;li&gt;Evaluating architecture patterns&lt;/li&gt;
&lt;li&gt;Designing diagrams&lt;/li&gt;
&lt;li&gt;Writing architecture decision documentation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The discussion demonstrated how AI-assisted workflows can compress this timeline dramatically.&lt;/p&gt;

&lt;p&gt;Agentic Architecture Assistant&lt;/p&gt;

&lt;p&gt;The architect described using an AI-powered assistant built with several components.&lt;/p&gt;

&lt;p&gt;LLM (the brain)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Responsible for reasoning and generating ideas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MCPs (Model Context Protocols)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provide access to domain-specific knowledge such as AWS services or pricing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agent interface&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Implemented as an IDE extension such as Cline inside VS Code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Together, these components form an “agentic helper” that assists with architecture design tasks.&lt;/p&gt;

&lt;p&gt;Incorporating Real Customer Constraints&lt;/p&gt;

&lt;p&gt;While AI can generate architectures quickly, it does not automatically understand real-world constraints.&lt;/p&gt;

&lt;p&gt;In the scenario, the customer had several limitations:&lt;/p&gt;

&lt;p&gt;Legacy architecture&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A 15-year-old monolithic system.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Team skill set&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers are experienced in Java.&lt;/li&gt;
&lt;li&gt;No experience with serverless architectures.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Leadership preferences&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The CTO is risk-averse.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These contextual factors strongly influence architectural choices.&lt;/p&gt;

&lt;p&gt;Human Judgment in Architecture&lt;/p&gt;

&lt;p&gt;The architect explained how human judgment guides AI outputs.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;AI might suggest a fully serverless architecture.&lt;/p&gt;

&lt;p&gt;However, considering the team’s Java expertise and risk tolerance, this approach may not be appropriate.&lt;/p&gt;

&lt;p&gt;Instead, the architect may choose a hybrid architecture combining:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Containers&lt;/li&gt;
&lt;li&gt;Selected serverless components.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This approach balances modernization with practicality.&lt;/p&gt;

&lt;p&gt;Generating Architecture Artifacts with AI&lt;/p&gt;

&lt;p&gt;The conversation also highlighted how AI can accelerate the creation of design artifacts.&lt;/p&gt;

&lt;p&gt;Architecture diagrams&lt;/p&gt;

&lt;p&gt;Using specialized MCP tools, the AI can generate diagrams that include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Front-end layers&lt;/li&gt;
&lt;li&gt;Web Application Firewall (WAF)&lt;/li&gt;
&lt;li&gt;Content Delivery Network (CDN)&lt;/li&gt;
&lt;li&gt;Containerized backend and persistence layers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What previously required hours of manual diagramming can now be generated in seconds.&lt;/p&gt;

&lt;p&gt;Architecture Decision Records (ADRs)&lt;/p&gt;

&lt;p&gt;The AI can also generate ADR documents.&lt;/p&gt;

&lt;p&gt;These explain why certain design choices were made.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
Choosing ECS Fargate instead of Lambda based on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Java-based development environment&lt;/li&gt;
&lt;li&gt;PCI compliance requirements.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Generating Infrastructure as Code&lt;/p&gt;

&lt;p&gt;The agent can also create starter templates for infrastructure.&lt;/p&gt;

&lt;p&gt;Example outputs include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Terraform templates&lt;/li&gt;
&lt;li&gt;Deployment configuration samples.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These provide a strong starting point for implementation.&lt;/p&gt;

&lt;p&gt;Three-Day Architecture Delivery Plan&lt;/p&gt;

&lt;p&gt;The architect outlined a structured workflow for meeting the three-day deadline.&lt;/p&gt;

&lt;p&gt;Day 1&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Research e-commerce architecture patterns.&lt;/li&gt;
&lt;li&gt;Generate three viable architectural approaches.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Day 2&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create detailed architecture diagrams.&lt;/li&gt;
&lt;li&gt;Draft Architecture Decision Records.&lt;/li&gt;
&lt;li&gt;Generate infrastructure code samples.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Day 3&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Refine messaging for leadership stakeholders.&lt;/li&gt;
&lt;li&gt;Focus on cost predictability and risk mitigation.&lt;/li&gt;
&lt;li&gt;Produce an executive summary.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cost of AI-Assisted Architecture&lt;/p&gt;

&lt;p&gt;An interesting detail mentioned was the cost of the automated workflow.&lt;/p&gt;

&lt;p&gt;The entire AI-assisted architecture generation process cost approximately $2.30 in compute time.&lt;/p&gt;

&lt;p&gt;Key Takeaways from the Architecture Discussion&lt;/p&gt;

&lt;p&gt;AI can dramatically accelerate architecture workflows by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automating research&lt;/li&gt;
&lt;li&gt;Generating architecture options&lt;/li&gt;
&lt;li&gt;Producing diagrams and documentation&lt;/li&gt;
&lt;li&gt;Creating infrastructure templates.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, AI does not replace architectural expertise.&lt;/p&gt;

&lt;p&gt;Human architects remain responsible for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Interpreting organizational constraints&lt;/li&gt;
&lt;li&gt;Making trade-offs&lt;/li&gt;
&lt;li&gt;Applying context and judgment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The most effective approach is a partnership between AI capabilities and human architectural thinking.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Week 4 Consolidated Takeaways&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;From the first role play:&lt;/em&gt;&lt;br&gt;
Moving AI agents into production introduces new requirements around scalability, security, governance, and operational visibility.&lt;/p&gt;

&lt;p&gt;Services like Amazon Bedrock Agent Core provide modular capabilities that help address these production challenges.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;From the second role play:&lt;/em&gt;&lt;br&gt;
AI-assisted workflows can significantly accelerate architecture design, but the architect’s role in applying context, judgment, and stakeholder awareness remains critical.&lt;/p&gt;

&lt;p&gt;This week highlighted the transition from building agents to operating them at scale and demonstrated how AI tools can also transform how architects design and deliver solutions.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>besa</category>
      <category>agentcore</category>
      <category>solutionarchitects</category>
    </item>
    <item>
      <title>BeSA Batch 09 Week3 - Building Agents with SDKs and Improving Discovery with AI</title>
      <dc:creator>Girish Mukim</dc:creator>
      <pubDate>Sun, 08 Mar 2026 02:55:35 +0000</pubDate>
      <link>https://dev.to/girishmukim/besa-batch-09-week3-building-agents-with-sdks-and-improving-discovery-with-ai-135m</link>
      <guid>https://dev.to/girishmukim/besa-batch-09-week3-building-agents-with-sdks-and-improving-discovery-with-ai-135m</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz07xwi0u95k7d7ptqz23.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz07xwi0u95k7d7ptqz23.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Week 3 - Building Agents with SDKs and Improving Discovery with AI&lt;br&gt;
Batch 09 – BeSA Cloud Academy&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt;&lt;br&gt;
These notes were drafted using AI for clarity, structure, and readability. They are intended solely for learning purposes.&lt;/p&gt;

&lt;p&gt;These are the structured notes from Week 3, focused only on the two role plays. Writing this as a quick revision for those who attended the session and a concise recap for anyone who couldn’t make it.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Role Play 1&lt;/strong&gt; – Technical Session: Getting Started with Strands Agent&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context&lt;/strong&gt;&lt;br&gt;
This conversation focused on the practical challenges of building agents and how a standardized SDK approach can simplify development.&lt;/p&gt;

&lt;p&gt;The customer started with a basic understanding of what is needed to build an agentic AI system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core Components Required for an Agent&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To build an agent system, several components are required:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Infrastructure&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cloud or on-premise environment to run the workloads.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Foundation Model&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Acts as the “brain” of the agent.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Supporting Services&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;li&gt;Memory for conversations&lt;/li&gt;
&lt;li&gt;Observability&lt;/li&gt;
&lt;li&gt;Orchestration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The solutions architect confirmed that this understanding is correct and forms the baseline for agent architectures.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common Challenges When Building Agents&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The discussion highlighted several practical challenges teams face:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Steep learning curve&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multiple frameworks&lt;/li&gt;
&lt;li&gt;Different SDKs&lt;/li&gt;
&lt;li&gt;Rapidly evolving ecosystem&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Complex orchestration&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Managing how agents call tools&lt;/li&gt;
&lt;li&gt;Handling multi-step workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Black box behavior&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Limited visibility into what the agent is doing&lt;/li&gt;
&lt;li&gt;Hard to debug reasoning steps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Language and framework fragmentation&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Switching between tools and languages increases complexity.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The main theme here was the need for &lt;strong&gt;standardization&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Strands Agent&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Strands Agent was introduced as a way to simplify agent development.&lt;/p&gt;

&lt;p&gt;Definition&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An open-source SDK designed for building agents using minimal code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Conceptually it combines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Models (brain)&lt;/li&gt;
&lt;li&gt;Tools (hands)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This allows developers to focus on agent behavior rather than infrastructure complexity.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Understanding SDK vs Framework&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;An important clarification was made around SDKs and frameworks.&lt;/p&gt;

&lt;p&gt;SDK (Software Development Kit)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Collection of tools, libraries, and documentation.&lt;/li&gt;
&lt;li&gt;Helps developers build applications faster.&lt;/li&gt;
&lt;li&gt;Provides reusable building blocks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Analogy used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Like Lego pieces.&lt;/li&gt;
&lt;li&gt;Instead of creating every component from scratch, you assemble existing blocks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Framework&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Defines architectural structure and rules.&lt;/li&gt;
&lt;li&gt;Determines how components interact.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Analogy used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Like a blueprint for a building.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Strands essentially provides both:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The framework structure&lt;/li&gt;
&lt;li&gt;The SDK tools to implement it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why Use Strands&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Key benefits mentioned:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Ease of use&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Few lines of code to build agents.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Native AWS integrations&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Works naturally with AWS services.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Model agnostic&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can work with different models such as Claude, OpenAI models, or Llama.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Rapid experimentation&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers can iterate and deploy faster.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Agent Interaction Flow&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The discussion explained how the &lt;strong&gt;components&lt;/strong&gt; interact.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Acts as the orchestrator.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Prompt&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User input that triggers the workflow.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Model&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Performs reasoning.&lt;/li&gt;
&lt;li&gt;Determines which tools are needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Execute actions such as API calls or sending emails.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Response&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Final output returned to the user.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This cycle operates continuously in what was described as an agentic loop.&lt;/p&gt;

&lt;p&gt;Typical workflow:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Prompt → Reason → Tool Selection → Tool Execution → Response&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Working with Models&lt;/p&gt;

&lt;p&gt;The example showed how developers can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Import the agent&lt;/li&gt;
&lt;li&gt;Specify the model (example: Claude 3.5 Sonnet)&lt;/li&gt;
&lt;li&gt;Provide system instructions&lt;/li&gt;
&lt;li&gt;Invoke the agent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Another interesting point discussed was running models locally using Ollama.&lt;/p&gt;

&lt;p&gt;This allows developers to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Experiment locally&lt;/li&gt;
&lt;li&gt;Avoid cloud dependency during development&lt;/li&gt;
&lt;li&gt;Prototype faster.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tools in Strands&lt;/p&gt;

&lt;p&gt;Tools were compared to tools used by craftsmen.&lt;/p&gt;

&lt;p&gt;Just like a carpenter needs specific tools, an agent requires the right tools to perform tasks.&lt;/p&gt;

&lt;p&gt;Two types of tools were mentioned:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pre-built tools&lt;/strong&gt;&lt;br&gt;
Examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTP request tools&lt;/li&gt;
&lt;li&gt;Calculator tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Custom tools&lt;/strong&gt;&lt;br&gt;
Developers can create tools using a simple decorator approach in Python.&lt;/p&gt;

&lt;p&gt;Example concept:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Define a function&lt;/li&gt;
&lt;li&gt;Add a tool decorator&lt;/li&gt;
&lt;li&gt;The agent can now invoke it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This enables developers to connect agents to internal APIs or services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Model Context Protocol (MCP)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A key concept introduced was MCP.&lt;/p&gt;

&lt;p&gt;Definition&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An open standard for connecting AI systems to external tools and services.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Analogy used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A USB hub.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your laptop might have one port, but the hub allows connection to many devices.&lt;/p&gt;

&lt;p&gt;Similarly, MCP allows agents to interact with multiple systems through a standardized interface.&lt;/p&gt;

&lt;p&gt;Benefits include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reduced integration complexity&lt;/li&gt;
&lt;li&gt;Consistent communication format&lt;/li&gt;
&lt;li&gt;Easier expansion of agent capabilities.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Role Play 2&lt;/strong&gt; – Behavioral Session: Using AI to Accelerate Discovery&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context&lt;/strong&gt;&lt;br&gt;
This conversation explored how architects can use AI tools to prepare for customer engagements and accelerate discovery.&lt;/p&gt;

&lt;p&gt;The scenario involved a solutions architect preparing for a new customer meeting with very little time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Traditional Preparation vs AI-Assisted Preparation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Traditionally, preparing for a customer engagement could take several days.&lt;/p&gt;

&lt;p&gt;Typical workflow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Research the company&lt;/li&gt;
&lt;li&gt;Understand industry trends&lt;/li&gt;
&lt;li&gt;Identify likely technical challenges&lt;/li&gt;
&lt;li&gt;Prepare discovery questions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using AI changes this process significantly.&lt;/p&gt;

&lt;p&gt;Instead of multiple days, preparation can be compressed into a few hours.&lt;/p&gt;

&lt;p&gt;Initial Research with AI&lt;/p&gt;

&lt;p&gt;The architect begins by briefing the AI with basic information about the customer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Industry&lt;/li&gt;
&lt;li&gt;Market size&lt;/li&gt;
&lt;li&gt;Business trends&lt;/li&gt;
&lt;li&gt;Competitive pressures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI then generates insights such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Regulatory environment (e.g., GDPR)&lt;/li&gt;
&lt;li&gt;Industry modernization challenges&lt;/li&gt;
&lt;li&gt;Technical considerations like latency sensitivity.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This provides a fast baseline understanding.&lt;/p&gt;

&lt;p&gt;Adding Human Context&lt;/p&gt;

&lt;p&gt;However, AI does not understand internal personalities or organizational dynamics.&lt;/p&gt;

&lt;p&gt;This is where the TAM adds valuable insight.&lt;/p&gt;

&lt;p&gt;Examples discussed included:&lt;/p&gt;

&lt;p&gt;A cost-focused CTO&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Strong requirement to reduce costs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A risk-averse CISO&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Concerned about customer data protection.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An engineering leader with a small team&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Limited capacity to manage complexity.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This human context becomes critical.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Combining AI insights with relationship knowledge produces much better preparation.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Anticipating Objections&lt;/p&gt;

&lt;p&gt;The architect then uses AI to anticipate objections.&lt;/p&gt;

&lt;p&gt;Example approach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Feed AI the stakeholder concerns.&lt;/li&gt;
&lt;li&gt;Ask it to generate likely objections or concerns.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This allows the architect to prepare responses in advance rather than reacting in the meeting.&lt;/p&gt;

&lt;p&gt;Generating a Discovery Framework&lt;/p&gt;

&lt;p&gt;AI can also help generate a discovery framework.&lt;/p&gt;

&lt;p&gt;This includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Business drivers&lt;/li&gt;
&lt;li&gt;Technical risks&lt;/li&gt;
&lt;li&gt;Modernization priorities&lt;/li&gt;
&lt;li&gt;Operational constraints&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, these questions are often generic.&lt;/p&gt;

&lt;p&gt;The architect must adapt them to the specific context of the customer.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;Generic question&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What are your modernization goals?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Contextual question&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How is your small engineering team managing technical debt during modernization?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;AI provides the structure, while the architect adds depth.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Using AI After Meetings&lt;/p&gt;

&lt;p&gt;Another useful technique discussed was the “raw notes dump.”&lt;/p&gt;

&lt;p&gt;After the meeting, the architect:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pastes rough notes into the AI tool.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Asks it to identify:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explicit requirements&lt;/li&gt;
&lt;li&gt;Implicit concerns&lt;/li&gt;
&lt;li&gt;Risks&lt;/li&gt;
&lt;li&gt;Action items&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;The AI performs structured analysis on unstructured notes.&lt;/p&gt;

&lt;p&gt;This helps convert messy meeting notes into organized documentation.&lt;/p&gt;

&lt;p&gt;Producing Clean Documentation&lt;/p&gt;

&lt;p&gt;The final step is creating clear documentation to share with the customer.&lt;/p&gt;

&lt;p&gt;Examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Requirements summaries&lt;/li&gt;
&lt;li&gt;Key concerns identified&lt;/li&gt;
&lt;li&gt;Architecture considerations&lt;/li&gt;
&lt;li&gt;Next steps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This demonstrates that the architect is listening and thinking strategically.&lt;/p&gt;

&lt;p&gt;Important Advice&lt;/p&gt;

&lt;p&gt;One key warning from the conversation:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Do not walk into a customer meeting with a generic presentation.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Better approach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use AI to understand the customer’s world.&lt;/li&gt;
&lt;li&gt;Combine that with the TAM’s relationship knowledge.&lt;/li&gt;
&lt;li&gt;Tailor discussions to real concerns.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The winning combination&lt;/strong&gt; is: AI research + human insight.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Week 3 Consolidated Takeaways&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;From the technical role play:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SDKs and frameworks can significantly reduce complexity when building agents.&lt;/li&gt;
&lt;li&gt;Standardization helps address fragmentation in the agent ecosystem.&lt;/li&gt;
&lt;li&gt;Tools and MCP enable agents to interact with external systems in a scalable way.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;From the behavioral role play:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI can dramatically accelerate discovery preparation.&lt;/li&gt;
&lt;li&gt;Human context and relationships remain essential.&lt;/li&gt;
&lt;li&gt;AI works best as a research and analysis assistant rather than a decision maker.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This week shifted the focus from foundational concepts and architecture to practical workflows—both for building agents and for improving how architects engage with customers during discovery.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>solutionarchitects</category>
      <category>besa</category>
    </item>
    <item>
      <title>BeSA Batch 09 Week2 - Building with Agentic AI</title>
      <dc:creator>Girish Mukim</dc:creator>
      <pubDate>Sun, 01 Mar 2026 02:08:59 +0000</pubDate>
      <link>https://dev.to/girishmukim/besa-batch-09-week2-building-with-agentic-ai-4ih3</link>
      <guid>https://dev.to/girishmukim/besa-batch-09-week2-building-with-agentic-ai-4ih3</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flox1uz0dlgd6gtwf5ayz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flox1uz0dlgd6gtwf5ayz.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Week 2 – Building with Agentic AI&lt;br&gt;
Batch 09 – BeSA Cloud Academy&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt;&lt;br&gt;
These notes were drafted using AI for clarity, structure, and readability. They are intended solely for learning purposes.&lt;/p&gt;

&lt;p&gt;These are the structured notes from Week 2, focused only on the two role plays. Writing this as a quick revision for those who attended the session and a concise recap for anyone who couldn’t make it.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Role Play 1&lt;/strong&gt; – Solution Architect and Customer (Insurance Claims Automation)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context&lt;/strong&gt;&lt;br&gt;
This conversation was structured as a discovery session. The customer represents a SAS platform aiming to automate insurance claims processing using Agentic AI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Business Problem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Current state:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Manual claims processing.&lt;/li&gt;
&lt;li&gt;Takes days to weeks.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Error-prone due to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reading bulky documents.&lt;/li&gt;
&lt;li&gt;Cross-referencing policy clauses.&lt;/li&gt;
&lt;li&gt;Performing deep reasoning to accept or reject claims.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Target state:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Faster processing.&lt;/li&gt;
&lt;li&gt;Reduced human effort for low-risk claims.&lt;/li&gt;
&lt;li&gt;Intelligent automation for complex scenarios.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Technical Requirements and Constraints&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Latency&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High-volume, low-risk claims should be processed in under 5 seconds.&lt;/li&gt;
&lt;li&gt;Complex claims involving reasoning can tolerate higher latency.&lt;/li&gt;
&lt;li&gt;Not all steps need the same performance profile.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Data Types&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unstructured documents.&lt;/li&gt;
&lt;li&gt;Handwritten forms.&lt;/li&gt;
&lt;li&gt;Images of vehicle damage.&lt;/li&gt;
&lt;li&gt;The solution must combine text understanding and image analysis.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Integrations&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;S3 for document retrieval.&lt;/li&gt;
&lt;li&gt;Policy databases for clause validation.&lt;/li&gt;
&lt;li&gt;Third-party APIs for fraud detection.&lt;/li&gt;
&lt;li&gt;Agent must orchestrate across multiple systems.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Team Constraints&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Team has DevOps and backend engineers.&lt;/li&gt;
&lt;li&gt;Upskilling in AI/ML.&lt;/li&gt;
&lt;li&gt;Strong preference for managed services.&lt;/li&gt;
&lt;li&gt;Avoid managing infrastructure.&lt;/li&gt;
&lt;li&gt;Managed services like Amazon Bedrock are preferred.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Model Selection Framework&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Solution Architect proposed evaluating models across four dimensions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Capability&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Does the model support deep reasoning?&lt;/li&gt;
&lt;li&gt;Can it handle multi-step logic?&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Latency&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Is it fast enough for high-volume workflows?&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Cost&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Is it sustainable at scale?&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Features&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Tool usage.&lt;/li&gt;
&lt;li&gt;Structured output.&lt;/li&gt;
&lt;li&gt;Multi-modal support.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Key insight:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Not every task requires a premium model.&lt;/li&gt;
&lt;li&gt;Complex reasoning may need higher-tier models.&lt;/li&gt;
&lt;li&gt;Simple extraction can use lighter, cheaper models.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Multi-Model Strategy&lt;/p&gt;

&lt;p&gt;Instead of using a single expensive model for the entire workflow, a four-stage pipeline was proposed:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Document extraction&lt;/li&gt;
&lt;li&gt;Image analysis&lt;/li&gt;
&lt;li&gt;Policy reasoning&lt;/li&gt;
&lt;li&gt;Decision generation&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each stage can use a different model optimized for that task.&lt;/p&gt;

&lt;p&gt;Result:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Right model for the right task.&lt;/li&gt;
&lt;li&gt;Cost reduction estimated at 60–70%.&lt;/li&gt;
&lt;li&gt;Performance optimization without overpaying.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Resilience and Governance&lt;/p&gt;

&lt;p&gt;Inference Profiles&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used to manage throttling.&lt;/li&gt;
&lt;li&gt;Provide resilience across regions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Application inference profiles&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Useful for SAS providers.&lt;/li&gt;
&lt;li&gt;Track cost per customer.&lt;/li&gt;
&lt;li&gt;Ensure data residency compliance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Data assurance&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS does not use customer data to train or retrain models.&lt;/li&gt;
&lt;li&gt;Important for compliance-sensitive industries like insurance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Key architectural takeaway:&lt;/strong&gt;&lt;br&gt;
Agentic systems must be designed not only for intelligence but also for cost control, compliance, and operational resilience.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Role Play 2&lt;/strong&gt; – Enterprise Architect and Solutions Architect&lt;br&gt;
The Evolving Role of the Architect in the Age of AI&lt;/p&gt;

&lt;p&gt;This conversation explored how Generative AI impacts the role of Solutions Architects and whether AI reduces or transforms their value.&lt;/p&gt;

&lt;p&gt;The Arithmetic vs Mathematics Analogy&lt;/p&gt;

&lt;p&gt;Concern raised:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI can generate complex architecture diagrams in seconds.&lt;/li&gt;
&lt;li&gt;Does this make architects obsolete?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Response:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI handles arithmetic (technical plausibility).&lt;/li&gt;
&lt;li&gt;Architects handle mathematics (judgment and context).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Meaning:&lt;br&gt;
AI can produce technically valid architectures.&lt;br&gt;
But it cannot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understand politics.&lt;/li&gt;
&lt;li&gt;Navigate budgets.&lt;/li&gt;
&lt;li&gt;Handle human constraints.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The What vs The Why and How&lt;/p&gt;

&lt;p&gt;AI provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The “what”.&lt;/li&gt;
&lt;li&gt;A plausible list of services and patterns.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Architect provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The “why”.&lt;/li&gt;
&lt;li&gt;The “how”.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Adjustments based on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Finance constraints.&lt;/li&gt;
&lt;li&gt;Organizational policies.&lt;/li&gt;
&lt;li&gt;Stakeholder expectations.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
A technically optimal architecture may not work if:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The finance team requires fixed budgets.&lt;/li&gt;
&lt;li&gt;The CTO prefers certain vendors.&lt;/li&gt;
&lt;li&gt;Compliance constraints override design decisions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Research vs Judgment Split&lt;/p&gt;

&lt;p&gt;Tasks to hand off to AI:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Knowledge retrieval.&lt;/li&gt;
&lt;li&gt;Service comparisons.&lt;/li&gt;
&lt;li&gt;Summarizing long documentation (e.g., regulatory texts).&lt;/li&gt;
&lt;li&gt;Pattern generation.&lt;/li&gt;
&lt;li&gt;Code scaffolding.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tasks to retain as an architect:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Managing stakeholder biases.&lt;/li&gt;
&lt;li&gt;Handling organizational politics.&lt;/li&gt;
&lt;li&gt;Making trade-offs (availability vs consistency).&lt;/li&gt;
&lt;li&gt;Long-term strategic alignment.&lt;/li&gt;
&lt;li&gt;Defending architectural decisions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Three-Loop Workflow&lt;/p&gt;

&lt;p&gt;Loop 1 – Discovery&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use AI as a research assistant.&lt;/li&gt;
&lt;li&gt;Summarize meeting notes.&lt;/li&gt;
&lt;li&gt;Identify gaps in requirements.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Loop 2 – Design&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use AI to generate architecture drafts.&lt;/li&gt;
&lt;li&gt;Validate and refine designs.&lt;/li&gt;
&lt;li&gt;Ensure feasibility and alignment with constraints.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Loop 3 – Delivery&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use AI to draft executive summaries.&lt;/li&gt;
&lt;li&gt;Draft architecture decision records.&lt;/li&gt;
&lt;li&gt;Refine documentation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI becomes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A fast assistant.&lt;/li&gt;
&lt;li&gt;Not the final decision maker.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Shift in Identity&lt;/p&gt;

&lt;p&gt;Earlier:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Architect’s value was in memorized knowledge.&lt;/li&gt;
&lt;li&gt;Service limits, certifications, patterns.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI fills the knowledge moat.&lt;/li&gt;
&lt;li&gt;Real moat is synthesis.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Synthesis means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Combining technical capabilities.&lt;/li&gt;
&lt;li&gt;Understanding human constraints.&lt;/li&gt;
&lt;li&gt;Applying empathy.&lt;/li&gt;
&lt;li&gt;Building coherent, real-world architectures.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Strategic Advice&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Trust but verify.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI can hallucinate.&lt;/li&gt;
&lt;li&gt;AI can sound confident even when incorrect.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Treat AI like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A fast summer intern.&lt;/li&gt;
&lt;li&gt;Productive.&lt;/li&gt;
&lt;li&gt;Needs direction.&lt;/li&gt;
&lt;li&gt;Requires oversight before delivery.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Week 2 Consolidated Takeaways&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;From the first role play:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agentic AI architecture must align with business latency, cost, and compliance constraints.&lt;/li&gt;
&lt;li&gt;Multi-model pipelines are practical and cost-efficient.&lt;/li&gt;
&lt;li&gt;Governance and inference profiles are critical in enterprise scenarios.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;From the second role play:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI enhances the architect role rather than replacing it.&lt;/li&gt;
&lt;li&gt;Technical plausibility is not enough.&lt;/li&gt;
&lt;li&gt;Judgment, synthesis, and empathy are long-term differentiators.&lt;/li&gt;
&lt;li&gt;AI should be integrated into workflows across discovery, design, and delivery.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This week shifted focus from foundational concepts (Week 1) to real-world application and professional identity in the AI era.&lt;/p&gt;

&lt;p&gt;Next week, I’ll continue documenting how these concepts evolve into deeper implementation and architectural patterns.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>solutionarchitects</category>
    </item>
    <item>
      <title>BeSA Batch 09 Week1 - Foundation of Agentic AI</title>
      <dc:creator>Girish Mukim</dc:creator>
      <pubDate>Mon, 23 Feb 2026 23:30:50 +0000</pubDate>
      <link>https://dev.to/girishmukim/besa-batch-09-week1-foundation-of-agentic-ai-17gj</link>
      <guid>https://dev.to/girishmukim/besa-batch-09-week1-foundation-of-agentic-ai-17gj</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4tbjljblx9lnt2gfibil.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4tbjljblx9lnt2gfibil.png" alt=" " width="472" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Week 1 – Agentic AI Foundations&lt;br&gt;
Batch 09 – BeSA Cloud Academy&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt;&lt;br&gt;
These notes were drafted using AI for clarity, structure, and readability. They are intended solely for learning purposes.&lt;/p&gt;

&lt;p&gt;These are the structured notes from Week 1. Writing this as a quick revision for those who attended the session and a concise recap for anyone who couldn’t make it.&lt;/p&gt;




&lt;p&gt;(1) Why Agentic AI? (GenAI vs Agentic AI)&lt;/p&gt;

&lt;p&gt;The core idea discussed was the difference between traditional Generative AI and Agentic AI.&lt;/p&gt;

&lt;p&gt;Generative AI (LLMs) act as the brain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understand context&lt;/li&gt;
&lt;li&gt;Generate responses&lt;/li&gt;
&lt;li&gt;Provide suggestions or answers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, they stop at reasoning. The execution is still done by the user. For example, an LLM can suggest travel options, but I still need to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Book flights&lt;/li&gt;
&lt;li&gt;Check hotel availability&lt;/li&gt;
&lt;li&gt;Compare prices&lt;/li&gt;
&lt;li&gt;Open multiple tabs and execute actions manually&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is where the limitation becomes clear.&lt;/p&gt;

&lt;p&gt;Why simple scripts are not enough:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scripts assume fixed flows.&lt;/li&gt;
&lt;li&gt;Real-world situations are dynamic.&lt;/li&gt;
&lt;li&gt;If a condition changes (flight delay, inventory change, pricing update), scripts often fail.&lt;/li&gt;
&lt;li&gt;Complex workflows require adaptation and replanning.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agentic AI introduces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reasoning&lt;/li&gt;
&lt;li&gt;Planning&lt;/li&gt;
&lt;li&gt;Replanning&lt;/li&gt;
&lt;li&gt;Autonomous execution&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of only answering, the system can take actions and adjust in real time.&lt;/p&gt;




&lt;p&gt;(2) What is an Agent?&lt;/p&gt;

&lt;p&gt;Definition:&lt;br&gt;
An agent is an entity that drives autonomous work on behalf of a user or business.&lt;/p&gt;

&lt;p&gt;Important characteristics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Has a goal&lt;/li&gt;
&lt;li&gt;Can act independently&lt;/li&gt;
&lt;li&gt;Uses tools&lt;/li&gt;
&lt;li&gt;Can change its plan if needed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Analogy used: James Bond (007)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gets a mission (trigger)&lt;/li&gt;
&lt;li&gt;Assesses context&lt;/li&gt;
&lt;li&gt;Uses tools (gadgets)&lt;/li&gt;
&lt;li&gt;Adjusts plan when things change&lt;/li&gt;
&lt;li&gt;Completes the mission autonomously&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Evolution of the technology:&lt;/p&gt;

&lt;p&gt;Generative Assistant&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Basic automation&lt;/li&gt;
&lt;li&gt;Examples: spelling suggestions, summarization&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI Agent&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Executes a dynamic workflow&lt;/li&gt;
&lt;li&gt;Focused on achieving a single goal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agentic AI System&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multiple agents collaborating&lt;/li&gt;
&lt;li&gt;Multi-task and multi-system execution&lt;/li&gt;
&lt;li&gt;Comparable to coordinated teams (e.g., Avengers concept)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The progression is from static response → goal-driven execution → coordinated multi-agent systems.&lt;/p&gt;




&lt;p&gt;(3) Anatomy of an Agent&lt;/p&gt;

&lt;p&gt;Agents operate in a loop:&lt;/p&gt;

&lt;p&gt;Think → Act → Evaluate/Reflect&lt;/p&gt;

&lt;p&gt;This loop is important for understanding architecture.&lt;/p&gt;

&lt;p&gt;The Brain (LLM)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Responsible for reasoning&lt;/li&gt;
&lt;li&gt;Chooses which tool to use&lt;/li&gt;
&lt;li&gt;Makes decisions based on context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Planning / Orchestration&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creates a path to the goal&lt;/li&gt;
&lt;li&gt;Adjusts path when something changes&lt;/li&gt;
&lt;li&gt;Enables replanning&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tools (Action Groups)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;APIs&lt;/li&gt;
&lt;li&gt;Lambda functions&lt;/li&gt;
&lt;li&gt;Databases&lt;/li&gt;
&lt;li&gt;External integrations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are how the agent interacts with the outside world.&lt;/p&gt;

&lt;p&gt;Memory&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Maintains context across interactions&lt;/li&gt;
&lt;li&gt;Prevents users from repeating information&lt;/li&gt;
&lt;li&gt;Enables continuity in conversations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Judge LLM (in complex systems)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Acts as a reviewer&lt;/li&gt;
&lt;li&gt;Provides checks and balances&lt;/li&gt;
&lt;li&gt;Useful in multi-agent or high-risk workflows (e.g., supply chain scenarios)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The major takeaway:&lt;br&gt;
An agent is not just an LLM. It is LLM + planning + tools + memory + control loop.&lt;/p&gt;




&lt;p&gt;(4) Technical Implementation and Architecture (AWS Focus)&lt;/p&gt;

&lt;p&gt;Amazon Bedrock&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Managed service for building and deploying agents&lt;/li&gt;
&lt;li&gt;Provides access to foundation models&lt;/li&gt;
&lt;li&gt;Supports agent configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agent Core&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Handles runtime&lt;/li&gt;
&lt;li&gt;Memory management&lt;/li&gt;
&lt;li&gt;Observability capabilities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instructions&lt;br&gt;
Agents are guided using natural language instructions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Define role (e.g., “You are a car parts assistant”)&lt;/li&gt;
&lt;li&gt;Define guidelines&lt;/li&gt;
&lt;li&gt;Specify what tools are available&lt;/li&gt;
&lt;li&gt;Constrain behavior&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This becomes the control layer for agent behavior.&lt;/p&gt;

&lt;p&gt;Key architectural pillars discussed:&lt;/p&gt;

&lt;p&gt;Security&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agents should be treated like human identities.&lt;/li&gt;
&lt;li&gt;Assign restricted permissions.&lt;/li&gt;
&lt;li&gt;Apply least privilege principles.&lt;/li&gt;
&lt;li&gt;Each agent should have scoped access to resources.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cost&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Token usage directly impacts cost.&lt;/li&gt;
&lt;li&gt;Complex reasoning and tool chaining increases token consumption.&lt;/li&gt;
&lt;li&gt;Need to monitor and optimize prompt and reasoning flows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Observability&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visibility into agent traces.&lt;/li&gt;
&lt;li&gt;Ability to inspect reasoning steps.&lt;/li&gt;
&lt;li&gt;Important for debugging and improving workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Architectural thinking must include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identity and access management&lt;/li&gt;
&lt;li&gt;Cost monitoring&lt;/li&gt;
&lt;li&gt;Traceability of decisions&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;(5) Important Conceptual Takeaways&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LLM alone is not an agent.&lt;/li&gt;
&lt;li&gt;Agents require structured orchestration.&lt;/li&gt;
&lt;li&gt;Real-world systems need replanning capability.&lt;/li&gt;
&lt;li&gt;Multi-agent systems introduce coordination complexity.&lt;/li&gt;
&lt;li&gt;Security and cost control are architectural responsibilities.&lt;/li&gt;
&lt;li&gt;Observability is essential for production systems.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mental model to retain:&lt;br&gt;
Agent = Brain (LLM) + Tools + Memory + Planning + Control Loop&lt;/p&gt;




&lt;p&gt;End of Week 1 Notes&lt;/p&gt;

&lt;p&gt;This session focused on conceptual foundations and architectural clarity. Future weeks will likely build deeper into implementation patterns and advanced agent systems.&lt;/p&gt;

&lt;p&gt;I’ll continue documenting each week in this series for structured revision.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>beginners</category>
      <category>llm</category>
    </item>
    <item>
      <title>Fixing AgentCore CLI Hangs on Windows: Step‑by‑Step with Python, AWS CLI, Strands agents and WSL</title>
      <dc:creator>Girish Mukim</dc:creator>
      <pubDate>Mon, 19 Jan 2026 02:41:34 +0000</pubDate>
      <link>https://dev.to/girishmukim/fixing-agentcore-cli-hangs-on-windows-step-by-step-with-python-aws-cli-and-wsl-26j6</link>
      <guid>https://dev.to/girishmukim/fixing-agentcore-cli-hangs-on-windows-step-by-step-with-python-aws-cli-and-wsl-26j6</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;While experimenting with &lt;strong&gt;Amazon Bedrock AgentCore&lt;/strong&gt; on &lt;strong&gt;Windows&lt;/strong&gt;, I ran into a frustrating issue:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;agentcore configure&lt;/code&gt; would &lt;strong&gt;hang indefinitely&lt;/strong&gt;, even with a minimal sample agent.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;No errors. No logs. Just a frozen terminal.&lt;/p&gt;

&lt;p&gt;This blog documents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;exact symptoms&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Why this happens on Windows&lt;/li&gt;
&lt;li&gt;Why &lt;strong&gt;Python 3.13 breaks AgentCore&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Why installing Python 3.11 is &lt;strong&gt;not enough&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;And the &lt;strong&gt;only reliable fix&lt;/strong&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’re using &lt;strong&gt;Strands + AgentCore on Windows&lt;/strong&gt;, this will save you hours.&lt;/p&gt;

&lt;p&gt;You can try running AgentCore directly on Windows and follow the troubleshooting steps I went through, but in my experience, it never worked reliably. If it doesn’t work for you either, don’t worry — &lt;strong&gt;WSL on Windows is the way to go for a stable setup.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Environment
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;OS: &lt;strong&gt;Windows 10 / 11&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Python versions installed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;❌ Python &lt;strong&gt;3.13&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;✅ Python &lt;strong&gt;3.11.9&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;bedrock-agentcore-starter-toolkit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;strands&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;strands-agents-tools&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Shell: Command Prompt / PowerShell&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Symptom
&lt;/h2&gt;

&lt;p&gt;Running the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;agentcore configure &lt;span class="nt"&gt;--entrypoint&lt;/span&gt; agentcore.py &lt;span class="nt"&gt;--region&lt;/span&gt; us-east-1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Results in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No output&lt;/li&gt;
&lt;li&gt;No error&lt;/li&gt;
&lt;li&gt;CLI hangs forever&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Never ending wait...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpkbdclqpd8y44rndm8lo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpkbdclqpd8y44rndm8lo.png" alt="Terminal showing  raw `agentcore configure` endraw  hanging with no output" width="800" height="170"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  First Assumption: My Agent Code Is Wrong ❌
&lt;/h2&gt;

&lt;p&gt;I simplified the agent to the absolute minimum:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;strands&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Agent&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;strands.models&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;MockModel&lt;/span&gt;

&lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nc"&gt;MockModel&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
    &lt;span class="n"&gt;system_prompt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;test&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Still hangs.&lt;/p&gt;

&lt;p&gt;➡️ This proves &lt;strong&gt;the issue is not agent logic&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Second Assumption: AWS Credentials or Bedrock ❌
&lt;/h2&gt;

&lt;p&gt;I validated AWS access:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws sts get-caller-identity &lt;span class="nt"&gt;--region&lt;/span&gt; us-east-1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✔ Works instantly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F47f80y2y3d3haslqmjfu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F47f80y2y3d3haslqmjfu.png" alt=" " width="800" height="219"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;➡️ Not an AWS or Bedrock permission issue.&lt;/p&gt;




&lt;h2&gt;
  
  
  Third Assumption:: Python Version (3.11) ❌
&lt;/h2&gt;

&lt;p&gt;If you don't want to try Python version 3.11, go ahead to skip this section and move to &lt;strong&gt;Network &amp;amp; Connectivity Validation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Checking Python version:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Python 3.13.x
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Checking where AgentCore-related packages are installed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip show strands-agents | findstr Location
pip show strands-agents-tools | findstr Location
pip show bedrock-agentcore-starter-toolkit | findstr Location
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Location: C:\Users\AppData\Roaming\Python\Python313\site-packages
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;➡️ &lt;strong&gt;All AgentCore binaries are bound to Python 3.13&lt;/strong&gt;&lt;/p&gt;






&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C:\Users\LearnAI&amp;gt;pip show strands-agents | findstr Python
Location: C:\Users\AppData\Roaming\Python\Python313\site-packages

C:\Users\LearnAI&amp;gt;pip show strands-agents-tools | findstr Python
Location: C:\Users\AppData\Roaming\Python\Python313\site-packages

C:\Users\LearnAI&amp;gt;pip show bedrock-agentcore-starter-toolkit | findstr Python
Location: C:\Users\AppData\Roaming\Python\Python313\site-packages

C:\Users\LearnAI&amp;gt;pip show bedrock-agentcore | findstr Python
Location: C:\Users\AppData\Roaming\Python\Python313\site-packages

C:\Users\LearnAI&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Installing Python 3.11 Is Necessary — But Not Sufficient&lt;/p&gt;

&lt;p&gt;I installed &lt;strong&gt;Python 3.11.9&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://www.python.org/downloads/release/python-3119/" rel="noopener noreferrer"&gt;https://www.python.org/downloads/release/python-3119/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But after installation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Still showed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Python 3.13.x
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Because &lt;strong&gt;Windows PATH still prioritizes Python 3.13&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Attempt 1: Fix PATH Order (Partial Fix)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Steps:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;Environment Variables&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Edit &lt;strong&gt;System PATH&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Move Python 3.11 paths &lt;strong&gt;above&lt;/strong&gt; Python 3.13&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C:\Python311\
C:\Python311\Scripts\
C:\Users\...\Python313\
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Restart terminal.&lt;/p&gt;

&lt;p&gt;Verify:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Python 3.11.9
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzc2t88o5htzru1esgwfh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzc2t88o5htzru1esgwfh.png" alt="Windows PATH editor" width="750" height="823"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Still Not Working? Here’s Why
&lt;/h2&gt;

&lt;p&gt;Even after fixing PATH, &lt;strong&gt;pip-installed binaries remain tied to Python 3.13&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This is the key gotcha.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;agentcore
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This binary was installed using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Python 3.13 pip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So it still launches under &lt;strong&gt;3.13&lt;/strong&gt;, regardless of PATH.&lt;/p&gt;




&lt;h2&gt;
  
  
  Let's remove Python 3.13
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ✅ Completely remove Python 3.13 tooling
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Uninstall AgentCore and related packages
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip uninstall bedrock-agentcore-starter-toolkit strands-agents strands-agents-tools &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Make sure this &lt;code&gt;pip&lt;/code&gt; is from Python 3.13.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C:\Users\LearnAI&amp;gt;where pip
C:\Python313\Scripts\pip.exe
C:\Users\AppData\Roaming\Python\Python313\Scripts\pip.exe

C:\Users\LearnAI&amp;gt;pip uninstall bedrock-agentcore-starter-toolkit strands strands-agents-tools -y
Found existing installation: bedrock-agentcore-starter-toolkit 0.1.10
Uninstalling bedrock-agentcore-starter-toolkit-0.1.10:
  Successfully uninstalled bedrock-agentcore-starter-toolkit-0.1.10
WARNING: Skipping strands as it is not installed.
Found existing installation: strands-agents-tools 0.2.19
Uninstalling strands-agents-tools-0.2.19:
  Successfully uninstalled strands-agents-tools-0.2.19

C:\Users\LearnAI&amp;gt;pip uninstall strands-agents -y
Found existing installation: strands-agents 1.22.0
Uninstalling strands-agents-1.22.0:
  Successfully uninstalled strands-agents-1.22.0

C:\Users\LearnAI&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h4&gt;
  
  
  2. (Optional but recommended) Uninstall Python 3.13
&lt;/h4&gt;

&lt;p&gt;From:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Windows “Add or Remove Programs”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This avoids future confusion.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu3k4mfq8t1ftdysucvs0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu3k4mfq8t1ftdysucvs0.png" alt=" " width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h4&gt;
  
  
  3. Activate Python 3.11 explicitly
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;py &lt;span class="nt"&gt;-3&lt;/span&gt;.11 &lt;span class="nt"&gt;-m&lt;/span&gt; venv agentcore-env
agentcore-env&lt;span class="se"&gt;\S&lt;/span&gt;cripts&lt;span class="se"&gt;\a&lt;/span&gt;ctivate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Python 3.11.9
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;In my case, I removed path referencing Python313 from system environment variables and started a new command line terminal.&lt;/p&gt;

&lt;p&gt;still observed that pip is pointing to Python313.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C:\Users\LearnAI&amp;gt;where pip
C:\Users\AppData\Roaming\Python\Python313\Scripts\pip.exe
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C:\Users\LearnAI&amp;gt;python -m pip install --upgrade pip
Requirement already satisfied: pip in c:\users\appdata\local\programs\python\python311\lib\site-packages (24.0)
Collecting pip
  Using cached pip-25.3-py3-none-any.whl.metadata (4.7 kB)
Using cached pip-25.3-py3-none-any.whl (1.8 MB)
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 24.0
    Uninstalling pip-24.0:
      Successfully uninstalled pip-24.0
  WARNING: The scripts pip.exe, pip3.11.exe and pip3.exe are installed in 'C:\Users\AppData\Local\Programs\Python\Python311\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pip-25.3

C:\Users\LearnAI&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Added C:\Users\AppData\Local\Programs\Python\Python311\Scripts to PATH.&lt;br&gt;
Also manually removed pip.exe from Python313 folder.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C:\Users\LearnAI&amp;gt;where pip
C:\Users\AppData\Local\Programs\Python\Python311\Scripts\pip.exe

C:\Users\LearnAI&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  4. Reinstall everything under Python 3.11
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--upgrade&lt;/span&gt; pip
pip &lt;span class="nb"&gt;install &lt;/span&gt;boto3 bedrock-agentcore-starter-toolkit strands-agents strands-agents-tools
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip show bedrock-agentcore-starter-toolkit | findstr Location
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Python311\site-packages
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;








&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C:\Users\LearnAI&amp;gt;
C:\Users\LearnAI&amp;gt;pip show bedrock-agentcore-starter-toolkit | findstr Location
Location: C:\Users\AppData\Local\Programs\Python\Python311\Lib\site-packages

C:\Users\LearnAI&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;Oops Still the same issue -&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdu4usivmjp4epkum1crh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdu4usivmjp4epkum1crh.png" alt=" " width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Despite this cleanup, the agentcore configure hang still persists, confirming this is not a Python-version issue.&lt;/p&gt;

&lt;p&gt;Here’s how you can write the Python 3.11 point in the same style as your other assumptions:&lt;/p&gt;






&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;span class="c"&gt;# Python 3.11.x&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✔ Python 3.11 is correctly set up and recognized.&lt;/p&gt;

&lt;p&gt;➡️ Python version was &lt;strong&gt;not the root cause&lt;/strong&gt; of the AgentCore issues.&lt;/p&gt;




&lt;h2&gt;
  
  
  Network &amp;amp; Connectivity Validation
&lt;/h2&gt;

&lt;p&gt;To rule out firewall or endpoint connectivity issues, the following test was performed:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;curl https://bedrock.us-east-1.amazonaws.com&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Result:&lt;br&gt;
&lt;code&gt;&amp;lt;UnknownOperationException/&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Why this result is important&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DNS resolution succeeded.&lt;/li&gt;
&lt;li&gt;TLS handshake succeeded.&lt;/li&gt;
&lt;li&gt;Outbound HTTPS (port 443) connectivity is confirmed.&lt;/li&gt;
&lt;li&gt;The error is expected when calling the Bedrock control-plane endpoint without request signing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;The local machine can successfully reach AWS Bedrock endpoints. Firewall or port blocking is unlikely to be the root cause.&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;Since AgentCore continued to hang or behave unpredictably on Windows despite fixing Python and AWS CLI issues, I decided to rule out platform-related problems. To do this, I switched to &lt;strong&gt;WSL (Windows Subsystem for Linux)&lt;/strong&gt;, which provides a Linux environment on Windows, and tested AgentCore there. This approach helps isolate any Windows-specific limitations and ensures a cleaner, more consistent runtime for Python 3.11 and AWS CLI.&lt;/p&gt;
&lt;h2&gt;
  
  
  High-level approach
&lt;/h2&gt;

&lt;p&gt;You will:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open a &lt;strong&gt;Linux distro inside WSL&lt;/strong&gt; (Ubuntu recommended)&lt;/li&gt;
&lt;li&gt;Install &lt;strong&gt;Python 3.11&lt;/strong&gt; inside WSL&lt;/li&gt;
&lt;li&gt;Install &lt;strong&gt;AgentCore + Strands&lt;/strong&gt; inside WSL&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;agentcore configure&lt;/code&gt; from WSL&lt;/li&gt;
&lt;li&gt;Compare behavior with Windows&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;
  
  
  Step-by-step: Running AgentCore in WSL
&lt;/h2&gt;

&lt;p&gt;You can refer Microsoft’s official WSL installation documentation — step‑by‑step on installing WSL and a Linux distro (like Ubuntu) on Windows using the integrated installer:&lt;br&gt;
👉 &lt;a href="https://learn.microsoft.com/windows/wsl/install" rel="noopener noreferrer"&gt;Install WSL&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This doc explains how to enable WSL, install a Linux distribution (Ubuntu by default), and get up and running with WSL.&lt;/p&gt;
&lt;h3&gt;
  
  
  1️⃣ Confirm your WSL distro
&lt;/h3&gt;

&lt;p&gt;From Windows command line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C:\Users\LearnAI&amp;gt;wsl
gmukim@LearnAI:/mnt/c/Users/LearnAI$

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;From &lt;strong&gt;PowerShell&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;wsl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-l&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-v&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;NAME      STATE   VERSION
Ubuntu    Running 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you don’t have Ubuntu, install it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;wsl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-d&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Ubuntu&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqlxnfc6m3sp1hqb14bkh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqlxnfc6m3sp1hqb14bkh.png" alt="WSL distro list showing Ubuntu (WSL2)" width="712" height="169"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  2️⃣ Open Ubuntu (WSL)
&lt;/h3&gt;

&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;wsl&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You are now inside &lt;strong&gt;Linux&lt;/strong&gt;, not Windows. &lt;em&gt;Start WSL from your working directory.&lt;/em&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  3️⃣ Install Python 3.11 in WSL (clean)
&lt;/h3&gt;

&lt;p&gt;Inside Ubuntu:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; python3.11 python3.11-venv python3.11-dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3.11 &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzprt6r19s476bspsgdcy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzprt6r19s476bspsgdcy.png" alt="python3.11 version" width="800" height="111"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  4️⃣ Create a virtual environment (important)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3.11 &lt;span class="nt"&gt;-m&lt;/span&gt; venv agentcore-env
&lt;span class="nb"&gt;source &lt;/span&gt;agentcore-env/bin/activate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(agentcore-env)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gmukim@LearnAI:/mnt/c/GirishIBM/SkillUP/AWS/Certifications/AI Professional/LearnAI$ python3.11 -m venv agentcore-env

gmukim@LearnAI:/mnt/c/Users/LearnAI$
gmukim@LearnAI:/mnt/c/Users/LearnAI$ source agentcore-env/bin/activate
(agentcore-env) gmukim@LearnAI:/mnt/c/Users/LearnAI$

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  5️⃣ Install AgentCore + dependencies
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--upgrade&lt;/span&gt; pip
pip &lt;span class="nb"&gt;install &lt;/span&gt;bedrock-agentcore-starter-toolkit strands-agents strands-agents-tools
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify installs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip show bedrock-agentcore
pip show strands-agents
pip show strands-agents-tools
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(agentcore-env) gmukim@LearnAI:/mnt/c/GirishIBM/SkillUP/AWS/Certifications/AI Professional/LearnAI$ pip show bedrock-agentcore
Name: bedrock-agentcore
Version: 1.2.0
Summary: An SDK for using Bedrock AgentCore
Home-page: https://github.com/aws/bedrock-agentcore-sdk-python
Author:
Author-email: AWS &amp;lt;opensource@amazon.com&amp;gt;
License: Apache-2.0
Location: /mnt/c/GirishIBM/SkillUP/AWS/Certifications/AI Professional/LearnAI/agentcore-env/lib/python3.11/site-packages
Requires: boto3, botocore, pydantic, starlette, typing-extensions, urllib3, uvicorn, websockets
Required-by: bedrock-agentcore-starter-toolkit

(agentcore-env) gmukim@LearnAI:/mnt/c/Users/LearnAI$ pip show strands-agents
Name: strands-agents
Version: 1.22.0
Summary: A model-driven approach to building AI agents in just a few lines of code
Home-page: https://github.com/strands-agents/sdk-python
Author:
Author-email: AWS &amp;lt;opensource@amazon.com&amp;gt;
License: Apache-2.0
Location: /mnt/c/Users/LearnAI/agentcore-env/lib/python3.11/site-packages
Requires: boto3, botocore, docstring-parser, jsonschema, mcp, opentelemetry-api, opentelemetry-instrumentation-threading, opentelemetry-sdk, pydantic, typing-extensions, watchdog
Required-by: strands-agents-tools
(agentcore-env) gmukim@LearnAI:/mnt/c/Users/LearnAI$

(agentcore-env) gmukim@LearnAI:/mnt/c/Users/LearnAI$ pip show strands-agents-tools
Name: strands-agents-tools
Version: 0.2.19
Summary: A collection of specialized tools for Strands Agents
Home-page: https://github.com/strands-agents/tools
Author:
Author-email: AWS &amp;lt;opensource@amazon.com&amp;gt;
License: Apache-2.0
Location: /mnt/c/Users/LearnAI/agentcore-env/lib/python3.11/site-packages
Requires: aiohttp, aws-requests-auth, botocore, dill, markdownify, pillow, prompt-toolkit, pyjwt, requests, rich, slack-bolt, strands-agents, sympy, tenacity, typing-extensions, watchdog
Required-by:
(agentcore-env) gmukim@LearnAI:/mnt/c/Users/LearnAI$

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  7️⃣ Configure AWS credentials inside WSL
&lt;/h3&gt;

&lt;p&gt;This is important — &lt;strong&gt;Windows AWS creds do not automatically carry over&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Inside WSL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws configure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  If require, install AWS CLI.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  8️⃣ Run AgentCore configure and Launch (the real test)
&lt;/h3&gt;

&lt;p&gt;Now the moment of truth:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;agentcore configure &lt;span class="nt"&gt;--entrypoint&lt;/span&gt; agentcore.py &lt;span class="nt"&gt;--region&lt;/span&gt; us-east-1 &lt;span class="nt"&gt;--verbose&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fndpk4aghaev6apepa2su.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fndpk4aghaev6apepa2su.png" alt="agentcore configure" width="800" height="270"&gt;&lt;/a&gt;&lt;/p&gt;






&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;agentcore launch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyyc949yk9e8kxpdorb9b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyyc949yk9e8kxpdorb9b.png" alt="agentcore launch" width="800" height="347"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;agentcore status
agentcore invoke '{"prompt": "What is the current time?"}'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✔ Completes successfully&lt;br&gt;
✔ No hang&lt;br&gt;
✔ AgentCore works as expected&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8xo7wk7327l8q4hqvyb5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8xo7wk7327l8q4hqvyb5.png" alt="Final Response" width="800" height="313"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Destroying AgentCore Resources [ &lt;strong&gt;Critical&lt;/strong&gt; ]
&lt;/h3&gt;

&lt;p&gt;After testing your agent, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;agentcore destroy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This deletes the deployed agent and any remote build artifacts. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flvjp5mcn7uboadt4r2gy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flvjp5mcn7uboadt4r2gy.png" alt="agentcore destroy" width="800" height="167"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Do you want me to also add the &lt;strong&gt;one-line reminder message&lt;/strong&gt; for learners?&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;This issue is subtle, silent, and extremely frustrating — especially because AgentCore fails by &lt;strong&gt;hanging instead of erroring&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Hopefully, this guide helps you avoid the same trap.&lt;/p&gt;

&lt;p&gt;This journey showed me how environment issues can block AgentCore. I found that using &lt;strong&gt;WSL with Python 3.11 and a clean AWS CLI install provided a stable setup.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That’s it for this deep dive! Hopefully, this helps you avoid the pitfalls I ran into.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;— Girish, signing off. See you in the next one!&lt;/strong&gt;&lt;/p&gt;




</description>
      <category>ai</category>
      <category>bedrock</category>
      <category>agentcore</category>
      <category>agents</category>
    </item>
    <item>
      <title>How to Build a Scalable RAG-Based Chatbot on AWS?</title>
      <dc:creator>Girish Mukim</dc:creator>
      <pubDate>Sun, 14 Dec 2025 17:32:05 +0000</pubDate>
      <link>https://dev.to/girishmukim/how-to-build-a-scalable-rag-based-chatbot-on-aws-56n1</link>
      <guid>https://dev.to/girishmukim/how-to-build-a-scalable-rag-based-chatbot-on-aws-56n1</guid>
      <description>&lt;p&gt;&lt;em&gt;This article is written in collaboration with &lt;a href="https://www.linkedin.com/in/apokale/" rel="noopener noreferrer"&gt;Ajay Pokale&lt;/a&gt;, a Senior Architect at Cognizant.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TL;DR (Key Takeaways)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Retrieval-Augmented Generation (RAG) allows LLMs to answer questions using your private data.&lt;/li&gt;
&lt;li&gt;Amazon Bedrock + S3 Vectors enable a fully serverless RAG implementation&lt;/li&gt;
&lt;li&gt;Amazon Nova Lite provides fast, cost-efficient responses for real-time chatbots&lt;/li&gt;
&lt;li&gt;The solution is scalable, secure, and ideal for schools, enterprises, and internal knowledge systems&lt;/li&gt;
&lt;li&gt;No servers to manage, minimal cost, production-ready architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Large Language Models (LLMs) are incredibly powerful. They can generate text, summarize content, and answer complex questions.&lt;br&gt;
However, they have one critical limitation:&lt;/p&gt;

&lt;p&gt;👉 They do not know your private or domain-specific data.&lt;/p&gt;

&lt;p&gt;This makes them unreliable for scenarios involving:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Internal company policies&lt;/li&gt;
&lt;li&gt;School rules and schedules&lt;/li&gt;
&lt;li&gt;Proprietary documents&lt;/li&gt;
&lt;li&gt;Frequently changing information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Retrieval-Augmented Generation (RAG)&lt;/strong&gt; solves this problem by combining:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Information retrieval&lt;/strong&gt; from your own data sources&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Text generation&lt;/strong&gt; using an LLM&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The result is an AI assistant that produces &lt;strong&gt;accurate, grounded, and trustworthy answers.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In this guide, we will build a &lt;strong&gt;scalable, serverless RAG chatbot on AWS&lt;/strong&gt; using Amazon Bedrock and modern AWS services.&lt;/p&gt;
&lt;h2&gt;
  
  
  Real-World Use Case: School Assistant Chatbot
&lt;/h2&gt;

&lt;p&gt;Let’s consider a use case for primary schools: a chatbot designed to provide quick answers to everyday questions for parents, students, and staff. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Current Challenges&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Parents call the school office for routine questions&lt;/li&gt;
&lt;li&gt;Staff repeatedly answer the same queries&lt;/li&gt;
&lt;li&gt;Information delivery is slow and inconsistent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Way Forward using chatbot&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Parents ask the chatbot 24/7&lt;/li&gt;
&lt;li&gt;Answers are retrieved directly from official school documents&lt;/li&gt;
&lt;li&gt;Administrative workload is significantly reduced&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example Questions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;When is the next school holiday?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;What documents are required for admission?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;What are the school lunch rules?&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes RAG an ideal solution for education, HR, compliance, and internal knowledge systems.&lt;/p&gt;
&lt;h2&gt;
  
  
  Solution Architecture Overview
&lt;/h2&gt;

&lt;p&gt;We use a &lt;strong&gt;fully serverless AWS architecture&lt;/strong&gt; to achieve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automatic scaling&lt;/li&gt;
&lt;li&gt;High availability&lt;/li&gt;
&lt;li&gt;Low operational cost&lt;/li&gt;
&lt;li&gt;Minimal infrastructure management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh5gsav2e8k8mupi6nkzy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh5gsav2e8k8mupi6nkzy.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Components Explained:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Knowledge Base (Amazon S3 + S3 Vectors)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;School documents are stored in Amazon S3&lt;/li&gt;
&lt;li&gt;Amazon Bedrock converts documents into vector embeddings using the Titan Embeddings model.&lt;/li&gt;
&lt;li&gt;These embeddings are stored in S3 Vectors for fast semantic search.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why S3 Vectors?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fully serverless (no cluster management)&lt;/li&gt;
&lt;li&gt;Cost-effective for RAG workloads&lt;/li&gt;
&lt;li&gt;Seamless upgrade path to Amazon OpenSearch for advanced search needs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Amazon Bedrock Agent (RAG Intelligence Layer)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Bedrock Agent&lt;/strong&gt; acts as the brain of the chatbot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Embeds the user’s question&lt;/li&gt;
&lt;li&gt;Searches the vectorized knowledge base&lt;/li&gt;
&lt;li&gt;Retrieves relevant context&lt;/li&gt;
&lt;li&gt;Generates grounded responses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This ensures &lt;strong&gt;accuracy, relevance, and traceability.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API Gateway and Lambda (Serverless Backend)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Amazon API Gateway exposes a secure HTTP endpoint&lt;/li&gt;
&lt;li&gt;AWS Lambda invokes the Bedrock Agent&lt;/li&gt;
&lt;li&gt;Event-driven execution keeps costs low, and scaling is automatic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Frontend Chatbot (Amazon S3 Static Website)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Chatbot UI hosted on Amazon S3&lt;/li&gt;
&lt;li&gt;Lightweight and highly available&lt;/li&gt;
&lt;li&gt;Optional Amazon CloudFront for HTTPS, caching, and WAF protection&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Step-by-step implementation
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Create the Knowledge Base&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create an Amazon S3 bucket&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Head to the AWS Management Console and create an S3 bucket for the documents.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwobv3m4iweqlw92wjtau.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwobv3m4iweqlw92wjtau.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upload school documents (PDFs, text files, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpnetjgvrwj7vyrjl9m4v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpnetjgvrwj7vyrjl9m4v.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a Knowledge Base using the S3 bucket.
The above S3 bucket will serve as our data source for the knowledge base (managed RAG). &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Head over to the Bedrock service page in the AWS Console. Look for the Build section in the left-hand navigation, and select Knowledge Base. From there, the console will guide you through the initial setup steps. We have included screenshots below to walk you through the entire process visually.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkve9agig6m20tkpr0t6b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkve9agig6m20tkpr0t6b.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffhoxtdw4ubhkr4w2og2t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffhoxtdw4ubhkr4w2og2t.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkv4wdajl9iqtijqy3qqp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkv4wdajl9iqtijqy3qqp.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxtjwf9z4yte7c11ugygo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxtjwf9z4yte7c11ugygo.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxdfpqhklohsln55md6fo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxdfpqhklohsln55md6fo.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F34u3i4dqiijyheiydu52.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F34u3i4dqiijyheiydu52.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjuc3ftaozpwc1eib13d2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjuc3ftaozpwc1eib13d2.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fybed7ym3npb6taoxt0st.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fybed7ym3npb6taoxt0st.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyvuz2lc2i41ozjwlgh25.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyvuz2lc2i41ozjwlgh25.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwk7lpea4u8vu15917ook.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwk7lpea4u8vu15917ook.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7hse25y8gnpjwf2c3bfv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7hse25y8gnpjwf2c3bfv.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fstbez4kryf2q28i3ql7z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fstbez4kryf2q28i3ql7z.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Verify that the vector bucket is created by navigating to the following location -&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz6sse1hus009tg152yrh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz6sse1hus009tg152yrh.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Choose the LLM (Amazon Nova Lite)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is arguably the most critical decision, as your LLM selection is a direct trade-off between operational cost and response quality tailored to your specific use case.&lt;/p&gt;

&lt;p&gt;We selected Amazon Nova Lite because it provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Low latency&lt;/li&gt;
&lt;li&gt;Cost-efficient inference&lt;/li&gt;
&lt;li&gt;Strong performance for RAG use cases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is ideal for real-time conversational workloads.&lt;/p&gt;

&lt;p&gt;Amazon Bedrock offers a wide range of foundation models. You can explore the full catalog and its respective capabilities &lt;a href="https://aws.amazon.com/bedrock/model-choice/" rel="noopener noreferrer"&gt;HERE&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Configure the Bedrock Agent&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With the Knowledge Base ready, the next logical step is to create the Bedrock Agent that will utilize it. You'll find Agents located under the Build section in the left panel. Simply click there and follow the console instructions to define your agent. For a quick visual walkthrough, reference the screenshots provided below.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Create an agent in Amazon Bedrock.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fugtohtbse2loqdemrq9f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fugtohtbse2loqdemrq9f.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdterh0vt5ak13vvvkwvk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdterh0vt5ak13vvvkwvk.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Nova Lite as the foundation model.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffrzx44i4wzin5ezyio3m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffrzx44i4wzin5ezyio3m.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1blhzm5gqc6n4dzki37b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1blhzm5gqc6n4dzki37b.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can find &lt;strong&gt;“Instructions for the Agent”&lt;/strong&gt; in the GitHub repository &lt;a href="https://github.com/ajaypokale/rag-chatbots/tree/7aeb503f242e50b945fd06e2552ba5ad777f56a9/school-assistant-chatbot" rel="noopener noreferrer"&gt;HERE&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Attach the Knowledge Base&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6jgug3hthnon8tuibrmk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6jgug3hthnon8tuibrmk.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡 Tip: Save the agent before attaching the Knowledge Base to avoid configuration errors.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4t1v4uj2i37un4k4vczi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4t1v4uj2i37un4k4vczi.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftu4rjycc3ip01x45ekd7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftu4rjycc3ip01x45ekd7.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb0373cz6m1k5lmrf6jp9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb0373cz6m1k5lmrf6jp9.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the knowledge is attached successfully to the Agent, click on the &lt;strong&gt;“Prepare”&lt;/strong&gt; button as shown in the below screenshot.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv0dai6eas1uqqsd2fuyo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv0dai6eas1uqqsd2fuyo.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Backend Integration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now that our Bedrock Agent is fully configured (which serves as our backend core), we need a public, scalable interface for the &lt;strong&gt;frontend chatbot&lt;/strong&gt; application to securely interact with it.&lt;/p&gt;

&lt;p&gt;This interface is a classic serverless pattern: using &lt;strong&gt;Amazon API Gateway&lt;/strong&gt; as the secure HTTP endpoint and &lt;strong&gt;AWS Lambda&lt;/strong&gt; as the compute layer to orchestrate the request. The Lambda function acts as the handler, taking the user's query from the chatbot frontend and passing it directly to the Bedrock Agent. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create an AWS Lambda function.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Lambda code is available on the GitHub repository &lt;a href="https://github.com/ajaypokale/rag-chatbots/tree/7aeb503f242e50b945fd06e2552ba5ad777f56a9/school-assistant-chatbot" rel="noopener noreferrer"&gt;HERE&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2jqmwtngepygwb9insky.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2jqmwtngepygwb9insky.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Grant bedrock: InvokeAgent permission&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Lambda Execution Role would need permission to invoke an agent.&lt;br&gt;
Below IAM policy is available on the GitHub repository &lt;a href="https://github.com/ajaypokale/rag-chatbots/tree/7aeb503f242e50b945fd06e2552ba5ad777f56a9/school-assistant-chatbot" rel="noopener noreferrer"&gt;HERE&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv792yy9t62jru7e765ii.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv792yy9t62jru7e765ii.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Integrate Lambda with Amazon API Gateway&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check our YouTube video for a tutorial on creating an API Gateway and Lambda integration.&lt;/p&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/cEFKsieGZaU"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Deploy the Chatbot Website&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The final step is deploying the frontend interface - the actual chatbot widget on the school website - where users will interact with the agent. To achieve maximum availability, scalability, and cost-efficiency, we will host the static assets using &lt;strong&gt;Amazon S3 Static Website Hosting.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This approach ensures your chatbot widget is always available on the main school site. The process involves three simple steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Bucket Configuration:&lt;/strong&gt; Create an S3 bucket and enable Static Website Hosting, configuring the appropriate Index and Error documents.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Asset Upload:&lt;/strong&gt; Upload all HTML, CSS, JavaScript to this S3 bucket.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Access Control:&lt;/strong&gt; Ensure the bucket policy grants public read access, allowing the website content to be served correctly.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Below files are available on the GitHub repository &lt;a href="https://github.com/ajaypokale/rag-chatbots/tree/7aeb503f242e50b945fd06e2552ba5ad777f56a9/school-assistant-chatbot" rel="noopener noreferrer"&gt;HERE&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7sk1lvltfgssiqwtqodf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7sk1lvltfgssiqwtqodf.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enable S3 static website hosting and have an appropriate bucket policy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0lfmo2sl3tlz4kkborxy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0lfmo2sl3tlz4kkborxy.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwwg5w1zee7ptub45cw4g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwwg5w1zee7ptub45cw4g.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For a production environment, we highly recommend using &lt;strong&gt;Amazon CloudFront&lt;/strong&gt; with the S3 bucket as its origin. This provides better security, lower latency via the edge network, and allows you to keep the S3 bucket fully private. However, for simplicity in this tutorial, we opted for direct S3 hosting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Outcome
&lt;/h2&gt;

&lt;p&gt;After all the configuration and code deployment, the final and most satisfying result is the fully operational School Assistant chatbot. Below, you can see the assistant handling a couple of real-world queries, demonstrating how it correctly retrieves and grounds answers using the Knowledge Base.&lt;/p&gt;

&lt;p&gt;Meet the School Assistant&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uses verified, document-based knowledge&lt;/li&gt;
&lt;li&gt;Delivers accurate, explainable answers&lt;/li&gt;
&lt;li&gt;Scales automatically with traffic&lt;/li&gt;
&lt;li&gt;Runs at minimal cost&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is production-ready RAG with serverless simplicity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm6t5qydvogk4g4f2u9e1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm6t5qydvogk4g4f2u9e1.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbhoxcnautfjeycdwks3x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbhoxcnautfjeycdwks3x.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Cleanup
&lt;/h2&gt;

&lt;p&gt;While the components we used (S3, Lambda, API Gateway) are very cost-effective and offer generous free tiers, the key components for cost management are the &lt;strong&gt;Amazon Bedrock Agent&lt;/strong&gt; and its associated resources. If you are finished with your prototype, &lt;strong&gt;cleaning up is essential to prevent ongoing charges.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1.1 Delete the Bedrock Agent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to the Amazon Bedrock console, find the Agents section, and delete the agent you created (School Assistant).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;1.2 Delete the Knowledge Base:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Bedrock console, go to Knowledge bases. Delete the Knowledge Base you created. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;1.3 Delete the S3 Bucket and Lambda Function:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;S3 Buckets: You must first empty the S3 bucket used for both your Knowledge Base data and your static website before you can delete the bucket itself.&lt;/li&gt;
&lt;li&gt;Lambda Function: Delete the Lambda function that served as your API handler.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;1.4 Delete the API Gateway:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the API Gateway console, delete the HTTP API that exposed your Lambda handler.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;1.5 Review IAM Roles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Finally, review the IAM Roles created for the Bedrock Agent and the Lambda function. While these generally incur no cost, deleting them is a good security practice to maintain the principle of least privilege.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;We have successfully walked through the entire process of building a highly effective, cost-optimized, and scalable &lt;strong&gt;School Assistant&lt;/strong&gt; powered by Amazon Bedrock. By combining the retrieval power of the Knowledge Base with the efficiency of the &lt;strong&gt;Amazon Nova Lite&lt;/strong&gt; model and tying it all together with a serverless API layer, we have created a truly intelligent application. We encourage you to use the code repository we have provided to deploy this solution today.&lt;/p&gt;

&lt;p&gt;We’ll continue building on this foundation, explore how the architecture can be extended to support additional real-world use cases, and keep sharing our knowledge along the way.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Bonus for readers preparing for Linux Foundation certifications&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you're exploring certifications in the cloud-native and open source space, the Linux Foundation offers training and exams across areas like Kubernetes, Linux, DevOps, and more.&lt;/p&gt;

&lt;p&gt;You can browse their full course catalog here:&lt;br&gt;
&lt;a href="https://training.linuxfoundation.org/full-catalog/" rel="noopener noreferrer"&gt;https://training.linuxfoundation.org/full-catalog/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you plan to take one of their exams, you can use this code for &lt;strong&gt;30% off: LNF30&lt;/strong&gt;.&lt;br&gt;
(Using the code may also support my writing at no extra cost to you.)&lt;/p&gt;

</description>
      <category>aws</category>
      <category>agents</category>
      <category>rag</category>
      <category>ai</category>
    </item>
    <item>
      <title>Strands Agents in Action: Making AI Practical and Tool-Aware</title>
      <dc:creator>Girish Mukim</dc:creator>
      <pubDate>Mon, 01 Sep 2025 23:39:35 +0000</pubDate>
      <link>https://dev.to/girishmukim/strands-agents-in-action-making-ai-practical-and-tool-aware-1fmi</link>
      <guid>https://dev.to/girishmukim/strands-agents-in-action-making-ai-practical-and-tool-aware-1fmi</guid>
      <description>&lt;p&gt;In today’s world, AI is no longer just about generating text. It’s about &lt;strong&gt;taking action, making decisions, and bridging the gap between knowledge and execution&lt;/strong&gt;. While large language models like those on Amazon Bedrock excel at understanding and generating language, they are limited to providing text-based responses. &lt;strong&gt;Strands Agents represent the next frontier&lt;/strong&gt;: intelligent agents that combine the reasoning power of LLMs with the ability to interact with tools, systems, and data.&lt;/p&gt;

&lt;p&gt;By embedding &lt;strong&gt;tool-awareness&lt;/strong&gt; directly into the agent, Strands Agents empower developers to build applications that not only respond to queries but also perform meaningful work, whether that’s performing calculations, reading and writing files, or managing time-sensitive operations. They are a paradigm shift in how AI can act as a true assistant in real-world workflows, &lt;strong&gt;blending insight with action&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture Overview
&lt;/h2&gt;

&lt;p&gt;The architecture of a Strands Agent can be visualized as a three-step workflow:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd22hvuu5yphjfwvs9lo7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd22hvuu5yphjfwvs9lo7.png" alt=" " width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User Query&lt;/strong&gt; – The process starts when a user sends a request or question to the agent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strands Agent SDK&lt;/strong&gt; – The SDK receives the query and decides how to handle it. It determines whether the LLM alone can answer the query or if a tool should be invoked.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LLM and Tools&lt;/strong&gt; – If a tool is required (e.g., a calculator or file editor), the SDK calls it and integrates its output with the model’s reasoning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result from SDK&lt;/strong&gt; – Finally, the combined response is returned to the user, often including both model reasoning and tool results in a coherent answer.&lt;/p&gt;

&lt;p&gt;This architecture allows developers to build intelligent agents that can reason, compute, and act on external data, making Strands Agents a powerful extension of Amazon Bedrock LLMs or any other LLMs for that matter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Theory isn't enough
&lt;/h2&gt;

&lt;p&gt;Understanding the concepts behind Strands Agents is important, but &lt;strong&gt;real mastery comes from getting your hands dirty&lt;/strong&gt;. In this section, we’ll guide Windows users through installing the Strands Agent SDK and its tools, so you can start building intelligent, tool-enabled applications right away.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Install the packages
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;pip install strands-agents strands-agents-tools boto3&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;strands-agents → core framework&lt;/li&gt;
&lt;li&gt;strands-agents-tools → optional tools (calculator, time, etc.)&lt;/li&gt;
&lt;li&gt;boto3 → needed to connect to Amazon Bedrock&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can check strands-agents and strands-agents-tools version.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pip show strands-agents&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Name: strands-agents
Version: 1.4.0
Summary: A model-driven approach to building AI agents in just a few lines of code
Home-page: https://github.com/strands-agents/sdk-python
Author:
Author-email: AWS &amp;lt;opensource@amazon.com&amp;gt;
License: Apache-2.0
Location: C:\Users\AppData\Roaming\Python\Python313\site-packages
Requires: boto3, botocore, docstring-parser, mcp, opentelemetry-api, opentelemetry-instrumentation-threading, opentelemetry-sdk, pydantic, typing-extensions, watchdog
Required-by: strands-agents-tools
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;pip show strands-agents-tools&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Name: strands-agents-tools
Version: 0.2.3
Summary: A collection of specialized tools for Strands Agents
Home-page: https://github.com/strands-agents/tools
Author:
Author-email: AWS &amp;lt;opensource@amazon.com&amp;gt;
License: Apache-2.0
Location: C:\Users\AppData\Roaming\Python\Python313\site-packages
Requires: aws-requests-auth, botocore, dill, markdownify, pillow, prompt-toolkit, pyjwt, readabilipy, rich, slack-bolt, strands-agents, sympy, tenacity, tzdata, watchdog
Required-by:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 2: Create a minimal agent
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;File: agent_basic.py&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from strands import Agent
from strands.models import BedrockModel

# Connect to Amazon Bedrock model (Nova Lite here, but you can use Claude/Sonnet/etc.)
model = BedrockModel(model_id="amazon.nova-lite-v1:0", region_name="us-east-1")

# Create an agent with ONLY the model (no tools yet)
agent = Agent(model=model)

# Send a simple question
response = agent("Hello! Can you introduce yourself in one line?")
print(response)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C:\Users\aws_strands_agent&amp;gt;agent_basic.py
Hello! I'm an AI designed to assist with a wide range of tasks, from answering questions to providing information and support.Hello! I'm an AI designed to assist with a wide range of tasks, from answering questions to providing information and support.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the most basic working Strands Agent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It calls Amazon Bedrock Nova Lite.&lt;/li&gt;
&lt;li&gt;Responds to your input.&lt;/li&gt;
&lt;li&gt;No multi-agent or tools yet.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 3: Add a simple tool
&lt;/h2&gt;

&lt;p&gt;With preliminary testing out of the way, let's look at how tools can be used using Strands agent. We are still sticking to a single agent. No multi-agent audacious exploration as yet. &lt;/p&gt;

&lt;p&gt;*&lt;em&gt;File: agent_with_tool.py *&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from strands import Agent
from strands.models import BedrockModel
from strands_tools import calculator

# Create Bedrock model
model = BedrockModel(
    model_id="amazon.nova-lite-v1:0",
    region_name="us-east-1"
)

# Create agent with calculator tool
system_prompt = """You are a simple, dedicated calculator. Your sole purpose is to perform mathematical calculations.

Instructions:
1.  Identify: Check if the user's input contains a clear mathematical operation or request for a calculation.
2.  Use Tool: If the input is a calculation, you must use the provided `calculator` tool to solve it. Do not perform the calculation yourself.
3.  Respond Directly: Your output must be the input from user and final numerical result of the calculation. Do not add any extra text, explanations, or conversational filler.
4.  Handle Non-Calculations: If the user's input is not a request for a calculation, you must respond with a single, polite message stating that you can only perform mathematical operations.
5.  Be Concise: Your responses should be as brief and to the point as possible."""

agent = Agent(model=model, system_prompt=system_prompt, tools=[calculator])

# Run the agent with event trace to get detailed results
result = agent("What is 23 * 17?")

# The result is an AgentResult object with 'final_output' and 'events' attributes

print("\n\nFinal Answer:", result)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C:\Users\aws_strands_agent&amp;gt;agent_with_tool.py
&amp;lt;thinking&amp;gt;The user has requested a simple multiplication operation. I can use the calculator tool to perform this operation.&amp;lt;/thinking&amp;gt;

Tool #1: calculator
23 * 17 = 391

Final Answer: 23 * 17 = 391
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Keep Strands Agent Library up-to-date
&lt;/h2&gt;

&lt;p&gt;Strands Agents are evolving rapidly, with new features, tools, and bug fixes released frequently. To take full advantage of the latest capabilities, it’s important to &lt;strong&gt;keep your installation up-to-date&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Before upgrading, it’s useful to preview what changes an update would bring.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pip install strands-agents --upgrade --dry-run&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Requirement already satisfied: strands-agents in c:\users\appdata\roaming\python\python313\site-packages (1.4.0)
Collecting strands-agents
  Downloading strands_agents-1.6.0-py3-none-any.whl.metadata (12 kB)
--
--
Downloading strands_agents-1.6.0-py3-none-any.whl (186 kB)
Would install strands-agents-1.6.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;pip install strands-agents-tools --upgrade --dry-run&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Requirement already satisfied: strands-agents-tools in c:\users\appdata\roaming\python\python313\site-packages (0.2.3)
Collecting strands-agents-tools
  Downloading strands_agents_tools-0.2.5-py3-none-any.whl.metadata (41 kB)
--
--
Downloading strands_agents_tools-0.2.5-py3-none-any.whl (277 kB)
Downloading aiohttp-3.12.15-cp313-cp313-win_amd64.whl (449 kB)
Downloading multidict-6.6.4-cp313-cp313-win_amd64.whl (45 kB)
Downloading yarl-1.20.1-cp313-cp313-win_amd64.whl (86 kB)
Downloading aiohappyeyeballs-2.6.1-py3-none-any.whl (15 kB)
Downloading aiosignal-1.4.0-py3-none-any.whl (7.5 kB)
Downloading frozenlist-1.7.0-cp313-cp313-win_amd64.whl (43 kB)
Downloading propcache-0.3.2-cp313-cp313-win_amd64.whl (40 kB)
Would install aiohappyeyeballs-2.6.1 aiohttp-3.12.15 aiosignal-1.4.0 frozenlist-1.7.0 multidict-6.6.4 propcache-0.3.2 strands-agents-tools-0.2.5 yarl-1.20.1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These commands will show the &lt;strong&gt;latest version pip would install&lt;/strong&gt; without actually upgrading. &lt;/p&gt;

&lt;p&gt;You can quickly verify your currently installed versions.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pip show strands-agents | findstr Version&lt;/code&gt;&lt;br&gt;
&lt;code&gt;pip show strands-agents-tools | findstr Version&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C:\Users\aws_strands_agent&amp;gt;pip show strands-agents | findstr Version
Version: 1.4.0

C:\Users\aws_strands_agent&amp;gt;pip show strands-agents-tools | findstr Version
Version: 0.2.3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now let's upgrade&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pip install --upgrade strands-agents strands-agents-tools&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Requirement already satisfied: strands-agents in c:\users\appdata\roaming\python\python313\site-packages (1.4.0)
Collecting strands-agents
  Using cached strands_agents-1.6.0-py3-none-any.whl.metadata (12 kB)
Requirement already satisfied: strands-agents-tools in c:\users\appdata\roaming\python\python313\site-packages (0.2.3)
Collecting strands-agents-tools
  Using cached strands_agents_tools-0.2.5-py3-none-any.whl.metadata (41 kB)
--
--
Installing collected packages: propcache, multidict, frozenlist, aiohappyeyeballs, yarl, aiosignal, aiohttp, strands-agents, strands-agents-tools
  Attempting uninstall: strands-agents
    Found existing installation: strands-agents 1.4.0
    Uninstalling strands-agents-1.4.0:
      Successfully uninstalled strands-agents-1.4.0
  Attempting uninstall: strands-agents-tools
    Found existing installation: strands-agents-tools 0.2.3
    Uninstalling strands-agents-tools-0.2.3:
      Successfully uninstalled strands-agents-tools-0.2.3
Successfully installed aiohappyeyeballs-2.6.1 aiohttp-3.12.15 aiosignal-1.4.0 frozenlist-1.7.0 multidict-6.6.4 propcache-0.3.2 strands-agents-1.6.0 strands-agents-tools-0.2.5 yarl-1.20.1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify upgraded versions again -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C:\Users\aws_strands_agent&amp;gt;pip show strands-agents | findstr Version
Version: 1.6.0

C:\Users\aws_strands_agent&amp;gt;pip show strands-agents-tools | findstr Version
Version: 0.2.5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Keeping the SDK current ensures you have access to the latest tools, bug fixes, and improvements. It also guarantees that your scripts leveraging events, tool calls, or advanced integrations will work as intended, without running into errors due to outdated APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional Resources
&lt;/h2&gt;

&lt;p&gt;To help you get the most out of Strands Agents, there are several resources that provide documentation, examples, and best practices. One of the most comprehensive references is the official Strands Agents examples page:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strands Agents Examples&lt;/strong&gt; – Explore ready-to-run scripts, sample agent configurations, and tool usage examples.&lt;br&gt;
&lt;a href="https://strandsagents.com/latest/documentation/docs/examples/" rel="noopener noreferrer"&gt;https://strandsagents.com/latest/documentation/docs/examples/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing Thoughts
&lt;/h2&gt;

&lt;p&gt;Strands Agents aren’t just about AI that talks—they’re about AI that acts. By combining LLM reasoning with built-in tools, these agents can perform tasks, fetch data, and make your workflows smarter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don’t just read about it - try the SDK&lt;/strong&gt;, experiment with the calculator, file, or time tools, and see how quickly you can turn ideas into action. Strands Agents make AI interactive, practical, and ready for real-world use.&lt;/p&gt;

&lt;p&gt;For learning AWS cloud and AI, follow me on &lt;a href="https://www.youtube.com/@AWSLearn" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>awsgenai</category>
      <category>bedrock</category>
      <category>strandsagent</category>
    </item>
    <item>
      <title>Solving Oracle Migration Challenges with Amazon RDS Custom</title>
      <dc:creator>Girish Mukim</dc:creator>
      <pubDate>Wed, 23 Jul 2025 21:42:01 +0000</pubDate>
      <link>https://dev.to/girishmukim/solving-oracle-migration-challenges-with-amazon-rds-custom-41oi</link>
      <guid>https://dev.to/girishmukim/solving-oracle-migration-challenges-with-amazon-rds-custom-41oi</guid>
      <description>&lt;p&gt;This blog is for cloud architects, DBAs, and developers who want to understand how to handle complex Oracle workloads miration to AWS. Whether you're exploring Amazon RDS or facing limitations with standard configurations, this post will help you see how &lt;strong&gt;Amazon RDS Custom&lt;/strong&gt; can be a game-changer.&lt;/p&gt;




&lt;p&gt;Migrating large Oracle databases to the AWS cloud can be complex. Even with a well-planned strategy, unexpected issues can appear, especially when dealing with legacy systems or custom configurations. &lt;/p&gt;

&lt;p&gt;In this blog, I’ll share how we used Amazon RDS Custom to solve real-world Oracle migration challenges that standard RDS could not handle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is an Amazon RDS?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Amazon RDS (Relational Database Service) is a fully managed service that supports popular engines like Oracle, PostgreSQL, MySQL, and more. It helps you avoid the heavy lifting of managing infrastructure, backups, and patching.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fthn62atqmq5fu1shjjvt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fthn62atqmq5fu1shjjvt.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key benefits of Amazon RDS:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automated backups and snapshots&lt;/li&gt;
&lt;li&gt;Multi-AZ high availability&lt;/li&gt;
&lt;li&gt;Easy scaling of compute and storage&lt;/li&gt;
&lt;li&gt;Built-in monitoring and security&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;When RDS Isn’t Enough&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In our case, we were migrating a 40 TB Oracle database. Everything was going smooth,until we hit a bug during the import process. The fix required applying one-off Oracle patch, which standard RDS does not support.&lt;/p&gt;

&lt;p&gt;We also needed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Guaranteed Restore Points for flashback (not supported in RDS)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Oracle DBAs often rely on Guaranteed Restore Points (GRPs) for performing safe database changes or upgrades. GRPs allow DBAs to quickly rewind the entire database to a known consistent state without restoring from backups, which can be time-consuming. For example, when applying major schema changes or testing potentially risky application deployments, a DBA can create a GRP before changes and roll back within minutes if something goes wrong. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Control over patching schedules&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In my client’s environment, DBAs owned the patching process end to end. They did not apply every quarterly Oracle patch as soon as it was released—instead, patches were evaluated for business impact and scheduled according to internal change control policies. Some patches were deliberately deferred to avoid disrupting stable production workloads, while one-off patches—often critical or vendor-recommended—were applied on-demand when needed. This level of control ensured they could balance stability, compliance, and vendor requirements. Moving to Amazon RDS doesn't offer that flexibility and applying one-off patches is not an option.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Access to the OS for tuning and diagnostics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application running on this Oracle database was a vendor-provided product, and while most of the time it operated smoothly, there were occasional situations where DBAs had to make changes at the operating system level. This could include adjusting kernel parameters, deploying vendor-recommended diagnostic tools, or analyzing OS logs to troubleshoot performance issues specific to the application’s behavior. These interventions were infrequent but critical when required to maintain stability and performance. In a fully managed service like Amazon RDS, direct OS access is not available, making such tuning and troubleshooting scenarios a challenge without alternative approaches.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;That’s when we pivoted to Amazon RDS Custom.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Amazon RDS Custom?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Amazon RDS Custom is a managed database service that gives you more control over the database and operating system. It’s ideal for workloads that need custom configurations, patches, or legacy support. Amazon RDS custom supports Oracle and SQL server database engines as of writing this blog.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhvbf06kwz9uz5jz2jgbh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhvbf06kwz9uz5jz2jgbh.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What makes RDS Custom different:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Access to the OS via SSH or Systems Manager&lt;/li&gt;
&lt;li&gt;Ability to apply custom patches&lt;/li&gt;
&lt;li&gt;Install agents or modify OS packages&lt;/li&gt;
&lt;li&gt;Use advanced Oracle features like Flashback and Data Guard&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;RDS vs. RDS Custom – Key Differences&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi8t4gp3kjy7szk7kotsg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi8t4gp3kjy7szk7kotsg.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to Set Up Amazon RDS Custom for Oracle?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's break it down into simplified steps:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Set Up the Environment&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.cmk" rel="noopener noreferrer"&gt;Create or reuse a KMS key&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Amazon RDS Custom for Oracle requires encryption at rest, which uses AWS Key Management Service (KMS). You can either create a new KMS key or reuse an existing one. The KMS key must be customer-managed, and you must ensure the RDS Custom service has permissions to use it. This key encrypts database storage, automated backups, read replicas, and snapshots.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.cf.downloading" rel="noopener noreferrer"&gt;Extract CloudFormation templates for RDS Custom&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;RDS Custom deployments use CloudFormation templates to create and manage the necessary AWS resources in your account. These templates define the instance, networking, and supporting infrastructure. AWS provides downloadable templates so you can customize and deploy them according to your environment and compliance requirements.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc" rel="noopener noreferrer"&gt;Configure IAM role&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;RDS Custom for Oracle requires specific IAM roles that allow the service to manage the underlying EC2 instance, Systems Manager (SSM) sessions, and related automation workflows. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Create a Custom Engine Version (CEV)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.preparing.html" rel="noopener noreferrer"&gt;Upload Oracle software to Amazon S3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before you begin creating a custom engine version, you need to gather the required Oracle installation files and patches. Download the relevant Oracle database software patches and installation media from the Oracle Support portal, ensuring you have all necessary components for your desired version. Once downloaded, upload these files to an Amazon S3 bucket. During the CEV creation process, you will specify the path to this S3 bucket, allowing CEV creation workflow to access the required Oracle binaries and patches.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.create.html" rel="noopener noreferrer"&gt;Create the CEV&lt;/a&gt; and &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-creating.html#custom-creating.create" rel="noopener noreferrer"&gt;launch the DB instance&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With your Oracle software now in S3, navigate to the Amazon RDS Console and select the option to create a custom engine version. Point to the S3 location containing your Oracle installation files. The system will validate the files before proceeding. After the custom engine version is successfully created, you can use it as the base to launch a new RDS Custom for Oracle DB instance, giving you a tailored environment that meets your application and compliance needs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Customize and Connect&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Access the host via &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-creating.html#custom-creating.ssh" rel="noopener noreferrer"&gt;SSH&lt;/a&gt; or &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-creating.ssm.html" rel="noopener noreferrer"&gt;Session Manager&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To access the host of an Amazon RDS Custom for Oracle instance, you can use SSH or AWS Systems Manager Session Manager. You can use Putty to connect using key pair as you would do for any other EC2 server.However Systems Manager lets you start a browser-based shell session without needing direct network connectivity or key management. Both methods give you direct operating system access for advanced troubleshooting, configuration, or installing custom tools—capabilities not available with standard RDS instances.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Connect your application to the DB endpoint&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To connect your application to the Amazon RDS Custom for Oracle DB instance, use the provided DB endpoint as the hostname in your database connection string along with the appropriate port and database identifier. This enables your application to communicate directly with the managed database instance.&lt;/p&gt;

&lt;p&gt;If you're a visual learner, I've created a video just for you, demonstrating how to provision RDS Custom for Oracle with clear, step-by-step instructions.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/g6phjv1SOGs"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;This flexibility offered by Amazon RDS custom for Oracle helped us complete the migration without compromising stability or supportability.&lt;/p&gt;

&lt;p&gt;Before you decide, Few questions to ask yourself -&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Do you require direct OS-level (root/SSH) access to the database server?&lt;/li&gt;
&lt;li&gt;Do you need to apply custom Oracle patches, use specific Oracle features, or install third-party agents that require OS access?&lt;/li&gt;
&lt;li&gt;Do your DBAs need precise control over patching, upgrades, or custom monitoring deployments?&lt;/li&gt;
&lt;li&gt;Is your application highly customized and doesn't fit a fully managed database environment?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Final Thought&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Amazon RDS is great for most use cases. But when you need more control—especially for Amazon RDS Custom gives you the flexibility of EC2 with the benefits of a managed service.&lt;/p&gt;

&lt;p&gt;If you're planning a complex Oracle migration, consider RDS Custom early in your design. It might save you from a painful pivot later.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>database</category>
      <category>oracle</category>
      <category>rds</category>
    </item>
    <item>
      <title>AWS Cost Estimate Tracker: Enhanced Insights with Generative AI</title>
      <dc:creator>Girish Mukim</dc:creator>
      <pubDate>Sun, 15 Sep 2024 16:17:14 +0000</pubDate>
      <link>https://dev.to/girishmukim/aws-pricing-calculator-history-tracker-2lce</link>
      <guid>https://dev.to/girishmukim/aws-pricing-calculator-history-tracker-2lce</guid>
      <description>&lt;p&gt;The &lt;strong&gt;&lt;a href="https://calculator.aws/#/" rel="noopener noreferrer"&gt;AWS Pricing Calculator&lt;/a&gt;&lt;/strong&gt; is an online tool provided by Amazon Web Services (AWS) that helps estimate the cost of using various AWS services. Whether you’re just starting a small project or planning a large-scale deployment, this tool gives you the ability to calculate monthly costs for a range of services, from simple EC2 instances to complex architectures using multiple AWS services.&lt;/p&gt;

&lt;p&gt;While it's incredibly useful, the AWS Pricing Calculator has a few limitations:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Link Management:&lt;/strong&gt; Every time you create or update an estimate, a unique link is generated. If you're working on multiple versions of the same project (like adding a production environment after initially estimating only non-production costs), you'll quickly end up with multiple links. Keeping track of these can become cumbersome.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Changing Prices:&lt;/strong&gt; AWS service prices are not static. As AWS updates their pricing, estimates might change when you revisit a link. This can lead to confusion if you want to compare the old cost with the new prices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Link Expiration:&lt;/strong&gt; AWS pricing calculator links are active for up to three years. After that, you lose access to the data unless you’ve saved a copy in another format (CSV, PDF, or JSON).&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;AWS Cost Estimate Tracker (ACET)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Let's solve the problem of managing and tracking multiple pricing calculator links for different scenarios. This tool will help you stay organized by keeping all those links, and PDFs in one place so that you don’t have to worry about losing track of any estimate, even as you work on different projects or adjust your pricing estimates over time.&lt;/p&gt;

&lt;p&gt;The idea is to provide a simple, efficient way to store and access past estimates, track changes, and even compare how service prices have evolved since the estimate was originally made. I'm sharing this concept as a way to help others who might be facing the same challenges. &lt;br&gt;
No conversation is complete without generative AI these days, and APCT is keeping up with the trend. My goal is to leverage AWS Bedrock to analyze estimates and deliver actionable insights and recommendations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features of AWS Cost Estimate Tracker (ACET)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User Management&lt;/strong&gt;&lt;br&gt;
Users will be able to sign up and manage their accounts securely using Amazon Cognito User Pools. Once logged in, you can access your personalized dashboard, where you can view and manage all the AWS Pricing Calculator links you've tracked, along with the associated information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Track Links with Project and Version Information&lt;/strong&gt;&lt;br&gt;
Keep a detailed record of your AWS Pricing Calculator links organized by project. You can add descriptive information for each link, including version details (e.g., initial estimate, added production environment, etc.), making it easier to track different pricing scenarios over time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Upload and Download Files&lt;/strong&gt;&lt;br&gt;
For each pricing estimate, you’ll have the ability to upload and download PDF files. This ensures you maintain a snapshot of the original pricing data even if AWS service prices change. You can reference these files later for comparison or documentation purposes, preserving the historical cost estimates for your projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GenAI Analysis&lt;/strong&gt;&lt;br&gt;
GenAI Analysis is another feature of the application that uses generative AI to analyze AWS estimates and provide actionable insights and recommendations. It simplifies understanding complex cost structures and helps identify optimization strategies efficiently.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Solution Architecture&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdo5rwm009q7sdkeufzyc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdo5rwm009q7sdkeufzyc.png" alt="Architecture" width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnmxa9zyw8wbnk8gxwgd5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnmxa9zyw8wbnk8gxwgd5.png" alt="Data Flow" width="800" height="517"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Building Blocks:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Webpage Hosted on S3 with Static Web Hosting Enabled&lt;/strong&gt;&lt;br&gt;
The front-end of the application is hosted on an S3 bucket with static website hosting enabled. This allows for a cost-effective and scalable way to serve the application’s HTML, CSS, JavaScript, and other static assets directly from S3.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CloudFront Distribution&lt;/strong&gt;&lt;br&gt;
To improve the performance and security of the web application, we are using Amazon CloudFront as a content delivery network (CDN). CloudFront distributes the content globally, reducing latency for users and ensuring fast load times by caching assets closer to the user's location. The origin for the CloudFront distribution is the S3 bucket where the static website is hosted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User Management with Amazon Cognito User Pool&lt;/strong&gt;&lt;br&gt;
User authentication and management are handled through Amazon Cognito User Pools. Users can sign up, log in, and manage their accounts securely. The user pool also enables features such as multi-factor authentication (MFA), account recovery, and password management, ensuring robust security for user information. Once logged in, users can access their personalized dashboard to track and manage AWS Pricing Calculator links.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DynamoDB as a Data Store&lt;/strong&gt;&lt;br&gt;
All data related to AWS Pricing Calculator links, project versions, and associated files (CSV, PDF, JSON) are stored in an Amazon DynamoDB table. This NoSQL database provides fast, scalable, and reliable storage. Each user can store project-related data, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS Pricing Calculator links&lt;/li&gt;
&lt;li&gt;Descriptions and versioning information&lt;/li&gt;
&lt;li&gt;References to uploaded files (PDF)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;DynamoDB ensures fast read/write operations and can scale automatically to handle increasing amounts of data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amazon Textract&lt;/strong&gt;&lt;br&gt;
Amazon Textract is utilized in this solution to extract structured text and data from uploaded PDF documents containing project estimates. It efficiently processes the content, identifying text lines, tables, and key-value pairs to extract meaningful information. This enables seamless downstream analysis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amazon Bedrock&lt;/strong&gt;&lt;br&gt;
In this solution, Amazon Bedrock is leveraged to analyze extracted project estimates and generate actionable insights and cost optimization recommendations. Using its advanced large language models (LLMs), Bedrock processes the structured data to identify patterns, inefficiencies, and potential savings. &lt;/p&gt;

&lt;p&gt;This architecture provides a fully serverless solution with high performance, scalability, and security, making it a solid foundation for the prototype as it continues to evolve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to use this application?&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Have your AWS projects estimates completed using AWS Pricing calculator.&lt;/li&gt;
&lt;li&gt;Get the sharable link and download estimates in a PDF format.&lt;/li&gt;
&lt;li&gt;SignUp or SignIn into the application.&lt;/li&gt;
&lt;li&gt;Complete a simple form to add your project estimates on right section; estimates will be rendered at runtime on the left section. Any changes for the same project will add a separate entry as a new version.&lt;/li&gt;
&lt;li&gt;Download PDF files or go to calculator link from the estimates. &lt;/li&gt;
&lt;li&gt;Click on an Anazlyze button for the specific estimate to generate Generative AI analysis.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You would need to setup few resources manually and then refer this &lt;br&gt;
&lt;a href="https://github.com/awslearn-repo/aws-calculator-history-tracker" rel="noopener noreferrer"&gt;Github Repo.&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;S3 Bucket with static web hosting. Use code from repo.&lt;/li&gt;
&lt;li&gt;Cloudfront distribution with above S3 bucket as origin&lt;/li&gt;
&lt;li&gt;Amazon Cognito user pool and identity pool&lt;/li&gt;
&lt;li&gt;Dynamodb tables
&lt;strong&gt;awscalcculatorhistorytracker&lt;/strong&gt; - To track of calculator links and estimate files. Partition key: email (String) &amp;amp; Sort key: project_name_version (String)
&lt;strong&gt;EstimatesAnalysis&lt;/strong&gt; - To save GenAI analysis for future use. 
Partition key: project_version (String)&lt;/li&gt;
&lt;li&gt;Lambda Function - code is available in repo AnalyzeEstimate.py&lt;/li&gt;
&lt;li&gt;API gateway to expose the Lambda function as HTTP API.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I plan to work on an IaC Terraform template to create these resources in the future, but I’m not there yet. I’d be thrilled to collaborate with Terraform experts who are interested!&lt;/p&gt;

&lt;p&gt;Watch this video to see the tool in action. -&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/4DEx6a0hVgM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>aws</category>
      <category>awspricingcalculator</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Optimizing Oracle Database Migration to Amazon RDS with EFS Integration</title>
      <dc:creator>Girish Mukim</dc:creator>
      <pubDate>Mon, 29 Jul 2024 01:01:12 +0000</pubDate>
      <link>https://dev.to/girishmukim/efs-intergration-4leg</link>
      <guid>https://dev.to/girishmukim/efs-intergration-4leg</guid>
      <description>&lt;p&gt;The idea for this blog came from my recent experience with migrating an Oracle database from on-premises to Amazon RDS for Oracle. This involved moving a 30TB database using the Oracle native datapump utility. The goal was to conduct a proof-of-concept (POC) to see if Amazon RDS could be a viable solution and to ensure the application performance met expectations.&lt;/p&gt;

&lt;p&gt;The POC results were encouraging, but migrating such a large database using datapump with S3 integration was problematic. The process involved moving the dump file to an S3 bucket, enabling S3_INTEGRATION on the RDS database instance, transferring the files from S3 to RDS storage, and then importing from there. The backup dump files needed around 16TB of storage, which became part of the Oracle RDS and couldn't be reclaimed after deleting the dump file. This leads to significant costs since storage is not cheap. Refer &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html" rel="noopener noreferrer"&gt;Amazon S3 integration&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A better solution is to use EFS_INTEGRATION. The storage with EFS is external to the database, but you can still import from the EFS mount. Although EFS is costlier than S3, it avoids consuming database storage for a long time.&lt;/p&gt;

&lt;p&gt;Let's consider the cost implications -&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkhwdg7a5ux582hlxsm4i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkhwdg7a5ux582hlxsm4i.png" alt="Storage comparision"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The message is clear: RDS storage is too expensive to use solely for migration and leave it there. I'm showing the cost for one month of storage, but it could take longer before the storage can be released or used. For example, 12 months of RDS storage for 16TB would cost $45,219.84 ($3,768.32 per month).&lt;/p&gt;

&lt;p&gt;While migration performance is important, the high cost makes a strong case for using EFS. The performance aspect can be discussed next time.&lt;/p&gt;

&lt;p&gt;Let's now look at what EFS Integration would look like and how to perform export and import using data pump utilities. &lt;/p&gt;

&lt;p&gt;Pre-requisite for this tutorial -&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Amazon RDS for Oracle database instance &lt;/li&gt;
&lt;li&gt;Elastic File System (EFS) target mount&lt;/li&gt;
&lt;li&gt;EC2 instance with Oracle database client installed&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Please reach out to me if you require help with the above setup. I'll include configurations for each but won't delve into details on how to set them up.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Amazon RDS for Oracle *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fazr91hcjz3mun8ptcy1a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fazr91hcjz3mun8ptcy1a.png" alt="RDS Summary"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpywbiwdq58abbte2poov.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpywbiwdq58abbte2poov.png" alt="RDS config"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can choose to create an EC2 server for RDS connectivity. This setup will include security groups to enable connectivity from the EC2 server to the RDS database on port 1521. We'll use this server as the Oracle database client.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Elastic File System *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy7gtuqqwfwc4jmou4dcj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy7gtuqqwfwc4jmou4dcj.png" alt="EFS"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft6c6e04k65o1jt6og97f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft6c6e04k65o1jt6og97f.png" alt="EFS General"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am using us-east-1a and us-east-1b for all resources to keep traffic within the same Availability Zones, avoiding inter-AZ data transfer costs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo4e0xiekre44dndldl2u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo4e0xiekre44dndldl2u.png" alt="EFS AZs"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;EC2 instance with Oracle database client installed *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn7fi7hb7f19v1spxn8cs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn7fi7hb7f19v1spxn8cs.png" alt="DB Client"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Connect to the RDS instance from EC2 server (DB client)&lt;/p&gt;

&lt;p&gt;You'll have to install Oracle client. The easiest way is to download client home from Oracle website (&lt;a href="https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html" rel="noopener noreferrer"&gt;https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html&lt;/a&gt;) and unzip.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

[oracle@ip-10-0-12-223 ~]$ cd $ORACLE_HOME/network/admin/
[oracle@ip-10-0-12-223 admin]$ cat tnsnames.ora
demodb = (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST= demodb.ceb9h7hgowbh.us-east-1.rds.amazonaws.com)(PORT=1521))(CONNECT_DATA=(SID= demodb)))
[oracle@ip-10-0-12-223 admin]$

[oracle@ip-10-0-12-223 admin]$ sqlplus admin@demodb

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Jul 27 02:40:19 2024
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Enter password:
Last Successful login time: Fri Jul 26 2024 00:35:18 +00:00

Connected to:
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.23.0.0.0

SQL&amp;gt; select name,open_mode from v$database;

NAME      OPEN_MODE
--------- --------------------
DEMODB    READ WRITE

SQL&amp;gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  EFS Integration &amp;amp; using datapump export-import
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;1. First, create a new option group and add EFS_INTEGRATION.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmthgv1vaa4v9qji8ivy6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmthgv1vaa4v9qji8ivy6.png" alt="option group"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvmykli9fmzgsr9mf8ruc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvmykli9fmzgsr9mf8ruc.png" alt="Add EFS Integration"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note that you would need EFS ID to add EFS Integration. Also USE_IAM_ROLE is set to TRUE, so IAM role should be associated with RDS instance and should have access to EFS mount.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2. Modify RDS instance to use newly created option group.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Click on Modify.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo3r4mo31dnenn8gebts3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo3r4mo31dnenn8gebts3.png" alt="Modify RDS"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frrs2qe8yrlqrq96hu4sf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frrs2qe8yrlqrq96hu4sf.png" alt="Change option group"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on continue. Choose "Apply Immediately" and modify DB instance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgsljqfew0soiuqlxzn62.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgsljqfew0soiuqlxzn62.png" alt="modify instance"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;3. Create IAM role and add permissions for EFS.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F76k0apiuvpisetzbcjmj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F76k0apiuvpisetzbcjmj.png" alt="IAM Role"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftiscaskht6y4fpu50uf4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftiscaskht6y4fpu50uf4.png" alt="IAM Role"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Role Name: efs-integ-role-for-rds&lt;/p&gt;

&lt;p&gt;Review and create role.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;4. Add this role to RDS DB instance for Feature EFS_INTEGRATION.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frdd0vfowzgatghnfmg5c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frdd0vfowzgatghnfmg5c.png" alt="Role to RDS"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;5. Mount EFS on EC2 server (DB client).&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Get mount command from EFS &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqzbt9y7xh65sd5ypqf76.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqzbt9y7xh65sd5ypqf76.png" alt="EFS mount"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpmp7w1h1f3vrdwnxzb5z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpmp7w1h1f3vrdwnxzb5z.png" alt="EFS Mount"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;connect to server as root&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

mkdir /efsdir
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 10.0.5.27:/ /efsdir

cd /efsdir
mkdir datapump
chown oracle /efsdir/datapump
chgrp oinstall /efsdir/datapump
chown 777 -R /efsdir/datapump 


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Entry can be added to /etc/fstab to have EFS mouted across reboot.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;6. Next you must create an Oracle directory on Amazon RDS for Oracle.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;These commands are run by admin user, other users may need proper privileges to run these commands. Note that file system path must begin with /rdsefs-.&lt;/p&gt;

&lt;p&gt;BEGIN&lt;br&gt;
rdsadmin.rdsadmin_util.create_directory_efs(&lt;br&gt;
p_directory_name =&amp;gt; 'DATA_PUMP_DIR_EFS',&lt;br&gt;
p_path_on_efs =&amp;gt; '/rdsefs-&lt;strong&gt;fs-0965c2a7d95fc9e06&lt;/strong&gt;/datapump');&lt;br&gt;
END;&lt;br&gt;
/&lt;/p&gt;

&lt;p&gt;fs-0965c2a7d95fc9e06 is EFS ID.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;7. Verify that the database can write a file.&lt;/em&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

SQL&amp;gt; declare
  f utl_file.file_type;
begin
  f := utl_file.fopen ('DATA_PUMP_DIR_EFS', 'test.txt', 'w');
  utl_file.put_line(f, 'test');
  utl_file.fclose(f);
end;
/
  2    3    4    5    6    7    8
PL/SQL procedure successfully completed.

SQL&amp;gt; !ls -l /efsdir/datapump/test.txt
-rw-r--r--. 1 3001 101 5 Jul 28 23:06 /efsdir/datapump/test.txt

SQL&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;8. Create a test table, admin.demotable, to perform Data Pump export and import steps.&lt;/em&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

[oracle@ip-10-0-12-223 ~]$ sqlplus admin@demodb

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Jul 28 22:56:51 2024
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Enter password:
Last Successful login time: Sun Jul 28 2024 21:44:33 +00:00

Connected to:
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.23.0.0.0

SQL&amp;gt; create table demotable (a number);

Table created.

SQL&amp;gt; insert into demotable values (1);

1 row created.

SQL&amp;gt; c/1/2
  1* insert into demotable values (2)
SQL&amp;gt; /

1 row created.

SQL&amp;gt; commit;

Commit complete.

SQL&amp;gt; select * from demotable;

         A
----------
         1
         2

SQL&amp;gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;9. Export the table to EFS mount using the directory created earlier.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Run this as oracle OS user.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

[oracle@ip-10-0-12-223 ~]$ expdp admin@demodb tables=admin.demotable directory=DATA_PUMP_DIR_EFS dumpfile=demotable.dmp logfile=expdp_demotable.log

Export: Release 19.0.0.0.0 - Production on Sun Jul 28 23:08:29 2024
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.
Password:

Connected to: Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Starting "ADMIN"."SYS_EXPORT_TABLE_01":  admin/********@demodb tables=admin.demotable directory=DATA_PUMP_DIR_EFS dumpfile=demotable.dmp logfile=expdp_demotable.log
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
Processing object type TABLE_EXPORT/TABLE/TABLE
. . exported "ADMIN"."DEMOTABLE"                         5.062 KB       2 rows
Master table "ADMIN"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for ADMIN.SYS_EXPORT_TABLE_01 is:
  /rdsefs-fs-0965c2a7d95fc9e06/datapump/demotable.dmp
Job "ADMIN"."SYS_EXPORT_TABLE_01" successfully completed at Sun Jul 28 23:08:56 2024 elapsed 0 00:00:19

[oracle@ip-10-0-12-223 ~]$



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;That's great. we can use normal expdp utility that DBAs are quite comfirtable with.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;10. Let's take it a step further and perform the import.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Drop table admin.demotable.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

SQL&amp;gt; drop table admin.demotable;

Table dropped.

SQL&amp;gt; select * from admin.demotable;
select * from admin.demotable
                    *
ERROR at line 1:
ORA-00942: table or view does not exist

SQL&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Import table admin.demotable&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

[oracle@ip-10-0-12-223 ~]$ impdp admin@demodb tables=admin.demotable directory=DATA_PUMP_DIR_EFS dumpfile=demotable.dmp logfile=impdp_demotable.log

Import: Release 19.0.0.0.0 - Production on Sun Jul 28 23:13:28 2024
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.
Password:

Connected to: Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Master table "ADMIN"."SYS_IMPORT_TABLE_01" successfully loaded/unloaded
Starting "ADMIN"."SYS_IMPORT_TABLE_01":  admin/********@demodb tables=admin.demotable directory=DATA_PUMP_DIR_EFS dumpfile=demotable.dmp logfile=impdp_demotable.log
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "ADMIN"."DEMOTABLE"                         5.062 KB       2 rows
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
Job "ADMIN"."SYS_IMPORT_TABLE_01" successfully completed at Sun Jul 28 23:14:08 2024 elapsed 0 00:00:32

[oracle@ip-10-0-12-223 ~]$

[oracle@ip-10-0-12-223 ~]$ sqlplus admin@demodb

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Jul 28 23:33:16 2024
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Enter password:
Last Successful login time: Sun Jul 28 2024 23:32:56 +00:00

Connected to:
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.23.0.0.0

SQL&amp;gt; select * from admin.demotable;

         A
----------
         1
         2

SQL&amp;gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Reference documents -&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.amazonaws.cn/en_us/AmazonRDS/latest/UserGuide/oracle-efs-integration.html" rel="noopener noreferrer"&gt;Amazon EFS integration&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aws.amazon.com/blogs/database/integrate-amazon-rds-for-oracle-with-amazon-efs/?source=YouTube&amp;amp;channel=AWS&amp;amp;ID=uqYNANlwDcE&amp;amp;type=demo_2023&amp;amp;country=US&amp;amp;language=EN" rel="noopener noreferrer"&gt;Integrate Amazon RDS for Oracle with Amazon EFS&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>rds</category>
      <category>database</category>
      <category>efs</category>
    </item>
  </channel>
</rss>
