AgentSkillsDotNet 1.0.0-preview.260108.1
This is a prerelease version of AgentSkillsDotNet.
dotnet add package AgentSkillsDotNet --version 1.0.0-preview.260108.1
NuGet\Install-Package AgentSkillsDotNet -Version 1.0.0-preview.260108.1
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="AgentSkillsDotNet" Version="1.0.0-preview.260108.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AgentSkillsDotNet" Version="1.0.0-preview.260108.1" />
<PackageReference Include="AgentSkillsDotNet" />
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 AgentSkillsDotNet --version 1.0.0-preview.260108.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: AgentSkillsDotNet, 1.0.0-preview.260108.1"
#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 AgentSkillsDotNet@1.0.0-preview.260108.1
#: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=AgentSkillsDotNet&version=1.0.0-preview.260108.1&prerelease
#tool nuget:?package=AgentSkillsDotNet&version=1.0.0-preview.260108.1&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
AgentSkillsDotNet
This is a C# Implementation of the AgentSkills Format
This is part of AgentFrameworkToolkit but can also be used on it's own.
Getting Started
- Install the 'AgentSkillsDotNet' NuGet Package (
dotnet add package AgentSkillsDotNet) - Create an
AgentSkillsFactoryinstance (or use the.AddAgentSkillsFactoryDependency Injection)
Minimal Code Example
AgentSkillsFactory agentSkillsFactory = new AgentSkillsFactory();
AgentSkills agentSkills = agentSkillsFactory.GetAgentSkills("<FolderWithSkillsAsSubFolders>");
//The Raw Skills
IList<AgentSkill> skills = agentSkills.Skills;
//Get the Skills as AI Tools (to use in Microsoft Agent Framework or Microsoft.Extensions.AI)
IList<AITool> tools = agentSkills.GetAsTools();
//Get instructions of available skills
string instructions = agentSkills.GetInstructions();
//Log of skills that where exclude (due to being invalid or filtered away by advanced filtering)
IList<string> log = agentSkills.ExcludedSkillsLog;
Options when getting Skills
AgentSkillsFactory agentSkillsFactory = new AgentSkillsFactory();
AgentSkills agentSkills = agentSkillsFactory.GetAgentSkills("<FolderWithSkillsAsSubFolders>", new AgentSkillsOptions
{
ValidationRules = AgentSkillsOptionsValidationRule.Loose, //Allow tools that don't follow Agent Skills spec 100% or use .None to turn off validation off entirely
Filter = skill =>
{
//Filter what skills to include (in this example we only allow Skills that do not have any script-files)
//But you have a full skill data available for evaluation (name, description, license, metadata, etc.)
return skill.ScriptFiles.Length == 0;
}
});
Options for get Skills as Tools
AgentSkillsFactory agentSkillsFactory = new AgentSkillsFactory();
AgentSkills agentSkills = agentSkillsFactory.GetAgentSkills("<FolderWithSkillsAsSubFolders>");
//Expose Skills as 3 tools ('get-available-skills', 'get-skill-by-name' and 'read-skill-file-content')
IList<AITool> tools1 = agentSkills.GetAsTools(AgentSkillsAsToolsStrategy.AvailableSkillsAndLookupTools);
//Expose each skill as its own tool (+ 'read-skill-file-content' tool)
IList<AITool> tools2 = agentSkills.GetAsTools(AgentSkillsAsToolsStrategy.EachSkillAsATool);
//Control every option in the tools creation
IList<AITool> tools3 = agentSkills.GetAsTools(AgentSkillsAsToolsStrategy.AvailableSkillsAndLookupTools, new AgentSkillsAsToolsOptions
{
IncludeToolForFileContentRead = false, //Exclude a 'read-skill-file-content' tool
//Override default tool names/descriptions
GetAvailableSkillToolName = "get-skills",
GetAvailableSkillToolDescription = "Get all the skills",
GetSpecificSkillToolName = "get-skill",
GetSpecificSkillToolDescription = "Get a specific tool",
ReadSkillFileContentToolName = "read-file",
ReadSkillFileContentToolDescription = "Read a skill file",
//Control how each Skill report it's content back (XML Structure)
AgentSkillAsToolOptions = new AgentSkillAsToolOptions
{
IncludeDescription = true,
IncludeAllowedTools = true,
IncludeMetadata = true,
IncludeLicenseInformation = true,
IncludeCompatibilityInformation = true,
IncludeScriptFilesIfAny = true,
IncludeReferenceFilesIfAny = true,
IncludeAssetFilesIfAny = true,
IncludeOtherFilesIfAny = true,
}
/* Default Definition Example ()
<skill name="speak-like-a-pirate" description="Let the LLM take the persona of a pirate">
<instructions>
# Speak Like a pirate## ObjectiveSpeak Like a pirate called 'Seadog John' ...
He has a parrot called 'Squawkbeard'
## Context
This is a persona aimed at kids that like pirates
## Rules
- Use as many emojis as possible
- As this need to be kid-friendly, do not mention alcohol and smoking
</instructions>
<otherFiles>
<file>TestData\AgentSkills\speak-like-a-pirate\License.txt</file>
</otherFiles>
</skill>
*/
});
Get Inscructions about available tools
AgentSkillsFactory agentSkillsFactory = new AgentSkillsFactory();
AgentSkills agentSkills = agentSkillsFactory.GetAgentSkills("<FolderWithSkillsAsSubFolders>");
string instructions = agentSkills.GetInstructions();
/* Instructions will return in the Anthropic preferred format
<available_skills>
<skill>
<name>pdf-processing</name>
<description>Extracts text and tables from PDF files, fills forms, merges documents.</description>
<location>/path/to/skills/pdf-processing/SKILL.md</location>
</skill>
<skill>
<name>data-analysis</name>
<description>Analyzes datasets, generates charts, and creates summary reports.</description>
<location>/path/to/skills/data-analysis/SKILL.md</location>
</skill>
</available_skills>
*/
Work with the raw Skills
AgentSkillsFactory agentSkillsFactory = new AgentSkillsFactory();
AgentSkills agentSkills = agentSkillsFactory.GetAgentSkills("<FolderWithSkillsAsSubFolders>");
foreach (AgentSkill skill in agentSkills.Skills)
{
//Validate the skill against the official spec
AgentSkillValidationResult validationResult = skill.GetValidationResult();
//Get Skill definition
string definition = skill.GenerateDefinition(new AgentSkillAsToolOptions
{
//add your optional options for how the definition is generated
});
//Get as AI Tool
AITool tool = skill.AsAITool(new AgentSkillAsToolOptions
{
//add your optional options for how the definition is generated
});
/* Default Definition Example
<skill name="speak-like-a-pirate" description="Let the LLM take the persona of a pirate">
<instructions>
# Speak Like a pirate## ObjectiveSpeak Like a pirate called 'Seadog John' ...
He has a parrot called 'Squawkbeard'
## Context
This is a persona aimed at kids that like pirates
## Rules
- Use as many emojis as possible
- As this need to be kid-friendly, do not mention alcohol and smoking
</instructions>
</skill>
*/
}
| 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 was computed. 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 was computed. 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.
-
net8.0
- JetBrains.Annotations (>= 2025.2.4)
- Microsoft.Extensions.AI.Abstractions (>= 10.1.1)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on AgentSkillsDotNet:
| Package | Downloads |
|---|---|
|
AgentFrameworkToolkit
An opinionated C# Toolkit for Microsoft Agent Framework that makes life easier |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0-preview.260108.1 | 83 | 1/9/2026 |
| 1.0.0-preview.260104.1 | 148 | 1/4/2026 |
| 1.0.0-preview.251230.1 | 40 | 1/4/2026 |