Agent Skills by ALSEL
汎用LLM・AI開発⭐ リポ 0品質スコア 65/100

batch-api

Message Batches APIを使用すれば、非同期で大量のClaudeの推論処理を実行できます。最大24時間の遅延と引き換えに、約50%のコスト削減が実現します。オフライン分類、評価実行、コンテンツ生成パイプライン、大規模なRAGインデックス作成などに最適です。

description の原文を見る

Use the Message Batches API for async, high-volume Claude inference. Trades latency (up to 24h) for ~50% lower cost. Best for offline classification, evaluation runs, content generation pipelines, and bulk RAG indexing.

SKILL.md 本文

Message Batches API

1バッチあたり最大100,000件のメッセージを送信でき、結果は24時間以内(小規模バッチの場合は数分程度)に返されます。コストは同等の同期呼び出しの約50%です。

使用場面

  • オフライン分類(数百万個のアイテムにラベルを付ける)
  • 評価ハーネスの実行(複数のモデルバージョンに対して評価スイートを実行)
  • リアルタイムレスポンスが不要なコンテンツ生成パイプライン(ニュースレター記事、商品説明)
  • 大規模なデータセットアノテーションまたはRAGドキュメント要約
  • 過去データをモデル出力で埋め戻す

以下の場合は使用を避けてください:

  • レイテンシが重要(ユーザー向け、エージェントループ)
  • 出力を連鎖させる必要がある(1つの呼び出しの結果が次の呼び出しの入力になる)
  • バッチが非常に小規模(<10呼び出し) — オーケストレーションのオーバーヘッドが見合わない

動作仕組み

バッチはrequestsのリストで、各リクエストは一意のcustom_idと標準的なparamsオブジェクト(同期messages.create呼び出しと同じ形式)を持ちます。APIはバッチIDを返し、完了をポーリングするか結果をリストできます。

POST /v1/messages/batches
[
  { "custom_id": "doc-001", "params": { "model": "claude-sonnet-4-6", ... } },
  { "custom_id": "doc-002", "params": { "model": "claude-sonnet-4-6", ... } }
]

リクエストごとのparamsには、cache_control、ツール、システムプロンプト、thinkingを含められます — これは同期APIと同じインターフェースです。

TypeScript

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

// 1. 作成
const batch = await client.messages.batches.create({
  requests: docs.map((doc, i) => ({
    custom_id: `doc-${i}`,
    params: {
      model: "claude-sonnet-4-6",
      max_tokens: 512,
      system: [{ type: "text", text: SYSTEM_PROMPT, cache_control: { type: "ephemeral" } }],
      messages: [{ role: "user", content: `Summarize:\n${doc}` }],
    },
  })),
});

// 2. ポーリング
let status = batch;
while (status.processing_status !== "ended") {
  await new Promise(r => setTimeout(r, 30_000));
  status = await client.messages.batches.retrieve(batch.id);
}

// 3. 結果をストリーミング(JSONL)
const results = await client.messages.batches.results(batch.id);
for await (const item of results) {
  if (item.result.type === "succeeded") {
    console.log(item.custom_id, item.result.message.content);
  } else {
    console.error(item.custom_id, item.result.error);
  }
}

Python

from anthropic import Anthropic
client = Anthropic()

batch = client.messages.batches.create(
    requests=[
        {
            "custom_id": f"doc-{i}",
            "params": {
                "model": "claude-sonnet-4-6",
                "max_tokens": 512,
                "system": [{"type": "text", "text": SYSTEM_PROMPT, "cache_control": {"type": "ephemeral"}}],
                "messages": [{"role": "user", "content": f"Summarize:\n{doc}"}],
            },
        }
        for i, doc in enumerate(docs)
    ]
)

while batch.processing_status != "ended":
    time.sleep(30)
    batch = client.messages.batches.retrieve(batch.id)

for item in client.messages.batches.results(batch.id):
    if item.result.type == "succeeded":
        print(item.custom_id, item.result.message.content)

よくある落とし穴

  • custom_idはバッチごとに一意である必要があります。 部分的な失敗時の再試行時に重複を避けるため、安定した冪等なIDを使用してください。
  • リクエストごとのエラーはバッチを失敗させません。 常にitem.result.typeを確認してください — succeedederroredexpiredcanceledが考えられます。
  • 24時間のSLA、リアルタイムではありません。 ユーザーフローをこれに基づいて構築しないでください。
  • ストリーミングはありません。 トークンバイトークンの出力ではなく、完全な応答のみ取得できます。
  • レート制限に注意してください。 バッチは実行時に1分あたりのトークン全体の予算に対してカウントされます。
  • キャッシュの相互作用。 バッチリクエスト内のキャッシュ境界は機能しますが、キャッシュは単一の共有キャッシュです — バッチ内の重複でもキャッシュにヒットできます。

SDK リファレンス

  • TypeScript: @anthropic-ai/sdk >= 0.30
  • Python: anthropic >= 0.40
  • Anthropic ドキュメント: Message Batches API

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
FlexNetOS
リポジトリ
FlexNetOS/agent_harness
ライセンス
MIT
最終更新
2026/5/9

Source: https://github.com/FlexNetOS/agent_harness / ライセンス: MIT

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: FlexNetOS · FlexNetOS/agent_harness · ライセンス: MIT