> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# 手順

## 概要

手順には、特定の1つのタスクに対する指示を含めます。各手順には、適用されるタイミングを説明するトリガーと、実行内容を説明するコンテンツがあります。会話がトリガーに一致すると、エージェントは手順を読み込みます。

エージェントが多くの異なるタスクを処理する必要がある場合は、手順を使用します。たとえばカスタマーサポートエージェントでは、返金、本人確認、アカウント復旧、接続トラブルシューティングなど、リクエストの種類ごとに手順を作成できます。

![エージェントダッシュボードの
手順タブ](/docs/_fern-img/38b190b7a08cb9e628da309a86c5e4b315eabccf238a41d5d3a6c2646aba11af.webp)

## 手順の種類

手順には2種類あります。

* **[自由形式の手順](/docs/ja/eleven-agents/customization/procedures/free-form-procedures)** は、エージェントが解釈し、状況に合わせて調整する自然言語の指示です。
* **[構造化された手順](/docs/ja/eleven-agents/customization/procedures/structured-procedures)** は、エージェントが毎回同じ方法で実行する、型付きステップの順序付きリストです。

同じエージェントで両方の種類を使用できます。種類にかかわらず、エージェントはトリガーに基づいて関連する手順を選択します。

> **Tip**
>
> 手順は互いに呼び出せます。自由形式の手順は[インライン 参照](/docs/ja/eleven-agents/customization/procedures/free-form-procedures#inline-references)で別の手順を呼び出し、
> 構造化された手順は[サブ手順](/docs/ja/eleven-agents/customization/procedures/structured-procedures#sub-procedure)
> ステップで別の構造化された手順を呼び出します。よくあるパターンとして、自由形式の手順で柔軟な対応を行い、毎回同じ方法で実行する必要がある部分を構造化された手順に引き渡します。

エージェントには、手順、[ワークフロー](/docs/ja/eleven-agents/customization/agent-workflows)、またはその両方を設定できます。両方を設定した場合、すべての手順をワークフロー内のすべての地点から利用できます。手順を特定のワークフローノードに限定することはできません。多くのエージェントはどちらか一方のアプローチを中心に構築されますが、両者は組み合わせて使用できます。

## 手順を使用するタイミング

すべてのエージェントには[システムプロンプト](/docs/ja/eleven-agents/best-practices/prompting-guide)があります。手順と[ワークフロー](/docs/ja/eleven-agents/customization/agent-workflows)は、その上に構造を追加する2つの方法であり、エージェントは両方を使用できます。会話の変動幅に応じて、開始点を選んでください。

| 要件                          | 使用するもの                                                                            | 理由                                                                                |
| --------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| シンプルな概念実証エージェント             | システムプロンプトのみ                                                                       | セットアップと反復が最も速い方法です。ただし、エージェントの対象範囲が広がるにつれて、1つのプロンプトは扱いにくくなります。                    |
| エージェントが表現や順序を調整できるタスク       | [自由形式の手順](/docs/ja/eleven-agents/customization/procedures/free-form-procedures)   | 会話全体を1つのLLMのコンテキストに保持するため、エージェントは表現や順序を調整し、予期しない展開にも対応できます。コンテキストウィンドウをより多く使用します。 |
| 毎回同じ方法でステップを実行する必要があるタスク    | [構造化された手順](/docs/ja/eleven-agents/customization/procedures/structured-procedures) | 設定した順序で、毎回同じ方法で各ステップを実行します。短いステップリストとして作成できます。                                    |
| 複雑な分岐やエッジケースを完全に制御する必要がある場合 | [ワークフロー](/docs/ja/eleven-agents/customization/agent-workflows)                    | 自分で設計・接続するサブエージェントのグラフとして実行され、分岐と各ステップで使用するモデルを完全に制御できます。                         |

自由形式の手順がデフォルトの選択肢です。最もすばやく作成でき、ドキュメントのように読めるため、技術職以外のチームでも管理できます。また、会話が想定外の方向に進んだ場合でもエージェントは立て直せます。認証、エスカレーション、金融取引のように、ステップのスキップや順序変更のコストが高い場合は、構造化された手順を使用してください。どちらの手順タイプにもないルーティングロジックやステップごとのモデル制御が必要な場合は、ワークフローを使用してください。

## 手順を管理する

手順の作成にはダッシュボードの使用をおすすめします。手順をプログラムで管理したり、デプロイツールに統合したりするには、CLIまたはAPIを使用します。

#### ダッシュボードで作成

[ダッシュボード](https://elevenlabs.io/app/agents)でエージェントを開き、**手順** を選択します。
**+** を使用して、自由形式または構造化された手順を作成します。同じメニューから手順をフォルダにグループ化することもできます。
作成方法については、[自由形式の手順](/docs/ja/eleven-agents/customization/procedures/free-form-procedures)
および
[構造化された手順](/docs/ja/eleven-agents/customization/procedures/structured-procedures)
を参照してください。

#### CLIで管理

[ElevenLabs CLI](/docs/ja/eleven-agents/operate/cli)では、
`elevenlabs agents procedures` コマンドグループで手順を管理します。まず、環境に `ELEVENLABS_API_KEY` を設定してください。

```bash
# List the procedures on a branch
elevenlabs agents procedures list \
  --agent-id agent_7101k5zvyjhmfg983brhmhkd98n6 \
  --branch-id agtbranch_0901k4aafjxxfxt93gd841r7tv5t

# Create a procedure
elevenlabs agents procedures create \
  --agent-id agent_7101k5zvyjhmfg983brhmhkd98n6 \
  --branch-id agtbranch_0901k4aafjxxfxt93gd841r7tv5t \
  --json '{"name": "Refund request", "type": "free_form", "trigger": "When the user asks to refund an order", "content": "Ask for the order ID."}'

# Publish every changed procedure draft on the branch
elevenlabs agents update \
  --agent-id agent_7101k5zvyjhmfg983brhmhkd98n6 \
  --branch-id agtbranch_0901k4aafjxxfxt93gd841r7tv5t \
  --json '{"version_description": "Publish refund procedure"}'
```

`elevenlabs agents procedures drafts` を使用してドラフトの読み取り、更新、破棄を行い、
`elevenlabs agents procedures remove` を使用して削除をステージングします。任意のコマンドに `--schema` を追加すると、入出力の仕様を確認できます。

#### APIで管理

手順のドラフトは、[エージェントのバージョニング ライフサイクル](/docs/ja/eleven-agents/operate/versioning#drafts)に従います。ドラフトはユーザーごと、ブランチごとに作成されるため、各チームメンバーは各ブランチで個別のドラフトを持ちます。公開すると、そのブランチの新しい不変のエージェントバージョンに手順の変更が保存されます。他のユーザーのドラフトには影響しません。

エージェント設定のレスポンスには、ID、名前、タイプ、トリガーなどの手順メタデータが含まれますが、手順本体やドラフトは含まれません。完全なコンテンツを読み取り、編集するには手順エンドポイントを使用します。すべての手順エンドポイントは、
`/v1/convai/agents/{agent_id}/branches/{branch_id}` の配下にあります。

### ドラフトを作成または更新する

`POST /procedures` で手順を作成します。
`PATCH /procedures/{procedure_id}/draft` で更新します。その際、すべてのリクエストに `name`、`content`、`type`、`trigger` を含めます。
`type` は、手順の既存のタイプと一致している必要があります。

`GET /procedures/{procedure_id}/draft` を使用して、未公開の変更を読み取ります。ドラフトがない場合、エンドポイントは公開済みバージョンを返します。

### 変更を公開する

[エージェントを更新](/docs/ja/api-reference/agents/update)で新しいエージェントバージョンを作成し、ドラフトを公開します。1回のリクエストで、両方の手順タイプについて、そのブランチで変更されたすべての手順ドラフトを公開します。ブランチに構造化された手順がある場合、公開時に検証とコンパイルが行われます（ステップをエージェントが実行する形式に変換します）。エラーがあれば返されます。検証に合格すると、エージェント設定が公開されます。自分でコンパイルする必要はありません。

タイプ固有のステップについては、[自由形式の手順](/docs/ja/eleven-agents/customization/procedures/free-form-procedures#manage-a-free-form-procedure)
または
[構造化された手順](/docs/ja/eleven-agents/customization/procedures/structured-procedures#manage-a-structured-procedure)
を参照してください。

### 手順を破棄または削除する

`DELETE /procedures/{procedure_id}/draft` は未公開の編集を破棄し、公開済みバージョンを復元します。手順が一度も公開されていない場合は、これにより削除されます。

`DELETE /procedures/{procedure_id}` は、公開済み手順の削除をステージングします。同じフローで変更を公開してください。

完全なエンドポイントスキーマについては、[手順APIリファレンス](/docs/ja/api-reference/agents/procedures/)を参照してください。

## 制限事項

* 手順のコンテンツは50,000文字までです。
* エージェントは、最も最近開始された5つの手順をコンテキスト内に保持します。1回の会話でそれ以上開始された場合、最も古い自由形式の手順のコンテンツ、インラインツール、ナレッジベースドキュメントがプロンプトから除外されます。手順の対象を絞り、同時にアクティブになる数を減らすためにサブ手順を使用してください。
* 手順のタイプは、作成後に変更できません。自由形式と構造化の間で変換するには、新しい手順を作成し、その手順への参照を更新してください。
* 手順は1つのエージェントに属します。エージェント間で共有したり、ワークスペースレベルのリソースとして保存したりすることはできません。
* エージェントを複製すると、手順は共有されずコピーされます。コピーには新しい手順IDが付与されるため、複製したエージェント内の参照では新しいIDを使用する必要があります。
* 手順を特定のワークフローノードに限定することはできません。エージェントに両方がある場合、すべての手順をすべてのノードから利用できます。
* 構造化された手順からナレッジベースドキュメントを参照することはできません。