---
title: 基本
---

import { Callout } from 'fumadocs-ui/components/callout'
import { Card, Cards } from 'fumadocs-ui/components/card'
import { Image } from '@/components/ui/image'

Simでワークフローがどのように実行されるかを理解することは、効率的で信頼性の高い自動化を構築するための鍵です。実行エンジンは依存関係、並行処理、データフローを自動的に処理し、ワークフローがスムーズかつ予測可能に実行されることを保証します。

## ワークフローの実行方法

Simの実行エンジンは依存関係を分析し、最も効率的な順序でブロックを実行することで、ワークフローをインテリジェントに処理します。

### デフォルトでの並行実行

互いに依存関係のない複数のブロックは同時に実行されます。この並列実行は手動設定を必要とせずにパフォーマンスを劇的に向上させます。

<Image
  src="/static/execution/concurrency.png"
  alt="スタートブロックの後に複数のブロックが同時に実行されている"
  width={800}
  height={500}
/>

この例では、カスタマーサポートとディープリサーチャーの両方のエージェントブロックがスタートブロックの後に同時に実行され、効率を最大化しています。

### 自動出力結合

ブロックに複数の依存関係がある場合、実行エンジンはすべての依存関係が完了するのを自動的に待ち、それらの結合された出力を次のブロックに提供します。手動での結合は必要ありません。

<Image
  src="/static/execution/combination.png"
  alt="関数ブロックが複数の前のブロックからの出力を自動的に受け取る"
  width={800}
  height={500}
/>

関数ブロックは両方のエージェントブロックが完了するとすぐにそれらの出力を受け取り、結合された結果を処理することができます。

### スマートルーティング

ワークフローはルーティングブロックを使用して複数の方向に分岐できます。実行エンジンは決定論的ルーティング（条件ブロックを使用）とAI駆動ルーティング（ルーターブロックを使用）の両方をサポートしています。

<Image
  src="/static/execution/routing.png"
  alt="条件分岐とルーターベースの分岐の両方を示すワークフロー"
  width={800}
  height={500}
/>

このワークフローは、条件やAIの判断に基づいて実行が異なる経路をたどる方法を示しており、各経路は独立して実行されます。

## ブロックタイプ

Simは、ワークフロー内で特定の目的を果たす異なるタイプのブロックを提供しています：

<Cards>
  <Card title="トリガー" href="/triggers">
    **スタータブロック**はワークフローを開始し、**Webhookブロック**は外部イベントに応答します。すべてのワークフローは実行を開始するためのトリガーが必要です。
  </Card>
  
  <Card title="処理ブロック" href="/blocks">
    **エージェントブロック**はAIモデルと対話し、**ファンクションブロック**はカスタムコードを実行し、**APIブロック**は外部サービスに接続します。これらのブロックはデータを変換・処理します。
  </Card>
  
  <Card title="制御フロー" href="/blocks">
    **ルーターブロック**はAIを使用して経路を選択し、**条件ブロック**はロジックに基づいて分岐し、**ループ/並列ブロック**は反復と並行処理を扱います。
  </Card>
  
  <Card title="出力と応答" href="/blocks">
    **レスポンスブロック**はAPIやチャットインターフェース向けに最終出力をフォーマットし、ワークフローから構造化された結果を返します。
  </Card>
</Cards>

すべてのブロックは依存関係に基づいて自動的に実行されます - 実行順序やタイミングを手動で管理する必要はありません。

## 実行モニタリング

ワークフローが実行されると、Simは実行プロセスをリアルタイムで可視化します：

- **ライブブロック状態**：現在実行中、完了、または失敗したブロックを確認できます
- **実行ログ**：入力、出力、およびエラーを示す詳細なログがリアルタイムで表示されます
- **パフォーマンスメトリクス**：各ブロックの実行時間とコストを追跡します
- **パス可視化**：ワークフロー内でどの実行パスが取られたかを理解できます

<Callout type="info">
  すべての実行詳細はワークフローが完了した後でも確認できるように記録され、デバッグと最適化に役立ちます。
</Callout>

## 主要な実行原則

これらの核となる原則を理解することで、より良いワークフローを構築できます：

1. **依存関係ベースの実行**：ブロックはすべての依存関係が完了した時のみ実行されます
2. **自動並列化**：独立したブロックは設定なしで同時に実行されます
3. **スマートデータフロー**：出力は接続されたブロックに自動的に流れます
4. **エラー処理**：失敗したブロックはその実行パスを停止しますが、独立したパスには影響しません
5. **状態の永続化**：すべてのブロック出力と実行詳細はデバッグのために保存されます

## 次のステップ

実行の基本を理解したら、以下を探索してください：
- **[ブロックタイプ](/blocks)** - 特定のブロック機能について学ぶ
- **[ロギング](/execution/logging)** - ワークフロー実行を監視し問題をデバッグする
- **[コスト計算](/execution/costs)** - ワークフローコストを理解し最適化する
- **[トリガー](/triggers)** - ワークフローを実行するさまざまな方法を設定する
