The Rise of Agentic AI: A Deep-Dive in the World of Multi Agent Systems

Estimated read time 15 min read

Introduction

Agents are the talk of the town. As per the predictions of top enterprise companies, Agentic AI is the highest priority in 2025 and forward. Still in early stages of evolution, the capabilities in reasoning and collaboration are breaking records every day. Soon agents are expected to be more independent and handle complete complex business tasks without human intervention.

What does this mean for developers, consultants and architects – A HUGE OPPORTUNITY.

Developing reliable Agents, is important and more critical is to ensure the agents collaborate efficiently to complete the desired tasks.

In my blog, I am going to explain concept of Agentic AI and deep dive into Multi Agent SystemsThe intent of this blog is to provide you the starting point and give you a leverage to explore possibilities on your own and ofcourse, with the help of your preferred co-pilot!

Along with the theory, my intention is to showcase a fully functional prototype which you can refer as well – GitHub Repo.

So, buckle up! and let’s start 🚀

I will breakdown the article into following parts

Introduction to Agentic AI and Multi Agent SystemsKey components of Agentic AIAgentic AI flow diagramSolution ArchitectureCode walkthroughLessons learnt

Introduction to Agentic AI and Multi Agent System

Without much theory, I will explain my take on:

What is Agentic AI?

AI systems where agents operate independently, taking their decisions and executing tasks without much human intervention.

The agents in Agentic AI framework use tools to enhance the outcomes.

Tools can be APIs, LLMs or documents which can provide data to the agents.

What is Multi Agent System?

Multi Agent System is an implementation and/or extension of Agentic AI.

More than one agents work together on specific tasks.

These agents can also collaborate and delegate the tasks among themselves eventually leading to the final task completion.

Key Components of Agentic AI

In this learning journey, I have chosen autogen as the choice of agentic framework for developing the multi agent system. This doesn’t mean that autogen can be used in all agentic scenarios. There are lot of agentic AI frameworks available, each of it having their own pros and cons. I will provide few market leading available frameworks at the end of this blog for you to explore.

Autogen heavily relies on LLM orchestration to collaborate between agents.

Autogen provides a ConversableAgent interface with three types of implementations

AssistantAgent – This agent performs the taskUserProxyAgent – This agent acts as a human proxy and reduces human interventionGroupChatManager – This agent acts as a manager to manage between agents and delegate the tasks

Below diagram gives a abstracted view of the different personas of agents in Autogen. Reference – https://microsoft.github.io/autogen/0.2/docs/Use-Cases/agent_chat/

Figure 1

Agentic AI Flow Diagram

In this section, I have created 2 simple flow diagrams showcasing how the agents work and interact with each other.

UserProxy and Assistant Agents in Action

The below diagram shows:

The UserProxyAgent delegates the task to AssistantAgent.The AssistantAgent uses tools which are functions to enrich their outcome based on data.The AssistantAgent terminates the request once the expected output is achieved and responds to the user proxy agent.The UserProxyAgent provides the final response to the user.

Figure 2

UserProxy, GroupChatManager and Assistant Agents in Action

In this flow diagram, I have taken a finance use case where we have two AssistantAgents

Finance Agent – Takes care of finance related queries.CSR Agent – Takes care of customer communication.

The GroupChatManager agent is the orchestrator to get the job done.

The below diagram shows:

The UserProxyAgent delegates the task to GroupChatManager agent.The GroupChatManager agent delegates the request to either finance AssistantAgent or CSRAssistantAgent or both agents based on the user requests.The AssistantAgent uses tools which are functions to enrich their outcome based on data.The GroupChatManager agent terminates the request once the expected output is achieved and responds to the UserProxyAgent.The UserProxyAgent provides the final response to the user.

Figure 3

 

Solution Architecture

This section outlines a high level solution architecture.

The  Agentic AI application is deployed on Cloud Foundry runtime.AI Launchpad  is leveraged to provide a wide set of model library available to choose.The generative-ai-hub-sdk is plugged in to integrate with the underlying model of choice.Backend APIs can be securely integrated leveraging Destination Service.The Agentic AI can be consumed by any Chat Client (Joule for example) of choice as it is being exposed as REST API.

Figure 4

 Code Walkthrough

As you get the high level architecture, now it’s time to deep dive into the code. The README file will help you get started. I would like to mention some important files in this section for you to give extra attention when you are browsing through the code:

server.py – The main starting point of your application.llm_config.py – Central place to store all LLM configurations for all agents.prompt_config.py – Central place to store all prompts for the agents.aicoreclient.py – Custom model for LLM if you are not using openai LLM. weather_agent.py – Autogen weather agent showcasing UserProxyAgent and AssistantAgent.finance_group_chat_agent.py – Autogen finance agent showcasing – UserProxyAgent, GroupChatManager and AssistantAgent.

For weather agent, I have integrated with real weather API.

For finance agent, I have mocked the backend calls with sample JSON

I have shared a fragment of log below which shows the agents communicating with each other. Take a look.

user_proxy (to chat_manager):

Can you send a text message to the customer CUST001 as a reminder for his pending invoice INV1005

——————————————————————————–
finance_agent (to chat_manager):

***** Suggested function call: extract_customer_id *****
Arguments:
{“user_input”:”Can you send a text message to the customer CUST001 as a reminder for his pending invoice INV1005″}
********************************************************

——————————————————————————–

>>>>>>>> EXECUTING FUNCTION extract_customer_id…
user_proxy (to chat_manager):

***** Response from calling function (extract_customer_id) *****
CUST001
****************************************************************

——————————————————————————–
finance_agent (to chat_manager):

***** Suggested function call: fetch_customer_details *****
Arguments:
{“customer_id”:”CUST001″}
***********************************************************

——————————————————————————–

>>>>>>>> EXECUTING FUNCTION fetch_customer_details…
user_proxy (to chat_manager):

***** Response from calling function (fetch_customer_details) *****
{‘customer_id’: ‘CUST001’, ‘address’: ‘123 Business St, New York, NY’, ‘account_manager’: ‘Michael Johnson’, ‘account_status’: ‘Active’, ‘company’: ‘Acme Corp’, ’email’: ‘john.doe@acmecorp.com’, ‘phone’: ‘+1-555-1234-1234’}
*******************************************************************

——————————————————————————–
finance_agent (to chat_manager):

I have retrieved the details for customer CUST001. The phone number is +1-555-1234-1234.

Please proceed to send a text message to remind them about the pending invoice INV1005.

Is there anything else I can assist you with today?

——————————————————————————–
csr_agent (to chat_manager):

***** Suggested function call: send_text_message *****
Arguments:
{“phone_number”:”+1-555-1234-1234″,”message”:”Dear Acme Corp team, this is a friendly reminder about your pending invoice INV1005. Please ensure it is paid at your earliest convenience. Thank you.”}
******************************************************

——————————————————————————–

>>>>>>>> EXECUTING FUNCTION send_text_message…
******Text Message****** : +1-555-1234-1234
###########################################
Message: Dear Acme Corp team, this is a friendly reminder about your pending invoice INV1005. Please ensure it is paid at your earliest convenience. Thank you.

Lessons Learnt

Prompts – Prompts are very important to get the desired output. Write your prompts meticulously. Learn prompt engineering.Latency – Agents can go in loops at times and increase overall time for response and cost of the request. Agent evaluation is a key.API calls – Choose your APIs wisely and consider the response times. Reduce multiple API calls.Heterogenous integrations – APIs are available in different styles – REST, ODATA, SOAP etc. Integrating with different APIs can be a challenge.Focus – Keep your agents focussed on one particular task. If the task is going to take longer time then better to handle it asynchronously.

Available Agentic AI Frameworks

I have listed current few agentic AI frameworks available and are good starting point to start learning and developing your multi agent systems.

LangGraph – https://www.langchain.com/langgraph CrewAI – https://www.crewai.comSemantic Kernel – https://learn.microsoft.com/en-us/semantic-kernel/ 

Conclusion

Drawing from my experience, I must emphasize that these insights can serve as a starting point, though their applicability may vary based on specific scenarios. This project will surely give you a holistic view from design and development of Agentic AI solutions and eventually deployment on cloud in production scenarios.

Take a deep breath and start coding  —  GitHub Repo

Stay curious! Keep learning!

Disclaimer: This is not an official reference application or documentation. The thoughts outlined in this blog are based on my experience and learnings about Agentic AI.

Feel free to “like“, “Share“, “Add a Comment” and to get more updates about my next blogs follow me!

References

https://www.microsoft.com/en-us/research/project/autogen/ 

 

​ IntroductionAgents are the talk of the town. As per the predictions of top enterprise companies, Agentic AI is the highest priority in 2025 and forward. Still in early stages of evolution, the capabilities in reasoning and collaboration are breaking records every day. Soon agents are expected to be more independent and handle complete complex business tasks without human intervention.What does this mean for developers, consultants and architects – A HUGE OPPORTUNITY.Developing reliable Agents, is important and more critical is to ensure the agents collaborate efficiently to complete the desired tasks.In my blog, I am going to explain concept of Agentic AI and deep dive into Multi Agent Systems. The intent of this blog is to provide you the starting point and give you a leverage to explore possibilities on your own and ofcourse, with the help of your preferred co-pilot!Along with the theory, my intention is to showcase a fully functional prototype which you can refer as well – GitHub Repo.So, buckle up! and let’s start 🚀I will breakdown the article into following partsIntroduction to Agentic AI and Multi Agent SystemsKey components of Agentic AIAgentic AI flow diagramSolution ArchitectureCode walkthroughLessons learntIntroduction to Agentic AI and Multi Agent SystemWithout much theory, I will explain my take on:What is Agentic AI?AI systems where agents operate independently, taking their decisions and executing tasks without much human intervention.The agents in Agentic AI framework use tools to enhance the outcomes.Tools can be APIs, LLMs or documents which can provide data to the agents.What is Multi Agent System?Multi Agent System is an implementation and/or extension of Agentic AI.More than one agents work together on specific tasks.These agents can also collaborate and delegate the tasks among themselves eventually leading to the final task completion.Key Components of Agentic AIIn this learning journey, I have chosen autogen as the choice of agentic framework for developing the multi agent system. This doesn’t mean that autogen can be used in all agentic scenarios. There are lot of agentic AI frameworks available, each of it having their own pros and cons. I will provide few market leading available frameworks at the end of this blog for you to explore.Autogen heavily relies on LLM orchestration to collaborate between agents.Autogen provides a ConversableAgent interface with three types of implementationsAssistantAgent – This agent performs the taskUserProxyAgent – This agent acts as a human proxy and reduces human interventionGroupChatManager – This agent acts as a manager to manage between agents and delegate the tasksBelow diagram gives a abstracted view of the different personas of agents in Autogen. Reference – https://microsoft.github.io/autogen/0.2/docs/Use-Cases/agent_chat/Figure 1Agentic AI Flow DiagramIn this section, I have created 2 simple flow diagrams showcasing how the agents work and interact with each other.UserProxy and Assistant Agents in ActionThe below diagram shows:The UserProxyAgent delegates the task to AssistantAgent.The AssistantAgent uses tools which are functions to enrich their outcome based on data.The AssistantAgent terminates the request once the expected output is achieved and responds to the user proxy agent.The UserProxyAgent provides the final response to the user.Figure 2UserProxy, GroupChatManager and Assistant Agents in ActionIn this flow diagram, I have taken a finance use case where we have two AssistantAgentsFinance Agent – Takes care of finance related queries.CSR Agent – Takes care of customer communication.The GroupChatManager agent is the orchestrator to get the job done.The below diagram shows:The UserProxyAgent delegates the task to GroupChatManager agent.The GroupChatManager agent delegates the request to either finance AssistantAgent or CSRAssistantAgent or both agents based on the user requests.The AssistantAgent uses tools which are functions to enrich their outcome based on data.The GroupChatManager agent terminates the request once the expected output is achieved and responds to the UserProxyAgent.The UserProxyAgent provides the final response to the user.Figure 3 Solution ArchitectureThis section outlines a high level solution architecture.The  Agentic AI application is deployed on Cloud Foundry runtime.AI Launchpad  is leveraged to provide a wide set of model library available to choose.The generative-ai-hub-sdk is plugged in to integrate with the underlying model of choice.Backend APIs can be securely integrated leveraging Destination Service.The Agentic AI can be consumed by any Chat Client (Joule for example) of choice as it is being exposed as REST API.Figure 4 Code WalkthroughAs you get the high level architecture, now it’s time to deep dive into the code. The README file will help you get started. I would like to mention some important files in this section for you to give extra attention when you are browsing through the code:server.py – The main starting point of your application.llm_config.py – Central place to store all LLM configurations for all agents.prompt_config.py – Central place to store all prompts for the agents.aicoreclient.py – Custom model for LLM if you are not using openai LLM. weather_agent.py – Autogen weather agent showcasing UserProxyAgent and AssistantAgent.finance_group_chat_agent.py – Autogen finance agent showcasing – UserProxyAgent, GroupChatManager and AssistantAgent.For weather agent, I have integrated with real weather API.For finance agent, I have mocked the backend calls with sample JSONI have shared a fragment of log below which shows the agents communicating with each other. Take a look.user_proxy (to chat_manager):

Can you send a text message to the customer CUST001 as a reminder for his pending invoice INV1005

——————————————————————————–
finance_agent (to chat_manager):

***** Suggested function call: extract_customer_id *****
Arguments:
{“user_input”:”Can you send a text message to the customer CUST001 as a reminder for his pending invoice INV1005″}
********************************************************

——————————————————————————–

>>>>>>>> EXECUTING FUNCTION extract_customer_id…
user_proxy (to chat_manager):

***** Response from calling function (extract_customer_id) *****
CUST001
****************************************************************

——————————————————————————–
finance_agent (to chat_manager):

***** Suggested function call: fetch_customer_details *****
Arguments:
{“customer_id”:”CUST001″}
***********************************************************

——————————————————————————–

>>>>>>>> EXECUTING FUNCTION fetch_customer_details…
user_proxy (to chat_manager):

***** Response from calling function (fetch_customer_details) *****
{‘customer_id’: ‘CUST001’, ‘address’: ‘123 Business St, New York, NY’, ‘account_manager’: ‘Michael Johnson’, ‘account_status’: ‘Active’, ‘company’: ‘Acme Corp’, ’email’: ‘john.doe@acmecorp.com’, ‘phone’: ‘+1-555-1234-1234’}
*******************************************************************

——————————————————————————–
finance_agent (to chat_manager):

I have retrieved the details for customer CUST001. The phone number is +1-555-1234-1234.

Please proceed to send a text message to remind them about the pending invoice INV1005.

Is there anything else I can assist you with today?

——————————————————————————–
csr_agent (to chat_manager):

***** Suggested function call: send_text_message *****
Arguments:
{“phone_number”:”+1-555-1234-1234″,”message”:”Dear Acme Corp team, this is a friendly reminder about your pending invoice INV1005. Please ensure it is paid at your earliest convenience. Thank you.”}
******************************************************

——————————————————————————–

>>>>>>>> EXECUTING FUNCTION send_text_message…
******Text Message****** : +1-555-1234-1234
###########################################
Message: Dear Acme Corp team, this is a friendly reminder about your pending invoice INV1005. Please ensure it is paid at your earliest convenience. Thank you.Lessons LearntPrompts – Prompts are very important to get the desired output. Write your prompts meticulously. Learn prompt engineering.Latency – Agents can go in loops at times and increase overall time for response and cost of the request. Agent evaluation is a key.API calls – Choose your APIs wisely and consider the response times. Reduce multiple API calls.Heterogenous integrations – APIs are available in different styles – REST, ODATA, SOAP etc. Integrating with different APIs can be a challenge.Focus – Keep your agents focussed on one particular task. If the task is going to take longer time then better to handle it asynchronously.Available Agentic AI FrameworksI have listed current few agentic AI frameworks available and are good starting point to start learning and developing your multi agent systems.LangGraph – https://www.langchain.com/langgraph CrewAI – https://www.crewai.comSemantic Kernel – https://learn.microsoft.com/en-us/semantic-kernel/ ConclusionDrawing from my experience, I must emphasize that these insights can serve as a starting point, though their applicability may vary based on specific scenarios. This project will surely give you a holistic view from design and development of Agentic AI solutions and eventually deployment on cloud in production scenarios.Take a deep breath and start coding  —  GitHub RepoStay curious! Keep learning!Disclaimer: This is not an official reference application or documentation. The thoughts outlined in this blog are based on my experience and learnings about Agentic AI.Feel free to “like“, “Share“, “Add a Comment” and to get more updates about my next blogs follow me!Referenceshttps://www.microsoft.com/en-us/research/project/autogen/ https://microsoft.github.io/autogen/0.2/docs/tutorial/introductionhttps://microsoft.github.io/autogen/0.2/blog/2024/01/26/Custom-Models https://github.com/microsoft/autogen/issues/2929    Read More Technology Blogs by SAP articles 

#SAP

#SAPTechnologyblog

You May Also Like

More From Author