![]() |
VOOZH | about |
dotnet add package IndexThinking --version 0.19.4
NuGet\Install-Package IndexThinking -Version 0.19.4
<PackageReference Include="IndexThinking" Version="0.19.4" />
<PackageVersion Include="IndexThinking" Version="0.19.4" />Directory.Packages.props
<PackageReference Include="IndexThinking" />Project file
paket add IndexThinking --version 0.19.4
#r "nuget: IndexThinking, 0.19.4"
#:package IndexThinking@0.19.4
#addin nuget:?package=IndexThinking&version=0.19.4Install as a Cake Addin
#tool nuget:?package=IndexThinking&version=0.19.4Install as a Cake Tool
Working Memory Manager for Reasoning-capable LLMs
IndexThinking handles the repetitive-but-hard parts of LLM integration:
IndexThinking manages a single LLM turn, not multi-step workflows.
| IndexThinking | Agent Orchestrators |
|---|---|
| Single turn optimization | Multi-step coordination |
| Building block | Workflow controller |
| Used BY orchestrators | Uses IndexThinking |
dotnet add package IndexThinking
// Register services
services.AddIndexThinkingAgents();
services.AddIndexThinkingContext();
// Wrap any IChatClient
var client = new ChatClientBuilder(innerClient)
.UseIndexThinking()
.Build(serviceProvider);
// Use normally
var response = await client.GetResponseAsync(messages);
// Access metadata
var thinking = response.GetThinkingContent();
var metrics = response.GetTurnMetrics();
// Context is automatically tracked and injected
var response = await client.ChatAsync("session-123", "Do that again");
Streaming uses a Collect-and-Yield pattern: chunks are yielded to the caller immediately while buffered internally. After the stream completes, the buffered response is processed through the full orchestration pipeline (reasoning parsing, budget tracking, context tracking).
await foreach (var update in client.GetStreamingResponseAsync(messages))
{
// Real-time chunks arrive here
Console.Write(update.Text);
// The final update contains orchestration metadata
if (update.AdditionalProperties?.ContainsKey(ThinkingChatClient.TurnResultKey) == true)
{
var result = update.AdditionalProperties[ThinkingChatClient.TurnResultKey] as TurnResult;
Console.WriteLine($"\nTokens: {result?.Metrics.TotalTokens}");
}
}
| Provider | Reasoning Format | Truncation Handling | Requires Activation |
|---|---|---|---|
| OpenAI | reasoning field |
length, content_filter |
No (automatic) |
| Anthropic | thinking blocks |
max_tokens, refusal |
No (automatic) |
| Google Gemini | thoughtSignature |
MAX_TOKENS, SAFETY |
No (automatic) |
| DeepSeek/Qwen | <think> tags |
OpenAI-compatible | Yes (EnableReasoning) |
| vLLM/GPUStack | Configurable tags | length |
Yes (EnableReasoning) |
Some providers require explicit reasoning activation:
var options = new ThinkingChatClientOptions
{
EnableReasoning = true // Adds include_reasoning: true to requests
};
var client = new ChatClientBuilder(innerClient)
.UseIndexThinking(options)
.Build(serviceProvider);
When reasoning is disabled on continuation requests (to avoid double-billing thinking tokens), open-source models sometimes output inline reasoning text instead of properly tagged content. IndexThinking automatically strips these fragments:
StripLeadingUntaggedReasoning — removes reasoning paragraphs that appear at the start of a continuation fragment (≥2 consecutive reasoning paragraphs required before stripping)StripUntaggedReasoning — removes trailing reasoning that appears after the actual answer content (requires ≥200 chars of content before the marker and ≥200 chars of trailing reasoning)Both methods are called automatically by the continuation pipeline. They are also available as static methods on OpenSourceReasoningParser for manual use.
MIT License - See for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
Showing the top 3 NuGet packages that depend on IndexThinking:
| Package | Downloads |
|---|---|
|
IronHive.Agent
IronHive Agent - Reusable agent layer for AI-powered CLI tools |
|
|
IndexThinking.SDK
Public SDK for IndexThinking - Working Memory manager for Reasoning-capable LLMs. |
|
|
PulsaLLM.SDK
Pulsa LLM SDK for language model inference |
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.19.4 | 375 | 5/19/2026 |
| 0.19.3 | 387 | 3/13/2026 |
| 0.19.2 | 146 | 3/10/2026 |
| 0.19.1 | 383 | 3/9/2026 |
| 0.19.0 | 117 | 3/9/2026 |
| 0.18.5 | 192 | 3/9/2026 |
| 0.18.4 | 116 | 3/9/2026 |
| 0.18.3 | 117 | 3/9/2026 |
| 0.18.2 | 116 | 3/8/2026 |
| 0.18.0 | 191 | 3/8/2026 |
| 0.17.4 | 127 | 3/7/2026 |
| 0.17.2 | 116 | 3/7/2026 |
| 0.17.1 | 276 | 2/25/2026 |
| 0.17.0 | 214 | 2/19/2026 |
| 0.16.0 | 160 | 2/6/2026 |
| 0.15.0 | 308 | 1/20/2026 |
| 0.14.1 | 133 | 1/15/2026 |