← inaro.devAI駆動開発 学習ツール

Messages APIの基本

なぜ学ぶか: Claude APIのほぼすべてはMessages API(メッセージのやり取り)でできています。「systemで役割を与え、messagesで会話を積む」という組み立て方が分かると、単発の質問から複数ターンの対話まで、AI機能を自在に設計できます。前に学んだ『AIへの指示』が、ここでコードになります。

messages=会話の履歴

{ role: "user", ... }{ role: "assistant", ... }を交互に並べます。roleが『誰の発言か』を表します。

systemプロンプト=AIの役割・前提

「あなたは丁寧なサポートです」のように、AI全体の振る舞いを決めます。『文脈・制約』をここに書きます。

APIは毎回、履歴を全部送る(ステートレス)

サーバーは会話を覚えていません。続きを話すには、これまでのmessagesを毎回まるごと送ります。

max_tokens=応答の長さの上限

返答の最大トークン数。小さすぎると途中で切れます。長い応答が欲しいときは十分な値にします。

コード例

import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();

// 複数ターンの会話(API はステートレス→履歴を毎回送る)
const message = await client.messages.create({
  model: "claude-opus-4-8",
  max_tokens: 1024,
  // system: AI の役割・前提
  system: "あなたは簡潔に答えるプログラミングの先生です。",
  messages: [
    { role: "user", content: "TypeScript の型注釈って何?" },
    { role: "assistant", content: "変数に「この種類の値が入る」と宣言する印です。" },
    { role: "user", content: "例を1つ、短く教えて。" },
  ],
});

const text = message.content.find((b) => b.type === "text");
console.log(text?.type === "text" ? text.text : "");

3ターン目の質問に答えてもらうため、1〜2ターン目の履歴も一緒に送っています。「毎回まるごと送る」がステートレスAPIの基本です。

ステップ 1 / 2

※ カリキュラムの内容はAIが生成しており、誤りが含まれる場合があります。正確な情報は公式ドキュメント等でご確認ください。