Strands Multi-Agent Orchestrator
Multi-agent personal assistant using Strands agent-as-tool pattern with orchestration across calendar, coding, and search.
Personal Assistant Agent is a multi-agent system built using the Strands agent-as-tool pattern, where a central orchestrator intelligently routes user requests to specialized agents for calendar management, coding, and real-time web research.
👉 GitHub Repository
Overview
This project demonstrates how to build a modular, extensible, and production-style multi-agent system capable of handling complex, multi-domain user requests within a single interaction.
The system supports:
- Intelligent task routing across multiple agents
- Seamless handling of multi-step, multi-domain workflows
- Integration of local tools, LLM reasoning, and external APIs
Architecture
The system follows an agent-as-tool orchestration pattern:
| Orchestrator → (Calendar Agent | Code Agent | Search Agent) |
- Orchestrator: Receives user prompts and decides which agent(s) to invoke
- Calendar Agent: Handles scheduling and agenda management
- Code Agent: Executes code, edits files, and runs shell commands
- Search Agent: Performs real-time web research using Perplexity MCP
This design enables composability, scalability, and clear separation of concerns.
Key Features
Multi-Agent Orchestration
- Dynamic routing of user queries
- Supports both single-agent and multi-agent workflows
- Handles chained tasks across domains
Calendar Assistant
- Create, update, and list appointments
- Retrieve daily agenda
- SQLite-backed persistent storage
Code Assistant
- Python REPL execution
- Multi-file editing support
- Shell command execution
- Developer journaling capabilities
Search Assistant
- Real-time research using Perplexity MCP
- Source-aware responses
- Docker-based tool execution
Example Capabilities
Calendar Tasks
- Create an appointment with structured metadata
- Retrieve agenda for a specific date
- Update existing appointments
Coding Tasks
- Generate Python scripts
- Execute code interactively
- Assist with development workflows
Research Tasks
- Retrieve up-to-date information
- Provide sources for verification
Multi-Domain Task
Example:
Schedule a meeting, generate a script, and perform research in a single request.
This demonstrates true agent collaboration and orchestration.
Tech Stack
- LLM / Orchestration: AWS Bedrock (Claude), Strands Agents
- Search: Perplexity MCP (Docker-based)
- Backend: Python 3.13
- Database: SQLite
- Environment: uv
- Containerization: Docker
Project Structure
personal_assistant.py # Main orchestrator agents/ calendar_assistant.py # Calendar agent code_assistant.py # Coding agent search_assistant.py # Search agent (MCP + Docker) calendar_tools/ create_appointment.py list_appointments.py update_appointment.py get_agenda.py config/ env_setup.py constants.py appointments.db
How It Works
- User submits a request
- Orchestrator analyzes intent
- Relevant agent(s) are selected
- Agents execute tasks independently
- Results are aggregated and returned
This creates a flexible and extensible agent ecosystem.
Setup
uv venv
uv sync
Run orchestrator:
uv run python -u personal_assistant.py
Implementation Highlights
- Agent-as-tool architecture for modular design
- Multi-agent orchestration with dynamic routing
- Integration of local tools, LLMs, and external APIs
- Docker-based MCP integration for search
- Persistent storage for real-world usability
What I Learned
- Designing scalable multi-agent systems
- Orchestrating heterogeneous tools under a unified interface
- Integrating LLM reasoning with external execution environments
- Handling multi-step workflows across domains
- Building production-style agent architectures