OpenHub.Agents.GitHubCopilot
0.1.8
See the version list below for details.
dotnet add package OpenHub.Agents.GitHubCopilot --version 0.1.8
NuGet\Install-Package OpenHub.Agents.GitHubCopilot -Version 0.1.8
<PackageReference Include="OpenHub.Agents.GitHubCopilot" Version="0.1.8" />
<PackageVersion Include="OpenHub.Agents.GitHubCopilot" Version="0.1.8" />
<PackageReference Include="OpenHub.Agents.GitHubCopilot" />
paket add OpenHub.Agents.GitHubCopilot --version 0.1.8
#r "nuget: OpenHub.Agents.GitHubCopilot, 0.1.8"
#:package OpenHub.Agents.GitHubCopilot@0.1.8
#addin nuget:?package=OpenHub.Agents.GitHubCopilot&version=0.1.8
#tool nuget:?package=OpenHub.Agents.GitHubCopilot&version=0.1.8
OpenHub.Agents
English | 简体中文 | 日本語 | Français
OpenHub.Agents is a task-oriented abstraction layer built on top of the Microsoft Agents SDK and the GitHub Copilot SDK. It wraps different AI backends behind a unified ITaskAgent API so callers can create tasks and consume streaming updates in one consistent way.
Features
- Unified
ITaskAgentabstraction for task creation and streaming subscriptions - Multi-targeting support for
netstandard2.0,netstandard2.1,net8.0,net9.0, andnet10.0 - Two GitHub Copilot execution modes:
- shared session with preserved conversation context
- factory mode with a fresh session per task
- Rx-based streaming model for reasoning, content, tool calls, media, and usage updates
- Central package management with
Directory.Packages.props
Installation
dotnet add package OpenHub.Agents.Abstractions
dotnet add package OpenHub.Agents.AIAgent
dotnet add package OpenHub.Agents.GitHubCopilot
Install only the packages you need:
OpenHub.Agents.Abstractionsfor contracts and modelsOpenHub.Agents.AIAgentwhen you want to adaptMicrosoft.Agents.AI.AIAgentOpenHub.Agents.GitHubCopilotwhen you want GitHub Copilot integration
Projects
| Project | Purpose |
|---|---|
src/OpenHub.Agents.Abstractions |
Core task-agent contracts and event models |
src/OpenHub.Agents.AIAgent |
Adapter from Microsoft.Agents.AI.AIAgent to ITaskAgent |
src/OpenHub.Agents.GitHubCopilot |
Adapters for shared-session and per-task GitHub Copilot execution |
samples/OpenHub.Agents.Sample.Console |
Console sample covering OpenAI + GitHub Copilot flows |
tests/OpenHub.Agents.Tests |
xUnit test suite |
Dependencies Explained
Runtime and core packages
| Package | Purpose | Repository |
|---|---|---|
| GitHub.Copilot.SDK | Native .NET SDK used to create, start, and manage GitHub Copilot sessions. | github/copilot-sdk |
| Microsoft.Agents.AI | Main Microsoft Agents SDK package used to represent and run AIAgent pipelines. |
microsoft/agents |
| Microsoft.Agents.AI.Abstractions | Shared abstractions from the Microsoft Agents SDK used by the contract layer. | microsoft/agents |
| Microsoft.Agents.AI.GitHub.Copilot | Microsoft Agents integration package for GitHub Copilot-related capabilities. | microsoft/agents |
| Microsoft.Agents.AI.OpenAI | OpenAI adapter package used by the sample application. | microsoft/agents |
| Microsoft.Bcl.AsyncInterfaces | Compatibility package for async interfaces on older target frameworks. | dotnet/runtime |
| Microsoft.Extensions.AI.Abstractions | Shared AI content abstractions such as ChatMessage, UsageContent, and tool-call content types. |
dotnet/extensions |
| Microsoft.Extensions.DependencyInjection.Abstractions | Dependency injection abstractions used by the AIAgent integration layer. | dotnet/runtime |
| Microsoft.Extensions.Logging.Abstractions | Logging abstractions used by the AIAgent integration layer. | dotnet/runtime |
| System.Reactive | Rx.NET implementation used for observable task and event streams. | dotnet/reactive |
Testing and tooling packages
| Package | Purpose | Repository |
|---|---|---|
| coverlet.collector | Code coverage collector for test runs. | coverlet-coverage/coverlet |
| Microsoft.NET.Test.Sdk | Test host and discovery infrastructure for dotnet test. |
microsoft/vstest |
| xunit | Unit testing framework used by the repository. | xunit/xunit |
| xunit.runner.visualstudio | Visual Studio and dotnet test runner integration for xUnit. |
xunit/xunit |
Build and test
dotnet build OpenHub.Agents.slnx
dotnet test tests\OpenHub.Agents.Tests\OpenHub.Agents.Tests.csproj
Quick Start
Wrap an AIAgent
ITaskAgent taskAgent = chatClient
.AsAIAgent(options)
.AsTaskAgent();
CreateTaskResponse response = await taskAgent.CreateTaskAsync(new("Summarize this repo."));
using IDisposable contentSubscription = response.Subscriber.TaskContentChunk.Subscribe(chunk =>
{
Console.Write(chunk.Content);
});
await response.Subscriber.WaitForCompletionAsync();
Wrap GitHub Copilot
await using CopilotClient copilotClient = new();
await copilotClient.StartAsync();
SessionConfig sessionConfig = new()
{
Streaming = true,
Model = "claude-sonnet-4.6",
OnPermissionRequest = PermissionHandler.ApproveAll
};
ITaskAgent factoryAgent = copilotClient.AsTaskAgent(sessionConfig);
GitHub Copilot can be used in two ways:
CopilotSession.AsTaskAgent(...): reuse one session and preserve conversation stateCopilotClient.AsTaskAgent(...): create a fresh session per task
Seed a task with history
CreateTaskResponse response = await taskAgent.CreateTaskAsync(
new("Can you turn that into a checklist?"),
[
new TaskHistoryMessage(TaskHistoryMessageRole.User, "Summarize this repo."),
new TaskHistoryMessage(TaskHistoryMessageRole.Assistant, "It is a .NET task-agent adapter library.")
]);
For GitHub Copilot adapters, explicit history is serialized into a structured prompt because the current SDK does not expose direct assistant-turn injection for a fresh session.
Notes
OpenHub.Agents.GitHubCopilotcurrently depends on preview packageMicrosoft.Agents.AI.GitHub.Copilot.- Package versions are managed centrally via
Directory.Packages.props. - Repository-wide build conventions live in
Directory.Build.propsand.editorconfig.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- GitHub.Copilot.SDK (>= 0.3.0)
- Microsoft.Agents.AI (>= 1.4.0)
- Microsoft.Agents.AI.Abstractions (>= 1.4.0)
- Microsoft.Agents.AI.GitHub.Copilot (>= 1.4.0-preview.260505.1)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.7)
- Microsoft.Extensions.AI.Abstractions (>= 10.5.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.7)
- Nerdbank.MessagePack (>= 1.1.62)
- OpenHub.Agents.Abstractions (>= 0.1.8)
- OpenHub.Agents.AIAgent (>= 0.1.8)
- System.Reactive (>= 6.1.0)
-
net8.0
- GitHub.Copilot.SDK (>= 0.3.0)
- Microsoft.Agents.AI (>= 1.4.0)
- Microsoft.Agents.AI.Abstractions (>= 1.4.0)
- Microsoft.Agents.AI.GitHub.Copilot (>= 1.4.0-preview.260505.1)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.7)
- Microsoft.Extensions.AI.Abstractions (>= 10.5.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.7)
- Nerdbank.MessagePack (>= 1.1.62)
- OpenHub.Agents.Abstractions (>= 0.1.8)
- OpenHub.Agents.AIAgent (>= 0.1.8)
- System.Reactive (>= 6.1.0)
-
net9.0
- GitHub.Copilot.SDK (>= 0.3.0)
- Microsoft.Agents.AI (>= 1.4.0)
- Microsoft.Agents.AI.Abstractions (>= 1.4.0)
- Microsoft.Agents.AI.GitHub.Copilot (>= 1.4.0-preview.260505.1)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.7)
- Microsoft.Extensions.AI.Abstractions (>= 10.5.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.7)
- Nerdbank.MessagePack (>= 1.1.62)
- OpenHub.Agents.Abstractions (>= 0.1.8)
- OpenHub.Agents.AIAgent (>= 0.1.8)
- System.Reactive (>= 6.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.