LM-Kit.NET 2026.5.2

Released: May 10, 2026

Actualizaciones en 2026.5.2

Características

  • Added model cards for Qwen 3.6 family: qwen3.6:27b (27B dense hybrid Gated DeltaNet + Gated Attention model, 64 blocks) and qwen3.6:35b-a3b (35B MoE, 3B active, 256 experts with 8 routed plus 1 shared, 40 blocks). Both support chat, vision, tool calling, code completion, math, and OCR with a native 262K context window extensible to 1M tokens via YaRN. The qwen3.5:27b and qwen3.5:35b-a3b model cards are now deprecated in favor of qwen3.6:27b and qwen3.6:35b-a3b respectively.
  • Added OpenTelemetry-compatible distributed tracing (LMKit.Agents.Observability.AgentDiagnostics): a new ActivitySource named LMKit.Agents emits spans for every orchestration run (orchestration.execute), every per-agent invocation (agent.execute), and every delegation (agent.delegate), with stable tag names (agent.name, orchestrator.name, orchestration.step, agent.planning_strategy, agent.status, agent.inference_count, delegation.from, delegation.to). Subscribe via OpenTelemetry.Trace.TracerProviderBuilder.AddSource(AgentDiagnostics.SourceName) or a standard System.Diagnostics.ActivityListener. Independent of and complementary to the existing IAgentTracer system.
  • Added graph-based orchestration composition (LMKit.Agents.Orchestration.Nodes): new IOrchestrationNode contract with composable primitives - AgentNode, SequentialNode, ParallelNode, ConditionalNode - and a GraphOrchestrator host. Build arbitrary orchestration shapes (e.g., a parallel block of pipelines feeding into a conditional router) without writing a custom orchestrator class. The prebuilt PipelineOrchestrator / ParallelOrchestrator / RouterOrchestrator / SupervisorOrchestrator remain available as named facades.
  • Added OrchestrationOptions.ReasoningLevel (LMKit.Agents.Orchestration): orchestration-wide override propagated to every agent in the orchestration, including delegated workers in SupervisorOrchestrator. Set to ReasoningLevel.None to disable model-internal <think> emission across the whole graph (e.g. fast classification pipelines on thinking-capable models).
  • Added AgentExecutionOptions.ReasoningLevel (LMKit.Agents): per-call override for an agent's model-internal reasoning level.
  • Added TextGenerationResult.Content (LMKit.TextGeneration): user-visible portion of the assistant turn, reconstructed from the runtime's segment classification with <think> reasoning blocks excluded. Completion continues to expose the full text including reasoning.
  • SupervisorOrchestrator propagates orchestration options to delegated workers: workers invoked through delegate_to_agent now respect the orchestration's MaxCompletionTokens, SamplingMode, MaxIterations, ReasoningLevel, and AgentTimeout. Previously workers ran with their own defaults regardless of the supervisor's options.
  • Thread-safe registries (LMKit.Agents.Tools.ToolRegistry, LMKit.Agents.AgentRegistry): registration, lookup, removal, and iteration are now safe to call concurrently.
  • OrchestrationContext is parallel-safe (LMKit.Agents.Orchestration): AddResult, AddTrace, SetState, and stop-signaling properties (ShouldStop, StopReason) are correctness-safe under concurrent agent execution from ParallelOrchestrator and graph ParallelNode.
  • Channel-based streaming (LMKit.Agents.Orchestration.Streaming): IOrchestrator.StreamAsync no longer polls; tokens flow as soon as the model emits them. Slow IOrchestrationStreamHandler.OnTokenAsync callbacks no longer block the inference thread.
  • Breaking Change - Removed AgentExecutor.DefaultOptions (LMKit.Agents): the public mutable property is gone. Pass AgentExecutionOptions per call to Execute / ExecuteAsync instead.
  • Breaking Change - AgentExecutionOptions.Default returns a fresh instance per access (LMKit.Agents): previously a shared mutable singleton. Code that read values is unaffected; code that mutated AgentExecutionOptions.Default.X = Y to set process-wide defaults must build options per call.