Skip to content

Make Copilot SDK consumable for end-users by adding first-class AG-UI protocol support #2318

Description

@ArlindNocaj

Summary

The Copilot SDK doesn't support the AG-UI protocol out of the box, which makes it hard for end-users to actually consume an agent once they've built one. Competing SDKs already solve this — the Claude Agent SDK has a maintained integration at ag-ui/integrations/claude-agent-sdk and is consumable from CopilotKit out of the box. This proposes first-class AG-UI support for the Copilot SDK, with an offer to implement it.

Related to #1280, which asks whether AG-UI is on the roadmap; this issue proposes a concrete design, plan, and contribution.

Motivation

The Copilot SDK is becoming the default agent harness across a lot of Microsoft surface area (M365 Cowork, Copilot Studio / GitHub Copilot Agents, the GitHub Copilot app), and external adoption is following. The gap versus competing SDKs is frontend consumability:

  • Customers burn weeks building bespoke agent UI when they want to focus on the agent backend. AG-UI removes that work and gives them an ecosystem of ready frontends.
  • The Copilot SDK is missing from the AG-UI integrations list, while the Claude Agent SDK is there and CopilotKit-ready.

Scope

An AG-UI adapter for the Copilot SDK that:

  1. Maps Copilot SDK execution onto AG-UI event types: message start/content/end deltas, tool call start/args/result, reasoning/thinking events, state snapshots and deltas, run lifecycle (start/finish/error), and subagent activity.
  2. Mirrors the structure of the existing claude-agent-sdk integration so it lands as a peer in ag-ui-protocol/ag-ui/integrations/, and/or ships as an optional package in this repo.
  3. Works for both locally-run and remotely-hosted agents (e.g. Foundry-hosted), so any Copilot SDK agent drops into an AG-UI frontend with minimal glue.
  4. Ships an end-to-end sample (Copilot SDK agent + CopilotKit frontend).

Implementation plan

Happy to run this and open the PR:

  1. Baseline — stand up the existing CopilotKit sample running against the Claude Agent SDK, end to end. This is the reference experience to match.
  2. Study the reference integration — read ag-ui-protocol/ag-ui/integrations/claude-agent-sdk in detail: event mapping, streaming/transport shape, state handling, package layout, tests.
  3. Build the adapter — implement the equivalent integration adapter for the Copilot SDK, following the same structure and conventions so it reviews as a peer integration.
  4. Run both end to end — swap the CopilotKit sample's backend from the Claude Agent SDK to the Copilot SDK, verify the samples work unmodified, compare the two experiences side by side, and document gaps in event fidelity.
  5. Cross-compare — also compare against Microsoft Agent Framework and a plain/simple agent, to confirm the mapping is faithful rather than SDK-specific.
  6. Exercise the hard cases — test a scenario with subagents and tool calls, and confirm CopilotKit actually surfaces reasoning, tool invocations/results, and subagent interactions, so the end user can see what the agent is doing and why — not just a final answer. Streaming reasoning and nested subagent activity are the events a naive adapter drops first; they're the acceptance bar.

Task framing for an implementing agent

Take the current CopilotKit sample that runs against the Claude Agent SDK and get it running end to end as a baseline. Read the AG-UI Claude Agent SDK integration at https://github.com/ag-ui-protocol/ag-ui/tree/main/integrations/claude-agent-sdk and map its event model, transport, and package structure. Implement the equivalent AG-UI integration adapter for the GitHub Copilot SDK (https://github.com/github/copilot-sdk), following the same conventions. Then run both end to end against the CopilotKit samples and compare the resulting UX. Also compare against Microsoft Agent Framework and a plain agent as a fidelity check. Finally, build and run a scenario using subagents plus tool calls, and verify CopilotKit renders reasoning, tool calls/results, and subagent activity — the user must be able to follow what the agent is doing. Document any AG-UI event types the Copilot SDK cannot currently emit.

Open questions

  • Is AG-UI something the team would take on as officially supported, or preferred as a community integration in the ag-ui repo?
  • If supported here: optional package in this repo, or external with a docs pointer?
  • Any planned changes to the SDK's event/streaming surface that an integration should target instead of today's API?
  • Which language first — TS/JS, or should Java (github/copilot-sdk-java) land in parallel?

References

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions