RC

roasbeef/claude-agent-sdk-go

Developer tools

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る

21 stars 11 forks 品質 73 トレンド 30MIT

クロードコード用のSDK - ツール使用、MCP統合、ストリーミングでAIエージェントを構築

概要

Claudeのエージェント機能のPure Go SDK。 claude-agent-sdk-go は、Claude コードのネイティブ Go インターフェイスを、CLI をサブプロセスとして管理します。 Claudeのツールの使用、拡張思考、セッション管理、およびホックシステムにアクセスできる、stdin/stdout上のライン区切りJSONを介して通信します。 このリポジトリは、公式のTypeScript Agent SDKをv0.3.296キャッチアップ作業で追跡し、APIの形状が異なるGo idiomsを使用します。 Query() または Stream() を呼び出すと、SDK は CLI をスポーンし、プロンプトを送信し、メッセージが届くように収まります。 MCP ツールでは、フローには双方向制御メッセージが含まれます。 要件: - 行く 1.23 + (iter.Seqのために) - クロードコードCL:npmインストール -g @anthropic-ai /クラスドコード - ANTHROPIC API KEYまたはCLAUDE CODE OAUTH TOKENあなたの環境で 設定は、設定ファイルパスまたはインラインJSONとして供給できます。 会話中にClaudeが使用できるツールを定義します。 MCP を見る 型応答、バイナリサーバなどのツール.

概要(AI 翻訳)

Claudeのエージェント機能のPure Go SDK。

概要

claude-agent-sdk-goは、管理によるClaudeコードへのネイティブGoインターフェイスを提供します CLI はサブプロセスです。 ライン区切りのJSONを介して通信 stdin/stdout は、Claude のツール使用、拡張思考、 セッション管理、およびホック システム。

このリポジトリは、公式のTypeScript Agent SDKの表面を追跡します。 v0.3.310 は、API の形状が異なる Go の idioms を使用して、作業をキャッチアップします。

[Query() または Stream()]] を呼び出すと、SDK は CLI をスポーンし、送信する プロンプトでメッセージが届きます。 MCP ツールのフローには、 二方向制御メッセージ:

インストール

条件:

  • 行きます 1.23+ ([[T2]のために)
  • クロードコード CLI: [npm install -g @anthropic-ai/claude-code
  • 環境の[ANTHROPIC_API_KEYまたは[CLAUDE_CODE_OAUTH_TOKEN]

クイックスタート

ストリーミング

マルチターンの会話の場合:

設定

設定は、設定ファイルパスまたはインラインJSONとして供給できます。

カスタムツール(MCP)

会話中にClaudeが使用できるツールを定義します。

MCP を見る 型応答、バイナリサーバなどのツール

ラルフ・ウィグム・ループ

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。

README

以下は原文 README の抜粋です。原文を見る。

claude-agent-sdk-go

A pure Go SDK for Claude’s agentic capabilities.

Overview

claude-agent-sdk-go provides a native Go interface to Claude Code by managing the CLI as a subprocess. It communicates via line-delimited JSON over stdin/stdout, giving you access to Claude’s tool use, extended thinking, session management, and hook system.

This repository tracks the official TypeScript Agent SDK surface through the v0.3.316 catchup work, using Go idioms where the API shape differs.

flowchart TB
    subgraph SDK[Go SDK]
        Client --> Protocol --> Transport
        MCP[SDK MCP] |tool calls| Protocol
    end
    Transport |stream-json| CLI[Claude CLI]
    CLI  API[Claude API]

When you call Query() or Stream(), the SDK spawns the CLI, sends your prompt, and yields messages as they arrive. For MCP tools, the flow includes bidirectional control messages:

sequenceDiagram
    participant App as Go App
    participant CLI as Claude CLI
    participant API as Claude API

    App->>CLI: prompt (stdin)
    CLI->>API: API request
    API-->>CLI: response stream
    CLI-->>App: messages (stdout)
    CLI->>App: mcp_message (tool call)
    App-->>CLI: mcp_response
    CLI-->>App: result

Installation

go get github.com/roasbeef/claude-agent-sdk-go

Requirements:

  • Go 1.23+ (for iter.Seq)
  • Claude Code CLI: npm install -g @anthropic-ai/claude-code
  • ANTHROPIC_API_KEY or CLAUDE_CODE_OAUTH_TOKEN in your environment

Quick Start

package main

import (
    "context"
    "fmt"
    "log"

    "github.com/roasbeef/claude-agent-sdk-go"
)

func main() {
    client, err := claudeagent.NewClient(
        claudeagent.WithSystemPrompt("You are a helpful assistant."),
    )
    if err != nil {
        log.Fatal(err)
    }
    defer client.Close()

    ctx := context.Background()
    for msg := range client.Query(ctx, "What is the capital of France?") {
        switch m := msg.(type) {
        case claudeagent.AssistantMessage:
            fmt.Println(m.ContentText())
        case claudeagent.ResultMessage:
            fmt.Printf("Cost: $%.4f\n", m.TotalCostUSD)
        }
    }
}

Streaming

For multi-turn conversations:

stream, _ := client.Stream(ctx)
defer stream.Close()

stream.Send(ctx, "Let's plan a trip to Japan.")

for msg := range stream.Messages() {
    if m, ok := msg.(claudeagent.AssistantMessage); ok {
        fmt.Println(m.ContentText())
    }
}

// Continue the conversation
stream.Send(ctx, "What about Kyoto?")

Configuration

client, _ := claudeagent.NewClient(
    claudeagent.WithModel("claude-sonnet-4-5-20250929"),
    claudeagent.WithSystemPrompt("You are an expert Go developer."),
    claudeagent.WithPermissionMode(claudeagent.PermissionModeAcceptEdits),
    claudeagent.WithMaxTurns(20),
)
GitHub で README 全文を見る

インストール

This server does not publish a one-line install command.

Open the repository installation guide MCP 初心者?mcpskill.org のガイドから始めましょう →