📝 LM-Kit.NET Change History
📅 Version 2026.2.6 (not yet released)
New Features
Added memory capacity limits, eviction policies, and time-decay scoring to
AgentMemory- New
MaxMemoryEntriesproperty: set the maximum number of memory entries (0 = unlimited, default) - New
EvictionPolicyproperty: choose betweenOldestFirst,LowestImportanceFirst, orOldestLowestImportanceFirst - New
EntryCountproperty: get the total number of entries across all data sources - New
MemoryEvictedevent: fires before each entry is evicted, allowing the application to cancel individual evictions - New
TimeDecayHalfLifeproperty: exponential decay on retrieval scores so recent memories rank higher (configurable half-life, disabled by default) - Automatic
created_attimestamp on every memory entry (both manual and auto-extracted) - New types in
LMKit.Agents.Memorynamespace:MemoryEvictionPolicy,MemoryEvictedEventArgs - Unified timestamp key across manual and extracted memories for consistent eviction and decay ordering
- New
ConsolidateAsyncmethod: merge clusters of semantically similar memories into concise summaries using an LLM - New
ConsolidationSimilarityThresholdproperty: control cluster grouping sensitivity (default 0.7) - New
MinClusterSizeproperty: minimum entries required before a cluster is merged (default 2) - New
BeforeMemoryConsolidatedevent: inspect or cancel individual merges before they are applied - New types in
LMKit.Agents.Memorynamespace:MemoryConsolidationResult,MemoryConsolidationEventArgs - New
SummarizeConversationAsyncmethod: summarize a full conversation into 1-3 episodic memory entries using an LLM - New
MaxConversationSummariesproperty: control the maximum number of episodic entries per conversation (default 3) - New
ConversationSummaryResulttype inLMKit.Agents.Memorynamespace
- New
Added
UserScopedMemoryfor multi-user memory isolation- New
UserScopedMemoryclass: thin wrapper overAgentMemorythat namespaces data sources by user ID (e.g.,"alice::preferences") ApplyFilter()/ClearFilter()methods to scope retrieval to a single userClearUserData()method to remove all data belonging to a specific user without affecting others- Full save/remove API mirroring
AgentMemorywith automatic user-prefix handling
- New
Added built-in automatic memory extraction to
AgentMemory- New
ExtractionModeproperty: set toMemoryExtractionMode.LlmBasedto enable automatic fact extraction from conversation turns - Uses grammar-constrained structured output via
TextExtractionfor reliable extraction - Extracted memories are classified by
MemoryType(Semantic, Episodic, Procedural) andMemoryImportance(Low, Medium, High) - Built-in deduplication via vector similarity before storage (configurable
DeduplicationThreshold) - New
ExtractionModelproperty to use a separate lightweight model for extraction - New
RunExtractionSynchronouslyproperty:false(default) for fire-and-forget,truefor blocking extraction - New
ExtractionPromptproperty for custom extraction guidance - New
BeforeMemoryStoredevent to inspect, modify, or cancel extracted memories before storage - New types in
LMKit.Agents.Memorynamespace:MemoryExtractionMode,MemoryImportance,ExtractedMemory,MemoryExtractionEventArgs,MemoryExtractionResult - Made
TopKandMinScoreproperties public onAgentMemory
- New
Added
MemoryEstimationstatic class inLMKit.Hardwarefor accurate VRAM/context fitting- New
FitParameters(string modelPath, ...)method: probes how a model fits into available device memory without loading it - New
FitParameters(LM model, ...)overload: estimates memory for an already-loaded model - Returns a
FitResultwithSuccess,ContextSize, andGpuLayerCountproperties indicating the optimal configuration - Supports custom
DeviceConfiguration(main GPU, GPU layer count, tensor split) for fine-grained control - Configurable
minimumContextSizeparameter (default 2048) to set a lower bound for context allocation - Validates GGUF file format before probing via
FileFormatValidator - Powered by llama.cpp's native
llama_params_fitfor hardware-accurate memory estimation
- New
📅 Version 2026.2.5 (16 February 2026)
New Features
Added Markdown conversion public APIs in
LMKit.Document.Conversion- New
MarkdownHtmlConverter.MarkdownToHtml(string)method to convert Markdown to HTML - New
MarkdownHtmlConverter.HtmlToMarkdown(string)method to convert HTML back to Markdown - New
MarkdownDocxConverter.MarkdownToDocx(string)andMarkdownDocxConverter.MarkdownToDocxFile(string, string)methods to convert Markdown to DOCX - New
MarkdownDocxConverter.DocxToMarkdown(...)overloads for DOCX byte arrays and DOCX file paths - Added comprehensive XML documentation and usage examples for each public member
- Added prebuilt agent tools
convert_markdown_to_htmlandconvert_html_to_markdown
- New
Added per-element confidence scores to extraction results
- New
ConfidenceScoreproperty onTextExtractionResultElementexposes a [0.0, 1.0] quality score computed from per-token probabilities during grammar-constrained generation - New
HumanVerificationRequiredproperty onTextExtractionResultsignals when any element falls below the configurable threshold - New
HumanVerificationThresholdproperty onTextExtraction(default 0.7) controls the verification flag
- New
Added extraction progress events
- New
Progressevent onTextExtractionreports phase transitions:OcrProcessing,Extracting,PostProcessing,Completed - Reports per-pass index and total for multi-pass extraction of large documents
- New
ExtractionPhaseenum andExtractionProgressEventArgsclass
- New
Added entity auto-detection and validation for extraction results
- New
EntityKindpublic enum (102 values) identifies the semantic kind of each extracted field (email, phone, IBAN, postal code, URI, etc.) - New
DetectedEntityKindproperty onTextExtractionElementexposes the automatically inferred entity kind - New
Validationproperty onTextExtractionResultElementreturns anEntityValidationResultwithStatus(Valid,Invalid,Repaired,NotApplicable),EntityKind, andOriginalValue(when repaired) - 14 entity kinds have dedicated format validators: email, phone, fax, URI, IBAN, SWIFT/BIC, IPv4, IPv6, MAC address, GUID/UUID, currency code, postal code, hostname
- Invalid extractions now contribute to
HumanVerificationRequiredflag alongside low confidence scores - Validation results are tracked even when
NullOnDoubtis disabled, enabling inspection without value nullification
- New
Added HTML-aware chunking for RAG workflows
- New
HtmlChunkingclass implementsIChunkingwith DOM-aware splitting using AngleSharp - Respects semantic HTML boundaries: headings, sections, tables, preformatted blocks
StripBoilerplateoption (default: true) removes nav, footer, sidebar, and ad containersPreserveHeadingContextoption (default: true) prepends heading breadcrumb trail to chunks- Tables are extracted as pipe-delimited text and kept intact when they fit in a single chunk
- Oversized blocks are sub-split using the plain text partitioner with configurable overlap
- New
Added async PDF splitting and extraction APIs to improve SDK async coverage for file-heavy workflows
- Added
ExtractPagesAsyncoverloads for file-path based extraction (pageRangeandpageIndexes) - Added
SplitToFilesAsyncoverloads for attachment and file-path workflows (includingDocumentSplittingResult-based splitting) - All new async APIs support
CancellationToken
- Added
Added pattern-constrained extraction formatting (best-effort deterministic enforcement)
- New
TextExtractionElementFormat.Patternsupports regex patterns and compact descriptors such as4N-26A2N-1A - Pattern is now included in JSON Schema round-trip (
SetElementsFromJsonSchemaparse +JsonSchemageneration) - Grammar generation now applies pattern constraints for
StringandStringArrayfields when pattern conversion is supported - Post-processing now validates extracted values against field patterns and rejects non-conforming values when validation is enabled
- New
Added standardized tool metadata via
IToolMetadatainterface- All built-in tools now implement
IToolMetadata, exposingCategory,SideEffect,RiskLevel,DefaultApproval,IsIdempotent, andIsReadOnly - New
ToolSideEffectenum:None,LocalRead,LocalWrite,NetworkRead,NetworkWrite,Irreversible - New
ToolRiskLevelenum:Low,Medium,High,Critical - New
ToolApprovalModeenum:Never,Conditional,Always - Custom
IToolimplementations may optionally implementIToolMetadatato participate in policy-based governance
- All built-in tools now implement
Added
ToolPermissionPolicyfor centralized tool access control- Fluent API with
Allow(),Deny(),AllowCategory(),DenyCategory(),RequireApproval(),RequireApprovalForCategory(), andSetMaxRiskLevel() - Supports wildcard patterns (e.g.,
Deny("fs.*")) and category-level rules - Deny rules always take precedence over allow rules
- Configurable
DefaultAction(AlloworDeny) for whitelist/blacklist modes - New
ToolPermissionResultenum:Allowed,Denied,ApprovalRequired
- Fluent API with
Added tool approval workflow support
- New
ToolApprovalRequestEventArgsevent args class withToolCall,Tool,RiskLevel,SideEffect,Approved, andDenialReasonproperties BeforeToolInvocationEventArgsnow exposesToolandPermissionResultproperties for policy-aware interception
- New
Added
ToolPermissionPolicyintegration toToolRegistryandAgentBuilderToolRegistry.PermissionPolicyproperty for attaching a policy to the registryToolRegistry.EvaluatePermission(ITool)method for programmatic policy checksAgentBuilder.WithPermissionPolicy()methods (direct and inline configuration)
Added metadata-aware query methods to
BuiltInToolsGetByMaxRisk(ToolRiskLevel): filter tools by maximum risk levelGetByCategory(string): filter tools by categoryGetReadOnly(): get all read-only tools
Enhanced
ToolInfowith rich security metadata- Now includes
Category,SideEffect,RiskLevel,DefaultApproval,IsIdempotent, andIsReadOnlyin addition to existingHasIOCapabilities
- Now includes
Added
pdf_searchbuilt-in document tool and reusableLMKit.Document.Pdf.PdfSearchAPI- New built-in tool:
pdf_searchfor searching text in PDF files with page ranges, case sensitivity, result limits, and contextual snippets PdfSearchToolnow delegates toLMKit.Document.Pdf.PdfSearch(domain logic moved out of tool layer)PdfSearchnow uses existingLayoutSearchEngine+TextSearchOptions- Added async-first API
PdfSearch.FindTextAsync(...)and sync wrapperPdfSearch.FindText(...)
- New built-in tool:
Added
filesystem_searchbuilt-in IO tool for recursive file search- Search files by name glob, content regex, size range, and modification date
- Configurable recursion depth, directory matching, and
FileSystemToolOptionspolicy
Added
http_downloadbuilt-in Net tool for streaming file downloads- Download files from a URL to the local filesystem with streaming I/O and configurable size limits
- Supports custom headers, overwrite control, and partial file cleanup on failure
Improvements
- Improved tool calling reliability across all models
- Fixed and improved GLM (glm4.7-flash) tool calling support
Breaking Changes
- Split multi-operation built-in tools into atomic single-operation tools (1 tool = 1 feature)
- All previously monolithic tools (
FileSystemTool,ProcessTool,CompressTool,ClipboardTool,HttpTool,FtpTool,DatabaseTool,SpreadsheetTool) have been replaced by individual atomic tools, each performing exactly one operation PdfSplitToolnow handles split operations only; newPdfExtractToolhandles page extractionBuiltInToolsfactory properties updated:BuiltInTools.FileSystem→BuiltInTools.FileSystemRead,BuiltInTools.HttpGet→BuiltInTools.HttpGet, etc.- New group registration methods:
AddFileSystemTools(),AddHttpTools(),AddProcessTools(), etc. viaBuiltInToolsExtensions ToolPermissionPolicywildcard patterns now work with atomic names:Allow("filesystem_*"),Deny("filesystem_delete"),RequireApproval("process_*")
- All previously monolithic tools (
📅 Version 2026.2.4 (12 February 2026)
Improvements
Improved
SupervisorOrchestratorto use a single-pass execution model- Replaced the multi-step loop with a single
ExecuteAgentAsynccall, sinceAgentExecutorhandles multi-turn tool calling internally - Eliminated redundant supervisor iterations that could confuse the model
- Replaced the multi-step loop with a single
Improved
DelegateToolto return plain text on successful delegation- Worker responses are now returned as plain text instead of a JSON wrapper, allowing the supervisor to relay them verbatim without summarizing
Added real-time streaming of worker agent output during supervisor delegation
- Added
AfterTextCompletionevent toDelegateToolfor streaming worker tokens in real time SupervisorOrchestratornow wires upBeforeDelegation,AfterDelegation, andAfterTextCompletionevents to emitAgentStarted,Content, andAgentCompletedstream tokens for worker agents- Users see live worker output instead of a frozen screen during delegation
- Added
Improved
SupervisorOrchestrator.DefaultSupervisorPromptto instruct the supervisor to relay single-worker responses verbatim
New Features
Introduced the
PdfSplitterclass for physically splitting PDF documents by page ranges- Supports extracting pages from
Attachmentinstances or file paths - Provides
ExtractPagesmethods for single output andSplit/SplitToFilesmethods for multi-output splitting - Integrates with
DocumentSplittingResultto extract AI-detected segments into separate PDF files
- Supports extracting pages from
Introduced the
DocumentSplittingclass for detecting logical document boundaries within multi-page filesIntroduced the
DocumentSplittingResultclassIntroduced the
DocumentSegmentclassIntroduced the
PdfMergerclass for merging multiple PDF documents into one- Supports merging from
Attachmentinstances or file paths - Provides
Mergemethods for in-memory output andMergeToFile/MergeFilesmethods for file output
- Supports merging from
Added
DatabaseToolto built-in tools for SQLite database operations- Query, execute SQL, list tables, describe schemas, import/export CSV and JSON, vacuum, and backup
- Read-only by default with configurable write and DDL permissions, path restrictions, and blocked SQL keywords
Added
SpreadsheetToolto built-in tools for Excel (.xlsx) file operations- Read ranges, write cells with values or formulas, list sheets, create workbooks, and convert to/from CSV and JSON
- Read-only by default with configurable write permissions and path restrictions
Added
RssFeedToolto built-in tools for RSS and Atom feed operations- Fetch, parse raw XML, and search feed entries by keyword or date with support for RSS 2.0, Atom, and RSS 1.0 (RDF)
Added
ClipboardToolto built-in tools for system clipboard access- Cross-platform read/write of clipboard text using native commands (PowerShell, pbcopy/pbpaste, xclip)
Added
FtpToolto built-in tools for FTP file transfer operations- List, upload, download, delete, rename, mkdir/rmdir on FTP servers with passive mode and explicit FTPS support
Extended the
PdfToImageclass to support JPEG output- Added JPEG rendering with configurable quality alongside existing PNG and BMP support
RenderToFilesnow accepts"jpg"as a format option
Introduced the
ImageToPdfclass for converting images into PDF documents- Combines one or more JPEG, PNG, or BMP images into a single PDF
- Each image occupies a full page sized to match image dimensions
- Supports file path and
Attachmentinputs
Introduced the
PdfUnlockerclass for removing password protection from PDFs- Opens a password-protected PDF with the known password and saves an unprotected copy
- Supports file path and
Attachmentinputs with file or in-memory output
Added
SaveAsJpegmethod toImageBuffer- Native JPEG encoder using libjpeg with configurable quality (0 to 100)
- Supports RGB24, RGBA32 (alpha stripped), and GRAY8 pixel formats
Added
Documentcategory to built-in tools for document processing- PDF operations: split, merge, extract pages, get info, render to image, unlock password-protected files
- Image preprocessing: deskew, auto-crop, resize with aspect ratio preservation
- Content extraction: text from PDF/DOCX/XLSX/PPTX/HTML, OCR via Tesseract (34 languages)
📅 Version 2026.2.3 (09 February 2026)
Improvements
- Improved skill activations via tools
New Features
Added model cards for
minicpm-o-45,lightonocr-2:1bandglm4.7-flashAdded
StripStyleAttributesproperty toVlmOcr
📅 Version 2026.2.2 (06 February 2026)
Improvements
- Enhanced telemetry with comprehensive OpenTelemetry GenAI semantic conventions support
- Added
gen_ai.client.token.usagehistogram metric with token type tagging (input/output) - Added
gen_ai.client.operation.durationhistogram metric - Added
gen_ai.conversation.idspan attribute for session correlation - Added
gen_ai.response.idspan attribute for response identification - Added
gen_ai.response.finish_reasonsspan attribute (stop, length, tool_calls, etc.) - Added
gen_ai.request.temperature,gen_ai.request.top_p,gen_ai.request.top_kspan attributes - Added
gen_ai.request.max_tokensspan attribute - Added
gen_ai.embeddings.dimension.countspan attribute for embedding operations - Agent telemetry now includes
gen_ai.agent.name,gen_ai.agent.id,gen_ai.agent.description - Tool invocation events now include
gen_ai.tool.name,gen_ai.tool.call.id
- Added
New Features
Introduced the
LM-Kit.NET.Integrations.ExtensionsAINuGet package for Microsoft.Extensions.AI integration 🔥- Implements
IChatClientviaLMKitChatClient, enabling LM-Kit.NET models to be used through the standard Microsoft.Extensions.AI abstraction layer - Implements
IEmbeddingGenerator<string, Embedding<float>>viaLMKitEmbeddingGeneratorfor embedding generation - Supports non-streaming and streaming chat completions
- Supports tool/function calling through automatic bridging of
AIFunction/AIToolto LMKit'sIToolinterface - Maps
ChatOptionsproperties: Temperature, TopP, TopK, MaxOutputTokens, StopSequences, FrequencyPenalty, PresencePenalty, ToolMode, and JSON response format - Reports token usage (input/output/total) and finish reasons in
ChatResponse - Provides
IServiceCollectionextension methods (AddLMKitChatClient,AddLMKitEmbeddingGenerator) for dependency injection - Compatible with the Microsoft.Extensions.AI middleware pipeline (caching, telemetry, function invocation)
- Targets .NET Standard 2.0, .NET 8.0, .NET 9.0, and .NET 10.0
- Git repository: LM-Kit.NET Extensions AI
- Implements
Real-time streaming support for orchestrators
- Added
IOrchestrationStreamHandlerinterface for handling streaming output from multi-agent workflows - Added
DelegateOrchestrationStreamHandlerwith built-in console output handlers - Added
OrchestrationStreamTokenclass with agent context (agent name, step, token type) - Added
StreamHandlerandStreamToolCallsproperties toOrchestrationOptions - Added extension methods:
StreamAsync,StreamContentAsync,RunStreamingAsync,RunStreamingToConsoleAsync - Supports all orchestrators:
SupervisorOrchestrator,PipelineOrchestrator,ParallelOrchestrator,RouterOrchestrator - Token types include: Content, Thinking, ToolCall, ToolResult, AgentStarted, AgentCompleted, Delegation
- Added
Added the
ConversationIdproperty to theChatHistoryclass for session correlation across distributed systemsExtended MCP client with complete protocol support
- Sampling: Allows MCP servers to request LLM completions from the client
SamplingRequestedevent andSetSamplingHandlermethod for handling sampling requestsMcpSamplingRequest,McpSamplingResponse,McpSamplingMessage,McpModelPreferencesclasses
- Roots: Client exposes filesystem boundaries to servers
AddRoot,RemoveRoot,ClearRootsmethods for managing rootsRootsRequestedevent for server root list requestsMcpRootclass withFromPathfactory method
- Elicitation: Servers can request structured user input
ElicitationRequestedevent andSetElicitationHandlermethodMcpElicitationRequest,McpElicitationResponseclasses
- Progress tracking: Track long-running operations
ProgressReceivedevent for progress notificationsCreateProgressToken,UnregisterProgressToken,SendProgressmethodsMcpProgressToken,McpProgressEventArgsclasses
- Cancellation: Cancel in-progress requests
CancellationReceivedevent for cancellation notificationsCancelRequestmethod to send cancellation notificationsMcpCancellationEventArgsclass
- Logging: Structured server-side logging
LogMessageReceivedevent for log messagesSetLogLevelmethod to configure minimum log levelMcpLogLevelenum andMcpLogMessageEventArgsclass
- Completions: Argument autocompletion for prompts and resources
GetPromptCompletions,GetResourceCompletionsmethodsMcpCompletionResultclass
- Resource templates: Parameterized URI templates (RFC 6570)
GetResourceTemplates,RefreshResourceTemplatesmethodsMcpResourceTemplateclass
- Resource subscriptions: Real-time resource update notifications
SubscribeToResource,UnsubscribeFromResourcemethodsResourceUpdatedevent andMcpResourceUpdatedEventArgsclass
- Sampling: Allows MCP servers to request LLM completions from the client
📅 Version 2026.2.1 (02 February 2026)
Improvements
- Improved ReAct pattern of agents with tools
New Features
- Added stdio transport support to the MCP client for local MCP servers
- Introduced the
IMcpTransportinterface for transport abstraction - Introduced the
StdioTransportclass for subprocess-based MCP communication - Introduced the
StdioTransportOptionsclass for detailed stdio configuration - Introduced the
McpTransportExceptionclass for transport-specific errors - Introduced the
McpClientBuilderclass for fluent client construction - Added
ForStdiofactory methods to theMcpClientclass - Added
TransportType,IsStdioTransport, andTransportproperties toMcpClient - Support for Node.js (npx), Python (uvx), and native MCP server executables
- Features: process lifecycle management, auto-restart, graceful shutdown, stderr capture
- Introduced the
Bug Fixes
- Boolean type was not correctly handled in TextExtraction
📅 Version 2026.1.5 (31 January 2026)
Improvements
- Improved SpeechToText speed and accuracy
New Features
Extended the
LMKit.Agentsnamespace with comprehensive agent framework 🔥- Core classes:
Agent,AgentBuilder,AgentExecutor,AgentRegistry - Configuration:
AgentCapabilities,AgentIdentity,AgentExecutionOptions - Execution tracking:
AgentExecutionResult,AgentExecutionStatus
- Core classes:
Introduced the
LMKit.Agents.Orchestrationnamespace 🔥IOrchestratorinterface withPipelineOrchestrator,ParallelOrchestrator,RouterOrchestrator, andSupervisorOrchestratorimplementations- Supporting classes:
OrchestrationContext,OrchestrationOptions,OrchestrationResult
Introduced the
LMKit.Agents.Tools.BuiltInnamespace with a comprehensive set of built-in tools 🔥- Eight tool categories: Data, Text, Numeric, Security, Utility, IO, Net, and Document
- Each tool is a single atomic operation (1 tool = 1 feature) for fine-grained control
- Factory class
BuiltInToolsand fluent registration extensions - The built-in tool catalog is designed for continuous growth, with a strong focus on security and scalability
Introduced the
LMKit.Agents.PlanningnamespaceIPlanningHandlerinterface withReActHandler,ChainOfThoughtHandler,TreeOfThoughtHandler,PlanAndExecuteHandler, andReflectionHandlerimplementations- Supporting classes:
PlanningStep,PlanningStepResult,PlanningContext,PlanningStrategy
Introduced the
LMKit.Agents.Delegationnamespace- Agent-to-agent delegation via
DelegationManager,DelegateTool,IDelegationRouter - Supporting classes:
DelegationRequest,DelegationResult
- Agent-to-agent delegation via
Introduced the
LMKit.Agents.StreamingnamespaceIAgentStreamHandlerinterface withBufferedStreamHandler,MulticastStreamHandler,TextWriterStreamHandler,DelegateStreamHandler- Supporting classes:
StreamingAgentExecutor,AgentStreamResult,AgentStreamToken
Introduced the
LMKit.Agents.ResiliencenamespaceIResiliencePolicyinterface withRetryPolicy,CircuitBreakerPolicy,TimeoutPolicy,RateLimitPolicy,BulkheadPolicy,FallbackPolicy,CompositePolicy- Supporting classes:
ResilientAgentExecutor,FallbackAgentExecutor,AgentHealthCheck
Introduced the
LMKit.Agents.ObservabilitynamespaceIAgentTracerinterface withConsoleTracer,InMemoryTracer,CompositeTracer,NoOpTracer- Supporting classes:
AgentSpan,AgentMetrics,AgentTracing,TracingAgentExecutor,JsonTraceExporter
Introduced the
LMKit.Agents.TemplatesnamespaceAgentTemplatebase class with 18 pre-built templates:ChatAgentTemplate,AssistantAgentTemplate,ToolAgentTemplate,ReActAgentTemplate,CodeAgentTemplate,WriterAgentTemplate,AnalystAgentTemplate,PlannerAgentTemplate,ResearchAgentTemplate,ReviewerAgentTemplate,SummarizerAgentTemplate,ExtractorAgentTemplate,TutorAgentTemplate,TranslatorAgentTemplate,ClassifierAgentTemplate,DebuggerAgentTemplate,EditorAgentTemplate,QAAgentTemplate- Factory class
AgentTemplates
Introduced the
LMKit.Agents.Skillsnamespace with Agent Skills Protocol support 🔥- Core classes:
AgentSkill,SkillRegistry,SkillBuilder,SkillActivator,SkillParser - Metadata:
SkillMetadata,SkillContext,SkillMatch,SkillResource - Enumerations:
SkillInjectionMode,SkillResourceType - Event args:
SkillRegisteredEventArgs,SkillRemovedEventArgs - Exception:
SkillParseException - Supports SKILL.md specification for defining reusable agent skills
- Progressive disclosure with lazy loading of instructions and resources
- Multiple loading sources: filesystem, URLs, GitHub repositories
- Keyword-based and semantic (embedding-based) skill matching
- Slash command parsing (
/skill-name arguments)
- Core classes:
Added skills support to the
MultiTurnConversationclass- Added
Skillsproperty for registering tool collections - Added
RegisterSkillandRegisterSkillAsyncmethods - Added
UnregisterSkillmethod - Added
SkillInvokedandSkillCompletedevents - Added
EnableSkillsproperty to control skill execution
- Added
Bug Fixes
- Resolved compilation issue with MAUI for macOS (this time for real)
📅 Version 2026.1.4 (27 January 2026)
Improvements
- Improved SpeechToText accuracy
New Features
- Added model cards for
whisper-large2anddevstral-small2 - Introduced the
LMKit.Speech.Dictationnamespace withFormatter,Command,CommandInfo,CommandMatch, andFormatterOptionsclasses for dictation text formatting - Added the
SuppressHallucinationsproperty to theSpeechToTextclass - Added the
SuppressNonSpeechTokensproperty to theSpeechToTextclass
Bug Fixes
- Resolved compilation issue with MAUI for macOS
📅 Version 2026.1.3 (17 January 2026)
Improvements
- Improved confidence metrics computation
- Improved the target language support of the summarizer engine
New Features
- Introduced the
NamedEntityRecognitionTrainingDatasetclass
Bug Fixes
- Text attachments were not correctly processed in some tasks
📅 Version 2026.1.2 (11 January 2026)
Improvements
- General performance enhancements
- Improved DataSource create and update performance on cloud vector databases (for example Qdrant)
- Improved error reporting when loading partially corrupted DataSource files
- Improved the accuracy of the keyword extraction engine
New Features
- Added the
DeleteDocumentandDeleteDocumentAsyncmethods to theDocumentRagclass - Added
AddDataSourceandAddDataSourceAsyncoverloads to theRagEngineclass that load an existing DataSource from a vector store - Added
LoadWarningsandHasLoadWarningsproperties to theDataSourceclass for inspecting sections that could not be read during partial loading - Introduced the
LoadWarningclass - Added model cards for
nemotron3-nanoandfalcon-h1r:7b - Added support for the LMKIT_MODELS_DIR environment variable to configure the default model storage directory
📅 Version 2026.1.1 (04 January 2026)
Improvements
- General performance enhancements
- Improved speed and accuracy of the
VlmOcrengine - Improved speed of the
SpeechToTextengine - Improved observability with OpenTelemetry GenAI instrumentation
New Features
- Added the
ModelIDproperty to theLMclass - Added
PromptTokenCountandPromptProcessingRateproperties to theTextGenerationResultclass - Added the
GeneratedTokenCountproperty to theTextGenerationResultclass - Introduced the
AttachmentReferenceclass - Added
GetTextandGetTextAsyncoverloads to theAttachmentclass that take a page range as a parameter - Added the
StructuredandAutomembers to theTextOutputModeenumeration - Added
SetTextoverloads to theAttachmentclass that accept a page index - Added URI constructor and
CreateFromUriAsyncfactory method to theAttachmentclass for loading attachments from remote URIs - Added
CreateFromFileAsyncandCreateFromStreamAsyncfactory methods to theAttachmentclass for asynchronous loading - Added
HasTextOnPageandHasTextOnPageAsyncmethods to theAttachmentclass - Added support for the PDF format
- Introduced the
IMultiTurnConversationenumeration - Introduced the
FileSystemVectorStoreclass - Introduced the
IChunkinginterface - Introduced the
MarkdownChunkingclass - Added
QueryPartitionsandQueryPartitionsAsyncoverloads toRagEnginethat accept a custom prompt template - Introduced the
DocumentRagclass - Introduced the
PdfChatclass - Introduced the
DocumentReferenceclass - Introduced the
DocumentIndexingResultclass - Introduced the
DocumentImportProgressEventArgsclass - Introduced the
CacheAccessedEventArgsclass - Introduced the
PassageRetrievalCompletedEventArgsclass - Introduced the
ResponseGenerationStartedEventArgsclass - Introduced the
DocumentImportPhaseenumeration - Introduced the
DocumentQueryResultclass - Introduced the
PageProcessingModeclass - Added the
MaximumCompletionTokensandStripImageMarkupproperties to theVlmOcrclass - Added
SetContentoverloads to theTextExtractionclass that accept a page index or a page range - Introduced the
LMKitTelemetryclass
Breaking changes
- Removed the
Promptclass, useChatHistory.Messageinstead
📅 Version 2025.12.4 (13 December 2025)
Improvements
- General performance enhancements
- Improved task accuracy with Ministral models
- Improved accuracy of the
VlmOcrengine
Bug Fixes
- Fixed unsupported Unicode characters in TextExtractionElement.Name
📅 Version 2025.12.2 (08 December 2025)
Improvements
- General performance enhancements
- Voice activity detection accuracy improvements
- Embedding performance enhancements
New Features
- Introduced the
VlmOcrclass - Added support for LightOnOCR model
- Added model cards for
qwen3-vl:30bandlightonocr1025:1b
📅 Version 2025.12.1 (03 December 2025)
Improvements
- General performance enhancements
New Features
- Added
Messageconstructor overloads taking attachment as parameter - Added
Expandmethod overload to theRectangleclass, allowing asymmetric expansion on each side - Added support for Ministral V3 models
- Added model cards for
ministral3:3b,ministral3:8b, andministral3:14b
📅 Version 2025.12.1 (22 November 2025)
Improvements
- General performance enhancements
- Faster Vulkan backend
New Features
- Added support for Qwen3 embedding models
- Added model cards for
qwen3-embedding:0.6b,qwen3-embedding:4b, andqwen3-embedding:8b
📅 Version 2025.11.2 (12 November 2025)
Improvements
- General performance enhancements
New Features
- Added a native assembly targeting .NET 10
📅 Version 2025.11.1 (05 November 2025)
Improvements
- General performance enhancements
- Improved the summarizer engine
New Features
- Added model cards for
qwen3-vl:2b,qwen3-vl:4b, andqwen3-vl:8b
📅 Version 2025.10.5 (24 October 2025)
Improvements
- General performance enhancements
New Features
- Introduced the
McpResourceclass - Introduced the
McpResourceContentclass - Introduced the
McpPromptclass - Introduced the
McpPromptArgumentclass - Introduced the
McpPromptResultclass - Introduced the
McpMessageRoleenumeration - Introduced the
McpPromptMessageclass - Introduced the
McpPromptContentclass - Introduced the
McpEmbeddedResourceclass - Introduced the
McpClientCapabilitiesandMcpServerCapabilitiesenumerations - Introduced the
McpCatalogKindenumeration - Added the
ServerCapabilities,Prompts,Resources, andMcpProtocolVersionproperties to theMcpClientclass - Added the
HasCapabilitymethod to theMcpClientclass - Added the
ToolsChanged,ResourcesChanged, andPromptsChangedevents to theMcpClientclass - Added the
GetResources,GetResourcesAsync,ReadResource, andReadResourceAsyncmethods to theMcpClientclass - Added the
GetPrompts,GetPromptsAsync,RefreshPrompts, andRefreshPromptsAsyncmethods to theMcpClientclass - Introduced the
McpResponseReceivedEventArgsclass - Introduced the
McpRequestSendingEventArgsclass - Introduced the
McpAuthFailedEventArgsclass - Introduced the
McpCatalogChangedEventArgsclass - Added the
ToolsChanged,ResourcesChanged, andPromptsChangedevents to theMcpClientclass
📅 Version 2025.10.4 (16 October 2025)
Improvements
- General performance enhancements
- Improved tool calling support
- Improved Mistral and GptOss models support
New Features
- Introduced the
LMFunctionToolBinderclass - Introduced the
Agent.Tools.LMFunctionAttributeclass - Added model card for
magistral-small1.2 - Introduced the
ReasoningLevelenumeration - Added the
ReasoningLevelproperty to theMultiTurnConversationclass - Introduced the
ChatHistory.Message.MessageSegmentclass - Added the
Segmentsproperty to theChatHistory.Messageclass - Introduced the
EntityAnnotationclass - Introduced the
ExtractionTrainingDatasetclass - Introduced the
CategorizationTrainingDatasetclass - Introduced the
EmotionDetectionTrainingDatasetclass - Introduced the
SarcasmDetectionTrainingDatasetclass - Introduced the
SentimentAnalysisTrainingDatasetclass - Introduced the
LanguageDetectionTrainingDatasetclass - Introduced the
PiiExtractionTrainingDatasetclass
📅 Version 2025.10.3 (09 October 2025)
Improvements
- Improved tool calling support
- Improved MCP client support
New Features
- Introduced the
TextSegmentTypeenumeration - Added the
SegmentTypeproperty to theAfterTextCompletionEventArgsclass
📅 Version 2025.10.2 (06 October 2025)
Improvements
- General performance enhancements
- Improved tool calling support
- Optimized dynamic sampling mechanisms
New Features
- Added model cards for
granite4-h:3bandgranite4-h:7b
📅 Version 2025.9.3 (29 September 2025)
Improvements
- General performance enhancements
- Improved internal paragraph-detection engine, yielding better RAG chunking and higher extraction accuracy
- Improved PII extraction and NER engines accuracy
New Features
- Introduced first version of a CUDA 13 backend
- Introduced the
TextRegionclass - Introduced the
TextOutputModeenumeration - Added the
GetTextmethod to thePageElementclass - Introduced the
IToolclass - Introduced the
ToolRegistryclass - Introduced the
ToolCallPolicyclass - Introduced the
ToolChoiceenumeration - Introduced the
ToolCallResultTypeenumeration - Introduced the
ToolCallclass - Introduced the
ToolCallResultclass - Introduced the
MCPToolclass - Introduced the
MCPClientclass - Introduced the
ShareGptExporterclass - Introduced the
LMKit.Finetuning.Export.RoleMappingPolicyenumeration - Introduced the
LMKit.Finetuning.Export.ExportResultclass - Introduced the
LMKit.Finetuning.Export.ExportProgressclass - Added the
HasTextGenerationproperty to theLMclass - Added the
HasToolCallsproperty to theLMclass - Added the
Toolsproperty to theMultiTurnConversationclass - Added the
ToolPolicyproperty to theMultiTurnConversationclass - Introduced the
AfterToolInvocationEventArgsclass - Introduced the
BeforeToolInvocationEventArgsclass - Added the
BeforeToolInvocationevent to theMultiTurnConversationclass - Added the
AfterToolInvocationevent to theMultiTurnConversationclass - Added the
Occurrencesproperty to thePiiExtraction.PiiExtractedEntityclass - Added the
Occurrencesproperty to theNamedEntityRecognition.ExtractedEntityclass - Added the
PageElementsandPageCountproperties to theAttachmentclass - Added the
GetPageWidthandGetPageHeightmethods to theAttachmentclass
📅 Version 2025.9.2 (10 September 2025)
Improvements
- Improved overall extraction accuracy
New Features
- Introduced the
LayoutSearchEngineclass - Added support for Gemma embedding models
- Added model card for
embeddinggemma-300m
📅 Version 2025.9.1 (09 September 2025)
Improvements
- Improved overall extraction accuracy
New Features
- Added the
Boundsproperty to theTextExtractionResultElementclass - Added the
GetValue,TryGetValue,Get,TryGet, andGetAllmethods to theTextExtractionResultclass - Introduced the
Rectangleclass - Introduced the
Quadrilateralclass - Introduced the
IBounds,IPoint,ISize, andIVector2Dinterfaces - Introduced the
ILayoutElementinterface - Introduced the
ParagraphElementclass - Introduced the
LineElementclass - Added
DetectLinesandDetectParagraphsmethods to thePageElementclass - Added the
Boundsproperty to thePageElementclass - Added
TryDetectBorderBackgroundColor,Deskew,CropAuto,IsBlank,ConvertGRAY8,ConvertRGB24, andConvertRGBA32methods to theImageBufferclass - Added
DOCX,XLSX, andPPTXformats support to theAttachmentclass - Added the
Promptproperty to theSpeechToTextclass - Added model card for
minicpm-v-45
📅 Version 2025.8.4 (22 August 2025)
Improvements
- General performance enhancements
📅 Version 2025.8.3 (19 August 2025)
Improvements
- Improved Categorization engine speed and accuracy
- General performance enhancements
New Features
- Introduced the
ChatTrainingSampleclass - Introduced the
TrainingDatasetclass - Added model card for
gemma3:270m - Added the
SchemaDiscoveryandSchemaDiscoveryAsyncmethods to theTextExtractionclass - Added the
HasImageSegmentationproperty to theLMclass - Introduced the
ImageSegmentationmember to theModelCapabilitiesenumeration - Introduced the
BackgroundDetectionclass - Added model card for
u2net
📅 Version 2025.8.2 (08 August 2025)
Improvements
- Optimized dynamic sampling mechanisms
- Enhanced runtime loading strategy
- General performance enhancements
- Improved the summarizer and keyword extraction engines introducing optional target language detection
New Features
- Introduced the
Configuration.FavorDistributedInferenceproperty - Added
TargetLanguageproperty to theSummarizerclass - Added
TargetLanguageproperty to theKeywordExtractionclass - Added
RemoveLoraAdaptermethod to theLMclass - Added support for OpenAI gpt-oss models
- Added model card for
gptoss:20b
📅 Version 2025.8.2 (02 August 2025)
Improvements
- Optimized dynamic sampling mechanisms
- Enhanced runtime loading strategy
- General performance enhancements
📅 Version 2025.7.5 (25 July 2025)
Improvements
- Optimized dynamic sampling mechanisms
New Features
- Introduced the
TesseractOcrEngineclass
📅 Version 2025.7.4 (17 July 2025)
Improvements
- Better multi-threading support for multimodal inference
New Features
- Dynamic LoRA adapter loading support
- Introduced the
LoraAdapterclass - Introduced the
Adaptersproperty to theLMclass
📅 Version 2025.7.3 (10 July 2025)
New Features
- Added support for SmolLM 3 models family
- Added model card for
smollm3:3b - Introduced the
ExtractionProfilerclass
📅 Version 2025.7.2 (7 July 2025)
New Features
- Added support for linux-arm64 (CPU, Vulkan, and CUDA)
Improvements
- Optimized dynamic sampling mechanisms
Bug Fixes
- Fixed a crash that occurred when aborting speech-to-text tasks
📅 Version 2025.7.1 (1 July 2025)
New Features
- Added
LoadAsRGBmethod overload to theImageBufferclass taking file path as parameter - Added
DetectLanguageandDetectLanguageAsyncmethod overload to theTextTranslationclass taking anImageBufferobject as parameter - Introduced the
VoiceActivityDetectionmember to theModelCapabilitiesenumeration - Introduced the
SpeechToText.SpeechToTextModeenumeration - Introduced the
VadSettingsclass - Added
Modeproperty to theSpeechToTextclass - Added
EnableVoiceActivityDetectionproperty to theSpeechToTextclass - Introduced the
VadSettingsproperty to theSpeechToTextclass - Introduced the
SpeechToText.LanguageDetectionResultclass - Introduced the
IsValidstatic method to theWaveFileclass
📅 Version 2025.6.5 (27 June 2025)
New Features
- Added model cards for
mistral-small3.2,magistral-small,whisper-tiny,whisper-base,magistral-small,magistral-medium,whisper-large3, andwhisper-large-turbo3 - Added the
HasSpeechToTextproperty to theLMclass - Introduced the
SpeechToTextmember to theModelCapabilitiesenumeration - Introduced the
WaveFileclass - Introduced the
SpeechToTextclass - Introduced the
SpeechToText.OnNewSegmentEventArgsclass - Introduced the
SpeechToText.OnProgressEventArgsclass - Introduced the
SpeechToText.TranscriptionResultclass - Introduced the
AudioSegmentclass - Introduced the
CorruptedAudioExceptionclass - Introduced the
NotSupportedAudioExceptionclass - Introduced the
ImageBufferclass - Introduced the
ImagePixelFormatenumeration - Added new constructor to the
Attachmentclass to support ImageBuffer input
Improvements
- Improved overall extraction accuracy
📅 Version 2025.6.4 (19 June 2025)
New Features
- Added the
PageElementproperty to theOcrResultclass - Added the
Guidanceproperty to thePiiExtractionclass - Added the
Guidanceproperty to theNamedEntityRecognitionclass
Improvements
- Minor extraction improvements
📅 Version 2025.6.3 (17 June 2025)
New Features
- Added the
InnerElementsproperty to theTextExtractionResultElementclass - Introduced the
PageElementclass - Introduced the
TextElementclass - Added
SetTextmethod overload to theAttachmentclass taking PageElement as parameter
Improvements
- Improved overall extraction accuracy
Bug Fixes
- Fixed txt file loading issue from the Attachment class
📅 Version 2025.6.2 (10 June 2025)
New Features
- Introduced the
NamedEntityRecognitionclass - Introduced the
NamedEntityRecognition.EntityDefinitionclass - Introduced the
NamedEntityRecognition.ExtractedEntityclass - Introduced the
NamedEntityRecognition.NamedEntityTypeenumeration - Introduced the
PiiExtractionclass - Introduced the
PiiExtraction.PiiExtractionclass - Introduced the
PiiExtraction.PiiExtractedEntityclass - Introduced the
PiiExtraction.PiiEntityTypeenumeration - Added the
Timeoutproperty to theTextractOcrclass - Introduced the
OcrStartingEventArgsevent - Introduced the
OcrCompletedEventArgsevent - Added the
Idproperty to theAttachmentclass - Added the
ClearContentmethod to theTextExtractionclass - Added the
InferencePoliciesproperty to theSingleTurnConversationclass
Improvements
- Optimized dynamic sampling mechanisms
Bug Fixes
- Fixed the Linux runtime, which was not correctly updated in the previous version
📅 Version 2025.6.1 (2 June 2025)
New Features
- Added support for multimodal classification and extraction
- Added the
TitleandDescriptionproperties to theTextExtractionclass - Added the
OcrEngineproperty to theTextExtractionclass - Added the
MaxInputTokensproperty to theCategorizationclass - Added the
HasTextproperty to theAttachmentclass - Added the
CreateFromTextandDetectMimeTypestatic methods to theAttachmentclass - Added the
SetTextmethods to theAttachmentclass - Added the
Pathproperty to theAttachmentclass - Introduced the
InferenceModalityenumeration - Added the
PreferredInferenceModalityproperty to theCategorizationclass - Added the
PreferredInferenceModalityproperty to theTextExtractionclass - Introduced the
OcrEngineabstract class - Introduced the
OcrResultclass - Introduced the
OcrParametersclass - Introduced the
TextractOcrclass
Improvements
- Improved overall extraction accuracy
- Improved Categorization engine speed and accuracy
- Optimized dynamic sampling mechanisms
📅 Version 2025.5.5 (25 May 2025)
New Features
- Added model card for
qwen2.5-vl:32b - Added the
TrimStartproperty to theTextExtractionElementFormatclass - Added support for more CUDA devices
Improvements
- Reduced memory usage when handling large context
- Improved overall extraction accuracy
📅 Version 2025.5.4 (20 May 2025)
Improvements
- Various speed and memory usage improvements
Bug Fixes
- Fixed a model-loading issue that occurred under rare conditions
📅 Version 2025.5.3 (20 May 2025)
Improvements
- Improved overall extraction accuracy
- Introduced the
TextExtractionElementFormat.PredefinedStringFormatenumeration - Added the
FormatHintproperty to theTextExtractionElementFormatclass - Added the
IsRequiredproperty to theTextExtractionElementFormatclass - Added the
EnableBackendLoggingproperty to theRuntimeclass
📅 Version 2025.5.2 (13 May 2025)
Improvements
- Improved inference on various model families
- Reduced memory footprint of the built-in vector database engine
New Features
- Added model cards for
bge-m3andbge-m3-reranker - Introduced the
Rerankerclass - Introduced the
RagEngine.RagRerankerclass - Added the
Rerankerproperty to theRagEngineclass - Added new
RagEngineconstructor for multimodal RAG - Added
FindMatchingPartitionsandFindMatchingPartitionsAsyncmethod overloads to theRagEngineclass taking attachment as parameter - Added the
DefaultImagePayloadPixproperty to theRagEngineclass - Added
RerankedScoreandRawSimilarityproperties to thePartitionSimilarityclass - Added the
PayloadEncodingproperty to thePartitionSimilarityclass - Added the
NullOnDoubtproperty to theTextExtractionclass - Introduced the
Partitionclass - Introduced the
ImagePartitionclass - Added the
Versionproperty to theDataSourceclass
📅 Version 2025.5.1 (5 May 2025)
Improvements
- Improved inference of vision models
- Improved inference of LLama 4 models
New Features
- Added support for Qwen 2.5 VL and Pixtral model families
- Added model cards for
pixtral,qwen2.5-vl:3b, andqwen2.5-vl:7b
📅 Version 2025.4.13 (30 April 2025)
Improvements
- Improved translation engine precision with small models
New Features
- Added model cards for
qwen3:0.6b,qwen3:1.7b,qwen3:4b,qwen3:8b, andqwen3:14b - Added the
DisableReasoningproperty to theSingleTurnConversationclass - Added the
DisableReasoningproperty to theMultiTurnConversationclass - Added the
HasReasoningSupportmember to theTemplateFormatFlagsenumeration - Added the
HasReasoningproperty to theLMclass
📅 Version 2025.4.12 (27 April 2025)
Bug Fixes
- Fixed a multi-byte decoding issue in produced model tokens
New Features
- Added
UpsertandUpsertAsyncmethod overloads to theDataSourceclass taking raw vector as parameter
📅 Version 2025.4.11 (23 April 2025)
Bug Fixes
- Fixed ONNX runtime loading issue on Linux
New Features
- Added the
DataSource.VectorEntryclass - Added the
UpsertandUpsertAsyncmethod to theDataSourceclass - Introduced the
VectorSearchstatic class
Breaking changes
- The
TextPartitionSimilarityclass has been renamed toPartitionSimilarity
📅 Version 2025.4.10 (22 April 2025)
Improvements
- Optimized dynamic sampling mechanisms
New Features
- Added support for image embeddings
- Added support for running inference on ONNX models
- Added the
GetEmbeddingsandGetEmbeddingsAsyncoverloads to theEmbedderclass to enable embeddings computation from image - Added the
HasImageEmbeddingsproperty to theLMclass - Introduced the
Summarizer.SummarizationIntentenumeration - Added the
Summarizer.Intentproperty to theSummarizerclass - Added model cards for
nomic-embed-vision,granite3.3:2b, andgranite3.3:8b
📅 Version 2025.4.9 (15 April 2025)
Improvements
- Improved translation engine
- Improved structured text extraction accuracy
- Improved compatibility with JSON schemas for structured text extraction
- Improved internal scheduler engine
- Global speed improvement, up to 20%
New Features
- Added
GetTopCategories,GetTopCategoriesAsync,GetBestCategory, andGetBestCategoryAsyncoverloads to the Categorization class to specify category descriptions
📅 Version 2025.4.7 (9 April 2025)
New Features
- Added the
HasSectionmethod to theDataSourceclass
📅 Version 2025.4.6 (9 April 2025)
New Features
- Introduced a new built-in vector database engine that permits handling small- to medium-sized vector collections on the file system without any dependency
- Introduced the
StorageModeenumeration - Added the
DataSource.StorageModeproperty - Added the
LoadFromFileandLoadFromFileAsyncmethods to theDataSourceclass - Added the
OptimizeDataSourceandOptimizeDataSourceAsyncmethods to theDataSourceclass - Added the
CreateFileDataSource,CreateInMemoryDataSource,CreateVectorStoreDataSource, andCreateVectorStoreDataSourceAsyncmethods to theDataSourceclass - Added the
Importmethod to theRagEngineclass - Added the
ImportAsyncmethod to theRagEngineclass - Added the
DefaultTextChunkingproperty to theRagEngineclass
📅 Version 2025.4.1 (2 April 2025)
Improvements
- Enhanced RagEngine accuracy and speed
- The RAG engine now supports multiple DataSources simultaneously, each backed by its own storage mode (e.g., one DataSource using in-memory storage and another using a vector database)
New Features
- Introduced different DataSource storage modes, enabling storage of DataSource content directly in vector databases
- Introduced a new collection of open-source assemblies to bridge external vector databases with LM-Kit.NET. Currently, Qdrant is supported. Git repository: LM-Kit.NET Data Connectors
- Introduced the
IVectorStoreinterface - Introduced the
PointEntryclass - Added the
CollectionChangedevent to theMetadataCollectionclass - Added the
PropertyChangedevent to theMetadataCollectionclass - Added the
AddOrReplacemethod to theMetadataCollectionclass - Added the
ImportText,ImportTextAsync,ImportTextFromFile, andImportTextFromFileAsyncoverloads to theRagEngineclass to specify metadata collection - Added the
GetSectionByIdentifierAsyncmethod to theDataSourceclass - Added the
RemoveSectionAsyncmethod to theDataSourceclass - Added the
LoadFromStoreandLoadFromStoreAsyncmethods to theDataSourceclass - Added the
Metadataproperty to theRagEngine.TextPartitionSimilarityclass
📅 Version 2025.3.6 (24 March 2025)
Improvements
- Strong performance improvements for the Vulkan backend
- Enhanced extraction accuracy in the structured text extraction engine
- Reduced VRAM/RAM usage
New Features
- Added support for Mistral Small 3.1 model and added mistral-small-3.1 model card
- Added the
GetTextmethod to theAttachmentclass - Added HTML format support to the
Attachmentclass
📅 Version 2025.3.5 (17 March 2025)
New Features
- Added the
HandleUnknownCategoryproperty to theCategorizationclass - Added support for Gemma 3 vision
Improvements
- Improved inference with Gemma 3 models family
- Improved internal context caching strategy
- Inference speed improvements
📅 Version 2025.3.4 (12 March 2025)
New Features
- Added support for Gemma 3 models family
- Added model cards for Qwen QwQ 32B, Gemma 3 1B, Gemma 3 4B, Gemma 3 12B, and Gemma 3 27B
- Added the
Guidanceproperty to theCategorizationclass
📅 Version 2025.3.3 (11 March 2025)
New Features
- Added the
SetElementsFromJsonSchememethod to theTextExtractionclass - Added the
IsVisionRequiredproperty to theAttachmentclass - Added the
GetTopCategoriesandGetTopCategoriesAsyncproperty to theCategorizationclass - Added the
GetBestCategoryAsyncandGetTopCategoriesAsyncoverloads to theCategorizationclass to enable classification from image attachments
📅 Version 2025.3.2 (3 March 2025)
Improvements
- Improved inference with phi-3 and phi-4 models
- Reduced CUDA backend size for Windows by a factor of 3
New Features
- Introduced the
MemoryTypeenumeration - Added the
SaveInformationoverloads to theAgentMemoryclass to specify the type of memory to record - Added the
SaveInformationAsyncoverloads to theAgentMemoryclass to specify the type of memory to record - Added the
GetMemoryTypestatic method to theAgentMemoryclass - Added the
GetDataSourcemethod to theRagEngineclass - Added the
TryGetDataSourcemethod to theRagEngineclass - Added the
Getmethod to theMetadataCollectionclass - Added the
TryGetmethod to theMetadataCollectionclass - Added the
MemoryTypeproperty to theMemoryRecallEventArgsclass
📅 Version 2025.3.1 (1 March 2025)
Improvements
- Improvements to generic classification accuracy and speed
New Features
- Added the
RemoveDataSourceoverloads to theRagEngineclass to remove a DataSource from an identifier - Added the
RemoveSectionmethod to theDataSourceclass - Added support for Phi-4 Mini models
- Added model cards for Phi-4 Mini and Deepseek R1
📅 Version 2025.2.4 (26 February 2025)
Improvements
- Minor performance improvements of the inference system
- Improved inference with various model families such as Granite, Mistral, Monarch, Orion, MiniCPM, and GigaChat
- Improved language detection accuracy
New Features
- Added new constructor to the
Attachmentclass to support stream input - Added the
ExtractKeywordsandExtractKeywordsAsyncoverloads to theKeywordExtractionclass to extract keywords from image attachments - Added the
SummarizeandSummarizeAsyncoverloads to theSummarizerclass to produce summary from image attachments - Added the
DetectLanguageandDetectLanguageAsyncoverloads to theTextTranslationclass to detect language from image attachments - Introduced the
DataFilterclass - Added the
RemoveDataSourceoverloads to theAgentMemoryclass to remove a DataSource from an identifier - Added the
AddDataSourcemethod to theAgentMemoryclass - Added the
AddDataSourcesmethod to theAgentMemoryclass - Added the
Filterproperty to theRagEngineclass - Added the
Filterproperty to theAgentMemoryclass - Added support for DeepSeek-R1 models
📅 Version 2025.2.3 (19 February 2025)
Improvements
- Improved RAG engine accuracy and speed
- Optimized dynamic sampling mechanisms
New Features
- Introduced the
AgentMemoryclass - Introduced the
MemoryRecallEventArgsclass - Introduced the
TopNSigmaSamplingclass - Added the
Memoryproperty to theMultiTurnConversationclass - Added the
MaximumRecallTokensproperty to theMultiTurnConversationclass - Added the
MemoryRecallevent to theMultiTurnConversationclass - Added the
DownloadAsyncmethod to theModelCardclass - Added the
LogCallbackevent to theRuntimeclass
📅 Version 2025.2.2 (12 February 2025)
Improvements
- Improved internal context caching strategy
New Features
- Added the
ModelIDproperty to theModelCardclass - Added the
GetPredefinedModelCardByModelIDmethod to theModelCardclass - Added the
LoadFromModelIDstatic method to theLMclass - Added the
ModelUriproperty to theLMclass - Added the
ImportTextAsyncmethod to theRagEngineclass - Added the
ImportTextFromFileAsyncmethod to theRagEngineclass
📅 Version 2025.2.1 (4 February 2025)
Improvements
- Improved inference of MiniCPM engine
New Features
- Added model card for Mistral Small Instruct 2501
- Created a new open-source assembly bridging Microsoft SemanticKernel and LM-Kit.NET. Git repository: LM-Kit.NET Semantic Kernel
📅 Version 2025.1.10 (30 January 2025)
Improvements
- Added WebP and TIFF image support to Attachment
- Minor performance improvements of the inference system
📅 Version 2025.1.9 (27 January 2025)
Improvements
- Enhanced compatibility with Framework 4.6.2 apps
- Enhanced backend management mechanism
📅 Version 2025.1.8 (26 January 2025)
Improvements
- Enhanced compatibility with Framework 4.6.2 apps
- Minor performance improvements for the Vulkan backend
📅 Version 2025.1.7 (24 January 2025)
Improvements
- Improved speed and accuracy of vision models inference
Bug Fixes
- Fixed a memory leak during image eval using MiniCPM models
📅 Version 2025.1.6 (22 January 2025)
Improvements
- Improved speed and accuracy of vision models inference for content retrieval
New Features
- Added support for the MiniCPM-O model
- Added the
ReplacementModelproperty to theModelCardclass
Bug Fixes
- Resolved a crash when regenerating responses using MiniCPM models
- Fixed a memory leak with VLM disposal
📅 Version 2025.1.4 (19 January 2025)
Bug Fixes
- Resolved an inference issue in AOT mode
- Resolved a rare race condition in the Vulkan backend during inference
- Resolved a segmentation fault in the TextExtraction class
📅 Version 2025.1.3 (18 January 2025)
Improvements
- Various performance improvements
- Improved Runtime initialization
New Features
- Added the
SetContentmethod overload that accepts anAttachmentto theTextExtractionclass, allowing extraction of unstructured content from images
Bug Fixes
- Resolved a crash during Qwen2-VL inference on macOS
📅 Version 2025.1.2 (11 January 2025)
Improvements
- Enhanced GPU device memory management
- Optimized dynamic sampling mechanisms
- Various performance improvements
New Features
- Initial support for multimodal capabilities with vision handling (VLM)
- Added support for the LMK model format
- Introduced the
Promptclass - Introduced the
Attachmentclass - Added overloads to the
SubmitandSubmitAsyncmethods in theMultiTurnConversationclass to support prompts with image attachments - Added overloads to the
SubmitandSubmitAsyncmethods in theSingleTurnConversationclass to support prompts with image attachments
📅 Version 2025.1.1 (1 January 2025)
Improvements
- Optimized dynamic sampling mechanisms
- Improved error handling
New Features
- Added the
HasVisionproperty to theLMclass - Added the
EnableModelChecksumValidationproperty to theConfigurationclass
📅 Version 2024.12.13 (29 December 2024)
Improvements
- Optimized dynamic sampling mechanisms
- Improved performance with IBM Granite models
New Features
- Added overloads to the
GetPerformanceScoremethods in theDeviceConfigurationclass to obtain the model's performance score from a specified path
Bug Fixes
- An unhandled exception was raised when a model could not be loaded
📅 Version 2024.12.12 (26 December 2024)
New Features
- Added the
ShortModelNameproperty to theModelCardclass - Added the
IsPredefinedproperty to theModelCardclass
Improvements
- The
LLMclass has been marked as obsolete. UseLMclass as its replacement
Bug Fixes
GpuDeviceInfo.DeviceTypewas returning an invalid value
📅 Version 2024.12.11 (23 December 2024)
New Features
- Added the
Architectureproperty to theModelCardclass - Added the
GetPerformanceScoremethod to theDeviceConfigurationclass - Added support for Llama-3_1-Nemotron-51B and InfiniAI Megrez 3b models
📅 Version 2024.12.10 (22 December 2024)
New Features
- Added the
LocalPathproperty to theModelCardclass
Improvements
- Improved performance with Phi 4 model
📅 Version 2024.12.9 (20 December 2024)
New Features
- Added the
ValidateFileChecksummethod to theModelCardclass - The ModelCard class can now retrieve model metadata directly from Hugging Face servers without downloading the models
📅 Version 2024.12.8 (19 December 2024)
New Features
- Added the
GetDeviceFromNumbermethod to theGpuDeviceInfoclass - Added the
MaximumContextLengthproperty to theTextExtractionclass - Added overloads to
GetOptimalContextSizemethods in theDeviceConfigurationclass to obtain the optimal context size from the available resources and model - Introduced the
ModelCardclass - Introduced the
ModelCapabilitiesenumeration - Added the
ModelStorageDirectoryproperty to theConfigurationclass
Improvements
- Improved summarization engine
📅 Version 2024.12.7 (15 December 2024)
New Features
- Introduced the
Summarizer.OverflowResolutionStrategyenumeration - Introduced the
TextShrinkingStrategyenumeration - Added the
OverflowStrategyproperty to theSummarizerclass - Added the
TextShrinkingStrategyproperty to theKeywordExtractionclass - Introduced the
DeviceConfigurationclass
Improvements
- Improved summarization of very large text
Bug Fixes
- Prevent the
MultiTurnConversationclass from requesting a context size exceeding the model's capacity
📅 Version 2024.12.6 (13 December 2024)
New Features
- Introduced the
Summarizerclass - Introduced the
Summarizer.SummarizerResultclass
Improvements
- Enhanced MAUI compatibility for macOS development
📅 Version 2024.12.5 (11 December 2024)
New Features
- Added the
ContextRemainingSpaceproperty to theMultiTurnConversationclass - Added the
ContextRemainingSpaceproperty to theAfterTokenSamplingEventArgsclass - Added the
ContextSizeproperty to theAfterTokenSamplingEventArgsclass
📅 Version 2024.12.4 (10 December 2024)
Improvements
- Changed type of ChatHistory.Message.PreviousContent to ChatHistory.Message
- Improved CPU backend speed on Windows
📅 Version 2024.12.3 (07 December 2024)
Bug Fixes
- The items in ChatHistory.Message.PreviousContent were not set in the correct order
- The KeywordExtraction.KeywordCount setter was ignored
Improvements
- Improved the sampling strategy in scenarios with a low context length
📅 Version 2024.12.2 (07 December 2024)
New Features
- The Windows Vulkan runtime is now included in the NuGet package
Improvements
- Optimized dynamic sampling mechanisms
📅 Version 2024.12.1 (06 December 2024)
New Features
- Introduced the
LLM.TemplateFormatFlagsenumeration - Introduced the
KeywordExtractionclass - Introduced the
KeywordExtraction.KeywordItemclass - Added the
ChatTemplateFormatFlagsproperty to theLLMclass - Added the
IsArrayproperty to theTextExtractionElementclass
Improvements
- Optimized dynamic sampling mechanisms
- Improved support for large text bodies in the embedding engine
📅 Version 2024.11.10 (29 November 2024)
New Features
- Introduced the
DeviceTypeenumeration - Added the
DeviceTypeproperty to theGpuDeviceInfoclass
Improvements
- Inference speed improvements with Vulkan backend
📅 Version 2024.11.9 (27 November 2024)
New Features
- Added the
UseAsyncModelAttributesLoadingproperty to theConfigurationclass - Added the
DeviceDescriptionproperty to theGpuDeviceInfoclass - Added the
TotalMemorySizeproperty to theGpuDeviceInfoclass - Added the
FreeMemorySizeproperty to theGpuDeviceInfoclass
Improvements
- Improved NuGet package compatibility with MAUI
- Various inference speed improvements
- Improved handling of model loading failures
📅 Version 2024.11.8 (25 November 2024)
New Features
- Added the
SetLogTextWritermethod to theRuntimeclass
📅 Version 2024.11.7 (25 November 2024)
New Features
- Added maccatalyst RID for MAUI
📅 Version 2024.11.6 (25 November 2024)
New Features
- Vulkan backend is now enabled by default
- Introduced the
Runtime.BackendTypeenumeration - Added the
Backendstatic property to theRuntimeclass - Introduced the
GpuDeviceInfoclass - Added the
PreviousContentproperty to theChatHistory.Messageclass
📅 Version 2024.11.5 (23 November 2024)
Improvements
- Enhanced inference speed
- Improved compatibility with MAUI
📅 Version 2024.11.4 (18 November 2024)
New Features
- Added Vulkan backend for Linux
- Added support for .NET 9
Improvements
- Improved compatibility with macOS ARM and macOS x64
- Enhanced CPU inference speed
📅 Version 2024.11.4 (12 November 2024)
New Features
- Added the
CreateGrammarFromStringListmethod to theGrammarclass - Added the
WhitelistedValuesproperty to theTextExtractionElementFormatclass
📅 Version 2024.11.2 (05 November 2024)
New Features
- Added overloads to
GetEmbeddingsandGetEmbeddingsAsyncmethods in theEmbedderclass to support batch processing of multiple inputs
📅 Version 2024.11.1 (04 November 2024)
New Features
- Added support for Granite models
- Added the
Perplexityproperty to theBeforeTokenSamplingEventArgsclass - Added the
Perplexityproperty to theAfterTokenSamplingEventArgsclass - Added the
ContinueLastAssistantResponseandContinueLastAssistantResponseAsyncmethods to theMultiTurnConversationclass
Improvements
- Optimized dynamic sampling mechanisms
📅 Version 2024.10.5 (24 October 2024)
New Features
- Added the
GeneratedTokensproperty to theChatHistory.Messageclass - Added the
TerminationReasonproperty to theChatHistory.Messageclass - Introduced the
TextExtractionElementFormatclass - Introduced the
TextExtractionElementFormat.TextCaseModeenumeration - Added the
TextExtractionElementFormatproperty to theTextExtractionElementclass
Improvements
- Enhanced structured text extraction
- Added new formatting options to text extraction elements
- Improved function calling capabilities
- Refined JSON data sampling
- Optimized dynamic sampling mechanisms
📅 Version 2024.10.4 (17 October 2024)
Improvements
- Structured text extraction improvements
- Function calling improvements
- Refined JSON data sampling
- Optimized dynamic sampling mechanisms
📅 Version 2024.10.3 (16 October 2024)
New Features
- Added the
TextExtractionclass - Added the
TextExtractionResultclass - Added the
TextExtractionResultElementclass - Added the
ElementTypeenumeration - Added the
DateTimeparameter type support to function calling
Improvements
- Optimized dynamic sampling mechanisms
📅 Version 2024.10.2 (09 October 2024)
New Features
- Added the
TextExtractionElementclass - Added the
CreateJsonGrammarFromExtractionElements(IEnumerable<TextExtractionElement> extractionElements)method overload to theGrammarclass
Improvements
- Optimized dynamic sampling mechanisms
📅 Version 2024.10.1 (01 October 2024)
New Features
- Added the
CreateTrainingObjectmethod overload to theEmotionDetectionclass - Added the
GetTrainingDatamethod to theEmotionDetectionclass - Introduced the
EmotionDetection.TrainingDatasetenumeration - Introduced the
JsonNumArray,JsonIntArray, andJsonStringArraymembers to theLMKit.Data.Json.JsonBasicTypeenumeration - Introduced the
TextTranslation.TrainingDatasetenumeration - Added the
GetTrainingDatamethod to theTextTranslationclass - Added the
EnableDynamicSamplingproperty to theConfigurationclass
Improvements
- Improvements to generic classification accuracy and speed
- Improved global performance with Llama 3.2 models
- Improved global performance with Qwen 2.5 models
- Fine-tuning: extended compatibility to all Llama architectures
- Improved sampling of JSON array structures
📅 Version 2024.9.4 (25 September 2024)
New Features
- Added support for array parameters in function calls
- Added the
ForceFunctionSelectionproperty to theSingleFunctionCallclass - Introduced the
LMKit2024_09_INTmember to theSentimentAnalysis.TrainingDatasetenumeration
Improvements
- Improved function calling accuracy and speed
- Improved emotion detection engine accuracy and speed
- Strong improvements to generic classification accuracy and speed
- Improved accuracy of the language detection engine
Bug Fixes
- Fixed a memory leak in the fine-tuning engine
📅 Version 2024.9.3 (18 September 2024)
Improvements
- Improved function calling accuracy
- Enhanced language detection accuracy
- Boosted generic classification accuracy and speed
- Increased inference speed on CPU
📅 Version 2024.9.2 (11 September 2024)
New Features
- Added the
Seedproperty toRandomSampling,MirostatSampling, andMirostat2Samplingclasses - Introduced the
TrimAutomember to theInputLengthOverflowPolicyenumeration - Enabled deserialization of
ChatHistoryobjects without specifying aModelparameter
Improvements
- Further increased inference speed on CPU
- Enhanced internal API for better error handling
📅 Version 2024.9.1 (6 September 2024)
Improvements
- Optimized inference speed on CPU
- Implemented checks to prevent access to disposed objects
- Improved exception handling in quantization features
📅 Version 2024.9.0 (3 September 2024)
New Features
- Added the
GetTokenmethod to theVocabularyclass - Introduced the
Confidenceproperty to theTextTranslationclass - Added the
MaximumInputTokensproperty to theSingleTurnConversationclass
Improvements
- Enhanced JSON content sampling strategy
- Extended CUDA backend compatibility across more Windows configurations
- Improved accuracy of the language detection engine
- Enhanced compatibility with MAUI
📅 Version 2024.8.4 - Preview (26 August 2024)
New Features
- Introduced the
GlobalConfigurationstatic class
Improvements
- Refined JSON content sampling strategy
- Improved function calling accuracy and speed
- Increased inference speed with Gemma2 models
- Enhanced classification accuracy with tiny-small models
Bug Fixes
- Fixed an issue when computing embeddings from a token array matching the context size
📅 Version 2024.8.3 - Preview (21 August 2024)
Improvements
- Improved support for Phi 3.5 models
📅 Version 2024.8.2 - Preview (20 August 2024)
New Features
- Added the
CreateJsonGrammarFromJsonSchememethod to theGrammarclass
Improvements
- Improved JSON content sampling strategy
- Enhanced function calling accuracy and speed
📅 Version 2024.8.1 - Preview (15 August 2024)
New Features
- Added Vulkan backend 🔥
- Introduced the
FunctionCallResultproperty to theFunctionCallEventArgsclass - Added the
EnableVulkanproperty to theRuntimeclass - Included
KeepLastproperty in theAfterTokenSamplingEventArgsclass
Improvements
- Refined JSON content sampling strategy
- Enhanced function calling accuracy and speed
📅 Version 2024.8.0 - Preview (8 August 2024)
New Features
- Added the
CreateJsonGrammarFromFieldsmethod to theGrammarclass - Enabled function calling support with any model class 🔥
- Introduced the
SingleFunctionCallandFunctionCallResultclasses - Added the
LMFunctionAttributeattribute
Improvements
- Enhanced grammar sampling strategy, especially for JSON schemes
📅 Version 2024.7.10 - Preview (6 August 2024)
New Features
- Added support for Google Gemma 2 2B models 🔥
- Introduced the
CreateJsonGrammarFromTextFieldsmethod to theGrammarclass
Improvements
- Improved grammar sampling strategy, particularly with JSON schemes
📅 Version 2024.7.9 - Preview (31 July 2024)
New Features
- Added the
Versionproperty to theRuntimeclass
Bug Fixes
- Fixed an issue enabling neutral emotion support in the
EmotionDetectionclass - Resolved issues when running fine-tuning with gradient checkpointing
📅 Version 2024.7.8 - Preview (30 July 2024)
New Features
- Added the
MaximumContextLengthproperty to theSingleTurnConversationclass - Added the
GetTextAsyncmethod to theAttachmentclass
Improvements
- Enhanced inference engine handling of context overflow scenarios
📅 Version 2024.7.7 - Preview (29 July 2024)
Improvements
- Enhanced compatibility with .NET Framework 4.6.2
Bug Fixes
- Resolved a crash related to grammar sampling
📅 Version 2024.7.6 - Preview (27 July 2024)
New Features
- Added support for LLaMA 3.1 models 🔥
Improvements
- Enhanced logging mechanism
🎉 Version 2024.7.1 - Preview (23 July 2024)
🎉🥳 Initial release! 🥳🎉
😺 🐱 🐾