- はじめに
- UiPath Agents の利用を開始する
- LangGraph を使用した UiPath Agents の利用を開始する
- Studio Web でローコード エージェントを構築する
- UiPath エージェントにツールを追加する
- Getting Started with UiPath Maestro Flow
はじめに
実際の為替レートを取得し、特定のしきい値を下回った場合にアラートを送信するワークフローを構築します。
概要
このチュートリアルでは、 プライス ウォッチ ワークフローを構築します。このワークフローは、外部 API から実際の為替レートを取得し、設定したしきい値と比較して、そのしきい値に基づいてアラートまたはアクションなしの結果を返す Maestro Flow です。これは、ワークフローが、取得した値に基づいてどのように分岐ロジックを持つことができるかを示しています。フローは 6 ノード長であるため、複数のロジック ブランチを含むより複雑なワークフローではなく、フローがノード間でデータをワイヤリングする方法に重点が置かれます。
推定時間: 30 分。
Maestro とは
Maestro は、オートメーション、AI エージェント、人間の操作を効率的なエンドツーエンドの業務プロセスに統合する、クラウドネイティブなオーケストレーション プラットフォームです。これは、3つのモデリングサーフェスを持つ1つのエンジンです。
- Maestro Flow (
.flow) 開発者が作成したオーケストレーション用。 - Maestro BPMN (
.bpmn) ビジネス関係者がレビューするビジネス プロセス モデリング図および表記法図用。 - Maestro Case 管理 (
caseplan.json) 例外が多い人間の作業向け。
Flow は、Maestro BPMN と同じランタイム上に構築された別のモデラーであり、BPMN 表記法よりもノードベースの視覚的なエクスペリエンスを好む開発者向けに設計されています。以前に ロボティック プロセス オートメーション (RPA) ワークフローを構築したことがある場合や、BPMN ダイアグラムを読んだことがある場合は、概念が直接伝わります。変わるのは人間工学です。サーフェスの選択に関するガイダンスについては、「 Maestro モデラーの選択」をご覧ください。
構築する内容
ここでは、手動トリガーで 3 つの入力を受け取り、ロジックに基づいた結果を含む 1 つのオブジェクトを返す価格ウォッチ フローの残りの部分を構築します。フロー内のすべてのノードには 1 つのジョブがあり、フローはそれらを接続して完全なワークフローを作成します。
以下は、さまざまなノードのテキスト図と、それらの接続方法、および各ノードの目的の詳細を示しています。
start fetchRate1 reshapeRate1 belowThreshold1
┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Manual │─────▶│ HTTP Request │────▶│ Script │────▶│ Decision │
│ trigger │ │ │ │ │ │ │
└──────────────┘ └──────────────┘ └──────────────┘ └──────┬───────┘
baseCurrency GET /v2/rates reads .body rate below
quoteCurrency ?base"es returns pair, threshold?
alertThreshold rate, asOf, │
belowThreshold │
┌──────┴──────┐
true │ │ false
▼ ▼
endAlert1 endNoAction1
┌──────────┐ ┌──────────┐
│ End │ │ End │
└──────────┘ └──────────┘
"alert" "no action"
start fetchRate1 reshapeRate1 belowThreshold1
┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Manual │─────▶│ HTTP Request │────▶│ Script │────▶│ Decision │
│ trigger │ │ │ │ │ │ │
└──────────────┘ └──────────────┘ └──────────────┘ └──────┬───────┘
baseCurrency GET /v2/rates reads .body rate below
quoteCurrency ?base"es returns pair, threshold?
alertThreshold rate, asOf, │
belowThreshold │
┌──────┴──────┐
true │ │ false
▼ ▼
endAlert1 endNoAction1
┌──────────┐ ┌──────────┐
│ End │ │ End │
└──────────┘ └──────────┘
"alert" "no action"
上記のノード ID 値を使用して、生成された値から読みやすくするために値を更新します。手順では、それぞれの更新方法を説明します。
フローを構成するすべてのコンポーネントのリストを次に示します。
| コンポーネント | 詳細 |
|---|---|
入力: baseCurrency | string、既定値は USDです。価格設定元の通貨 |
入力: quoteCurrency | string、既定値は EURです。価格を設定する通貨 |
入力: alertThreshold | number、既定値は 0.9です。レートがこの値を下回った場合にアラートを発する |
出力: watchResult | object pair、rate、asOf、belowThreshold |
ノード (手動トリガー): start | オンデマンドで実行を開始し、3 つの入力をフローに持ち込みます |
ノード (HTTP 要求): fetchRate1 | フランクフルトの為替レート API に GET 要求を送信します |
ノード (スクリプト): reshapeRate1 | 応答本文を読み取って、pair、rate、asOf、belowThreshold を返します |
ノード (判断): belowThreshold1 | belowThresholdを評価し、true または false のいずれかのパスを取ります |
ノード (終了): endAlert1 | reshapeRate1ノードから watchResult を 、 、 rate、 asOf、および belowThreshold pairの値を持つオブジェクトとして返します |
ノード (終了): endNoAction1 | reshapeRate1ノードから watchResult を 、 、 rate、 asOf、および belowThreshold pairの値を持つオブジェクトとして返します |
外貨両替 API
実際の為替レート値を取得するには、機関投資家からの毎日の為替レートを追跡する無料のオープンソース通貨データ API である Frankfurter を使用します。API キーもアカウントも認証ヘッダーも必要ないため、最初のフローの構築に適しています。
API からの USD から EUR の為替レートの 応答の例 には、引用形式で表示されている通貨ごとに 1 つのエントリを持つ JSON 配列 が含まれています。
[
{
"date": "2026-09-01",
"base": "USD",
"quote": "EUR",
"rate": 0.86111
}
]
[
{
"date": "2026-09-01",
"base": "USD",
"quote": "EUR",
"rate": 0.86111
}
]
配列の形状は、後で構築するスクリプト ノードにとって重要です。レートは固定されたパスにないため、スクリプトは既知のキーを読み取るのではなく、quoteCurrency入力に一致するquoteを持つエントリを検索します。
前提条件
- Node.js と npm を
PATH- UiPath コマンド ライン インターフェイス (CLI) (uip) は npm でインストールされます。node --versionとnpm --versionを確認し、いずれかがない場合は nodejs.org からインストールします。 - UiPath アカウント - 開始する前に UiPath Automation Cloud に登録またはログインしてください。
- Maestro Flow が有効化されているテナント - デバッグ実行とデプロイはどちらも、選択したテナントを経由します。
- UiPath 環境へのネットワーク アクセス - CLI サインインでは、OAuth ブラウザー フローを使用し、ポート
8104でコールバックlocalhost。 - VS Code 1.110.0 以降と UiPath Maestro 拡張機能 - キャンバス上で構築するために必要であり、どちらのパスでもフローが形成されていくのを確認するのに役立ちます。Code > の「Visual Studio Code について」でバージョンを確認するか、
code --versionを実行します。
UiPath の経験は必要ありません。また、このチュートリアルのどの時点でも Studio Web を開く必要はありません。
リモートワークスペースで作業していますか?Linux (WSL)、Secure Shell (SSH)、Codespaces、および開発コンテナー ワークスペース用の Windows サブシステムでは、拡張機能はリモート ホストで実行されるため、UiPath CLI はローカル マシンではなくリモート ホストにインストールする必要があります。
以前に前提条件をインストールしたことがない場合は、こちらの手順に従って UiPath チュートリアル用の環境をセットアップしてください。uip --version と uip login status を使用して、CLI がインストールされ、認証済みであることを確認します。
ステップ 1 - 価格ウォッチ フローの足場を作成する
ソリューションは、フローのパッケージ化とデプロイに使用する 1 つ以上のプロジェクトを含むデプロイ可能な単位です。まずソリューションを作成してから、その中にフロー プロジェクトを作成しましょう。
-
ソリューションを作成します -
uip solution init <solution name>で指定した名前のディレクトリが作成されます。uip solution init tutorial-maestro-flow-price-watchuip solution init tutorial-maestro-flow-price-watch -
新しく作成したソリューション ディレクトリに移動します。
cd tutorial-maestro-flow-price-watchcd tutorial-maestro-flow-price-watch -
ソリューション内にフロー プロジェクトを作成します。
uip maestro flow init PriceWatchuip maestro flow init PriceWatch注:flow initコマンドは、PriceWatch.flow(編集する唯一のファイル)、project.uiproj、operate.jsonを含むPriceWatch/ディレクトリを作成します。ソリューション ディレクトリ内から実行flow init場合は、プロジェクトも親ソリューションに登録され、"Status": "Registered"が報告されます。また、デプロイするたびにパッケージ化によって再生成される生成されたステートを含むフォルダーresources/がソリューションのルートに作成されますが、このチュートリアルではこれらのファイルを編集する必要はありません。 -
フローが単一のトリガー ノードでスキャフォールディングされていることを確認します。
uip maestro flow node list PriceWatch/PriceWatch.flow --output tableuip maestro flow node list PriceWatch/PriceWatch.flow --output table出力には
triggerの 1 行しか表示されません。X座標とY座標は、ビジュアル キャンバスでノードを移動すると変化するため、異なる場合があります。Id | Type | Label | Position ----------------|---------------------|-----------------|---------------------------------- start | core.trigger.manual | Manual trigger | {"X":-192,"Y":0}Id | Type | Label | Position ----------------|---------------------|-----------------|---------------------------------- start | core.trigger.manual | Manual trigger | {"X":-192,"Y":0} -
VS Code で
PriceWatch/PriceWatch.flowファイルを開きます。UiPath Maestro 拡張機能をインストールすると、ファイルが生のテキストとしてではなくビジュアル キャンバスで開き、ワークフローを視覚的に表現した状態で確認できます。
次のステップ
これで、 フローを構築する準備ができました。