コンテンツにスキップ
Subako Docs
日本語
Esc
移動開く⌘Jプレビュー
このページの内容

SDK

Core API のための TypeScript と Python の client — それぞれが何をカバーし、動かすのに何が要るか。

このドキュメントに出てくる curl 呼び出しはすべて、あなた自身が投げられる HTTP リクエストです。そのまま自分で書くことを妨げるものは、ここには何もありません。SDK は同じ Core API の、面倒な部分がすでに書かれたものです — 最後に見たシーケンス番号から再開する stream、agent があなたのコードにルーティングした call に応答する tool client、そして返ってくる event の型。

SDK は 2 つあり、どちらも同じ API に到達します。

TypeScript

pnpm add @subako-ai/sdk

サーバー側は Node 22 以降が必要です。同じパッケージはブラウザでも動きます。ESM のみで、ランタイム依存はありません。

この SDK は credential を境に API を 2 つに分けます。ひとつはバックエンド用の client で、API key を保持し session を作成します。もうひとつはブラウザ用で、session token を保持し session の中の作業をすべて行います。どちらがどのルートに到達できるかは型が示すため、API key が誤ってページのコードに紛れ込むことはありません。

Session connection はログを読み、stream を開き、その両方を保ち続けます。接続が切れても自動で復帰し、中断したところから再開します — Event のストリーミング にある再接続のロジックは、すでに組み込まれています。レンダラーに渡されるのは、ひとつのイミュータブルなスナップショットです — event、トランスクリプト、そして誰かの応答を待っている approval。

Client tool は、引数を zod あるいは Standard Schema に準拠した任意のライブラリで記述します。

パッケージ

@subako-ai/sdk だけで API 全体をカバーします。残りは、agent が操作するページを作るためのものです。

パッケージ 内容
@subako-ai/sdk Client 本体。Session、ストリーミング、tool、エラー、ページネーション。
@subako-ai/react Session connection の上に載る provider と 4 つの hook。
@subako-ai/tools ページを操作する既製の tool — フォームの入力、送信、画面遷移。
@subako-ai/assistant-ui Session 上で動くチャット、あるいは自前のスレッドのためのランタイム。
@subako-ai/react-hook-form react-hook-form を form tool の仕様として扱うもの。
@subako-ai/react-router React Router を navigate tool の仕様として扱うもの。
@subako-ai/tanstack-router TanStack Router を navigate tool の仕様として扱うもの。

すべてのパッケージは Apache-2.0 で、version は揃えて付けられます。アップグレードはひとまとまりで行ってください。

TypeScript SDK のドキュメント に、クイックスタート、リファレンス、そしてバックエンドがブラウザ向けに token を発行する実例があります。

Python

uv add subako
pip install subako

Python 3.12 以降が必要です。Client は非同期専用で、同期 API はありません。そのためバックエンド、ジョブ、ワーカーに置くものであり、上から下へ読み下すようなスクリプトのためのものではありません。

カバーする範囲は同じです — リソースごとの名前空間、型付きのエラー、list 呼び出しに対するカーソルページネーション、自動で再接続する session connection、そしてあなたのプロセスの関数を session に提供する tool client。二度実行したくない呼び出しには、冪等性キーとレシートが用意されています。

PyPI の subako に、インストール手順、必要要件、そしてバックエンドとフロントエンドを通した実例があります。

どちらも使わない

SDK は便利さのためのものであって、必須の依存ではありません。API は素の HTTP と SSE であり、オペレーターの作業はどちらの SDK もなしに CLI だけで行えます。

このページは役に立ちましたか?