github / github/copilot-sdk

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

Ouverte
#2,318 0 commentaires 5 réactions 0 personnes assignées Voir sur GitHub
enhancement
Langage dominant
Java
Étoiles
10.5k
Forks
1.5k
Merge moyen
1 j 11 h
PR mergées (30 j)
127

Description

### Summary

The Copilot SDK doesn't support the [AG-UI protocol](https://github.com/ag-ui-protocol/ag-ui) 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](https://github.com/ag-ui-protocol/ag-ui/tree/main/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](https://github.com/github/copilot-sdk-java)) land in parallel?

### References

- AG-UI protocol: https://github.com/ag-ui-protocol/ag-ui
- Reference implementation: https://github.com/ag-ui-protocol/ag-ui/tree/main/integrations/claude-agent-sdk
- Existing roadmap question: #1280

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Start by running the existing CopilotKit sample with the Claude Agent SDK as the baseline. Read the AG-UI Claude Agent SDK integration to understand its event mapping, transport, package structure, state handling, and tests, then compare the required adapter behavior with the Copilot SDK. Done means an end-to-end sample with reasoning, tool calls, results, subagent activity, and documented unsupported event types.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java, javascript, typescript
Domaine
api, backend, frontend
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
30/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.