![]() |
VOOZH | about |
dotnet add package tryAGI.Anthropic --version 3.8.3
NuGet\Install-Package tryAGI.Anthropic -Version 3.8.3
<PackageReference Include="tryAGI.Anthropic" Version="3.8.3" />
<PackageVersion Include="tryAGI.Anthropic" Version="3.8.3" />Directory.Packages.props
<PackageReference Include="tryAGI.Anthropic" />Project file
paket add tryAGI.Anthropic --version 3.8.3
#r "nuget: tryAGI.Anthropic, 3.8.3"
#:package tryAGI.Anthropic@3.8.3
#addin nuget:?package=tryAGI.Anthropic&version=3.8.3Install as a Cake Addin
#tool nuget:?package=tryAGI.Anthropic&version=3.8.3Install as a Cake Tool
👁 Nuget package
👁 dotnet
👁 License: MIT
👁 Discord
Disclaimer: This package is not affiliated with, endorsed by, or sponsored by Anthropic. Anthropic and Claude are trademarks of Anthropic, PBC.
using Anthropic;
using var client = new AnthropicClient(apiKey);
var messageParams = new CreateMessageParams()
{
Model = new Model(ModelVariant6.Claude35SonnetLatest),
Messages = [
new InputMessage(InputMessageRole.User, "What's the weather like today?"),
new InputMessage(InputMessageRole.Assistant, "Sure! Could you please provide me with your location?"),
new InputMessage(InputMessageRole.User, "Dubai, UAE")
],
MaxTokens = 250
};
var response = await client.Messages.MessagesPostAsync(messageParams);
using CSharpToJsonSchema;
public enum Unit
{
Celsius,
Fahrenheit,
}
public class Weather
{
public string Location { get; set; } = string.Empty;
public double Temperature { get; set; }
public Unit Unit { get; set; }
public string Description { get; set; } = string.Empty;
}
[GenerateJsonSchema]
public interface IWeatherFunctions
{
[Description("Get the current weather in a given location")]
public Weather GetCurrentWeather(
[Description("The city and state, e.g. San Francisco, CA")] string location,
Unit unit = Unit.Celsius);
[Description("Get the current weather in a given location")]
public Task<Weather> GetCurrentWeatherAsync(
[Description("The city and state, e.g. San Francisco, CA")] string location,
Unit unit = Unit.Celsius,
CancellationToken cancellationToken = default);
}
public class WeatherService : IWeatherFunctions
{
public Weather GetCurrentWeather(string location, Unit unit = Unit.Celsius)
{
return new Weather
{
Location = location,
Temperature = 22.0,
Unit = unit,
Description = "Sunny",
};
}
public Task<Weather> GetCurrentWeatherAsync(string location, Unit unit = Unit.Celsius, CancellationToken cancellationToken = default)
{
return Task.FromResult(new Weather
{
Location = location,
Temperature = 22.0,
Unit = unit,
Description = "Sunny",
});
}
}
using Anthropic;
using var client = new AnthropicClient(apiKey);
var service = new WeatherService();
var tools = service.AsTools();
var messageParams = new CreateMessageParams()
{
Model = new Model(ModelVariant6.Claude35SonnetLatest),
Messages = [new InputMessage(InputMessageRole.User, "What is the current temperature in Dubai, UAE in Celsius?")],
MaxTokens = 4096,
System = "You are a helpful weather assistant.",
ToolChoice = new ToolChoice(new ToolChoiceAuto()),
Tools = tools
};
var response = await client.Messages.MessagesPostAsync(messageParams);
messageParams.Messages.Add(response.AsInputMessage());
foreach (var toolUse in response.Content.Value2!
.Where(x => x.IsToolUse)
.Select(x => x.ToolUse))
{
var json = await service.CallAsync(
functionName: toolUse!.Name,
argumentsAsJson: toolUse.Input.AsJson());
messageParams.Messages.Add(json.AsToolCall(toolUse));
}
response = await client.Messages.MessagesPostAsync(messageParams);
The SDK implements IChatClient for seamless integration with the .NET AI ecosystem:
using Anthropic;
using Microsoft.Extensions.AI;
IChatClient chatClient = new AnthropicClient(apiKey);
var response = await chatClient.GetResponseAsync(
[new ChatMessage(ChatRole.User, "Hello!")],
new ChatOptions { ModelId = "claude-sonnet-4-20250514" });
Console.WriteLine(response.Text);
using var client = GetAuthenticatedChatClient();
var response = await client.GetResponseAsync(
messages: [new ChatMessage(ChatRole.User, "Generate 5 random words.")],
new ChatOptions
{
ModelId = DefaultModel,
ResponseFormat = ChatResponseFormatForType<StringArraySchema>(),
Tools = new List<AITool>(),
});
Console.WriteLine(response.ToString());
using var client = GetAuthenticatedChatClient();
var enumerable = client.GetStreamingResponseAsync(
messages: [new ChatMessage(ChatRole.User, "Generate 5 random words.")],
new ChatOptions
{
ModelId = DefaultModel,
});
var deltas = new List<string>();
await foreach (var response in enumerable)
{
Console.Write(response.ToString());
deltas.Add(response.ToString());
}
using var client = GetAuthenticatedChatClient();
var response = await client.GetResponseAsync(
messages: [new ChatMessage(ChatRole.User, "Generate 5 random words.")],
new ChatOptions
{
ModelId = DefaultModel,
});
Console.WriteLine(response.ToString());
using var client = new AnthropicClient(apiKey);
var response = await client.MessagesPostAsync(
model: DefaultModel,
messages: [
"What's the weather like today?",
"Sure! Could you please provide me with your location?".AsAssistantMessage(),
"Dubai, UAE",
],
maxTokens: 300,
temperature: 0);
Console.WriteLine(response.AsSimpleText());
using var client = new AnthropicClient(apiKey);
var response = await client.MessagesPostAsync(
model: DefaultModel,
messages: ["Generate 5 random words."],
maxTokens: 300,
temperature: 0);
Console.WriteLine(response.AsSimpleText());
using var client = new AnthropicClient(apiKey);
var enumerable = client.CreateMessageAsStreamAsync(new CreateMessageParams
{
Model = DefaultModel,
Messages = ["Once upon a time"],
MaxTokens = 250,
});
var deltas = new List<string>();
await foreach (var response in enumerable)
{
Console.Write(response.ContentBlockDelta?.Delta.TextDelta?.Text);
deltas.Add(response.ContentBlockDelta?.Delta.TextDelta?.Text ?? string.Empty);
}
Priority place for bugs: https://github.com/tryAGI/Anthropic/issues
Priority place for ideas and general questions: https://github.com/tryAGI/Anthropic/discussions
Discord: https://discord.gg/Ca2xhfBf3v
This project is supported by JetBrains through the Open Source Support Program.
| 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 1 NuGet packages that depend on tryAGI.Anthropic:
| Package | Downloads |
|---|---|
|
LangChain
LangChain meta-package with the most used things. |
Showing the top 1 popular GitHub repositories that depend on tryAGI.Anthropic:
| Repository | Stars |
|---|---|
|
tryAGI/LangChain
C# implementation of LangChain. We try to be as close to the original as possible in terms of abstractions, but are open to new entities.
|
| Version | Downloads | Last Updated |
|---|---|---|
| 3.8.3 | 33 | 6/17/2026 |
| 3.8.3-dev.10 | 40 | 6/17/2026 |
| 3.8.3-dev.9 | 34 | 6/16/2026 |
| 3.8.3-dev.8 | 39 | 6/16/2026 |
| 3.8.3-dev.7 | 44 | 6/16/2026 |
| 3.8.3-dev.5 | 59 | 5/27/2026 |
| 3.8.3-dev.4 | 55 | 5/26/2026 |
| 3.8.3-dev.3 | 58 | 5/21/2026 |
| 3.8.2 | 152 | 4/30/2026 |
| 3.8.2-dev.1 | 48 | 4/30/2026 |
| 3.8.1-dev.94 | 73 | 4/1/2026 |
| 3.8.1-dev.89 | 73 | 3/29/2026 |
| 3.8.1-dev.88 | 72 | 3/29/2026 |
| 3.8.1-dev.85 | 65 | 3/29/2026 |
| 3.8.1-dev.81 | 155 | 3/28/2026 |
| 3.8.1-dev.79 | 69 | 3/28/2026 |
| 3.8.1-dev.78 | 66 | 3/28/2026 |
| 3.8.1-dev.77 | 70 | 3/28/2026 |
| 3.8.1-dev.76 | 67 | 3/28/2026 |
| 3.8.1-dev.74 | 68 | 3/27/2026 |