Back to Blog
2 min read

Ignite 2025 Day 3: Copilot Extensions and Agent Framework

Day 3 of Ignite 2025 brought major announcements for the Copilot ecosystem, including a new agent framework and enhanced extensibility options for enterprise developers.

Copilot Agent Framework

The new agent framework enables building autonomous AI assistants that operate within Microsoft 365:

// Define a declarative agent for HR operations
import { CopilotAgentBuilder, ActionDefinition, KnowledgeSource } from '@microsoft/copilot-sdk';

const hrAgent = new CopilotAgentBuilder()
  .setName("HR Assistant")
  .setDescription("Helps employees with HR-related questions and tasks")

  .addKnowledgeSources([
    {
      type: "sharepoint",
      sites: ["/sites/HR-Policies", "/sites/Benefits"],
      permissions: "respect-source"  // Inherits document permissions
    },
    {
      type: "graph-connector",
      connection: "workday-connector"
    }
  ])

  .addActions([
    {
      name: "submitTimeOff",
      description: "Submit a time off request for the user",
      parameters: {
        startDate: { type: "date", required: true },
        endDate: { type: "date", required: true },
        type: { type: "enum", values: ["vacation", "sick", "personal"] }
      },
      handler: async (params, context) => {
        // Call Workday API
        const result = await workdayClient.submitTimeOff({
          employeeId: context.user.employeeId,
          ...params
        });
        return {
          success: true,
          requestId: result.id,
          message: `Time off request ${result.id} submitted for approval`
        };
      }
    },
    {
      name: "checkBenefitsEnrollment",
      description: "Check current benefits enrollment status",
      handler: async (params, context) => {
        const enrollment = await benefitsService.getEnrollment(
          context.user.employeeId
        );
        return enrollment;
      }
    }
  ])

  .setGuardrails({
    maxActionsPerTurn: 3,
    requireConfirmation: ["submitTimeOff", "updateBenefits"],
    auditLogging: true
  })

  .build();

// Deploy to tenant
await hrAgent.deploy({
  availability: "organization",
  allowedGroups: ["all-employees"]
});

Enhanced Plugin Architecture

Plugins can now include complex multi-step workflows:

# copilot-plugin.yaml
name: expense-management
displayName: Expense Management
description: Submit and manage expense reports

capabilities:
  - conversational
  - proactive-notifications

actions:
  - name: createExpenseReport
    description: Create a new expense report
    steps:
      - prompt: "What is this expense report for?"
        saveAs: purpose
      - prompt: "Upload receipts or enter amounts manually"
        type: file-upload-or-form
        saveAs: expenses
      - action: validateExpenses
        input: $expenses
      - action: submitForApproval
        input:
          purpose: $purpose
          expenses: $expenses
        requireConfirmation: true

  - name: checkExpenseStatus
    description: Check status of submitted expense reports
    api:
      endpoint: /api/expenses/status
      method: GET
      authentication: user-delegated

notifications:
  - trigger: expense-approved
    message: "Your expense report {reportId} for ${amount} has been approved!"
  - trigger: expense-rejected
    message: "Your expense report {reportId} was rejected. Reason: {reason}"

Copilot Studio Integration

Copilot Studio now supports deploying agents across Microsoft 365:

  • Teams integration with adaptive cards
  • Outlook add-in deployment
  • SharePoint web part embedding
  • Power Platform connector

The Copilot agent framework represents a significant step toward enterprise AI automation, enabling organizations to build intelligent assistants that work naturally within existing Microsoft 365 workflows.

Michael John Peña

Michael John Peña

Senior Data Engineer based in Sydney. Writing about data, cloud, and technology.