> ## Documentation Index
> Fetch the complete documentation index at: https://ai-kb.automationanywhere.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 出力

> エージェントの応答を一貫したフォーマットで構造化するためのJSONスキーマを定義する

構造化出力により、AIエージェントが応答時に従うべきJSONスキーマを定義できます。これにより、他のシステム、API、自動化ワークフローと容易に統合できる一貫性のある機械可読な応答が保証されます。

## 概要

構造化出力により以下が可能になります：

* **応答フォーマットの定義** - エージェント応答のためのカスタムJSONスキーマを作成
* **一貫性の確保** - エージェントが常に同じ構造でデータを返すことを保証
* **統合の有効化** - 応答を他のシステムが容易に消費できるようにする
* **パースの改善** - 複雑なテキストパースの必要性を排除

## 仕組み

### 1. JSONスキーマの作成

エージェントに従わせたい構造を定義します：

* **フィールド** - 必須およびオプションのフィールドを指定
* **データ型** - 型を定義（string、number、boolean、array、object）
* **ネストされた構造** - 複雑なネストされたJSONオブジェクトを作成
* **例** - 明確さのために例の値を提供

### 2. エージェントに割り当て

エージェントの構造化出力スキーマを選択します：

* **一般タブ** - 利用可能な構造化出力から選択
* **エージェント固有** - 各エージェントが異なるスキーマを使用可能
* **動的選択** - 必要に応じてスキーマを変更

### 3. エージェントの応答

有効にすると、エージェントは以下を行います：

* **JSONとしてフォーマット** - 指定されたJSON構造で応答を返す
* **スキーマに準拠** - すべての必須フィールドを含む
* **構造を維持** - ネストされたオブジェクトと配列を保持
* **フォーマットを検証** - 応答がスキーマと一致することを確認

## 構造化出力の作成

### ステップ1：出力タブにアクセス

1. サイドバーの**エージェント**に移動します
2. エージェントを選択または新しいものを作成します
3. **編集**をクリックしてエージェントビルダーを開きます
4. **出力**タブに移動します

### ステップ2：新しいスキーマを作成

1. **新規作成**ボタンをクリックします
2. 構造化出力に説明的なタイトルを入力します
3. JSONビルダーを使用してスキーマを定義します

### ステップ3：スキーマ構造を定義

ビジュアルJSONビルダーを使用してスキーマを作成します：

#### 基本構造

```json theme={null}
{
  "status": "string",
  "message": "string",
  "data": {
    "result": "string"
  }
}
```

#### 配列付き

```json theme={null}
{
  "items": [
    {
      "id": "string",
      "name": "string",
      "value": "number"
    }
  ],
  "total": "number"
}
```

#### 複雑なネスト構造

```json theme={null}
{
  "response": {
    "summary": "string",
    "details": {
      "category": "string",
      "subcategory": "string",
      "metadata": {
        "created_at": "string",
        "updated_at": "string"
      }
    },
    "items": [
      {
        "id": "string",
        "properties": {
          "name": "string",
          "value": "number"
        }
      }
    ]
  }
}
```

### ステップ4：スキーマを保存

1. **保存**をクリックして構造化出力を保存します
2. スキーマがエージェントで使用可能になりました

## エージェントへの割り当て

### 方法1：一般タブから

1. 設定するエージェントを開きます
2. **一般**タブに移動します
3. **応答フォーマット**セクションを見つけます
4. ドロップダウンから構造化出力を選択します
5. エージェントを保存します

### 方法2：出力タブから

1. 設定するエージェントを開きます
2. **出力**タブに移動します
3. リストから構造化出力を選択します
4. エージェントはすべての応答にこのスキーマを使用します

## ユースケース

### API統合

**シナリオ：** エージェントの応答をAPIが消費できるフォーマットで必要とする場合。

**スキーマ例：**

```json theme={null}
{
  "status": "success",
  "code": 200,
  "data": {
    "result": "string",
    "timestamp": "string"
  }
}
```

**エージェントの応答：**

```json theme={null}
{
  "status": "success",
  "code": 200,
  "data": {
    "result": "Task completed successfully",
    "timestamp": "2024-01-15T10:30:00Z"
  }
}
```

### データ抽出

**シナリオ：** 非構造化テキストから構造化データを抽出する場合。

**スキーマ例：**

```json theme={null}
{
  "entities": [
    {
      "type": "string",
      "value": "string",
      "confidence": "number"
    }
  ],
  "summary": "string"
}
```

**エージェントの応答：**

```json theme={null}
{
  "entities": [
    {
      "type": "person",
      "value": "John Doe",
      "confidence": 0.95
    },
    {
      "type": "company",
      "value": "TechCorp",
      "confidence": 0.88
    }
  ],
  "summary": "Extracted 2 entities from the text"
}
```

### フォーマット付きレポート

**シナリオ：** 一貫したレポート構造を生成する場合。

**スキーマ例：**

```json theme={null}
{
  "report": {
    "title": "string",
    "date": "string",
    "sections": [
      {
        "heading": "string",
        "content": "string",
        "metrics": {
          "value": "number",
          "unit": "string"
        }
      }
    ],
    "summary": "string"
  }
}
```

### ワークフロー自動化

**シナリオ：** 自動ワークフロー処理のために応答を構造化する場合。

**スキーマ例：**

```json theme={null}
{
  "action": "string",
  "parameters": {
    "key": "value"
  },
  "next_step": "string",
  "metadata": {
    "workflow_id": "string",
    "step_number": "number"
  }
}
```

## ベストプラクティス

### スキーマ設計

1. **具体的に** - すべてのフィールドとその型を明確に定義
2. **例を使用** - スキーマに例の値を含める
3. **シンプルに保つ** - 可能な限り過度に複雑なネスト構造は避ける
4. **フィールドを文書化** - 説明的なフィールド名を使用
5. **オプションフィールドを考慮** - 適切な場合はフィールドをオプションとしてマーク

### フィールド命名

* **明確な名前を使用** - `un`の代わりに`user_name`
* **一貫性を保つ** - 命名規則に従う（snake\_case、camelCase）
* **略語を避ける** - 可能な限り完全な単語を使用
* **関連フィールドをグループ化** - 関連データにネストされたオブジェクトを使用

### スキーマ構造

* **可能な限りフラットに** - シンプルなデータにはフラット構造を優先
* **整理のためにネスト** - 複雑な関連データにはネストを使用
* **リストには配列** - 類似アイテムのコレクションには配列を使用
* **グループにはオブジェクト** - 関連フィールドをグループ化するためにオブジェクトを使用

### テスト

1. **実際のクエリでテスト** - スキーマが実際のユーザーケースで機能することを確認
2. **すべてのフィールドを確認** - すべての必須フィールドが入力されていることを確認
3. **型を検証** - データ型がスキーマと一致することを確認
4. **エッジケースを処理** - 異常または欠落したデータでテスト

## 構造化出力の管理

### すべてのスキーマの表示

**出力**タブで以下ができます：

* **全スキーマを一覧** - プロジェクトのすべての構造化出力を表示
* **検索** - 名前でスキーマを検索
* **ソート** - 作成日またはタイトルでソート
* **詳細を表示** - スキーマ構造とメタデータを表示

### スキーマの編集

1. リストでスキーマをクリック
2. ビジュアルビルダーを使用してJSON構造を変更
3. **保存**をクリックしてスキーマを更新
4. 変更はこのスキーマを使用しているすべてのエージェントに適用

### スキーマの削除

1. リストでスキーマを見つける
2. **削除**アイコンをクリック
3. 削除を確認
4. このスキーマを使用していたエージェントは通常のテキスト応答に戻ります

<Warning>
  構造化出力を削除すると、現在それを使用しているすべてのエージェントに影響します。
  削除する前にこれらのエージェントを更新してください。
</Warning>

## 応答フォーマット

### 通常の応答（デフォルト）

構造化出力が選択されていない場合、エージェントはフリーフォームテキストを返します：

```
The user requested information about project status.
The project is currently in progress with 75% completion.
All milestones are on track.
```

### 構造化応答

構造化出力が選択されている場合、エージェントはJSONを返します：

```json theme={null}
{
  "status": "in_progress",
  "completion_percentage": 75,
  "milestones": [
    {
      "name": "Phase 1",
      "status": "completed"
    },
    {
      "name": "Phase 2",
      "status": "in_progress"
    }
  ],
  "on_track": true
}
```

## システムプロンプトとの統合

構造化出力がエージェントに割り当てられると：

1. **スキーマが含まれる** - JSONスキーマがシステムプロンプトに追加
2. **フォーマット指示** - エージェントが明示的なフォーマット指示を受け取る
3. **例が提供される** - スキーマがフォーマットの例として機能
4. **検証** - エージェントが正確な構造に一致しようとする

## 高度な機能

### 動的フィールド値

スキーマには応答に適応するフィールドを含めることができます：

```json theme={null}
{
  "response_type": "string",
  "content": {
    "text": "string",
    "metadata": {}
  }
}
```

### 条件付き構造

異なる応答タイプに異なるスキーマを使用します：

```json theme={null}
{
  "type": "success|error|warning",
  "message": "string",
  "data": {} // Structure varies by type
}
```

### 配列配列応答

応複数アイテムを処理します：

```json theme={null}
{
  "count": "number",
  "items": [
    {
      "id": "string",
      "data": {}
    }
  ]
}
```

## トラブルシューティング

### エージェントがスキーマに従わない

**考えられる原因：**

* スキーマがエージェントに割り当てられていない
* スキーマ構造が複雑すぎる
* エージェントにより明確な指示が必要

**解決策：**

* 一般タブで構造化出力が選択されていることを確認
* スキーマ構造を簡素化
* より明示的なフィールド説明を追加
* まずシンプルなクエリでテスト

### 無無効なJSON応答

**考えられる原因：**

* スキーマに構文エラーがある
* エージェントが複雑な構造で苦戦している
* 必須フィールドが不足

**解決策：**

* JSONビルダーでスキーマ構文を検証
* JSON検証エラーを確認
* 複雑すぎる場合はスキーマを簡素化
* エージェントの応答でパースエラーを確認

### フィールドの不足

**考えられる原因：**

* フィールドが明確に定義されていない
* エージェントがフィールド要件を理解していない
* スキーマが曖昧すぎる

**解決策：**

* 明確なフィールド説明を追加
* スキーマに例の値を提供
* 常に利用可能でない場合はフィールドをオプションにする
* 特定のクエリでテスト

## 例

### 例1：カスタマーサポート応答

**スキーマ：**

```json theme={null}
{
  "ticket_id": "string",
  "status": "open|resolved|pending",
  "response": "string",
  "next_actions": ["string"],
  "priority": "low|medium|high|urgent"
}
```

**エージェントの応答：**

```json theme={null}
{
  "ticket_id": "TKT-12345",
  "status": "resolved",
  "response": "Your issue has been resolved. The problem was related to account permissions.",
  "next_actions": ["Refresh your browser", "Log out and log back in"],
  "priority": "medium"
}
```

### 例2：データ分析応答

**スキーマ：**

```json theme={null}
{
  "analysis": {
    "summary": "string",
    "findings": [
      {
        "category": "string",
        "insight": "string",
        "confidence": "number"
      }
    ],
    "recommendations": ["string"]
  },
  "data_points": "number"
}
```

**エージェントの応答：**

```json theme={null}
{
  "analysis": {
    "summary": "Sales data shows 15% increase in Q4",
    "findings": [
      {
        "category": "revenue",
        "insight": "Revenue increased by 15% compared to Q3",
        "confidence": 0.95
      },
      {
        "category": "customers",
        "insight": "New customer acquisition up 20%",
        "confidence": 0.88
      }
    ],
    "recommendations": [
      "Continue current marketing strategy",
      "Focus on customer retention"
    ]
  },
  "data_points": 1250
}
```

### 例3：タスク管理応答

**スキーマ：**

```json theme={null}
{
  "task": {
    "id": "string",
    "title": "string",
    "status": "todo|in_progress|completed",
    "assignee": "string",
    "due_date": "string",
    "description": "string"
  },
  "related_tasks": [
    {
      "id": "string",
      "title": "string"
    }
  ]
}
```

## 権限

### 構造化出力の作成

* **プロジェクト管理者** - 構造化出力の作成、編集、削除が可能
* **プロジェクトメンバー** - プロジェクト権限に依存（flows.edit）
* **閲覧者** - 構造化出力の表示のみ可能（変更不可）

### エージェントでの使用

* **エージェントオーナー** - 自分のエージェントに構造化出力を割り当て可能
* **プロジェクト管理者** - プロジェクト内の任意のエージェントに割り当て可能
* **プロジェクトメンバー** - アクセスできるエージェントに割り当て可能

## 関連機能

* **エージェント設定** - エージェントのパーソナリティと行動を設定
* **ツール** - 構造化データを返すツールを使用
* **API統合** - 構造化応答を外部APIと統合
* **ワークフロー** - 自動ワークフローで構造化出力を使用

<Card title="エージェント設定" icon="settings" href="/agents/agents">
  エージェントの設定方法を学ぶ
</Card>

## サポート

構造化出力についてサポートが必要ですか？[support@automationanywhere.com](mailto:support@automationanywhere.com)にご連絡ください。
