Designing effective agents

Choose the type of agent

The first decision you need to make is what kind of agent you are building. In this section, you will learn how to choose the right type of agent for your scenario.

Extend Microsoft 365 Copilot or build a stand-alone agent

Copilot Studio can be used either to extend Microsoft 365 Copilot or to build stand-alone agents for internal or external use. Here are the key considerations for deciding when to extend or when to build.

Extend Microsoft 365 Copilot when:

  • Your users have Microsoft 365 Copilot licenses, or they work in the Microsoft 365 Copilot Chat experience in their daily work, and your scenario fits well with that user experience.

  • You want a customized version of the Microsoft 365 Copilot chat experience tailored to your specific business needs or use case.

  • You want Microsoft 365 Copilot to integrate with and reason over more of your enterprise data sources or domain knowledge.

  • You want Microsoft 365 Copilot to be able to handle specific tasks, workflows, or business processes that are connected to your line-of-business systems beyond Microsoft 365 products.

Build a stand-alone agent when:

  • You are building an agent for an external-facing scenario, such as customer or supplier self-service.

  • Your agent is for internal use, but your users do not have Microsoft 365 Copilot licenses, or they do not use the free Microsoft 365 Copilot Chat experience in their daily work.

  • You want flexibility to publish to an internal channel or surface outside of the Microsoft 365 Copilot Chat experience, or to publish to multiple internal channels. This could include your company’s business applications, mobile apps, or internal websites or web apps.

  • You want more control over the agent branding or user experience.

  • You want more control and choice with regard to the language models, orchestration, fine-tuning of knowledge sources, instructions, or responses.

  • Your use case is best served by a multi-agent system.

Conversational agents

Conversational agents are what we are most familiar with in our experience as consumers chatting with a “bot” on a website, using consumer AI tools such as ChatGPT, or using Microsoft 365 Copilot at work. A conversational agent interacts with the user in a chat interface, using natural language to answer questions, guide processes, or complete tasks.

You should use a conversational agent when your scenario is typically user-initiated, or where the user will drive the interaction on demand to ask questions or get help. Consider the users’ behavior and the channels they use in the scenario. Is there a natural fit for a digital assistant on a chat channel or other channels (e.g., Microsoft 365 Copilot, Microsoft Teams, website, app, or Facebook Messenger) where the users will find it easy and natural to interact with the agent?

Agents that are primarily designed for information retrieval are usually conversational agents. Conversational agents can also perform tasks as part of the chat interaction—for example, asking the customer for details, retrieving their transaction from a line-of-business system, updating the status, and providing confirmation or results back to the user. Conversational agents are a useful “front door” to knowledge or internal systems that can save the user from switching contexts and applications.

Autonomous agents

While we are most familiar with conversational agents, they are not the only type of agent you can build with Copilot Studio to solve your business problem. Agents can also be triggered by events—such as a form submission, an incoming email, or a new row added to a database—and run autonomously in the background, without any chat experience involved.

Autonomous agents open up new scenarios for business process and workflow automation that were not previously possible. Notably, they require a different kind of thinking than designing a conversational agent. Autonomous agents can do more than traditional “if this, then that” workflow automation. When you design an autonomous agent, you define the trigger that initiates it, and provide it with the knowledge, tools, and instructions it needs. Instead of following predefined branching logic, the autonomous agent reasons over the knowledge and tools using generative AI to determine the best course of action, operating independently and interacting with a human only if or when needed.

Unlike workflow automation, which relies on a fixed logic path, autonomous agents make decisions dynamically, using the context to decide which actions to take and when. Autonomous agents can still invoke deterministic flows for parts of the process that need to remain fixed and structured (e.g., retrieve an order record from a database, get the value of the transaction, or apply branching logic to determine the next step based on the value of the transaction), and then return to using generative AI for other answers and actions.

Think about the business processes that you have not been able to automate in the past because they require human reasoning or decision making. These are likely use cases for autonomous agents, which can use advanced reasoning models to make decisions and perform complex tasks.

Multi-agent systems

When designing your agent, you need to consider whether your scenario is best handled by a single agent or by a system of agents. In a multi-agent system, each agent has separate knowledge, tools, and responsibilities, and the various agents have the ability to hand off or work with each other.

Single agents work best when you are designing an agent that will work within a clearly defined business domain or source of knowledge. If your agent design requires more than four or five sources of knowledge or tools, then you can likely achieve better performance by building multiple agents that can hand off to each other. For instance, in a banking scenario, you may develop separate specialist agents for each product or service, such as personal loans, mortgages, and business banking. Each agent has knowledge sources and tools specific to that one domain or task and can call or hand off to the other agents when needed.

In Copilot Studio, you can build a multi-agent system by designing a single agent with “child” agents inside it. Alternatively, you can connect your agent to other existing agents.