combining divergent and convergent agents in single chat service?

I am prototyping a chatbot for career advice to help people move into new green industries.

From our early user research, I am aiming to model users’ sessions with the chatbot on the well known GROW coaching model.

My thinking is this requires a blend of divergent and convergent stages to the conversation:

  • a convergent onboarding flow to gather basic data about the person (eg age, location) being coached with form fillng, plus their Goal for the session (with some suggested options).

  • a divergent stage to guide the person explore the Reality of their current situation and job readiness (ie relevant experience, transferable skills). This could be of variable length depending on their goal and what questions the user has.

  • a follow up divergent stage to guide and advise the person to identify the options they may have to achieve their career Goal. This could include training, work experience, entry level jobs.

  • a more convergent final stage to encourage the person to commit to what they Will do next - their action plan following the session.

  • a short three question survey on how useful the coach session has been.

For the divergent stages of the conversation in particular, I am using data stores of relevant public domain information on green jobs, and also want to connect the chatbot to specific real time data sources via public APIs, eg a service to provide details of free training courses relating to green jobs such as solar installers.

The docs state “Using both fully generative features and deterministic flows in the same agent is currently restricted access.”

I have tried starting with a chat agent (with dialogflow) but I am not clear how best to then hand off the conversation to a fully generative agent for the divergent stages of the conversation. What are the best practices / patterns to have multiple agents involved in managing a conversational service? Are there any code samples that I can look at?

@xavidop I also read your answer to this similar query comparing deterministic and fully generative agents. Would your general advice still apply in my use case?

Thanks

1 Like

Hi @Joe_McFadden,

Welcome to Google Cloud Community!

You’re right! Integrating deterministic (convergent) and generative (divergent) approaches in a single conversational agent is challenging with current LLM technologies. The “restricted access” message highlights the difficulty of integrating these approaches.

To address your question, here are potential ways that might help with your use case:

  • Convergent Onboarding: You can gather user information, such as age and location, and define their goals for the session.
  • Convergent Action Planning: Encourage your users to commit to a course of action for their next steps.
  • Divergent Reality Onboarding: Guide your users to assess their current situation and job readiness, including relevant experience and adaptive skills.
  • Divergent Option Identification: You might help users explore different options to reach their career goals, such as training, entry-level roles, and work experience.
  • Customer Feedback: Collecting feedback from users through a survey can help you evaluate the usefulness of the coaching session.

You may refer to the following documentation, which will help you understand the implementation of multi-agent orchestration and context management for your career advice chatbot:

Was this helpful? If so, please accept this answer as “Solution”. If you need additional assistance, reply here within 2 business days and I’ll be happy to help.

Hi @MarvinLlamas

Thanks for your email. I had already reviewed the documentation pages you suggest. They are helpful for understanding the concepts, but they don’t go into enough depth for my use-case. Specifically, there is no mention anywhere in the docs of how to implement multi-agent orchestration with Google’s Conversational Agents. Nor can I find relevant code samples or demo apps in Google’s Dialogflow code repo on github. Do such examples exist?

I’m ideally looking for something equivalent to the multi-agent framework and demo app that AWS provides (https://github.com/awslabs/multi-agent-orchestrator).

Let me also reduce the scope of my question to a simplified two agent scenario.

I have a flow based agent for onboarding. It uses form filling to collect basic user profile information. I want this agent to pass the context of the collected profile information (e..g location and age) to a playbook based agent in the same google project. How specifically can this context be passed from one type of agent to another?

Thanks!
Joe

PS - also, can you help point me to the best support contact to request access for combining flows and playbooks in the same agent?