
anthropic-sdk-go
官方 Go SDK,类型安全调用 Claude 模型
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-10-27 · 当前星标 ★ 1233
使用教程
环境要求
- 已安装 Go 工具链(README 未注明最低版本,可用 go version 检查)
- 一个可用的 Anthropic API Key
- 能正常访问 Anthropic API 的网络环境
安装与启动步骤
-
1检查 Go 环境
在终端确认 go 命令可用,能打印版本号即可继续。
go version -
2初始化 Go 模块
新建项目目录并初始化模块,作为引入 SDK 的基础。
mkdir -p claude-demo && cd claude-demo && go mod init example.com/claude-demo -
3添加 SDK 依赖
按 README 指定版本拉取 SDK,导入路径为 v2 版本。
go get -u 'github.com/anthropics/anthropic-sdk-go/v2@v2.3.0' -
4配置 API Key
README 说明客户端默认读取环境变量 ANTHROPIC_API_KEY。
export ANTHROPIC_API_KEY=sk-ant-xxxxxxxx -
5编写示例程序
把 README 的 Getting started 代码写入 main.go,可直接构建运行。
cat > main.go <<'EOF' package main import ( "context" "fmt" "github.com/anthropics/anthropic-sdk-go/v2" "github.com/anthropics/anthropic-sdk-go/v2/option" ) func main() { client := anthropic.NewClient( option.WithAPIKey("my-anthropic-api-key"), ) message, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{ MaxTokens: 1024, Messages: []anthropic.MessageParam{ anthropic.NewUserMessage(anthropic.NewTextBlock("What is a quaternion?")), }, Model: anthropic.ModelClaudeOpus5_5, }) if err != nil { panic(err.Error()) } fmt.Printf("%+v ", message.Content) } EOF -
6运行并验证
执行程序,向 Messages 接口发一次请求并打印返回内容块。
go run main.go
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
ANTHROPIC_API_KEY | 是 | 环境变量形式的 API 密钥,NewClient 不传参时默认读取。 | sk-ant-xxxxxxxx |
option.WithAPIKey | 否 | 在代码中显式传入 API Key,优先级高于环境变量。 | option.WithAPIKey("my-anthropic-api-key") |
MaxTokens | 是 | 请求参数,限制本次回复生成的最大 token 数。 | 1024 |
Model | 是 | 指定调用的模型常量,示例用 ModelClaudeOpus5_5。 | anthropic.ModelClaudeOpus5_5 |
Messages | 是 | 消息列表,示例通过 NewUserMessage 与 NewTextBlock 构造。 | anthropic.NewUserMessage(anthropic.NewTextBlock("What is a q |
如何确认成功
执行 go run main.go 后正常打印出消息内容块,没有 panic 报错即表示调用成功。
常见问题
Q:运行时提示找不到包或版本不对?
A:确认 go.mod 中依赖为 github.com/anthropics/anthropic-sdk-go/v2,重新执行 README 给出的 go get 命令。
Q:报错信息与鉴权有关怎么办?
A:检查 ANTHROPIC_API_KEY 是否已导出到当前终端会话,或在 NewClient 中用 option.WithAPIKey 显式传入。
Q:是否需要手动解析 JSON 响应?
A:不需要,SDK 提供强类型结构体,直接读取 message.Content 等字段即可。
Q:如何切换使用的模型?
A:修改 MessageNewParams 中的 Model 字段,换成 SDK 提供的其他模型常量。
注意事项
- README 未声明 Go 最低版本,建议使用较新的 Go 稳定版以避免模块解析问题。
- 示例中的 API Key 是占位值,请替换为真实密钥,且不要提交到代码仓库。
- 该库仅提供客户端封装,实际调用仍依赖 Anthropic API 服务可用。
核心亮点
- Anthropic 官方维护,接口与 API 版本同步,兼容性有保障
- 请求响应均为强类型结构体,编译期即可发现字段错误
- 内置流式响应、工具调用、多模态内容块等 Claude 核心特性封装
不足之处
- 仅覆盖 Anthropic 一家模型,多模型切换需另接其他 SDK
- 社区生态和第三方示例相对较少,进阶用法需参考官方文档
适用场景
- 用 Go 构建调用 Claude 的后端聊天服务
- 在 Go 微服务中集成 AI 内容生成能力
- 开发需要流式输出和工具调用的 Go 语言 AI 应用
替代项目
openai-go、langchaingo、go-openai
同类项目推荐
agent-spec
开源
给 AI 代理定验收标准,任务执行不跑偏
`agent-spec` is an AI-native BDD/spec verification tool for task execution.
openai-kotlin
开源
一套 Kotlin 代码,无缝调用 OpenAI、Claude、Gemini 等主流大模型。
OpenAI clients for kotlin multiplatform SDK, supports OpenAI, Anthropic, Azure, Gemi···
SupabaseAuthWithSSR
开源
Next.js 认证加 AI 对话模板,开箱即用省去搭架子
Supabase Auth + AI Stack for Next.js 16 with SSR and React Server Components (RSC), ···
self-dify
开源
从零到一,手把手教你本地部署 Dify 并打造专属 AI 应用
本教程将全面指导你如何快速搭建自己的AI应用环境,从Docker桌面版的安装与配置开始,到本···
MCP-Nest
开源
NestJS 里加个模块,AI 就能调你的接口
A NestJS module to effortlessly create Model Context Protocol (MCP) servers for expo···
ellmer
开源
在 R 里用一套代码调用多家大模型
Call LLM APIs from R
skills
开源
让 AI 代理真正会写 Expo 和 EAS 命令
A collection of AI agent skills for working with Expo projects and Expo Application ···
node-diffusion
开源
像搭积木一样可视化 Stable Diffusion 的生成过程
Organize latent space
tinystruct
开源
用 Java 快速构建 AI 应用,插件化开发,轻量高效。
A lightweight, modular Java application framework for web and CLI development, ···