---
title: Agent と version
description: Agent は名前にすぎません。モデル、プロンプト、grant を持つのは version です。Session は version に束縛され、それを保ち続けます。
sidebar:
  order: 2
---

**Agent** は設定を持ちません。Workspace 内の名前であり、session が指し示すためのアイデンティティです。振る舞いを決めるものはすべて **agent version** にあります。

```bash
subako agent create --name support-triage
subako agent list
subako agent show <agent-id>
```

## Version はイミュータブル

公開は何かを書き換える操作ではありません。新しい version を追加するだけで、新しい session が束縛するのは最新の live version です。

```bash
subako agent publish <agent-id> --config agent.json --model-provider <provider-id>
subako agent versions <agent-id>
```

Session は **作成時に一度だけ** version に束縛し、束縛し直すことはありません。会話の途中で公開された version が、すでに動いている session を変えることはなく — だからこそ、営業時間中の公開が安全なのです。

Version は永続します。新しい session を別の version に移すには、より新しい version を公開してください。新しい session が束縛する version は `agent versions` が示します。

Agent の削除は、すべてか無かです。

```bash
subako agent delete <agent-id>
```

これは agent とそのすべての version、そしてそれらを動かしたすべての session を削除します。請求履歴は保持されますが、トランスクリプトは残りません。

## 設定ドキュメント

その形はサーバーが決めます。`subako agent config-example` は、あなたの provider が話す format で、公開できる最小のものを表示します。

```json agent.json
{
  "system_prompt": "You are a helpful assistant.",
  "model": {
    "format": "anthropic",
    "model": "your-model-id",
    "max_tokens": 8192
  }
}
```

| Prop | Type | Default | Description |
| - | - | - | - |
| `system_prompt?` | `string` | - | モデルが従う恒常的な指示。 |
| `model` | `object` | - | この version がどのモデルで動くか。format（anthropic または openai_responses）、モデル id、それに伴う上限値。 |
| `skills?` | `array` | - | この version が grant する skill。Grant は version 番号を固定することも、skill の最新に追随させることもできます。 |
| `mcp?` | `array` | - | この version が呼び出せる MCP サーバー。Broker が呼び出し時に session の vault から credential を付与します。 |

Provider はファイルではなく、公開時の `--model-provider` で指定します。その format は、設定の model が話す format と一致していなければなりません — `anthropic` の設定を `openai_responses` の provider に対して公開しようとすると拒否されます。

:::warning
モデル id 自体は公開時には検証されません。タイポはそのまま公開され、session がそれに対して動いたときに失敗します。
:::

## 何を grant するか

Grant は agent version の権限であり、積み重なります。Skill は agent に何かのやり方を伝え、MCP サーバーはそれを行う場所を与え、vault は — version ごとではなく session ごとに指定されて — broker がどの credential を使うかを決めます。

この分離があるからこそ、ひとつの公開済み version が、ある顧客には本番の vault で、別の顧客にはサンドボックスの vault で動けます。その間に再公開は要りません。
