The Problem: I Wanted a Personal AI Butler

I wanted an AI agent that works for me. Scour the latest news, deliver a daily message, answer questions, and expand capabilities over time. Basically, Jarvis from Iron Man. A few years ago, that was fiction. Today, with the rise of AI agents, it's practical.

I considered OpenClaw, an open-source autonomous agent, but it was too new and overkill. Then Amazon Bedrock AgentCore released its managed harness in preview. You define the agent in a config file and a system prompt, then deploy. That's it. I decided to build my own Jarvis: "The Pulse."

What The Pulse Does

The Pulse opens a real browser to scrape Hacker News, grabs Reddit posts via RSS, saves everything to persistent storage, and every 6 hours writes a trending stories digest. It messages me daily, or I can message it anytime and ask what's happening in AI. It reads from the data it's been collecting all day.

Why Not Just Use Lambda?

For a simple one-shot task, Lambda plus an LLM might work. But this agent needs:

  • A real browser: Lambda can't spin up a managed browser session. You'd need Fargate plus Playwright, managing containers.
  • Persistent storage: Lambda's /tmp gets wiped after every invocation. You'd need S3 plus custom read/write logic.
  • Long-running tasks: The 6-hour summary run can take a while. Lambda maxes out at 15 minutes. The harness defaults to a 1-hour timeout per invocation, and the microVM can stay alive up to 8 hours across multiple invocations.
  • Built-in memory: AgentCore Memory stores facts and conversation summaries across sessions. In Lambda, you'd need DynamoDB plus custom integration.

Could you build this with Lambda + S3 + Fargate + DynamoDB + Step Functions? Sure. That's five services instead of one.

Prerequisites

  • Node.js 20+
  • AWS credentials configured in a preview region (us-west-2, us-east-1, eu-central-1, or ap-southeast-2)
  • CDK bootstrapped in your account (cdk bootstrap)
  • AgentCore CLI: npm install -g @aws/agentcore@preview
  • Bedrock model access for Claude Sonnet 4.6 in your region

Step 1: Create the Harness Project

agentcore create \
  --name thepulse \
  --model-provider bedrock \
  --session-storage-mount-path /mnt/data
cd thepulse

That one command scaffolds the whole project: harness config, memory, session storage, CDK app, IAM role. The --session-storage-mount-path flag wires up persistent storage so the platform creates a /mnt/data mount point for you.

Now add the browser tool:

agentcore add tool --harness thepulse --type agentcore_browser --name browser

Step 2: Configure the Agent

Edit app/thepulse/harness.json:

{
  "name": "thepulse",
  "model": {
    "provider": "bedrock",
    "modelId": "global.anthropic.claude-sonnet-4-6"
  },
  "tools": [
    {
      "type": "agentcore_browser",
      "name": "browser"
    }
  ],
  "skills": [],
  "memory": { "name": "thepulseMemory" },
  "sessionStoragePath": "/mnt/data",
  "maxIterations": 75,
  "timeoutSeconds": 1800
}

maxIterations is 75 because browser interactions are chatty. timeoutSeconds is 1800 (30 minutes) to handle browser sessions and summary runs.

Step 3: Write the System Prompt

Replace app/thepulse/system-prompt.md with instructions for two modes: hourly collection (browser scrape + RSS) and summary digest (trend identification). The prompt also enables interactive Q&A using saved data and memory.

Step 4: Deploy and Test

Deploy with agentcore deploy. Then invoke the harness:

agentcore invoke --harness thepulse --prompt "hourly run"

Check that data appears in /mnt/data/runs/. Then test the summary:

agentcore invoke --harness thepulse --prompt "generate summary"

You can also ask questions interactively:

agentcore invoke --harness thepulse --prompt "What's trending in AI today?"

Step 5: Schedule It

Use EventBridge Scheduler to trigger a Lambda every hour. The Lambda invokes the harness with the appropriate prompt. Every 6th run, it triggers the summary digest instead of hourly collection. The session ID stays the same, so data accumulates on /mnt/data.

Cost Estimate

AgentCore pricing is per session (microVM runtime). For hourly runs of ~2 minutes each, plus a 10-minute summary every 6 hours, expect roughly $30-50/month depending on region and model tokens.

What's Next

Add more data sources (Twitter, arXiv), integrate Telegram for daily messages, or extend memory for long-term trend analysis. The full code is on GitHub: AgentCore-News-Sample.

Now go build your own butler.