はじめに
Subako とは何か、どんな要素でできているか。
モデルは単体では、質問に答えたらそこで止まります。その回答を実際の仕事につなげるには、1 回の HTTP リクエストを超えて Run を続ける、接続が切れても再開できるよう会話を保持する、モデルが書いたコードを実行する、本物の Credential で実際のシステムに接続する、といった仕組みが要ります。これがランタイムです。そして、どのチームもプロダクトごとに自前で作ることになりがちな部分でもあります。
Subako は、このランタイムをサービスとして提供します。コンソールで Agent を設定し、動かすモデル、与える指示、使ってよい Tool を決めます。プロダクトはその Agent の Session を開始して Event をストリームで受け取り、プロダクトにしか答えられない呼び出しに応答します。それ以外はすべて Subako が引き受けます。

構成要素
Agent は利用者が作るもので、モデル、与える指示、使ってよいものから成ります。Session は Agent との 1 つの会話です。残りはどれも Agent を役立てるための要素で、いずれも Subako が運用するサービスなので、自分で運用する必要はありません。
Agent
モデル、System prompt、使ってよい Tool の組み合わせです。変更できないバージョンとして公開され、Session は開始から終了まで同じバージョンで動きます。
Session
Agent との 1 つの会話です。Event ログとして保持されるので、ライブで追うことも、接続が切れた後に再開することもできます。
Subako Functions
Rust、TypeScript、Go のほか、WebAssembly にビルドできる言語なら何でも書ける Tool です。Subako が Session のそばで実行し、Session のファイルを扱います。
Sandbox
Linux でしか動かないプログラムのために、Session ごとに用意される Linux マシンです。
Vault
Agent の Tool が使う Credential です。Credential は Subako が呼び出しに付けるので、モデルの目に触れることはありません。
Skill
Agent が必要なときに読む指示とファイルです。Workspace の中でバージョン管理されます。
モデルは、Credit で支払う Subako のモデルのほか、自分の Anthropic や OpenAI のアカウントでも動かせます。Model Provider を参照してください。
Session の流れ
Session が始まる
Member がコンソールから開始するか、バックエンドが API key で作成します。Session はその時点の Agent の最新バージョンで動き、以後もそのバージョンを使い続けます。後から公開したバージョンが使われるのは、それ以降に開始した Session だけです。
誰かが話しかける
メッセージが Session のログに追記されると、Run が始まります。Run は Agent の作業 1 ターン分で、HTTP リクエストの長さに縛られず、作業が終わるまで続きます。
Run が Event を生み出す
Agent が考えたこと、呼び出した Tool とその応答、承認を待ったこと、返信。そのすべてがシーケンス番号付きでログに追記されてから、ストリームで配信されます。Run の情報が接続の中にしか残らない、ということはありません。
Tool はそれぞれの場所で動く
MCP サーバーは、Session の Vault にある Credential を使って呼び出されます。Function は Subako 上で動きます。アプリでしか実行できない Tool には、アプリが応答します。「承認を求める」に設定した Tool は、人が判断するまで待ちます。
Run が終わる、または再接続する
Run は完了、失敗、停止のいずれかで終わります。途中で接続が切れても、最後に受け取ったシーケンス番号を指定して再接続すれば、その続きからログが再送されます。
はじめの一歩
コンソールでは Agent を作れるほか、コードを書く前から Agent と会話できます。コンソールの操作はすべて、プロダクトが呼び出すのと同じ API を通ります。CLI を使えば同じことをターミナルから行えるので、スクリプトや CI に向いています。