11. エージェント定義¶
エージェント定義は、ナレッジベース・ツール・スキル・ガードレールという材料を組み立てて、1 つのエージェントに仕立てる画面です。「本格構築を始める前に」で決めた 5 点をもとに、9 つのセクションを順に埋めていきます。
項目
11.1. 画面を開く・全体の流れ¶
サイトマップから「Copilot」→「Accel Agent」→「エージェント管理」を開きます。一覧から既存のエージェントを開くか、新規作成すると、編集画面に入ります。
エージェント定義の編集画面には、左ナビゲーションに並ぶ 9 つの設定セクションと、バージョン・テスト実行に関する 2 つの運用機能があります。
11.2. 基本情報・モデル設定を決める¶
11.2.1. 基本情報¶
基本情報は、エージェントを一意に識別し、検索・分類できるようにするための項目です。保存には、エージェントID(新規作成時は自動採番)・エージェント名・カテゴリ・AIモデルが必須で、これらが未入力の場合は保存できません。説明は任意項目です。
用途は「ロジックフロータスク」「BPMタスク」から複数選択できます。BPMタスクは、IM-BPM が未導入の環境では選択肢に表示されません。用途は呼び出し元を絞る検索条件であり、実行時のアクセス制御ではない点に注意します(「エージェントの呼び出し方」)。
11.2.2. モデル設定¶
モデル設定では、エージェントが呼び出す LLM と、その挙動パラメータを指定します。常に必須で、未選択のままではテスト実行・公開実行のいずれもできません。
AIモデルは、「AIモデル管理」にあらかじめ登録した AIモデルのうち、テキスト生成用のもの(埋め込み用は選択肢に出ません)を 1 つ選びます。選ぶと、ドライバ種別・プロバイダモデルID が画面に補足表示されます。
調整できるパラメータは、ランダム性(temperature)と最大出力トークン数(max_tokens)の 2 つです。AIモデル管理で有効としたパラメータだけが欄に表示され、指定できる範囲もその登録内容で決まります。
11.3. 指示を書く¶
指示は、エージェントの役割や守るべきルール、回答の形式などを定めるシステムプロンプトです。エージェントがどのように判断し、振る舞うかの基本方針となり、LLM は通常、そのつど渡される質問や依頼よりも、この指示を優先して処理します。
指示には、テンプレート変数を埋め込めます。テンプレート変数は、インプットパラメータの値や実行したユーザの情報など、実行のたびに変わる値を指示の中に差し込むための仕組みです。${変数名}の形式で書くと、実行時に実際の値へ置き換えてから LLM に渡されます。例えば、インプットパラメータ quoteText を定義して指示に ${quoteText} と書くと、その箇所に呼び出し元から渡された値が入ります。IM-LogicDesignerの「エージェント実行」タスクから呼び出す場合、この値はタスクのマッピング設定で inputParameters に割り当てた値です(「IM-LogicDesigner の「エージェント実行」タスク」)。入力欄で ${ と入力すると変数の候補が表示され、「コンテキスト変数を挿入」からはクリックでカーソル位置に挿入できます。
テンプレート変数の供給元は、トップレベルのインプットパラメータと、次のコンテキスト変数です。
| 分類 | 参照できる値 |
|---|---|
| アカウント情報 | 現在の操作対象のテナントID、現在アクセスしているユーザのユーザコード、ユーザ種別、ログイン認証済みかどうか、ユーザが利用するロケール・タイムゾーン、ログイン時刻、ユーザのロールID一覧(カンマ区切り)、文字エンコーディング、ユーザが利用するホームURL |
| ユーザ情報 | ログインユーザの表示名、ユーザのメールアドレス、カレント組織の会社コード、カレント組織コード、カレント組織名 |
呼び出しのたびに変わらない値は、テンプレート変数にせず、指示の本文に直接書きます。コンテキスト変数から取れるのは、テナントID やユーザコードのような実行したユーザに関わる値だけです。案件の内容などの業務データは、呼び出し元からインプットパラメータとして渡すか、実行中に取得する必要があればツールの戻り値として受け取る設計にします。
変数名を書き誤った場合や、存在しない変数を書いた場合は、エラーにならず、${quoteTxt}のように書いたままの文字列が LLM に渡されます。実行はそのまま続くため、値が置き換わっていないことに気づきにくい点に注意します。一方、${の閉じ忘れなど、テンプレートの書き方そのものに誤りがある場合は、実行が始まる前にエラーが発生します。
11.4. 入出力値を設計する¶
入出力値は、エージェントへの入力と、エージェントからの出力の形式を定義します。インプットパラメータは呼び出し元から値を渡したい場合に、構造化出力は出力を後続の処理で機械的に扱いたい場合に設定します。どちらも設定しない場合、入力は自然文の prompts のみになり、出力は「テキスト出力」(LLM の応答をそのまま文字列で返す)です。
出力は「テキスト出力」と「構造化出力(JSON)」をトグルで切り替えます。構造化出力を ON にすると、出力パラメータとして JSON スキーマ相当の定義(パラメータ名・型・説明)を作成でき、LLM の応答をその形式に合わせて返させます。後続の処理で値を機械的に使う予定があるなら、自然文ではなく構造化出力にします。例えば「勘定科目の候補・理由文・照合結果」をロジックフロー側でそれぞれ別の項目として扱いたいなら、この 3 つを出力パラメータとして定義し、構造化出力を ON にします。
図:入出力値の設定画面。インプットパラメータの定義と、構造化出力 ON 時の出力パラメータ定義が並ぶ。
11.5. ナレッジベース・スキル・ツール・ガードレールを割り当てる¶
判断に使う情報や実行手段は、「ナレッジベース」・「スキル」・「ツール」のいずれかで持たせます。安全のための検査は「ガードレール」で設定します。それぞれの設計・作成は各章で扱うため、本節ではエージェントへの割り当て方だけを扱います。
11.5.1. ナレッジベース¶
ナレッジベースを割り当てると、エージェントに意味検索で参照できる情報源を持たせられます。画面上、Top-K と類似度閾値は未設定の状態が既定で、この場合は実行時の既定値である Top-K 5、閾値なしが適用されます。
割り当てたナレッジベースごとに、メタデータフィルタを組み合わせて検索範囲を絞り込めます。条件の値は、固定値(静的指定)と、インプットパラメータへの参照(動的指定)のどちらかで指定でき、動的指定にすると実行のたびに呼び出し元が渡した値で条件が決まります。参照先のインプットパラメータが未指定のとき、その条件を無視するか検索を止めてエラーにするかも条件ごとに選べます。
図:メタデータフィルタの設定例。値の参照方式を「入力パラメータ」(動的指定)にし、参照先のインプットパラメータを選んだ状態。
メタデータフィルタで参照できる項目は、そのナレッジベースに定義されたメタデータ項目に限られます(「メタデータ項目を設計する」)。プロパティを指定した精度評価では回答関連性を算出しない点にも注意します(「データセットを確認・修正する」)。
図:ナレッジベースの割り当て画面。割り当て済みのナレッジベースが一覧で並ぶ。
11.5.2. スキル¶
スキルを割り当てると、エージェントに実行時参照させる手順書を持たせられます。割り当てたスキルの利用箇所は、スキル管理画面側からも確認できます(「エージェントへの割り当てと利用箇所の確認」)。
11.5.3. ツール¶
ツールを割り当てると、エージェントに組み込み・ロジック・MCP のツールを持たせられます。割り当てたツールが後から削除・改名された場合の挙動は、ツールの区分によって異なります(「ツール」)。参照が切れた状態のまま実行すると、該当ツールの呼び出しが失敗します。
図:ツールの割り当て画面。組み込み・ロジック・MCP を種別ごとに設定する。
11.5.4. ガードレール¶
ガードレールを設定すると、エージェントの入出力を検査し、必要に応じて実行を止める、または記録できます。詳細な設定項目・値の範囲は「ガードレール」にまとめています。
11.6. 実行制御を設定する¶
実行制御では、エージェントの実行方式と、実行の上限を定義します。ストラテジは常に選択が必要ですが、最大ループ回数・タイムアウト・自動コンテキスト圧縮の発動割合はいずれも任意項目です。最大ループ回数を未設定にすると既定値の 100 回が適用され、タイムアウトと自動コンテキスト圧縮の発動割合は未設定の場合は無効として扱われます。
注意
自動コンテキスト圧縮の発動割合が未設定の場合、会話履歴は圧縮されずに蓄積されます。会話履歴を含むリクエストのトークン数が AIモデルのコンテキストウィンドウを超えると、AIサービスからエラーが返り、実行は中断されます。同じセッションで会話を続ける使い方をする場合は、発動割合を設定してください。
発動割合を設定していても、AIモデル管理でコンテキストウィンドウを登録していないモデルでは圧縮は行われません。ロジックフローから呼び出す場合の条件は「IM-LogicDesigner の「エージェント実行」タスク」を参照してください。
図:実行制御のストラテジ選択。ストラテジごとの動き方と向いている用途が説明文で示される。
ストラテジには、次のものがあります。タイムアウトはミリ秒単位で指定します。
| ストラテジ | 動き方 | 向いている用途 |
|---|---|---|
| シンプル | 計画フェーズを設けず、LLM がツール呼び出しを自ら判断して繰り返し、呼び出しがなくなった時点の応答を返す。最小構成で軽量 | 汎用的な対話や小・中程度のタスク |
| Agentic RAG | LLM が検索ツールを自ら繰り返し呼び出し、十分に調査してから回答する RAG 戦略 | 回答の根拠を検索で確認しながら答えたい調査・質問応答 |
| Simple RAG | 冒頭で必ず一度ナレッジベース検索を実行し、その結果を根拠にエージェントを動かす RAG 戦略。LLM に検索させない | 検索結果を確実に踏まえて回答したい用途 |
| Plan & Action | まず実行計画を立ててから、その計画に沿ってツールを順に実行する 2 段階の戦略 | 手順の見通しを立てて進めたい、複数ステップのタスク |
| Deep Research | 最低限の検索回数を保証し、多角的に調査を重ねてから回答する戦略 | 徹底的な裏取りや網羅的な情報収集が必要な調査タスク |
Simple RAG には、検索前にユーザ入力を検索に適したクエリへ自動で書き換える「クエリ書き換え」パラメータがあります。Deep Research には「最低検索回数」パラメータがあり、回答前に最低限行うナレッジベース検索の回数を指定します。多いほど網羅的に調査しますが実行時間は増え、最大ループ回数が上限です。
図:Plan & Action を選んだ状態。選択したストラテジに応じて、実行制御パラメータの構成が変わる。
11.7. テスト実行で確認する¶
テスト実行は、保存前・公開前のエージェント定義の動作を確認する機能です。編集画面右側のドックから実行でき、応答本文のほか、トークン数と所要時間があわせて表示されます。構造化出力を ON にしている場合は、構造化出力の結果も確認できます。
セクションを埋めるたびにこまめにテスト実行すると、どの変更が挙動を変えたかを切り分けやすくなります。特に指示文とナレッジベース・ツールの割り当ては相互に影響するため、これらを変更したときは都度確認します。テスト実行の記録は、公開後の本番実行の記録とは区別される点にも注意します。
11.8. バージョンを管理し、公開して改善する¶
バージョン管理・公開の機能では、エージェント定義のバージョンを管理し、呼び出し元に公開するバージョンを制御します。公開中のバージョンを直接上書き保存すると、変更は呼び出し元へ即座に反映されます。この性質があるため、改善は「新しいバージョンとして保存」してから精度評価(「精度評価」)を行い、問題がなければ公開する、という順序で回します。新しいバージョンをいつ作るかは、この即時反映の影響範囲をもとに判断します。公開中のバージョンと、最後に残った 1 つのバージョンは削除できません。
図:バージョン一覧。各バージョンの番号、公開状態、最新かどうかが並ぶ。
業務に組み込む具体的な手順は「業務に組み込む」、別環境で作った定義を持ち込む場合の手順は「インポート/エクスポート」を参照してください。
11.9. 困ったときの確認¶
| 状況 | 確認・対応 |
|---|---|
| テスト実行・公開実行ができない | AIモデルが選択されているか確認する |
| 用途で絞ったのに呼び出せる/呼び出せない | 用途は検索条件であり、実行時のアクセス制御ではない。アクセス制御は別途確認する |
| テンプレート変数が展開されず、${...}のまま LLM に渡される | 変数名に誤りがないか、トップレベルのインプットパラメータかコンテキスト変数(アカウント情報・ユーザ情報)のいずれかを参照しているか確認する。存在しない変数はエラーにならず、書いたままの文字列で渡される。固定値は変数にできない |
| 実行が始まる前にエラーになる | 指示のテンプレートの書き方に誤りがないか確認する。${の閉じ忘れなどがあると実行できない。AIモデルが選択されているかも確認する |
| 後続処理でJSONとして受け取れない | 出力に「テキスト出力」が選ばれていないか確認する。「構造化出力」をONにして出力パラメータを定義する |
| 割り当てたツールの呼び出しが失敗する | ツールが削除・改名されて参照が切れていないか確認する |
| バージョンを削除できない | 公開中のバージョンと、最後に残った 1 つのバージョンは削除できない |
| 変更したのに呼び出し元に反映されない、または意図せず反映された | 公開中のバージョンを直接上書き保存すると即座に反映される。新しいバージョンとして保存してから精度評価を行い、問題がなければ公開する |