github / github/copilot-sdk

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

未关闭
#2,318 0 条评论 5 个 reaction 已指派 0 人 在 GitHub 查看
enhancement
主要语言
Java
星标
10.5k
派生
1.5k
平均合并
1 天 14 小时
30 天内合并 PR
129

描述

### 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

贡献指南

打开贡献指南

调研方向

首先运行现有的 CopilotKit 示例,并将其与 Claude Agent SDK 一起作为基线。阅读 AG-UI Claude Agent SDK 集成,以了解其事件映射、传输、包结构、状态处理和测试,然后将所需的适配器行为与 Copilot SDK 进行比较。当具备一个包含推理、工具调用、结果、子代理活动以及已记录的不支持事件类型的端到端示例时,即视为完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
java, javascript, typescript
领域
api, backend, frontend
Issue 类型
功能
难度
5/5
预计耗时
一周以上
活跃度
冷清
描述清晰度
基本清楚
新手友好度
30/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。