Inspiration

We noticed that making plans to attend a dance event is rarely just about finding an event. A person may know what style and level they want, but then they still have to search for events, compare timings and distance, find people who would actually fit the plan, check availability, coordinate everyone, and keep track of changes.

We wanted to build an agent that does more than recommend options. Crum was inspired by the idea that an AI agent should take responsibility for making an intention happen in the real world.

Instead of asking, "What dance events can I find?", the user simply says, "I want to do this," and Crum takes the workflow from there.

What We Built

Crum is an autonomous dance coordination agent built with the Strands Agents SDK.

A user provides an intention such as:

  • Style: Hip-Hop
  • Level: Intermediate
  • Day: Saturday
  • Time: Evening
  • Location: Gurugram
  • Distance: Within 10 km
  • Budget: ₹800

Crum then performs a multi-step workflow:

  1. Discovers suitable dance events.
  2. Evaluates them against the user's constraints.
  3. Finds compatible dancers.
  4. Verifies event availability.
  5. Builds a coordinated dance plan.
  6. Stops at the human approval point before any booking or financial commitment.
  7. After approval, the plan can be monitored for changes.

This makes Crum fundamentally different from a normal recommendation chatbot. The agent is responsible for coordinating a workflow, not simply generating an answer.

How We Built It

The core agent is implemented using the Strands Agents SDK, with dedicated tools for:

  • Event discovery
  • Compatible dancer discovery
  • Availability verification
  • Plan generation
  • Plan monitoring

The frontend is a web-based interactive dashboard where users can define their dance intention and observe the agent workflow.

The backend connects the interface with the agent workflow and maintains the state of the plan, including approval and confirmation.

We also created a demo mode so the complete agent workflow can be demonstrated reliably using structured dance-event and participant data.

What We Learned

The biggest lesson was that building an agent is very different from building a chatbot.

A chatbot can produce a useful response from a single prompt. An agent needs to take actions, use tools, maintain state, make decisions, and know when to stop and involve a human.

We learned the importance of designing clear tool boundaries and giving the agent responsibility for a complete workflow rather than giving it a collection of disconnected capabilities.

We also learned that human approval is an important part of autonomous systems. Crum can coordinate the plan, but it does not make a financial commitment without the user's approval.

Challenges

One of our biggest challenges was making the workflow genuinely agentic rather than simply hard-coding a sequence of responses.

We also faced AWS/Bedrock inference and account authorization issues during development. While the AWS environment and model catalog were accessible, model invocation was restricted during the build. To keep the project demonstrable, we separated the Strands-based agent implementation from a deterministic demo workflow using the same tools and workflow structure.

Another challenge was connecting the user's dynamic choices from the frontend to the agent workflow. We made the workflow respond to the selected dance style, level, budget, distance, and location instead of relying on one fixed example.

The result is a system that demonstrates our core idea: Crum doesn't just help you find a dance plan. It takes responsibility for making the plan happen.

Built With

Share this project:

Updates

Submission history