概要
AkaNinjaは、akaBot Studioに直接統合された、インテリジェントで対話型かつコンテキストを認識するアシスタントです。RPA開発者のコパイロットとして機能するAkaNinjaを使用すると、自然言語で対話して、ワークフローのロジック説明、アクティビティの構成、エラーのトラブルシューティング、式の作成を行うことができ、自動化設計プロセスをより迅速かつスムーズに進めることができます。
主な機能
構築している特定のワークフローやアクティビティに関係なく、AkaNinjaは開発者向けの主要な機能を提供します。
- コンテキスト認識アシスタンス: AkaNinjaは単に一般的な質問に答えるだけではありません。現在のプロジェクト、変数、引数、選択したアクティビティ、またはエラー出力のコンテキストを理解し、カスタマイズされた解決策を提供します。
- ワークフロー設計のガイダンス: 特定のタスクに対してどのアクティビティを使用し、どのように連結させるかなど、自動化プロセスの構築方法について即座に推奨事項を得ることができます。
- アクティビティの説明: akaBotのアクティビティ、そのプロパティ、入力/出力要件、および構成方法について学ぶことができます。
- エラーのトラブルシューティングとデバッグ: ログやエラーメッセージを提供すると、AkaNinjaが根本原因を分析し、問題を解決するための正確な手順を案内します。
- 式の生成: 変数やデータ型に合わせて調整されたVB.NetまたはC#の式(例:文字列操作、LINQ、日付形式の変換など)を生成します。
設定
AkaNinjaを使用する前に、StudioでAIプロバイダーを設定してください。この設定は「自然言語から式コードの生成」機能と共有されます。
AI Integration タブを開く
- akaBot Studio を開きます。
- Options に移動します (Backstage / ホーム → Options)。
- AI Integration タブを選択します。
- Provider で、以下のいずれかを選択します:
- AI Hub
- Akabot Cloud AI Server (Cloudflare Worker)

プロバイダー: AI Hub
Studioが接続されたAgentを介してCenterと通信する場合は、AI Hub を使用します。
- AI Integration で、Provider を AI Hub に設定します。
- akaBot Agent を開きます。
- Connect に移動し、AgentをCenter (Studioで使用されているものと同じ組織/環境) に接続します。
- AkaNinjaとチャットしている間、Agentが接続状態を維持していることを確認します。
Agentが接続されていないか、正しく割り当てられていない場合、StudioはAI Hubに認証できず、AkaNinjaのリクエストは失敗します (例: アクセス拒否 / 無効なCenterトークン エラー)。
プロバイダー: Akabot Cloud AI Server (Cloudflare)
Studioがインターネット経由でCloudflare Workerエンドポイントを呼び出す場合は、Akabot Cloud AI Server を使用します。
- AI Integration で、Provider を Akabot Cloud AI Server に設定します。
- API Endpoint (WorkerのURL) を入力します。このフィールドは、このプロバイダーが選択されている場合にのみ表示されます。
- PCがそのエンドポイントへの インターネットアクセス を持っていることを確認します。
- Options を保存 / 適用します。
APIエンドポイントは、式の生成やAkaNinjaチャットボットアシスタンスを含むAI機能を強化します。
注記
- AI Hub: Centerに接続されたAgentが必要です。Agentが切断されている場合、インターネットアクセスのみでは不十分です。
- Akabot Cloud AI Server: 有効なWorker URLと送信インターネットアクセスが必要です。
UIの概要
AkaNinjaパネルはakaBot Studioの右側にドッキングされており、Properties、Outline、Localsとペイン領域を共有しています。

UIコンポーネントのリファレンス
- AkaNinja タブ: このタブをクリックして、AkaNinjaの対話パネルを開くか、切り替えます。
- ヘッダーとクォータインジケーター: 機能名と1日の使用状況ステータス(例:
Daily usage: 1/15 prompts used)を表示します。AkaNinjaのデフォルトの1日クォータは15プロンプトです。 - チャットエリア / 会話履歴: 初期挨拶、推奨されるプロンプトテンプレート、進行中の対話スレッドを表示します。
- 入力フィールド: 質問、指示、またはプロンプトを入力するテキストボックスです。
- コンテキストタグメニュー: 入力フィールドに
@を入力すると自動的にトリガーされます。アクティブなプロジェクトから特定のコンテキスト要素をリンクさせることができます。 - 送信ボタン: プロンプトとアクティブなコンテキストをAkaNinjaサービスに送信します。
コンテキストタグのリファレンス (@)
コンテキストタグを使用することで、AIに正確なデータを渡すことができます。以下の要素を参照できます。
| タグ | 参照ターゲット | 説明 |
|---|---|---|
@variables | アクティブなワークフロー変数 | 現在開いているワークフローで定義されている変数を参照します。 |
@arguments | アクティブなワークフロー引数 | 現在開いているワークフローで定義されている引数を参照します。 |
@activity | 選択されたアクティビティ | デザイナー(Designer)で現在選択されているアクティビティのプロパティ構成を参照します。 |
@output | 出力 / 実行ログ | 最新のログ、実行メッセージ、およびエラートレースを参照します。 |
@[filename].xaml | 特定のワークフローファイル | 特定のワークフローファイル(例:@Main.xaml)の基礎となるコード/構造を参照します。 |
操作手順
自動化開発中にAkaNinjaと対話するには、次の手順に従います。
ステップ 1: AI Integration の設定
最初に 設定 を完了します (Options → AI Integration)。
ステップ 2: パネルを開く
akaBot Studioの右下パネルにある AkaNinja タブをクリックして、チャットインターフェイスを開きます。
ステップ 3: 質問の作成
入力フィールドにプロンプトを入力します。リクエストでコンテキストを認識させるには:
- 入力フィールドに
@と入力します。 - ポップアップメニューから適切なタグを選択します (例: 構成について質問する場合は
@activity、エラーについて質問する場合は@outputを選択)。 - 自然言語で指示の入力を続けます。
ステップ 4: プロンプトの送信
Send(送信)ボタンをクリックするか、Enter キーを押します。AkaNinjaは質問を処理し、添付されたコンテキストを確認して、回答を生成します。
ステップ 5: 確認と実装
AIによって生成された提案、手順、またはコードブロックを確認します:
- 指示の場合: 提案されたステップバイステップのUI調整に従います。
- 式/コードの場合: チャットペイン内のコードスニペットにある Copy アイコンをクリックし、アクティビティのプロパティまたは Expression Editor に直接貼り付けます。
一般的なユースケースと対話例
以下の実用的な例は、開発中にAkaNinjaを効果的に使用する方法を示しています。
エラーのデバッグ
ロボットの実行がエラーで失敗した場合は、AkaNinjaにトラブルシューティングと解決手順を依頼できます。
- シナリオ: アクティビティが例外をスローしました:
System.IO.IOException: The process cannot access the file 'C:\Data\Report.xlsx' because it is being used by another process. - ステップ 1: AkaNinja パネルを開きます。
- ステップ 2: 入力フィールドに
@outputと入力し、リストから参照タグを選択します。 - ステップ 3: 質問を入力します:
"@output Explain why this error happened and provide actionable steps to fix it in my workflow."
- ステップ 4: Send(送信)をクリックします。
- ステップ 5: AkaNinjaの分析と解決策の手順を確認します。
## 分析
`System.IO.IOException: The process cannot access the file ... because it is being used by another process.` というエラーは、ロボットがアクセスしようとしているファイルが、現在別のアプリケーションまたはバックグラウンドプロセスによってロックされていることを意味します。以下をお試しください。
1. Excel、Word、PDF リーダー、画像ビューアー、またはその他のアプリケーションでファイルを閉じます。
2. 同一ファイルにアクセスする可能性のある、ワークフローの重複実行や並行実行を停止します。並行する分岐で同じファイルパスを使用しないようにしてください。
3. EXCEL.EXE、WINWORD.EXE、または別のロボット実行などのバックグラウンドプロセスを確認し、不要な場合は終了します。
4. ファイルを上書きする代わりに、実行ごとに一意の出力ファイル名を使用します(例:タイムスタンプやトランザクション ID を含める)。
5. 次のアクティビティがファイルの読み取り、移動、名前変更、または削除を行う前に、前のアクティビティによる処理が完了し解放されていることを確認します。ワークフローでストリームやカスタムコードを使用している場合は、最初にそれらをクローズ/解放(dispose)してください。
6. 他のアプリケーションがファイルを解放するまでに時間が必要な場合は、エラーが発生しているアクティビティの前で、短い待機(Delay)や再試行(Retry)を追加します。
7. ファイルパスを確認し、ロボットアカウントがそのフォルダーへのアクセス権を持っていることを確認します。ファイルがネットワーク共有や同期フォルダー上にある場合は、ローカルの一時フォルダーにコピーしてから処理を行ってください。
問題が解決しない場合は、Windows タスクマネージャーまたはリソースモニターを使用してファイルを保持しているアプリケーションを特定し、そのプロセスを終了するか、ファイルが共有されないようにワークフローを変更してください。

アクティビティの使用方法
AkaNinjaは、特定のアクティビティのプロパティ構成や必要な式の記述をサポートします。
- シナリオ: Deserialize JSON アクティビティを使用して、JSONレスポンス文字列をJSONオブジェクトにデシリアライズします。
- ステップ 1: デザイナー(Designer)で Deserialize JSON アクティビティを追加し、選択します。
- ステップ 2: Variables パネルで、生の入力用の文字列変数(例:
str_jsonInput)と、結果を格納する変数(例:jo_parsedData)が作成されていることを確認します。 - ステップ 3: AkaNinja パネルを開き、以下を入力します。
"@activity @variable Explain how to configure my selected activity to parse
str_jsonInputand store the result injo_parsedData" - ステップ 4: Send(送信)をクリックします。
- ステップ 5: AIの回答を確認し、ガイダンスに従ってプロパティを設定します。
## Deserialize JSON <T>
選択された項目は DeserializeJson<T> で、ここでは T = JObject として構成されています。JSON 文字列を JSON オブジェクト (JObject) にデシリアライズします。
## アクティビティ本体
デシリアライズする JSON コンテンツを使用して、必須の JSON String フィールドを構成します。ドキュメントには以下のように規定されています。
- 値は String(文字列)です。
- JSON はインデントなしで記述する必要があります。
- JSON はダブルクォーテーションで囲む必要があります。
- 配列内の各文字列はシングルクォーテーションを使用する必要があります。
ドキュメントの例:
{'Name': 'Maria'}
JSON を直接入力するか、JSON を含む文字列の式または変数を提供できます。
ドキュメント化されたプロパティ
## Input(入力)
- JsonString (InArgument<String>) — デシリアライズする JSON 文字列。これはアクティビティ本体で JSON String として指定された値と同じです。
## Output(出力)
- JsonObject (OutArgument<T>) — デシリアライズされた結果。選択された項目では T が JObject であるため、結果の JSON オブジェクトを後でワークフローで使用する必要がある場合は、この出力を JObject 変数に構成します。
この選択項目には、他にドキュメント化されたアクティビティのアクションやプロパティはありません。
