This project implements a personal assistant using the Strands "agent-as-tool" pattern.
One orchestrator agent routes requests to specialized sub-agents for calendar management, coding, and web research.
- Receives user prompts and delegates to the right sub-agent(s).
- Handles both single-domain and multi-domain requests in one conversation.
- Create appointments (
YYYY-MM-DD HH:MMformat) - List all appointments
- Update appointments by
appointment_id - Get agenda for a specific date (
YYYY-MM-DD) - Uses local SQLite storage:
appointments.db
- Python REPL execution
- Multi-file editing with editor tool
- Shell command execution
- Journal support for notes/work tracking
- Real-time web research via Perplexity MCP
- Source-aware research responses
- Uses Docker to run
mcp/perplexity-ask
personal_assistant.py # Main orchestrator
agents/
calendar_assistant.py # Calendar agent tool wrapper
code_assistant.py # Coding agent tool wrapper
search_assistant.py # Search agent tool wrapper (MCP + Docker)
calendar_tools/
create_appointment.py
list_appointments.py
update_appointment.py
get_agenda.py
config/
env_setup.py # Loads .env from repo root
constants.py # SESSION_ID + BEDROCK_MODEL_ID defaults
appointments.db # Created at runtime
- Python 3.13+
- uv (recommended dependency manager)
- AWS account with Bedrock model access
- Docker Desktop running (required for search flow)
- Perplexity API key (required for search flow)
- Create and sync environment:
uv venv
uv sync- Configure AWS credentials (recommended):
aws configure- Create
.envin repo root:
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
AWS_DEFAULT_REGION=us-east-1
BEDROCK_MODEL_ID=us.anthropic.claude-sonnet-4-20250514-v1:0
PERPLEXITY_API_KEY=...
SESSION_ID=personal-assistant-devNotes:
.envis auto-loaded by all assistant entry points in this repo.PERPLEXITY_API_KEYand Docker are only required when search capabilities are used.
From repo root:
uv run python -u personal_assistant.pyuv run python -u -m agents.calendar_assistantuv run python -u -m agents.code_assistantuv run python -u -m agents.search_assistantCreate an appointment on 2026-03-05 10:30 at Office titled Team Sync with description Sprint planningList all appointmentsWhat is my agenda for 2026-03-05?
Create a Python function to reverse a stringWrite a CLI timer script and explain how to run it
What are the latest AWS Bedrock announcements this month? Include sources.
Schedule a focus session on 2026-03-06 09:00 at Home titled Build Demo with description Work on MVP, then give me a Python starter script for a CLI timer, and finally find one article on productivity techniques with source links.
-
PERPLEXITY_API_KEY environment variable is required
Add the key in.envand restart. -
Search assistant fails to initialize
Ensure Docker is running anddocker psworks. -
Bedrock permission/model access errors
Verify AWS credentials and Bedrock model access in your configured region. -
ModuleNotFoundErrorwhen running assistant files directly
Run from repo root using module mode:uv run python -u -m agents.calendar_assistantuv run python -u -m agents.code_assistantuv run python -u -m agents.search_assistant
