Skip to content

[dotnet-ai] Technology selection (router) #234

Description

@luisquintanilla

Parent Issue

Part of the dotnet-ai plugin proposal: #225

Summary

Add the technology-selection skill to the dotnet-ai plugin.

This is the meta/router skill — a decision tree that routes developers to the correct AI/ML skill based on their task description, data type, and deployment target. It should be the last skill merged since it references all other skills by name.

What This Skill Covers

Inputs

  • task_description (required) — what the developer wants to build
  • data_type (optional) — structured/tabular, text, image, audio, mixed
  • deployment_target (optional) — cloud, edge, local/offline
  • target_framework (optional) — .NET version (must be .NET 8+)

Library Stack Reference

Four-layer model for context:

  • Abstraction — Microsoft.Extensions.AI (MEAI)
  • Provider SDK — OpenAI, Azure.AI.OpenAI, OllamaSharp, GitHub.Copilot.SDK
  • Runtime — Microsoft Agent Framework (Microsoft.Agents.AI)
  • Harness — GitHub Copilot SDK (batteries-included agent runtime)

Decision Tree (13 Routes)

Route Condition Target Skill
1 Structured data / classical ML mlnet
1b Image classification, object detection, NER, QA, text classification (train/fine-tune) mlnet (TorchSharp-backed)
2 Text generation, chat, reasoning meai-chat-integration
3 Text embeddings / semantic similarity meai-embeddings
4 Vector storage & search vector-data-search
5 Document ingestion for RAG data-ingestion-pipeline
6 End-to-end RAG rag-pipeline
7 Agent workflows, multi-agent, durable agents agentic-workflow
8 Pre-trained ONNX model inference onnx-runtime-inference
9 Local/offline LLM inference local-llm-inference
10 Copilot SDK (extensions, zero-config, harness) copilot-sdk-integration
11 Zero-config prototyping (no API keys) copilot-sdk-integration
12 Prototype-to-production bridge agentic-workflow + copilot-sdk-integration
13 Hybrid: structured ML + NL mlnet + meai-chat-integration

Anti-Patterns

  • Using Semantic Kernel for new projects → MEAI + MAF
  • Using Copilot SDK for production enterprise apps requiring Entra ID
  • Assuming Copilot SDK scales horizontally
  • Using an LLM for structured data tasks → ML.NET

Files

plugins/dotnet-ai/skills/technology-selection/SKILL.md
tests/dotnet-ai/technology-selection/eval.yaml

Eval Scenarios

  1. Route tabular classification to ML.NET — expects ML.NET, not LLM
  2. Route chat to MEAI — expects Microsoft.Extensions.AI
  3. Route RAG to rag-pipeline — expects RAG pipeline approach
  4. Route zero-config prototyping to Copilot SDK — expects CopilotClient as LLM backend
  5. Route enterprise agent to MAF — expects MAF with Azure.AI.OpenAI, not Copilot SDK

Dependencies

This skill should be the last merged since it references all 10 other skills by name. All other sub-issues should be completed first.

Acceptance Criteria

  • Decision tree covers all 11 skills with clear routing conditions
  • Anti-patterns section prevents common misuse
  • Cross-references table lists all skills with their invocation names
  • eval.yaml has scenarios covering routing to different skill categories
  • Library stack reference shows the four-layer model (Abstraction → Provider → Runtime → Harness)

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions