---
title: はじめに
description: Subako は、あなたのプロダクトの AI agent が動くランタイムです。長時間の session、安全なコード実行、credential、skill を、ひとつの API から扱えます。
sidebar:
  order: 1
---

モデル単体にできるのは、質問に答えて止まることだけです。その答えを実際の仕事に変える部分 — ひとつの HTTP リクエストを超えて実行を生かし続けること、接続が切れても再開できるように会話を保持すること、モデルが書いたコードを実行すること、本物の credential で本物のシステムに到達すること — がランタイムです。そしてそれは、どのチームもプロダクトごとに一度は自前で作ることになる部分でもあります。

Subako は、そのランタイムをサービスとして提供します。あなたのプロダクトは **session** を作成し、その event をストリーミングし、自分にしか答えられない tool call に応答します。残りはすべて Subako が引き受けます。

## 構成要素

**[Agent](/ja/concepts/agents)**

モデルとプロンプト、そしてそれに付随する grant。イミュータブルな version
として公開され、session がそこに束縛されます。

**[Session](/ja/concepts/sessions)**

ひとつの作業単位。読み出し・追尾・再開ができる追記専用の event
ログとして表されます。

**[Skill](/ja/concepts/skills)**

知識と手順をまとめたもの。Workspace 内で version 管理され、agent version
に grant されます。

**[Vault](/ja/concepts/vaults)**

Session の tool credential が置かれる場所。使うのは broker
であり、モデルが目にすることはありません。

## Session が動くまで

1. **session を作成する**

    Session は agent を指定し、必要に応じて credential を引き出せる vault
    も指定します。作成時点の agent version に束縛され、束縛し直すことは
    ありません — あとから公開された version が、すでに動いている session
    を変えてしまうことはありません。

2. **入力を追記する**

    ユーザーメッセージが session のログに追記されます。これが **run**
    の開始です。Engine が確保され、コミット済みのログを渡され、その run
    だけのモデルプロキシと tool broker に向けられます。

3. **run が event を生む**

    アシスタントメッセージ、tool call、tool の結果、approval — そのすべてが
    シーケンス番号付きでログに追記され、そのうえでストリーミングされます。run
    に関する情報が接続の中だけに存在することはありません。

4. **クライアントが答えられるものに答える**

    Client は自分が提供する tool を登録し、自分にルーティングされた call
    に応答します。外部サービスに到達する tool は代わりに broker
    を経由し、broker が credential を付与します。

5. **run が終わる — あるいは再接続する**

    Run は `run_completed`、`run_failed`、`run_cancelled` のいずれかで
    終わります。途中で接続が切れた場合は、最後に見たシーケンス番号を添えて
    再接続すれば、そこからログが再生されます。

## CLI と API

Subako には 2 つの接点があります。オペレーターが行うことはすべて `subako` コマンドであり、プロダクトが実行時に行うことはすべて Core API への HTTP 呼び出しです。

Workspace、agent version、skill、vault、API key はいずれも構成情報です。そして、ターミナルで扱える構成情報は、スクリプトや Makefile や CI に載せられる構成情報でもあります — コードと同じようにレビューされ、どの環境でも同じように再現できます。

:::note
本ドキュメントでは、オペレーターの作業はすべて `subako` コマンドとして、実行時の作業はすべて HTTP リクエストとして示します。どちらも同じ Core API に到達します。
:::

## 次に読む

**[クイックスタート](/ja/quickstart)**

Organization の作成から最初の session 実行まで、ひと続きで。

**[Event のストリーミング](/ja/guides/streaming-events)**

Session のログを SSE で追尾し、切断後に再開する。

**[Client tool](/ja/guides/client-tools)**

あなたのアプリだけが実行できる関数を agent に呼ばせる。

**[CLI リファレンス](/ja/cli)**

対象ごとにまとめた全コマンド。
