Skip to content

参考数据:Claude API 参考 — C#

Data: Claude API reference — C#

v2.1.51

C# SDK reference including installation, client initialization, basic requests, streaming, and tool use

Claude API — C#

注意: C# SDK 是 Anthropic 官方的 C# SDK。工具使用通过 Messages API 支持。基于类注解的工具运行器不可用;请使用带有 JSON schema 的原始工具定义。该 SDK 还支持与函数调用集成的 Microsoft.Extensions.AI IChatClient。

安装

bash
dotnet add package Anthropic

客户端初始化

csharp
using Anthropic;

// 默认方式(使用 ANTHROPIC_API_KEY 环境变量)
AnthropicClient client = new();

// 显式指定 API 密钥(使用环境变量 — 切勿硬编码密钥)
AnthropicClient client = new() {
    ApiKey = Environment.GetEnvironmentVariable("ANTHROPIC_API_KEY")
};

基础消息请求

csharp
using Anthropic.Models.Messages;

var parameters = new MessageCreateParams
{
    Model = Model.ClaudeOpus4_6,
    MaxTokens = 1024,
    Messages = [new() { Role = Role.User, Content = "What is the capital of France?" }]
};
var message = await client.Messages.Create(parameters);
Console.WriteLine(message);

流式传输

csharp
using Anthropic.Models.Messages;

var parameters = new MessageCreateParams
{
    Model = Model.ClaudeOpus4_6,
    MaxTokens = 1024,
    Messages = [new() { Role = Role.User, Content = "Write a haiku" }]
};

await foreach (RawMessageStreamEvent streamEvent in client.Messages.CreateStreaming(parameters))
{
    if (streamEvent.TryPickContentBlockDelta(out var delta) &&
        delta.Delta.TryPickText(out var text))
    {
        Console.Write(text.Text);
    }
}

工具使用(手动循环)

C# SDK 通过 JSON schema 支持原始工具定义。有关工具定义格式和 agentic 循环模式,请参阅共享的工具使用概念


英文原文 / English Original

Claude API — C#

Note: The C# SDK is the official Anthropic SDK for C#. Tool use is supported via the Messages API. A class-annotation-based tool runner is not available; use raw tool definitions with JSON schema. The SDK also supports Microsoft.Extensions.AI IChatClient integration with function invocation.

Installation

bash
dotnet add package Anthropic

Client Initialization

csharp
using Anthropic;

// Default (uses ANTHROPIC_API_KEY env var)
AnthropicClient client = new();

// Explicit API key (use environment variables — never hardcode keys)
AnthropicClient client = new() {
    ApiKey = Environment.GetEnvironmentVariable("ANTHROPIC_API_KEY")
};

Basic Message Request

csharp
using Anthropic.Models.Messages;

var parameters = new MessageCreateParams
{
    Model = Model.ClaudeOpus4_6,
    MaxTokens = 1024,
    Messages = [new() { Role = Role.User, Content = "What is the capital of France?" }]
};
var message = await client.Messages.Create(parameters);
Console.WriteLine(message);

Streaming

csharp
using Anthropic.Models.Messages;

var parameters = new MessageCreateParams
{
    Model = Model.ClaudeOpus4_6,
    MaxTokens = 1024,
    Messages = [new() { Role = Role.User, Content = "Write a haiku" }]
};

await foreach (RawMessageStreamEvent streamEvent in client.Messages.CreateStreaming(parameters))
{
    if (streamEvent.TryPickContentBlockDelta(out var delta) &&
        delta.Delta.TryPickText(out var text))
    {
        Console.Write(text.Text);
    }
}

Tool Use (Manual Loop)

The C# SDK supports raw tool definitions via JSON schema. See the shared tool use concepts for the tool definition format and agentic loop pattern.