Microsoft Copilot Studio is a low-code, natural language, and graphical development environment for building custom Copilots/Agents. In this post, we’ll explore tips and best practices for designing a robust architecture to deploy intelligent agents, focusing on scalability, security, and performance to maximize your productivity with Microsoft Copilot Studio.

Backup YAML Files

YAML (YAML Ain’t Markup Language) is a human-readable data serialization format often used for configuration files. It uses indentation to represent data structures, making it easy to read and write.

It’s a powerful tool within Copilot Studio, offering numerous benefits for both technical and non-technical users. YAML allows you to represent complex data structures in a clear and organized manner. This is useful for defining configurations, workflows, and settings in Copilot Studio.

  • YAML files contain critical configuration data. Losing this data due to corruption or accidental deletion can lead to significant downtime, misconfigurations, and operational issues.
  • Backups can serve as a form of version control, allowing you to track changes and revert to previous configurations if needed. Use tools and scripts to automate the backup process. Store your YAML files in a version control system like Git, preferably with encryption, to protect against unauthorized access. While not ideal, manually copying YAML files to a secure location can be a simple way to ensure you have a backup.
  • You can use git diff to see what changes were made to your YAML files: git diff yourfile.yaml
  • Always back up your YAML files when making changes to a topic. Nodes can corrupt easily, so having a backup is crucial.
Where to find your code?

Topic Size and Refactoring

Topics are the core building blocks in Copilot Studio that define how an agent conversation progresses. System Topics are predefined and handle essential behaviors like starting or ending a conversation, while Custom Topics can be created from scratch or customized with provided templates.

Keeping topics small when designing your agent offers several benefits:

Scalability: As your copilot grows, having smaller topics allows for easier scaling. You can add new topics without significantly disrupting existing ones.

Manageability: Smaller topics are easier to manage and update. This simplifies maintaining your copilot over time, especially as you add new features or make changes.

Effective Triggering: With smaller, more focused topics, it’s easier to map trigger phrases accurately. This improves the copilot’s ability to understand and respond to user inputs correctly.

Reusability: Bite-size topics reduce redundancy and ensure consistency in responses.

Reduced Overlap: Smaller topics help minimize overlap issues where similar user inputs might trigger multiple topics. This leads to clearer and more precise interactions.

Avoid System-Level Modifications

System-level topics in Copilot Studio are built-in topics that handle common system events and behaviors. Some key system topics include Conversation Start, Conversational Boosting, and Escalate. These topics are essential for managing the flow of conversations and ensuring a smooth user experience.

Do not modify system-level topics or nodes. While they can be altered, doing so often causes issues. Whenever possible, it’s advisable to use configuration files or settings provided by the system rather than directly modifying core components. This helps maintain system integrity and ease of updates.

Document Uploads

Knowledge sources in Copilot Studio can come from multiple origins, including Uploaded Documents, Public Websites, and Internal Systems like SharePoint, Dataverse, and other enterprise systems.

We felt Copilot Studio might have better integration and tools for extracting and formatting information from websites than manually uploaded documents. Manually uploaded documents may not be cited or formatted well. Whenever possible, use a website for better formatting and citation. Using websites ensures more consistent and accurate citations. This can be due to formatting, lack of metadata, or even the chance of human error in the document.

HTTP Request Node Limitations

The HTTP Request node in Microsoft Copilot Studio allows you to extend your Copilot’s capabilities by calling external REST APIs. This can be particularly useful for retrieving or manipulating data from external systems.

The built-in HTTP Request node has limitations. The ‘Continue on Error’ functionality was well-received. If an HTTP request fails, Copilot stores the HTTP status code and the response body in variables, allowing it to proceed with the subsequent steps in the topic.

Power Automate can make a good alternative here, replacing the HTTP Request node!

AI Builder Node

AI Builder models offer various AI capabilities to enhance your applications. These models help automate and improve various business processes by leveraging AI capabilities.

The AI Builder node in Copilot Studio allows you to integrate AI capabilities into your custom copilots by leveraging AI Builder models, such as form processing, object detection, or custom AI models you’ve trained.

One limitation noted is that the AI Builder node tends to ‘lock in’ to the initial JSON structure you set up. This means that once you define the output schema, it can be challenging to modify it later without reconfiguring the entire setup. This behavior ensures consistency but can be restrictive if your data structure needs to evolve.

While the content from the Generative AI Node can vary and might require human oversight to ensure accuracy and appropriateness, these models still struggle with understanding nuanced context.

Prompt Engineering

Prompt engineering in Copilot Studio involves creating and refining prompts to guide the behavior and responses of your custom copilot.

Crafting clear and specific prompts helps the AI model understand exactly what is being asked. Prompt engineering is faster within the node, allowing for quicker iterations. However, it has issues with variable data ingress and egress. For complex tasks, break them down into simpler, smaller tasks. Use the Test Your Copilot panel to ask questions using the new prompt instructions.

Built-in RAG

Retrieval-augmented generation (RAG) is a powerful feature in Copilot Studio that enhances the accuracy and relevance of AI-generated responses by incorporating external data sources. This helps ground the AI’s output in authoritative, up-to-date information, reducing the chances of errors.

The built-in RAG is quick to set up and sufficient for most cases. However, a dedicated OpenAI resource may yield better results. Using a dedicated OpenAI resource with Retrieval-Augmented Generation (RAG) in Copilot Studio offers several benefits: enhanced accuracy, custom data integration, improved user experience, scalability, and compliance and security.

Alternatives for List Manipulation Node

The List Manipulation Node in Copilot Studio is a versatile tool that allows you to handle and manipulate lists of data within your workflows.

The dedicated list manipulation node may not always work. Use an expression node or similar alternatives, such as manipulating general-purpose data using Power Fx formulas. Set variable values for use in expressions or conditions, and parse values by converting raw data into specific types, which is useful for handling JSON or untyped variables.

These alternatives provide more robust and versatile ways to handle data manipulation tasks, ensuring that your workflows remain efficient and effective even if the dedicated list manipulation node falls short.

Utilize Azure AI Studio

Azure AI Studio is a comprehensive platform designed to help you develop, evaluate, and deploy generative AI models and custom copilots. It can generate mappings to a vector store. A vector store is a specialized database that stores data in vector format, essential for efficient similarity searches and retrieval-augmented generation (RAG). This lets your copilot quickly find and retrieve relevant information from large datasets. Ensure you follow the latest setup guidelines for optimal results.

  • Azure AI Studio in Copilot Studio can significantly enhance your ability to build and customize AI copilots.
  • It supports a range of data connections you can use to add data to a project, including Azure Blob Storage, Azure Data Lake Storage Gen2, and Microsoft OneLake.
  • When you build a copilot with Azure AI Studio, you can integrate with Azure AI Search to retrieve the relevant context in your chat flow.
  • By integrating Azure AI Studio and Copilot Studio, you can create sophisticated AI solutions that leverage the best features of both platforms and tailored functionality for your organization.

Summary

Microsoft Copilot Agents are gaining traction among organizations of all sizes to enhance productivity and automate processes. However, successful adoption requires careful planning to ensure compatibility, robust data security, and adherence to governance and compliance regulations.

Organizations can maximize productivity with Microsoft Copilot Studio by deploying agents using AIS’s practical steps.

How AIS Can Help

If you want to explore our implementation guide or determine how Copilots can fit into your business processes to optimize, automate, and replace manual work, contact AIS today. We are here to support your AI initiatives!