Unlocking Automation with Strands Agents and Bedrock

Introducing Strands Agents & The YourDay Project Overview

Strands Agents is a powerful, code-first framework that dramatically simplifies the process of building and operating complex, multi-tool Agentic systems. It provides a robust structure for orchestrating Large Language Models (LLMs) and integrating them with external services.

For more insights on AI agent development and context management, check out my series on context management with Kiro.

To showcase how easily Strands Agents can be utilized, I’ve built a practical example: the YourDay project. This project combines the framework with the powerful Claude Sonnet model from AWS Bedrock and publicly available APIs (Open-Meteo, GNews) to automatically generate a daily summary and post it to the Obsidian note app. Let’s see how Strands Agents makes this complex automation straightforward.

YourDay Project

Project Overview

YourDay is an AI agent based on the Strands SDK, designed to automate the following tasks:

  1. Collects current weather data via Open-Meteo’s APIs.
  2. Fetches the top 10 news headlines from the GNews API.
  3. Uses AWS Bedrock Claude Sonnet 4.5 to transform the collected data into a formatted summary report in Markdown.
  4. Automatically publishes the summary to an Obsidian Vault via the Obsidian MCP (Markdown Communication Protocol) server, automating the creation of the Daily Weather & News note.

System Diagram

YourDay System Architecture showing integration of Open-Meteo weather API, GNews API, AWS Bedrock Claude, and Obsidian MCP server

API Keys

To run YourDay, the following access permissions and keys are required:

  • GNews API Key: For collecting news data.
  • AWS Bedrock Access (Claude Sonnet): For generating the AI summary (requires an AWS account).
  • Obsidian API Key: For integration with the Obsidian MCP server.

Code Implementation: The Heart of the Agentic System

Now let’s implement the code. YourDay is structured to integrate various clients (Weather, News, Obsidian) and uses the Strands Agent to orchestrate the generation of the final Markdown.

1. YourDayAgent: The Core Agent Defining the Workflow

The YourDayAgent class collects data, and then calls the Bedrock model via self.agent.invoke_async(prompt=prompt) to generate summary. Finally, it posts the result to Obsidian.

YourDayAgent implementation code showing workflow orchestration with Strands SDK

2. WeatherClient: Open-Meteo Integration

The WeatherClient uses Open-Meteo’s Geocoding API to convert the location name into coordinates, and then calls the Forecast API to fetch current weather information.

WeatherClient implementation using Open-Meteo Geocoding and Forecast APIs

3. NewsClient: GNews API Integration

The NewsClient uses the provided NEWS_API_KEY to call the GNews top-headlines endpoint, refining and returning a list of top news articles.

NewsClient implementation integrating GNews API for top headlines

4. ObsidianClient: Publishing to Obsidian

The ObsidianClient uses a PUT request targeting the Obsidian MCP server to write the Markdown content to a specific path within the Vault.

ObsidianClient implementation publishing markdown content to Obsidian vault via MCP server

5. CLI: Execution Interface

cli.py loads the configuration, initializes the clients and the YourDayAgent, and then calls agent.run() to execute the entire workflow.

CLI implementation loading configuration and initializing YourDay agent workflow

Then, the entire workflow will be executed by executing _run_async of YourDayAgent described in step 1.

6. Demo: Agent Execution Result

Let’s run the script now. When the yourday run command is executed in the CLI, you can see the agent progress through the steps of loading configuration, initializing clients, and generating the summary. The screenshot below illustrates the successful final posting to Obsidian, including successful communication with Bedrock and the path of the newly created Markdown file.

YourDay execution demo showing successful agent workflow and Obsidian note creation

Scheduling the Task (Cronjob)

To ensure this software runs automatically every morning, you can register it as a scheduler using cronjob (on Linux/macOS).

Here’s an example of scheduling this script as a cronjob to run every morning at 7:00 AM. You’ll need to adjust the paths to suit your environment.

Cronjob configuration for scheduling YourDay agent to run daily at 7 AM

The complete source package including the code above is available here: https://github.com/elbanic/yourday

Build Your First Agent

Strands Agents makes building automated Agentic workflows a reality by neatly orchestrating complex LLM calls and external service integrations. Through the YourDay project, we can experience the era where agents handle routine daily tasks simply by defining API keys and the workflow.

What’s in your daily routine that could be automated with Agent?