如果你一直在.NET平台上调用Claude模型,大概率用过社区开发者tghamm维护的Anthropic.SDK,或者tryAGI团队推出的tryAGI.Anthropic。这两套工具库已经陪伴了.NET社区相当长的时间,都是真正有热情的程序员认真打磨出来的作品。
所以今天要聊的这个消息,并不是要取代它们。更像是一则安静却值得留意的新动态——Anthropic官方发布了一款C#语言的SDK,让.NET生态从此有了一个可以和社区方案并行的官方选项。
这个新SDK的代码仓库托管在GitHub上的anthropics/anthropic-sdk-csharp路径下,同时以Anthropic这个包名发布到了NuGet平台。使用文档可以在platform.claude.com/docs/en/api/sdks/csharp找到。
动手试之前有几个信息值得先了解清楚。第一,它的目标框架是.NET Standard 2.0及以上版本,意味着绝大多数现代化的.NET项目都可以接入,连一些比较老的.NET Framework应用也在支持范围内。第二,虽然发布时的版本号看起来很高,但它目前处于beta测试阶段,小版本更新中仍可能包含破坏性变更,所以建议在项目文件里锁定具体版本号。第三,这款SDK正式加入了Anthropic的官方工具链阵营,和已有的Python、TypeScript、Java、Go、Ruby、PHP版本以及命令行工具CLI站到了一起。
来看一段最简短的"你好,Claude"示例。在项目里执行dotnet add package Anthropic完成安装后,引入Anthropic和Anthropic.Models.Messages命名空间。新建一个AnthropicClient实例,配置MessageCreateParams参数对象:设置MaxTokens为1024,Messages集合中添加一条角色为Role.User、内容为"Hello, Claude"的消息,模型选择"claude-opus-4-7"。然后调用client.Messages.CreateAsync方法拿到返回的消息对象,最后输出到控制台。
代码里有一个体贴的细节:SDK默认从环境变量ANTHROPIC_API_KEY中读取密钥。对于刚刚上手想先跑跑看的人来说,省去了额外配置的麻烦。语法层面使用了集合表达式和target-typed new()这些C#现代化特性,读起来像是为这门语言量身写的,而不是从其他版本硬翻译过来的。小事一桩,但体验确实不错。
关于版本号,有个挺温暖的小故事值得讲一讲。官方发布的第一个版本是第10版,猛一看可能会让人愣一下。原因是NuGet上Anthropic这个包名之前已经被tryAGI社区SDK占用,那个项目已经稳定迭代了1.x到3.x好几个大版本。当Anthropic公司想发布官方包时,tryAGI的维护者们主动把自己原来的库迁移到了tryAGI.Anthropic这个新名字下,把位置让了出来。为了避免已经安装了旧版本的用户在升级时产生困惑,官方包直接从第10版起步。
如果你之前项目中引用的是Anthropic这个包名,某次更新后发现不对劲,多半需要把依赖指向改成tryAGI.Anthropic就好。东西没坏,只是搬了个新家。
那要不要立刻切换过去?说实话,不用急,先用好手头现有的方案完全没问题。如果你正在使用tghamm的Anthropic.SDK,说明你的项目处在一个成熟的维护状态中。这个社区库已经积累了相当长的时间,支持Vertex AI认证,针对扩展思考模式设计了便捷的使用模式,还有大量在多次迭代中沉淀下来的精妙细节。它如果现在运行得很好,未来也会继续稳定工作下去。
热门跟贴