No code rewrites
Code that consumes IChatClient or IChatCompletionService works as-is. Swap the registration; inference now runs on the box.
LM-Kit meets your stack where it is. Bridges implement the .NET AI abstractions, Microsoft.Extensions.AI and Semantic Kernel, so existing pipelines run on a local backend. Connectors persist embeddings in production vector databases. And a provider-agnostic embedding layer lets you bring managed models like Amazon Bedrock, or keep everything local. Same orchestration, same storage; you choose where inference runs.
Each ships as a separate NuGet package. Add the ones that match the abstractions, vector stores, and embedding providers your codebase already speaks.
Microsoft
Implements IChatClient and IEmbeddingGenerator<string, Embedding<float>>. Streaming, function calling, function-invocation middleware all work. Drop into any pipeline already built on the abstraction.
Microsoft
Implements IChatCompletionService and a memory store backed by LM-Kit embeddings. Existing kernels, plugins, planners, prompt files, and memory connectors run on-device.
Amazon
Implements IEmbedder over Amazon Titan and Cohere Embed. Plug managed cloud embeddings into the same RagEngine pipeline as local models, or run both behind one contract.
Data
Persist RAG embeddings in Qdrant or PostgreSQL/pgvector. Both implement the same IVectorStore as the built-in memory path, so retrieval code does not change.
Teams that adopted Microsoft.Extensions.AI or Semantic Kernel built investments in plugins, planners, prompt-function libraries, memory connectors, and middleware. Switching to a local backend should not cost that investment. Bridges keep the surface, swap the backend.
Code that consumes IChatClient or IChatCompletionService works as-is. Swap the registration; inference now runs on the box.
Register multiple chat services. Route per request: local for sensitive data, cloud for bulk traffic. Same abstraction handles both.
Logging, caching, retry, function-invocation middleware written against the abstraction works unchanged. The bridge is just another implementation.
Run end-to-end tests against the abstraction with the LM-Kit implementation. No external API quota, no flaky network in CI.
A NuGet that consumes IChatClient works with LM-Kit out of the box. The library author does not need to know about LM-Kit.
Both abstractions evolve. The bridges track the surface. New methods on IChatClient land as new methods on the bridge.
When the abstraction is not enough for fine control, the native Tools API gives finer control over invocation, permissions, streaming.
The vector store under both bridges' memory paths. Same primitive other LM-Kit RAG paths use.
For full-document workflows beyond text snippets, the native RAG primitives add source attribution and adaptive ingestion.
Once your kernel runs on the bridge, shipping to edge environments is a packaging change.
Yes. LM-Kit ships a Semantic Kernel bridge that implements IChatCompletionService and a memory store backed by LM-Kit embeddings. Existing kernels, plugins, planners, prompt files, and memory connectors run on-device.
Yes. The Microsoft.Extensions.AI bridge implements IChatClient and IEmbeddingGenerator, so streaming, function calling, and function-invocation middleware all work. It drops into any pipeline already built on the abstraction.
LM-Kit provides bridges for Microsoft.Extensions.AI and Semantic Kernel, an Amazon Bedrock embedding provider, and vector database connectors for Qdrant and PostgreSQL/pgvector. Each ships as a separate NuGet package.
No. Code that consumes IChatClient or IChatCompletionService works as-is; you swap the registration and inference then runs on the box. The bridges keep the surface and swap the backend, so plugins, planners, and middleware are preserved.
Yes. You can register multiple chat services and route per request, for example local for sensitive data and cloud for bulk traffic. The Amazon Bedrock provider also plugs managed cloud embeddings into the same RagEngine pipeline as local models.
Working console demos on GitHub, step-by-step how-to guides on the docs site, and the API reference for the classes used on this page.
Console demo: LM-Kit.NET as an IChatClient implementation.
Open on GitHub → DemoConsole demo: LM-Kit-backed memory store for Semantic Kernel.
Open on GitHub → RepoSource for the LM-Kit.NET Bedrock embedding provider.
Open →