Asako HayaseAsako Hayase
Technical Tutorial

Building an AI Party Planner with Strands Agents

Learn to build an AI party planning app using Strands Agents' multi-agent architecture where specialized AI agents collaborate seamlessly.

July 3, 2025
AI Party Planner Image

Planning the perfect party can be overwhelming—coordinating themes, managing food preferences, organizing activities, and ensuring everything comes together seamlessly. What if AI could handle the complexity while you focus on enjoying the celebration? Enter the AI Party Planner, a smart application built using Strands Agents that demonstrates the power of specialized AI agents working together.

Introducing Strands Agents

Strands Agents simplifies how we build AI applications by requiring only a model, prompt, and tools.

Strands agents operate through an "Agent Loop" - a continuous cycle where the agent:

  1. Receives user input and contextual information
  2. Processes the input using a language model (LLM)
  3. Decides whether to use tools to gather information or perform actions
  4. Executes tools and receives results
  5. Continues reasoning with the new information
  6. Produces a final response or iterates again through the loop

Agent Loop

Agent Loop - Reference: http://strandsagents.com/latest/user-guide/concepts/agents/agent-loop/

Strands Agents offers 5 multi-agent patterns. In this project, I used Agent as Tools.

  • Agent2Agent (A2A): Agents communicate directly with each other to collaborate on tasks. It's currently experimental.
  • Agents as Tools: Specialized agents are wrapped as callable functions that other agents can use. A coordinator agent decides which specialist to call for specific tasks.
  • Swarms: Multiple agents work together as equals on complex problems, sharing insights and collaborating without a central coordinator.
  • Graphs: Agents are organized in custom network topologies, enabling mesh, hierarchical, or other communication patterns between agents.
  • Workflows: Sequential processing where each agent's output becomes the next agent's input, creating a pipeline of specialized processing steps.

Why "Agents as Tools" for Party Planning

Party planning naturally divides into specialized domains: menu planning, decorations, activities, and coordination. This pattern lets us create expert agents for each area while a coordinator manages the overall process.

Key advantages:

  • Focused expertise: Each agent handles one domain
  • Modular design: Add new specialists without changing existing code
  • Clear coordination: The Party Director decides which specialist to use

AI Party Planner Architecture

The AI Party Planner demonstrates this pattern through four agents total: one orchestrator and three specialists:

Party Planner Architecture

Party Planner Architecture

1. Party Director (Orchestrator Agent)

The Party Director serves as the orchestrator, analyzing user requests and delegating to appropriate specialists based on the planning focus requested.

party_director.py
1from strands import Agent
2from .food_specialist import food_drink_specialist
3from .theme_specialist import theme_decoration_specialist
4from .activity_specialist import activity_entertainment_specialist
5from tools.time_calculator import calculate_party_duration
6
7PARTY_DIRECTOR_PROMPT = """
8You are a Party Director AI that coordinates specialized party planning agents.
9
10You have access to these tools:
11- food_drink_specialist: for menu planning and drinks
12- theme_decoration_specialist: for decorations and themes  
13- activity_entertainment_specialist: for games and activities
14- calculate_party_duration: for calculating party duration and time of day
15
16Based on what the user wants planned, call the appropriate specialists and combine their responses into a comprehensive party plan.
17
18Always structure your response with clear sections and provide practical, actionable advice.
19Focus on the specific planning aspects the user requested.
20"""
21
22party_director = Agent(
23    system_prompt=PARTY_DIRECTOR_PROMPT,
24    tools=[
25        food_drink_specialist,
26        theme_decoration_specialist,
27        activity_entertainment_specialist,
28        calculate_party_duration,
29    ],
30)

2. Food & Drink Agent

This agent handles menu planning, dietary restrictions, and beverage selection.

food_specialist.py
1from strands import Agent, tool
2
3FOOD_SPECIALIST_PROMPT = """
4You are a Food & Drink Specialist for home parties in the US. 
5
6CRITICAL: YOU MUST USE HTML FORMAT - NO MARKDOWN ALLOWED!
7
8REQUIRED HTML FORMAT RULES:
9- Use <h3> for main sections like "🍕 FOOD & DRINKS"
10- Use <h4> for individual dish names like "BBQ Chicken Sliders"
11- Use <ul><li> for ALL ingredients, instructions, and tips under each dish
12- Use <p> for general descriptions
13- NEVER use markdown (*, **, ###, -, •)
14
15EXAMPLE OF CORRECT FORMAT:
16<h3>🍕 FOOD & DRINKS</h3>
17
18<h4>BBQ Chicken Sliders</h4>
19<ul>
20<li>Grilled chicken thighs brushed with BBQ sauce</li>
21<li>Slider buns with butter lettuce, sliced tomatoes, and pickle chips</li>
22<li>Condiment bar with mayo, BBQ sauce, ketchup, and mustard</li>
23<li>Prep tip: Marinate chicken in the morning, grill just before guests arrive</li>
24</ul>
25
26Focus on:
27- Menu planning with dietary restrictions
28- Simple cooking instructions for day-of preparation
29- Drink pairings and serving suggestions
30- US-focused ingredients and brands
31
32Provide practical, actionable advice with clear menu suggestions and simple cooking instructions.
33DO NOT include multi-day prep timelines or advance shopping schedules.
34"""
35
36
37@tool
38def food_drink_specialist(party_details: str) -> str:
39    """
40    Handle food and drink planning for home parties.
41
42    Args:
43        party_details: Detailed party information including guest count, duration, etc.
44
45    Returns:
46        Well-formatted HTML menu plan with proper nesting
47    """
48    try:
49        food_agent = Agent(system_prompt=FOOD_SPECIALIST_PROMPT)
50
51        response = food_agent(party_details)
52        return str(response)
53    except Exception as e:
54        return f"Error in food & drink planning: {str(e)}"

3. Theme & Decoration Agent

This agent focuses on creative decoration ideas, DIY guides, color schemes, and seasonal appropriateness.

theme_specialist.py
1from strands import Agent, tool
2
3THEME_SPECIALIST_PROMPT = """
4You are a Theme & Decoration Specialist for home parties in the US. Focus on:
5- Creative decoration ideas matching the occasion
6- DIY decoration guides using common household items
7- Color schemes and party aesthetics
8- Costume/outfit suggestions for guests
9- Table setting and ambiance creation
10- July 4th and summer-themed ideas when appropriate
11
12Always consider:
13- Indoor vs outdoor space limitations
14- Budget-friendly DIY options available at US stores (Target, Walmart, etc.)
15- Seasonal appropriateness and weather
16- Guest age groups for theme selection
17- Easy setup and cleanup
18
19Provide creative, achievable decoration ideas with specific product suggestions and setup instructions.
20"""
21
22@tool
23def theme_decoration_specialist(party_details: str) -> str:
24    """
25    Handle theme and decoration planning for home parties.
26    
27    Args:
28        party_details: Detailed party information including location, occasion, etc.
29        
30    Returns:
31        Comprehensive theme and decoration plan with DIY instructions
32    """
33    try:
34        theme_agent = Agent(
35            system_prompt=THEME_SPECIALIST_PROMPT
36        )
37        
38        response = theme_agent(party_details)
39        return str(response)
40    except Exception as e:
41        return f"Error in theme & decoration planning: {str(e)}"

4. Activity & Entertainment Agent

This agent suggests engaging activities based on guest demographics, party duration, and available space.

activity_specialist.py
1from strands import Agent, tool
2
3ACTIVITY_SPECIALIST_PROMPT = """
4You are an Activity & Entertainment Specialist for home parties in the US. Focus on:
5- Activity suggestions based on duration and group size
6- Entertainment ideas for different age groups
7- Games requiring minimal setup and common items
8
9Provide engaging, easy-to-execute entertainment ideas with clear instructions and material lists.
10"""
11
12
13@tool
14def activity_entertainment_specialist(party_details: str) -> str:
15    """
16    Handle activity and entertainment planning for home parties.
17
18    Args:
19        party_details: Detailed party information including guest ages, duration, etc.
20
21    Returns:
22        Comprehensive activity and entertainment plan with setup instructions
23    """
24    try:
25        activity_agent = Agent(system_prompt=ACTIVITY_SPECIALIST_PROMPT)
26
27        response = activity_agent(party_details)
28        return str(response)
29    except Exception as e:
30        return f"Error in activity & entertainment planning: {str(e)}"

Best Practices for Agent Tools

Strands Agents encourages several best practices:

  • Clear Tool Documentation: Descriptive docstrings explain each agent's expertise and expected inputs/outputs.
  • Focused System Prompts: Each specialized agent has a tightly focused system prompt optimized for its domain.
  • Proper Response Handling: Consistent error handling and response formatting across all agents.
  • Tool Selection Guidance: The orchestrator receives clear criteria for when to use each specialized agent.

Real-World Application Flow

When a user requests party planning assistance, here's how the system works:

  1. User Input Processing: The frontend captures party details (occasion, guest count, dietary restrictions, planning focus)
  2. Orchestrator Analysis: The Party Director analyzes the request and determines which specialists to engage
  3. Specialist Delegation: Based on the planning focus, appropriate specialists are called:
    • "Food focus" → Food & Drink Specialist
    • "Theme focus" → Theme & Decoration Specialist
    • "Activities focus" → Activity & Entertainment Specialist
    • "Complete planning" → All specialists
  4. Response Synthesis: The Party Director combines specialist responses into a comprehensive party plan
  5. Delivery: Users receive actionable, detailed plans with shopping lists, setup instructions, and timing guidelines

Beyond Party Planning

While my example focuses on party planning, the "Agents as Tools" pattern applies to numerous domains:

  • Customer Service: Route queries to billing, technical support, or product specialists
  • Content Creation: Coordinate research, writing, editing, and fact-checking agents
  • E-commerce: Combine product recommendation, inventory, and customer preference agents
  • Financial Analysis: Integrate market research, risk assessment, and portfolio optimization agents

Future Enhancements

We can easily add more agents or tools:

  • Venue Specialist - website search tools, booking APIs
  • Music & Playlist Specialist - Spotify search tool, playlist generation
  • Marketing Specialist - social media content creation, email invitation tools, RSVP tracking

Getting Started with AI Party Planner

Prerequisites

  • Python 3.11+, Node.js 18+
  • uv package manager: pip install uv
  • AWS credentials for Strands Agents SDK

Installation

  1. Clone and setup
1git clone https://github.com/asakohayase/ai-party-planner.git
2cd ai-party-planner

2. Create .env file in the root directory

.env
1AWS_ACCESS_KEY_ID=your_aws_access_key
2AWS_SECRET_ACCESS_KEY=your_aws_secret_key

3. Backend setup:

1cd backend
2uv install

4. Frontend setup:

1cd ../frontend
2npm install

5. Create .env.local in the frontend directory:

.env.local
1NEXT_PUBLIC_API_URL=http://localhost:8000

6. Run the applications: Backend (terminal 1):

1cd backend
2uv run uvicorn app:app --reload --port 8000

7. Frontend (terminal 2):

1cd frontend
2npm run dev

Access the application at: http://localhost:3000

Project Structure

Project Structure

Project Structure

Conclusion

The AI Party Planner showcases how Strands Agents transforms complex, multi-faceted problems into manageable, specialized tasks. By embracing the "Agents as Tools" pattern, developers can quickly spin up AI applications that combine the focused expertise of specialists with the coordination capabilities of orchestrator agents!

Resources

🚀 Try It Yourself

📚 Learn More About Strands Agents