Case study

AWS Bedrock Shipping Agent

Streamlit frontend wired to an AWS Bedrock Agent for conversational shipping and logistics assistance.

  • Python
  • AWS
  • Streamlit
The core problem

What needed solving

Logistics teams jump between carrier websites, spreadsheets, and email threads to compare rates and check tracking status. There was no unified conversational entry point that could surface relevant data on demand.

The solution

What I built

By wrapping AWS Bedrock Agents in a Streamlit chat interface, this tool lets operators ask shipping questions in plain language and receive structured responses — replacing manual portal hopping with a single conversational workflow.

A Python + Streamlit web app that connects directly to a deployed AWS Bedrock Agent. Users describe shipping needs in natural language and the agent responds with rate guidance, tracking context, or operational recommendations. Pre-built quick-action buttons handle common shipping queries without typing.

Integration

How it fits together

A Python Streamlit chat app calls a deployed AWS Bedrock Agent through boto3 with IAM-scoped invocation. All AWS credentials, the region, and agent/alias IDs load from environment variables, and quick-action buttons send common shipping requests without typing.

The flow, step by step

  1. Configure .env with your AWS Access Key, Secret, Region, Bedrock Agent ID, and Alias ID.
  2. Run 'streamlit run app.py' and open the app at localhost:8501.
  3. Type a shipping request or click a quick-action button (e.g. 'Compare rates' or 'Check tracking').
  4. The agent invokes AWS Bedrock with proper IAM scoping and streams the response into the chat window.
Problems along the way

What got hard, and what I did about it

Portal hopping

The problem

Comparing rates and checking tracking meant bouncing between carrier sites, spreadsheets, and email.

What I did

Put a single conversational entry point in front of the agent so questions are asked in plain language.

Credentials in a demo app

The problem

Agent tools tend to end up with keys pasted into code.

What I did

Loaded every secret from the environment and scoped invocation through IAM.

Takeaways

What I learned

  • Conversational tools still need shortcuts; quick actions cover the most common requests faster than typing.
  • Least-privilege IAM is worth setting up even for internal tools.
  • Production agents need observability and fallbacks, which is the next milestone here.
Outcome

Where it stands today

Real-time conversational interface backed by a live AWS Bedrock Agent session.
Pre-built quick-action buttons reduce friction for common logistics queries.
Responsive across desktop, tablet, and mobile — deployable as a shareable team tool.
Credentials never hard-coded: all AWS config loaded from environment variables.

Milestones

  • Bedrock Agent integration

    Streamlit chat app connected to AWS Bedrock Agent via boto3 with IAM-scoped invocation.

    Shipped
  • Quick actions & UI

    Pre-built action buttons and clean chat interface implemented.

    Shipped
  • Carrier coverage expansion

    Broader logistics tool integrations and tracking provider coverage still being added.

    In Progress
  • Observability & error tracing

    Full production traceability and fallback handling on the roadmap.

    Planned

Next up

  • Add cost-history trend comparisons and shipping analytics.
  • Build an approval workflow for procurement teams.
  • Extend agent knowledge base with carrier-specific SLA data.