3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Agent SDK(旧 Claude Code SDK)の Node.jsパッケージを使って簡単なお試し

Last updated at Posted at 2025-09-30

はじめに

タイムラインに出てきた、 @minorun365 さんの X のポストで見かけた Claude Agent SDK を軽く試してみた、という話の記事です。

Claude Agent SDK(旧 Claude Code SDK)について

上記でポストされている公式記事(以下の記事)を見てみると、どうやら Claude Code SDK を Claude Agent SDK に名称変更したもののようです。

●Building agents with the Claude Agent SDK \ Anthropic
 https://www.anthropic.com/engineering/building-agents-with-the-claude-agent-sdk

公式記事の以下の部分に、リネームしたという話が書いてあります。

2025-09-30_11-25-13.jpg

公式の「Getting started」

上記の公式の記事を見ていくと、「Getting started」の項目もあります。

2025-09-30_11-33-05.jpg

その項目を読み進めてみると、とりあえず、以下のページを見てお試しを進めるのが良さそうでした。

●Agent SDK overview - Claude Docs
 https://docs.claude.com/en/api/agent-sdk/overview

【旧SDK を使っていた方向け】 マイグレーション用のガイドなど

それと、名称変更前の SDK(Claude Code SDK)を使った開発をしていた方向けには、以下のマイグレーション用のガイドのページもあるようでした。

●Migrate to Claude Agent SDK - Claude Docs
 https://docs.claude.com/en/docs/claude-code/sdk/migration-guide

2025-09-30_11-36-30.jpg

例えば、以下の情報などが掲載されていました。

  • What’s Changed
    • Typescript・JavaScript版のパッケージ名の変更
      • 【旧】 @anthropic-ai/claude-code
      • 【新】 @anthropic-ai/claude-agent-sdk
    • TPython版のパッケージ名の変更
      • 【旧】 claude-code-sdk
      • 【新】 claude-agent-sdk
    • ドキュメントの場所
      • 【旧】 Claude Code docs
      • 【新】 API Guide の Agent SDKセクション

ドキュメントの場所という部分について、新しいドキュメントページは以下になるようでした。

●Agent SDK reference - TypeScript - Claude Docs
 https://docs.claude.com/en/api/agent-sdk/typescript

●Agent SDK reference - Python - Claude Docs
 https://docs.claude.com/en/api/agent-sdk/python

自分は新規で試すので、簡単なお試し用コードを準備してやってみます。

さっそく試してみる

公式ドキュメントの「Agent SDK overview」などを見つつ試してみます。

パッケージのインストール

今回、以下の Node.js を使うことにします。

●@anthropic-ai/claude-agent-sdk - npm
 https://www.npmjs.com/package/@anthropic-ai/claude-agent-sdk

インストール用のコマンドは以下です。

npm i @anthropic-ai/claude-agent-sdk

上記のコマンドにより、以下のとおりバージョン 0.1.0 の SDK がインストールされました。

2025-09-30_11-43-09.jpg

APIキーの設定

それと、APIキーの設定もやっておきます。

ANTHROPIC_API_KEY という名前の環境変数に、Claude の APIキーを設定しました。
(APIキーは、以下の記事を書いた時に作っていたものを使いました)

●個人利用が可能になってたことに今さら気がついた Anthropic/Claude の API を試す: Tool use (function calling) - Qiita
 https://qiita.com/youtoy/items/3c9b2ee8444437744202

お試し用のコード1

とりあえず、動作確認用くらいの内容で、コードを用意してみます。

import { query } from "@anthropic-ai/claude-agent-sdk";

(async () => {
  const stream = query({
    prompt:
      "Node.jsのプログラムでフィボナッチ数列を出力するプログラムを書いて、現在の作業ディレクトリにoutput.mjsという名前で保存してください。ファイルパスは相対パスで ./output.mjs としてください。",
    options: {
      systemPrompt:
        // "",
      allowedTools: ["Write"],
      cwd: process.cwd(),
    },
  });

  for await (const message of stream) {
    // 実行途中の出力をログ表示
    console.log(message);
  }

  console.log("\n処理を完了しました。");
})();

上記のコードでは、公式ドキュメントに書かれた、以下の query() を使っています。

2025-09-30_13-09-46.jpg

実行結果1

上記を実行した結果、以下の内容のファイルが生成されました。

/**
 * フィボナッチ数列を生成する関数
 * @param {number} n - 生成する項数
 * @returns {number[]} フィボナッチ数列の配列
 */
function fibonacci(n) {
  if (n <= 0) return [];
  if (n === 1) return [0];

  const sequence = [0, 1];

  for (let i = 2; i < n; i++) {
    sequence.push(sequence[i - 1] + sequence[i - 2]);
  }

  return sequence;
}

// フィボナッチ数列を10項まで生成して出力
const count = 10;
const result = fibonacci(count);

console.log(`フィボナッチ数列(${count}項):`);
console.log(result.join(', '));

// 個別に出力
console.log('\n各項の詳細:');
result.forEach((num, index) => {
  console.log(`F(${index}) = ${num}`);
});

以下は、生成されたコードの実行結果で、問題なく動作しています。

2025-09-30_12-02-53.jpg

お試し用のコード2

もう少し試してみます。連続した処理を行うような、以下の内容で試しました。

先ほど、自分が書いたコード・今回書いたコードと、Claude Agent SDK の処理で生成されたコードなどを対象に README.md などが作られるというものです。

import { query } from "@anthropic-ai/claude-agent-sdk";

(async () => {
  console.log("処理を開始します...\n");

  const stream1 = query({
    prompt: `
      1. このディレクトリ内の.jsと.mjsファイルをすべて検索
      2. 各ファイルの先頭コメントや主要な関数を読み取り
      3. プロジェクト構造を分析してREADME.mdを生成
      4. README.mdには以下を含める:
         - プロジェクト概要
         - ファイル一覧と各ファイルの説明
         - 使用方法
    `,
    options: {
      //   systemPrompt: "",
      allowedTools: ["Glob", "Read", "Write"],
      cwd: process.cwd(),
    },
  });

  for await (const message of stream1) {
    if (message.type === "result") {
      console.log("README.md生成完了\n");
    }
  }

  const stream2 = query({
    prompt: `
      README.mdの内容を参考に、記載内容の概要を作成し、./output.txtというファイル名で以下を含めて保存
        - プロジェクト名と一行説明
        - 主要な特徴
        - クイックスタートコマンド
    `,
    options: {
      //   systemPrompt: "",
      allowedTools: ["Read", "Write"],
      cwd: process.cwd(),
    },
  });

  for await (const message of stream2) {
    if (message.type === "result") {
      console.log("テキストファイルを作成しました\n");
    }
  }
})();

実行結果2

上記を実行した結果は、以下のとおりです。ターミナル上は、問題なく処理を終えられたという内容が出ました。

2025-09-30_12-38-31.jpg

あとは、生成されたファイル 2つの内容を確認していきます。

生成された README.md をプレビュー表示させてみると、以下のような内容ができていました。

1-1_2025-09-30_12-40-24.jpg

1-2_2025-09-30_12-40-35.jpg

1-3_2025-09-30_12-40-41.jpg

1−4_2025-09-30_12-40-52.jpg

良い感じに、フォルダ内のファイルの説明を作ってくれたようです。

さらに、output.txt を見てみると、は以下のような内容になっていました。

2-1_2025-09-30_12-42-56.jpg

Markdown形式のようなので、プレビュー表示も試してみました。

2025-09-30_13-18-58.jpg

先ほどは、わりと分量がある内容でしたが、それをコンパクトにまとめてくれています。

おわりに

とりあえず 2パターン試してみました。今回はシンプルなものをやってみただけ、というところなので、さらにお試しをやっていければと思います。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?