diff --git a/01-intro-to-ai-agents/README.md b/01-intro-to-ai-agents/README.md index 88ee6fa7..209a5121 100644 --- a/01-intro-to-ai-agents/README.md +++ b/01-intro-to-ai-agents/README.md @@ -29,10 +29,10 @@ AI Agents are **systems** that enable **Large Language Models(LLMs)** to **perfo Let's break this definition into smaller parts: -- **System** - It's important to think about agents not as just a single component but as a system of many components.At the basic level, the components of an AI Agent are: +- **System** - It's important to think about agents not as just a single component but as a system of many components. At the basic level, the components of an AI Agent are: - **Environment** - The defined space where the AI Agent is operating. For example, if we had a travel booking AI Agent, the environment could be the travel booking system that the AI Agent uses to complete tasks. - **Sensors** - Environments have information and provide feedback. AI Agents use sensors to gather and interpret this information about the current state of the environment. In the Travel Booking Agent example, the travel booking system can provide information such as hotel availability or flight prices. - - **Actuators** - Once the AI Agent receives the current state of the environment, For the current task the agent determines what action to perform to change the environment. For the travel booking agent, it might be to book an available room for the user. + - **Actuators** - Once the AI Agent receives the current state of the environment, for the current task the agent determines what action to perform to change the environment. For the travel booking agent, it might be to book an available room for the user. ![What Are AI Agents?](./images/what-are-ai-agents.png?WT.mc_id=academic-105485-koreyst) @@ -60,7 +60,7 @@ Now that we have a general definition of AI Agents, let us look at some specific ## When to Use AI Agents -In the earlier section, we used the Travel Agent use-case to explain how the different type of agents can be used in different scenarios of travel booking. We will contiue to use this application througout the course. +In the earlier section, we used the Travel Agent use-case to explain how the different type of agents can be used in different scenarios of travel booking. We will continue to use this application throughout the course. Let's look at they types of use cases that AI Agents are best used for: diff --git a/02-explore-agentic-frameworks/README.md b/02-explore-agentic-frameworks/README.md index ad60e6bf..d1216596 100644 --- a/02-explore-agentic-frameworks/README.md +++ b/02-explore-agentic-frameworks/README.md @@ -10,9 +10,9 @@ This lesson will cover: - What are AI Agent Frameworks and what do they enable developers to do? - How can teams use these to quickly prototype, iterate, and improve my agent’s capabilities? -- What are the difference between the frameworks and tools created by Microsoft ( [Autogen](https://aka.ms/ai-agents/autogen) / [Semantic Kernel](https://aka.ms/ai-agents-beginners/semantic-kernel) / [Azure AI Agent Service](https://aka.ms/ai-agents-beginners/ai-agent-service)) +- What are the difference between the frameworks and tools created by Microsoft ( [AutoGen](https://aka.ms/ai-agents/autogen) / [Semantic Kernel](https://aka.ms/ai-agents-beginners/semantic-kernel) / [Azure AI Agent Service](https://aka.ms/ai-agents-beginners/ai-agent-service)) - Can I integrate my existing Azure ecosystem tools directly, or do I need standalone solutions? -- what is Azure AI Agents service and how is this helping me? +- What is Azure AI Agents service and how is this helping me? ## Learning goals @@ -21,7 +21,7 @@ The goals of this lesson is to help you understand: - The role of AI Agent Frameworks in AI development. - How to leverage AI Agent Frameworks to build intelligent agents. - Key capabilities enabled by AI Agent Frameworks. -- The differences between Autogen, Semantic Kernel, and Azure AI Agent Service. +- The differences between AutoGen, Semantic Kernel, and Azure AI Agent Service. ## What are AI Agent Frameworks and what do they enable developers to do? @@ -78,13 +78,13 @@ What you can see from this example is how you can leverage a pre-built parser to ### Leverage Collaborative Tools -Frameworks like CrewAI and Microsoft Autogen facilitate the creation of multiple agents that can work together. +Frameworks like CrewAI and Microsoft AutoGen facilitate the creation of multiple agents that can work together. **How teams can use these**: Teams can design agents with specific roles and tasks, enabling them to test and refine collaborative workflows and improve overall system efficiency. **How it works in practice**: You can create a team of agents where each agent has a specialized function, such as data retrieval, analysis, or decision-making. These agents can communicate and share information to achieve a common goal, such as answering a user query or completing a task. -**Example code (Autogen)**: +**Example code (AutoGen)**: ```python # creating agents, then create a round robin schedule where they can work together, in this case in order @@ -129,21 +129,21 @@ Advanced frameworks provide capabilities for real-time context understanding and **How it works in practice**: Agents can analyze user feedback, environmental data, and task outcomes to update their knowledge base, adjust decision-making algorithms, and improve performance over time. This iterative learning process enables agents to adapt to changing conditions and user preferences, enhancing overall system effectiveness. -## What are the differences between the frameworks Autogen, Semantic Kernel and Azure AI Agent Service? +## What are the differences between the frameworks AutoGen, Semantic Kernel and Azure AI Agent Service? There are many ways to compare these frameworks, but let's look at some key differences in terms of their design, capabilities, and target use cases: -## Autogen +## AutoGen Open-source framework developed by Microsoft Research's AI Frontiers Lab. Focuses on event-driven, distributed *agentic* applications, enabling multiple LLMs and SLMs, tools, and advanced multi-agent design patterns. -Autogen is built around the core concept of agents, which are autonomous entities that can perceive their environment, make decisions, and take actions to achieve specific goals. Agents communicate through asynchronous messages, allowing them to work independently and in parallel, enhancing system scalability and responsiveness. +AutoGen is built around the core concept of agents, which are autonomous entities that can perceive their environment, make decisions, and take actions to achieve specific goals. Agents communicate through asynchronous messages, allowing them to work independently and in parallel, enhancing system scalability and responsiveness. Agents are based on the [actor model](https://en.wikipedia.org/wiki/Actor_model). Which according to Wikipedia states that an actor is _the basic building block of concurrent computation. In response to a message it receives, an actor can: make local decisions, create more actors, send more messages, and determine how to respond to the next message received_. **Use Cases**: Automating code generation, data analysis tasks, and building custom agents for planning and research functions. -Here's some important core concepts of Autogen: +Here's some important core concepts of AutoGen: - **Agents**. An agent is a software entity that: - **Communicates via messages**, these messages can be synchronous or asynchronous. @@ -176,7 +176,7 @@ Here's some important core concepts of Autogen: In above code, `MyAssistant` has been created and inherits from `RoutedAgent`. It has a message handler that prints the content of the message and then sends a response using the `AssistantAgent` delegate. Especially note how we assign to `self._delegate` an instance of `AssistantAgent` which is a pre-built agent that can handle chat completions. - Let's let Autogen know about this agent type and kick off the program next: + Let's let AutoGen know about this agent type and kick off the program next: ```python @@ -197,7 +197,7 @@ Here's some important core concepts of Autogen: my_assistant responded: Hello! How can I assist you today? ``` -- **Multi agents**. Autogen supports the creation of multiple agents that can work together to achieve complex tasks. Agents can communicate, share information, and coordinate their actions to solve problems more efficiently. To create a multi-agent system, you can define different types of agents with specialized functions and roles, such as data retrieval, analysis, decision-making, and user interaction. Let's see how such a creation looks like so we get a sense of it: +- **Multi agents**. AutoGen supports the creation of multiple agents that can work together to achieve complex tasks. Agents can communicate, share information, and coordinate their actions to solve problems more efficiently. To create a multi-agent system, you can define different types of agents with specialized functions and roles, such as data retrieval, analysis, decision-making, and user interaction. Let's see how such a creation looks like so we get a sense of it: ```python editor_description = "Editor for planning and reviewing the content." @@ -243,14 +243,14 @@ Here's some important core concepts of Autogen: - **Agent Runtime**. The framework provides a runtime environment, enabling communication between agents, manages their identities and lifecycles, and enforce security and privacy boundaries. This means that you can run your agents in a secure and controlled environment, ensuring that they can interact safely and efficiently. There are two runtimes of interest: - **Stand-alone runtime**. This is a good choice for single-process applications where all agents are implemented in the same programming language and runs in the same process. Here's an illustration of how it works: - ![Stand-alone runtime](https://microsoft.github.io/autogen/stable/_images/architecture-standalone.svg) + ![Stand-alone runtime](https://microsoft.github.io/autogen/stable/_images/architecture-standalone.svg) Application stack *agents communicate via messages through the runtime, and the runtime manages the lifecycle of agents* - **Distributed agent runtime**, is suitable for multi-process applications where agents may be implemented in different programming languages and running on different machine. Here's an illustration of how it works: - ![Distributed runtime](https://microsoft.github.io/autogen/stable/_images/architecture-distributed.svg) + ![Distributed runtime](https://microsoft.github.io/autogen/stable/_images/architecture-distributed.svg) ## Semantic Kernel + Agent Framework @@ -378,7 +378,7 @@ Azure AI Agent Service is a more recent addition, introduced at Microsoft Ignite Azure AI Agent Service provides stronger enterprise security mechanisms and data storage methods, making it suitable for enterprise applications. -It works out-of-the-box with multi-agent orchestration frameworks like Autogen and Semantic Kernel. +It works out-of-the-box with multi-agent orchestration frameworks like AutoGen and Semantic Kernel. This service is currently in Public Preview and supports Python and C# for building agents @@ -386,7 +386,7 @@ This service is currently in Public Preview and supports Python and C# for build Azure AI Agent Service has the following core concepts: -- **Agent**. Azure Ai Agent Service works integrates with Azure AI Foundry. Within AI Foundry, an AI Agent acts as a "smart" microservice that can be used to answer questions (RAG), perform actions, or completely automate workflows. It achieves this by combining the power of generative AI models with tools that allow it to access and interact with real-world data sources. Here's an example of an agent: +- **Agent**. Azure AI Agent Service integrates with Azure AI Foundry. Within AI Foundry, an AI Agent acts as a "smart" microservice that can be used to answer questions (RAG), perform actions, or completely automate workflows. It achieves this by combining the power of generative AI models with tools that allow it to access and interact with real-world data sources. Here's an example of an agent: ```python agent = project_client.agents.create_agent( @@ -420,7 +420,7 @@ Azure AI Agent Service has the following core concepts: In the above code, a thread is created. Thereafter, a message is sent to the thread. By calling `create_and_process_run`, the agent is asked to perform work on the thread. Finally, the messages are fetched and logged to see the agent's response. The messages indicate the progress of the conversation between the user and the agent. It's also important to understand that the messages can be of different types such as text, image, or file, that is the agents work has resulted in for example an image or a text response for example. As a developer, you can then use this information to further process the response or present it to the user. -- **Integrates with other AI frameworks**. Azure AI Agent service can interact with other frameworks like Autogen and Semantic Kernel, which means you can build part of your app in one of these frameworks and for example using the Agent service as an orchestrator or you can build everything in the Agent service. +- **Integrates with other AI frameworks**. Azure AI Agent service can interact with other frameworks like AutoGen and Semantic Kernel, which means you can build part of your app in one of these frameworks and for example using the Agent service as an orchestrator or you can build everything in the Agent service. **Use Cases**: Azure AI Agent Service is designed for enterprise applications that require secure, scalable, and flexible AI agent deployment. @@ -428,7 +428,7 @@ Azure AI Agent Service has the following core concepts: It does sound like there is a lot of overlap between these frameworks, but there are some key differences in terms of their design, capabilities, and target use cases: -- **Autogen**: Focuses on event-driven, distributed agentic applications, enabling multiple LLMs and SLMs, tools, and advanced multi-agent design patterns. +- **AutoGen**: Focuses on event-driven, distributed agentic applications, enabling multiple LLMs and SLMs, tools, and advanced multi-agent design patterns. - **Semantic Kernel**: Focuses on understanding and generating human-like text content by capturing deeper semantic meanings. It is designed to automate complex workflows and initiate tasks based on project goals. - **Azure AI Agent Service**: Provides more flexible models, such as directly calling open-source LLMs like Llama 3, Mistral, and Cohere. It offers stronger enterprise security mechanisms and data storage methods, making it suitable for enterprise applications. @@ -440,15 +440,15 @@ Let's see if we can help you by going through some common use cases: > Q: My team is working on a project that involves automating code generation and data analysis tasks. Which framework should we use? > ->A: Autogen would be a good choice for this scenario, as it focuses on event-driven, distributed agentic applications and supports advanced multi-agent design patterns. +>A: AutoGen would be a good choice for this scenario, as it focuses on event-driven, distributed agentic applications and supports advanced multi-agent design patterns. -> Q: What makes autogen a better choice than Semantic Kernel and Azure AI Agent Service for this use case? +> Q: What makes AutoGen a better choice than Semantic Kernel and Azure AI Agent Service for this use case? > -> A: Autogen is specifically designed for event-driven, distributed agentic applications, making it well-suited for automating code generation and data analysis tasks. It provides the necessary tools and capabilities to build complex multi-agent systems efficiently. +> A: AutoGen is specifically designed for event-driven, distributed agentic applications, making it well-suited for automating code generation and data analysis tasks. It provides the necessary tools and capabilities to build complex multi-agent systems efficiently. >Q: Sounds like Azure AI Agent Service could work here too, it tools like code generation and more? > -> A: Yes, Azure AI Agent Service also supports code generation and data analysis tasks, but it may be more suitable for enterprise applications that require secure, scalable, and flexible AI agent deployment. Autogen is more focused on event-driven, distributed agentic applications and advanced multi-agent design patterns. +> A: Yes, Azure AI Agent Service also supports code generation and data analysis tasks, but it may be more suitable for enterprise applications that require secure, scalable, and flexible AI agent deployment. AutoGen is more focused on event-driven, distributed agentic applications and advanced multi-agent design patterns. > Q: so you are saying if I want to go enterprise, I should go with Azure AI Agent Service? > @@ -458,13 +458,13 @@ Let's summarize the key differences in a table: | Framework | Focus | Core Concepts | Use Cases | | --- | --- | --- | --- | -| Autogen | Event-driven, distributed agentic applications | Agents, Personas, Functions, Data | Code generation, data analysis tasks | +| AutoGen | Event-driven, distributed agentic applications | Agents, Personas, Functions, Data | Code generation, data analysis tasks | | Semantic Kernel | Understanding and generating human-like text content | Agents, Modular Components, Collaboration | Natural language understanding, content generation | | Azure AI Agent Service | Flexible models, enterprise security, Code generation, Tool calling | Modularity, Collaboration, Process Orchestration | Secure, scalable, and flexible AI agent deployment | What's the ideal use case for each of these frameworks? -- **Autogen**: Event-driven, distributed agentic applications, advanced multi-agent design patterns. Ideal for automating code generation, data analysis tasks. +- **AutoGen**: Event-driven, distributed agentic applications, advanced multi-agent design patterns. Ideal for automating code generation, data analysis tasks. - **Semantic Kernel**: Understanding and generating human-like text content, automating complex workflows, initiating tasks based on project goals. Ideal for natural language understanding, content generation. - **Azure AI Agent Service**: Flexible models, enterprise security mechanisms, data storage methods. Ideal for secure, scalable, and flexible AI agent deployment in enterprise applications. @@ -472,12 +472,12 @@ What's the ideal use case for each of these frameworks? The answer is yes, you can integrate your existing Azure ecosystem tools directly with Azure AI Agent Service especially, this because it has been built to work seamlessly with other Azure services. You could for example integrate Bing, Azure AI Search, and Azure Functions. There's also deep integration with Azure AI Foundry. -For Autogen and Semantic Kernel, you can also integrate with Azure services, but it may require you to call the Azure services from your code. Another way to integrate is to use the Azure SDKs to interact with Azure services from your agents. Additionally, like was mentioned, you can use Azure AI Agent Service as an orchestrator for your agents built in Autogen or Semantic Kernel which would give easy access to the Azure ecosystem. +For AutoGen and Semantic Kernel, you can also integrate with Azure services, but it may require you to call the Azure services from your code. Another way to integrate is to use the Azure SDKs to interact with Azure services from your agents. Additionally, like was mentioned, you can use Azure AI Agent Service as an orchestrator for your agents built in AutoGen or Semantic Kernel which would give easy access to the Azure ecosystem. ## References - [1] - [Azure Agent Service](https://techcommunity.microsoft.com/blog/azure-ai-services-blog/introducing-azure-ai-agent-service/4298357) -- [2] - [Semantic Kernel and Autogen](https://devblogs.microsoft.com/semantic-kernel/microsofts-agentic-ai-frameworks-autogen-and-semantic-kernel/) +- [2] - [Semantic Kernel and AutoGen](https://devblogs.microsoft.com/semantic-kernel/microsofts-agentic-ai-frameworks-autogen-and-semantic-kernel/) - [3] - [Semantic Kernel Agent Framework](https://learn.microsoft.com/semantic-kernel/frameworks/agent/?pivots=programming-language-csharp) - [4] - [Azure AI Agent service](https://learn.microsoft.com/azure/ai-services/agents/overview) - [5] - [Using Azure AI Agent Service with AutoGen / Semantic Kernel to build a multi-agent's solution](https://techcommunity.microsoft.com/blog/educatordeveloperblog/using-azure-ai-agent-service-with-autogen--semantic-kernel-to-build-a-multi-agen/4363121) \ No newline at end of file diff --git a/03-agentic-design-patterns/README.md b/03-agentic-design-patterns/README.md index ee0f5e3b..00800827 100644 --- a/03-agentic-design-patterns/README.md +++ b/03-agentic-design-patterns/README.md @@ -36,7 +36,7 @@ This is the environment in which the agent operates. These principles inform how - **Connecting, not collapsing** – help connect people to other people, events, and actionable knowledge to enable collaboration and connection. - Agents help connect events, knowledge, and people. - Agents bring people closer together. They are not designed to replace or belittle people. -- **Easily accessible yet occasionally invisible** – agent largely operates in the background and only nudges us when it is relevant and appropriate. +- **Easily accessible yet occasionally invisible** – agent largely operate in the background and only nudges us when it is relevant and appropriate. - Agent is easily discoverable and accessible for authorized users on any device or platform. - Agent supports multimodal inputs and outputs (sound, voice, text, etc.). - Agent can seamlessly transition between foreground and background; between proactive and reactive, depending on its sensing of user needs. diff --git a/04-tool-use/README.md b/04-tool-use/README.md index 2848be22..9247fd64 100644 --- a/04-tool-use/README.md +++ b/04-tool-use/README.md @@ -26,7 +26,7 @@ The **Tool Use Design Pattern** focuses on giving LLMs the ability to interact w AI Agents can leverage tools to complete complex tasks, retrieve information, or make decisions. The tool use design pattern is often used in scenarios requiring dynamic interaction with external systems, such as databases, web services, or code interpreters. This ability is useful for a number of different use cases including: -- **Dynamic Information Retrieval:** Agents can query external APIs or databases to fetch up-to-date data (e.g., quering an SQLite database for data analysis, fetching stock prices or weather information). +- **Dynamic Information Retrieval:** Agents can query external APIs or databases to fetch up-to-date data (e.g., querying a SQLite database for data analysis, fetching stock prices or weather information). - **Code Execution and Interpretation:** Agents can execute code or scripts to solve mathematical problems, generate reports, or perform simulations. - **Workflow Automation:** Automating repetitive or multi-step workflows by integrating tools like task schedulers, email services, or data pipelines. - **Customer Support:** Agents can interact with CRM systems, ticketing platforms, or knowledge bases to resolve user queries. @@ -41,7 +41,7 @@ Function calling is the primary way we enable Large Language Models (LLMs) to in For developers to implement function calling for agents, you will need: 1. An LLM model that supports function calling -2. A schema containting function descriptions +2. A schema containing function descriptions 3. The code for each function described Let's use the example of getting the current time in a city to illustrate: @@ -255,7 +255,7 @@ As we learned in [Lesson 2](../02-explore-agentic-frameworks/) agentic framework import os from azure.ai.projects import AIProjectClient from azure.identity import DefaultAzureCredential - from fecth_sales_data_functions import fetch_sales_data_using_sqlite_query # fetch_sales_data_using_sqlite_query function which can be found in a fecth_sales_data_functions.py file. + from fecth_sales_data_functions import fetch_sales_data_using_sqlite_query # fetch_sales_data_using_sqlite_query function which can be found in a fetch_sales_data_functions.py file. from azure.ai.projects.models import ToolSet, FunctionTool, CodeInterpreterTool project_client = AIProjectClient.from_connection_string( diff --git a/05-agentic-rag/README.md b/05-agentic-rag/README.md index e78c77e6..5e553148 100644 --- a/05-agentic-rag/README.md +++ b/05-agentic-rag/README.md @@ -1,12 +1,12 @@ # Agentic RAG -This lesson provides a comprehensive overview of Agentic Retrieval-Augmented Generation (Agentic RAG), an emerging AI paradigm where large language models (LMs) autonomously plan their next steps while pulling information from external sources. Unlike static retrieval-then-read patterns, Agentic RAG involves iterative calls to the LLM, interspersed with tool or function calls and structured outputs. The system evaluates results, refines queries, invokes additional tools if needed, and continues this cycle until a satisfactory solution is achieved. +This lesson provides a comprehensive overview of Agentic Retrieval-Augmented Generation (Agentic RAG), an emerging AI paradigm where large language models (LLMs) autonomously plan their next steps while pulling information from external sources. Unlike static retrieval-then-read patterns, Agentic RAG involves iterative calls to the LLM, interspersed with tool or function calls and structured outputs. The system evaluates results, refines queries, invokes additional tools if needed, and continues this cycle until a satisfactory solution is achieved. ## Introduction This lesson will cover -- **Understand Agentic RAG:** Learn about the emerging paradigm in AI where large language models (LLMs) autonomously plan their next steps while pulling information from external data sources +- **Understand Agentic RAG:** Learn about the emerging paradigm in AI where large language models (LLMs) autonomously plan their next steps while pulling information from external data sources. - **Grasp Iterative Maker-Checker Style:** Comprehend the loop of iterative calls to the LLM, interspersed with tool or function calls and structured outputs, designed to improve correctness and handle malformed queries. - **Explore Practical Applications:** Identify scenarios where Agentic RAG shines, such as correctness-first environments, complex database interactions, and extended workflows. @@ -53,7 +53,7 @@ All of these steps—refining queries, choosing sources, iterating until “happ ## Iterative Loops, Tool Integration, and Memory -![Tool Intergration Architecture](./images/tool-integration.png) +![Tool Integration Architecture](./images/tool-integration.png) An agentic system relies on a looped interaction pattern: diff --git a/06-building-trustworthy-agents/README.md b/06-building-trustworthy-agents/README.md index ed8b7e02..72f1b67c 100644 --- a/06-building-trustworthy-agents/README.md +++ b/06-building-trustworthy-agents/README.md @@ -37,10 +37,10 @@ To create scalable system prompts, we can use a meta prompting system for buildi Here is an example of a meta prompt we would give to the LLM: ```plaintext -You are an expert at creating AI agent assitants. -You will be provided a company name, role, responsibilites and other +You are an expert at creating AI agent assistants. +You will be provided a company name, role, responsibilities and other information that you will use to provide a system prompt for. -To create the system prompt, be descriptive as possible and provide a structure that a system using an LLM can better understand the role and responsibilites of the AI assistant. +To create the system prompt, be descriptive as possible and provide a structure that a system using an LLM can better understand the role and responsibilities of the AI assistant. ``` #### Step 2: Create a basic prompt @@ -151,7 +151,7 @@ To build trustworthy AI agents, it is important to understand and mitigate the r ## Human-in-the-Loop -Another effective way to build trustworthy AI Agent systems is using a Human-in-the-loop. This creates a flow where users are able to provide feedback to the Agents during run. Users essentially act as agent in a multi-agent system and by providing apporval or termination of the running process. +Another effective way to build trustworthy AI Agent systems is using a Human-in-the-loop. This creates a flow where users are able to provide feedback to the Agents during run. Users essentially act as agent in a multi-agent system and by providing approval or termination of the running process. ![Human in The Loop](./images/human-in-the-loop.png) @@ -177,4 +177,13 @@ await Console(stream) ``` +## Conclusion +Building trustworthy AI agents requires careful design, robust security measures, and continuous iteration. By implementing structured meta prompting systems, understanding potential threats, and applying mitigation strategies, developers can create AI agents that are both safe and effective. Additionally, incorporating a human-in-the-loop approach ensures that AI agents remain aligned with user needs while minimizing risks. As AI continues to evolve, maintaining a proactive stance on security, privacy, and ethical considerations will be key to fostering trust and reliability in AI-driven systems. + +## Additional Resources + +- [Responsible AI overview](https://learn.microsoft.com/azure/ai-studio/responsible-use-of-ai-overview) +-[Evaluation of generative AI models and AI applications](https://learn.microsoft.com/azure/ai-studio/concepts/evaluation-approach-gen-ai) +- [Safety system messages](https://learn.microsoft.com/azure/ai-services/openai/concepts/system-message?context=%2Fazure%2Fai-studio%2Fcontext%2Fcontext&tabs=top-techniques) +- [Risk Assessment Template](https://blogs.microsoft.com/wp-content/uploads/prod/sites/5/2022/06/Microsoft-RAI-Impact-Assessment-Template.pdf?culture=en-us&country=us) diff --git a/07-planning-design/README.md b/07-planning-design/README.md index 6671b319..376d6899 100644 --- a/07-planning-design/README.md +++ b/07-planning-design/README.md @@ -109,7 +109,7 @@ from pprint import pprint messages = [ SystemMessage(content="""You are an planner agent. Your job is to decide which agents to run based on the user's request. - Below are the available agents specialised in different tasks: + Below are the available agents specialized in different tasks: - FlightBooking: For booking flights and providing flight information - HotelBooking: For booking hotels and providing hotel information - CarRental: For booking cars and providing car rental information @@ -132,7 +132,7 @@ if response_content is None: pprint(json.loads(response_content)) ``` -Below is the output from the above code and you can then use this structured output to route to `assigned_agent` and summarise the travel plan to end user +Below is the output from the above code and you can then use this structured output to route to `assigned_agent` and summarize the travel plan to the end user. ```json { @@ -179,14 +179,14 @@ e.g sample code messages = [ SystemMessage(content="""You are a planner agent to optimize the Your job is to decide which agents to run based on the user's request. - Below are the available agents specialised in different tasks: + Below are the available agents specialized in different tasks: - FlightBooking: For booking flights and providing flight information - HotelBooking: For booking hotels and providing hotel information - CarRental: For booking cars and providing car rental information - ActivitiesBooking: For booking activities and providing activity information - DestinationInfo: For providing information about destinations - DefaultAgent: For handling general requests""", source="system"), - UserMessage(content="Create a travel plan for a family of 2 kids from Singapore to Melboune", source="user"), + UserMessage(content="Create a travel plan for a family of 2 kids from Singapore to Melbourne", source="user"), AssistantMessage(content=f"Previous travel plan - {TravelPlan}", source="assistant") ] # .. re-plan and send the tasks to respective agents @@ -196,10 +196,8 @@ For a more comprehensive planning do checkout Magnetic One [Blogpost](https://ww ## Summary -In this article we have looked at an example of how we can create a planner that can dynamically select the available agents defined. The output of the Planner decomposes the tasks and assigns the agents so them to be executed. It is assumed the agents has access to function/tools that are required to perform the task. In addition to the agents you can include other patterns like reflection, summarizer , round robin chat to further customise +In this article we have looked at an example of how we can create a planner that can dynamically select the available agents defined. The output of the Planner decomposes the tasks and assigns the agents so them to be executed. It is assumed the agents has access to function/tools that are required to perform the task. In addition to the agents you can include other patterns like reflection, summarizer, and round robin chat to further customize. ## Additional Resources -* Using o1 reasoning models have proved quite adavnaced in planning complex tasks - TODO: Share example? - -* Autogen Magentic One - A Generalist multi agent system for solving complex task and has achieved impressive results on multiple challenging agentic benchmarks. Reference: [autogen-magentic-one](https://github.com/microsoft/autogen/tree/main/python/packages/autogen-magentic-one). In this implementation the orchestrator create task specific plan and delegates these tasks to the available agents. In addition to planning the orchestrator also employs a tracking mechanism to monitor the progress of the task and re-plans as required. +* AutoGen Magentic One - A Generalist multi agent system for solving complex task and has achieved impressive results on multiple challenging agentic benchmarks. Reference: [autogen-magentic-one](https://github.com/microsoft/autogen/tree/main/python/packages/autogen-magentic-one). In this implementation the orchestrator create task specific plan and delegates these tasks to the available agents. In addition to planning the orchestrator also employs a tracking mechanism to monitor the progress of the task and re-plans as required. diff --git a/08-multi-agent/README.md b/08-multi-agent/README.md index 1cfd9b18..7faae787 100644 --- a/08-multi-agent/README.md +++ b/08-multi-agent/README.md @@ -6,9 +6,9 @@ As soon as you start working on a project that involves multiple agents, you wil In this lesson, we're looking to answer the following questions: -- What are the scenarios where multi-agents are applicable to? -- What are the advantages of using multi-agents over just one singular agent doing multiple tasks? -- What are the building blocks of implementing the multi-agent design pattern? +- What are the scenarios where multi-agents are applicable to? +- What are the advantages of using multi-agents over just one singular agent doing multiple tasks? +- What are the building blocks of implementing the multi-agent design pattern? - How do we have visibility to how the multiple agents are interacting with each other ## Learning Goals @@ -143,8 +143,6 @@ There's quite a few agents listed above both for the specific refund process but ## Assignment -What's a good assignment for this lesson? - Design a multi-agent system for a customer support process. Identify the agents involved in the process, their roles and responsibilities, and how they interact with each other. Consider both agents specific to the customer support process and general agents that can be used in other parts of your business. > Have a think before you read the solution below, you may need more agents than you think. @@ -171,6 +169,5 @@ In this lesson, we've looked at the multi-agent design pattern, including the sc ## Additional resources -- [Autogen design patterns](https://microsoft.github.io/autogen/0.4.0.dev4/user-guide/core-user-guide/design-patterns/index.html) -- [Agentic design patterns](https://www.analyticsvidhya.com/blog/2024/10/agentic-design-patterns/) - +- [AutoGen design patterns](https://microsoft.github.io/autogen/0.4.0.dev4/user-guide/core-user-guide/design-patterns/index.html) +- [Agentic design patterns](https://www.analyticsvidhya.com/blog/2024/10/agentic-design-patterns/) \ No newline at end of file diff --git a/10-ai-agents-production/README.md b/10-ai-agents-production/README.md index 762d1503..c41b83b1 100644 --- a/10-ai-agents-production/README.md +++ b/10-ai-agents-production/README.md @@ -1,4 +1,4 @@ -# AI Agents in Production +# AI Agents in Production ## Introduction