SDK
TypeScript と Python の SDK。
このドキュメントに出てくる curl の呼び出しは、どれも自分で送れる普通の HTTP リクエストです。SDK は同じ Core API を、手間のかかる部分を実装済みの形で提供します。最後に受け取ったシーケンス番号から再開するストリーム、Agent が皆さんのコードに回した Tool の呼び出しに応答するクライアント、すべての Event の型がそろっています。
TypeScript
@subako-ai/sdk のほか、React バインディングや、Agent が操作するページ向けの既製の Tool があります。
Python
subako: バックエンド、ジョブ、ワーカー向けの非同期クライアントです。
TypeScript
npm install @subako-ai/sdk
サーバーでは Node 22 以降が必要です。同じパッケージがブラウザーでも動作します。ESM 専用で、ランタイムの依存関係はありません。Subako のコンソールもこの SDK で作られています。
クライアントは、使う Credential によって 2 つに分かれています。API key を持って Session を作成するバックエンド用のクライアントと、Session token を持って Session 内の操作をすべて行うブラウザー用のクライアントです。それぞれが呼び出せるルートは型で決まっているため、API key がうっかりページのコードに入り込むことはありません。
Session の接続は、ログを読み込んでストリームを開き、その両方を最新に保ちます。接続が切れても自動で再接続し、中断したところから再開します。レンダラーには 1 つのイミュータブルなスナップショットが渡され、そこに Event、トランスクリプト、対応を待っている承認やフォームがまとまっています。
| パッケージ | 内容 |
|---|---|
@subako-ai/sdk |
クライアント本体。Session、ストリーミング、Tool、エラー、ページネーション。 |
@subako-ai/react |
Session の接続を扱う Provider と hook。 |
@subako-ai/tools |
ページを操作する既製の Tool。フォームの入力と送信、ページ遷移。 |
@subako-ai/assistant-ui |
Session の上でそのまま動くチャット、または独自のスレッドに組み込むためのランタイム。 |
@subako-ai/react-hook-form |
react-hook-form をフォーム Tool の仕様として使います。 |
@subako-ai/react-router |
React Router をナビゲーション Tool の仕様として使います。 |
@subako-ai/tanstack-router |
TanStack Router をナビゲーション Tool の仕様として使います。 |
すべてのパッケージは Apache-2.0 ライセンスで、バージョンはそろえて管理されています。TypeScript SDK のドキュメント には、クイックスタート、リファレンス、バックエンドがブラウザー向けにトークンを発行する実例があります。
Python
uv add subakopip install subakoPython 3.12 以降が必要です。クライアントは非同期専用で、バックエンド、ジョブ、ワーカーでの利用を想定しています。
機能の範囲は TypeScript SDK と同じです。リソースごとの名前空間、型付きのエラー、カーソルによるページネーション、自動で再接続する Session の接続、プロセス内の関数を Tool として Session に提供する Tool クライアントがあります。二重に実行したくない呼び出しは冪等性キーで保護されます。PyPI の subako に、インストール方法と、バックエンドとフロントエンドを組み合わせた例があります。