Nabs.Launchpad.Core.Ai.Harness.Abstractions
10.0.249
Prefix Reserved
dotnet add package Nabs.Launchpad.Core.Ai.Harness.Abstractions --version 10.0.249
NuGet\Install-Package Nabs.Launchpad.Core.Ai.Harness.Abstractions -Version 10.0.249
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Nabs.Launchpad.Core.Ai.Harness.Abstractions" Version="10.0.249" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Nabs.Launchpad.Core.Ai.Harness.Abstractions" Version="10.0.249" />
<PackageReference Include="Nabs.Launchpad.Core.Ai.Harness.Abstractions" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Nabs.Launchpad.Core.Ai.Harness.Abstractions --version 10.0.249
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Nabs.Launchpad.Core.Ai.Harness.Abstractions, 10.0.249"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Nabs.Launchpad.Core.Ai.Harness.Abstractions@10.0.249
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Nabs.Launchpad.Core.Ai.Harness.Abstractions&version=10.0.249
#tool nuget:?package=Nabs.Launchpad.Core.Ai.Harness.Abstractions&version=10.0.249
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Nabs.Launchpad.Core.Ai.Harness.Abstractions
Nabs.Launchpad.Core.Ai.Harness.Abstractions provides reusable console harness primitives for AI agents, including reactive terminal UI, command handling, observer pipelines, follow-up flows, and tracing helpers.
All the code in the assembly was copied from: https://github.com/microsoft/agent-framework/tree/main/dotnet/samples/02-agents/Harness
I may add additional features or alter this code over time.
Installation
dotnet add package Nabs.Launchpad.Core.Ai.Harness.Abstractions
The Problem
// 1) Every agent console app re-implements input loops, rendering, and shutdown behavior
while (true)
{
var text = Console.ReadLine();
if (text == "/exit") break;
// duplicated orchestration logic
}
// 2) Streaming, errors, and tool output are mixed together in ad-hoc formatting code
await foreach (var update in agent.RunStreamingAsync(messages, session, options))
{
Console.Write(update.Text); // no observer separation, hard to evolve
}
// 3) Follow-up questions require brittle state management
// pendingQuestions, responses, mode transitions all tracked manually.
// 4) No consistent command model (/exit, /todo, /mode, /session)
// each app parses commands differently and drifts over time.
Features
- Shared harness entry point via
HarnessConsole.RunAgentAsync. - Reactive console UI using
HarnessAppComponentand UX state drivers. - Composable observer pipeline for text, reasoning, tool calls, usage, and errors.
- Built-in command handlers for exit, todo, mode, and session workflows.
- Follow-up question orchestration with queueing and continuation support.
- OpenTelemetry tracing helper with file export through
HarnessTracing.CreateFileTracerProvider.
Usage
using Microsoft.Agents.AI;
using Nabs.Launchpad.Core.Ai.Harness.Abstractions.SharedConsole;
AIAgent agent = BuildAgent();
await HarnessConsole.RunAgentAsync(
agent,
userPrompt: "Ask the agent anything",
options: new HarnessConsoleOptions
{
Observers = HarnessConsoleOptions.BuildDefaultObservers(),
CommandHandlers = HarnessConsoleOptions.BuildDefaultCommandHandlers(agent)
});
using Microsoft.Agents.AI;
using Nabs.Launchpad.Core.Ai.Harness.Abstractions.SharedConsole;
AIAgent agent = BuildPlanningAgent();
var options = new HarnessConsoleOptions
{
Observers = HarnessConsoleOptions.BuildObserversWithPlanning(
agent,
planModeName: "plan",
executionModeName: "execute"),
CommandHandlers = HarnessConsoleOptions.BuildDefaultCommandHandlers(agent)
};
await HarnessConsole.RunAgentAsync(agent, "Plan and execute tasks", options);
Configuration
- Use
HarnessConsoleOptions.Observersto provide custom observer sets or disable observers with an empty list. - Use
HarnessConsoleOptions.CommandHandlersto customize command behavior before user input reaches the agent. - Configure mode colors through
HarnessConsoleOptions.ModeColors. - Override session creation with
HarnessConsoleOptions.SessionFactorywhen you need custom session lifecycle behavior.
Project Structure
SharedConsole/HarnessConsole- high-level entry point that wires UI component and runner.SharedConsole/HarnessConsoleOptions- observer, command, mode color, and session configuration.SharedConsole/HarnessAgentRunner- orchestrates agent turns, streaming updates, commands, and follow-up flows.SharedConsole/HarnessAppComponent- reactive terminal component with input, list selection, and streaming panels.SharedConsole/Observers/*- pluggable observers for text, reasoning, usage, errors, tool calls, and planning output.SharedConsole/Commands/*- built-in slash-command handlers.SharedConsole/HarnessTracing- OpenTelemetry tracing provider setup with file span export.
License
Copyright (c) Net Advantage Business Solutions.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- Microsoft.Agents.AI (>= 1.9.0)
- Microsoft.Agents.AI.Harness (>= 1.8.0-preview.260528.1)
- Microsoft.Extensions.AI (>= 10.6.0)
- OpenAI (>= 2.10.0)
- OpenTelemetry (>= 1.15.3)
- OpenTelemetry.Instrumentation.Http (>= 1.15.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.249 | 59 | 6/6/2026 |
| 10.0.248 | 50 | 6/6/2026 |
| 10.0.247 | 56 | 6/6/2026 |
| 10.0.246 | 55 | 6/6/2026 |
| 10.0.242 | 57 | 6/4/2026 |
| 10.0.241 | 53 | 6/4/2026 |
| 10.0.240 | 58 | 6/4/2026 |
| 10.0.239 | 56 | 6/3/2026 |
| 10.0.234 | 58 | 5/31/2026 |
| 10.0.233 | 56 | 5/31/2026 |
| 10.0.232 | 99 | 5/30/2026 |
| 10.0.230 | 97 | 5/30/2026 |
| 10.0.229 | 90 | 5/30/2026 |