MACRS Multi-Agent Act Planning Framework
Explore how MACRS coordinates multiple role-specialized agents through a planner to generate goal-directed dialogue in a conversational recommender system.
In the previous lesson, we saw how MACRS reimagines conversational recommendation as a multi-agent system, where different agents bring specialized capabilities to the table. But here’s a key challenge: even with well-designed agents, who decides what actually gets said?
Imagine this everyday moment: you’re chatting with a recommendation assistant about what to watch tonight. One moment, it asks if you like thrillers. Next, it throws a random movie at you. Then it loops back to “So, what genre do you enjoy?” It feels scattered, even though each individual response may sound fine.
This is the problem with act planning. It’s not about what can be said, but about what should be said next to move the conversation forward.
In goal-directed dialogue, the system isn’t just filling time; it’s trying to accomplish something. That means every turn should be:
Purposeful
Context-aware
Strategically chosen
Many LLM-based chat systems fall short here. They generate plausible-sounding replies, but without a clear planning mechanism, they often stall or meander.
MACRS takes a different route. It breaks the “what to say” problem into two coordinated steps:
Generate options using specialized responder agents.
Select the best one using a central planner agent.
This cooperative act planning pattern is a prime example of the Manager-Worker orchestration model we discussed in Chapter 1, explicitly designed for goal-directed dialogue in CRSs.
Generating response options
Instead of relying on a single model to juggle all conversational tasks, MACRS introduces three responder agents, each with a clearly defined role:
Agent Type | Goal |
Asking Agent | Elicit more user preferences through targeted questions |
Recommending Agent | Suggest relevant items based on current user profile |
Chit-Chat Agent | Keep the conversation engaging and natural, especially when no immediate goal move is available |
Each of these agents operates independently, but all draw from a shared user profile and memory. This gives them context about the conversation so far.
Think of it like a brainstorming session. Each agent proposes what it thinks the system should say next, based on its specific goal and knowledge. But how do they know what to say?
That’s where profiling ...