エージェントのベストプラクティス
ここでは、Squid でエージェント型アプリケーションを構築する際に従うべきベストプラクティスの一覧を紹介します。共有したい知見がありますか? それとも質問への回答が必要ですか? Contact us からご連絡ください!
Instructions ガイドライン
役割、背景、コンテキスト
エージェントが「誰であるか」「どう振る舞うべきか」「主な目的は何か」を伝えます。
あなたは各種の財務ドキュメントに対して分析を行える金融アナリストであり、主な目的はアナリストがより迅速かつ十分な情報に基づいた意思決定を行えるよう支援することです。
Input と Output
Input: エージェントがどこからデータを取得すべきかを指定します(例:knowledge base ファイル、Web、他のエージェント)。
Output: エージェントがどのように応答すべきかを定義します(例:Text、JSON、PDFs、Bar Charts)。
Constraints
時間制限、フィルタ、サイズ上限、例外処理を追加します。
データベースからのデータに基づいてのみ回答してください。
複雑なタスクを分解する
手順をステップごとに整理します。必要に応じて箇条書きを使います。
1. 入力データセットを読み込む。
2. null または不整合な値を特定する。
3. ドメイン固有のクリーニング規則を適用する。
4. クリーニング済みデータセットとサマリーレポートを出力する。
明確にする
シンプルで直接的、かつ曖昧さのない言葉を使います。“maybe”, “try to”, “could” は避けます。
❌ *データが散らかって見えるなら、クリーニングしてみてください。*
✅ *email フィールドが空の行はすべて削除してください。*
成功基準を定義する
タスクを正しく完了したとエージェントが判断できるように明確化します。
Success = データセットに null がなく、フォーマットが一貫しており、バリデーションチェックに合格していること。
回答精度の向上
エージェントが提供する回答の精度を高めるには、エージェントの Instructions と model の両方を調整してみてください。これらの要素はいずれも、Squid の Agent Studio の Overview タブで簡単に調整できます。
マルチエージェント ガイドライン
明確で重複しない役割を割り当てる
冗長性や混乱を避けるため、各エージェントには固有の責務を持たせるべきです。エージェント型アプリケーションを構築する際は、各タスクを完了するために特化した個別エージェントを作成するのが最適です。特化エージェントを、それらのやり取りを統括する root agent に接続すると、より効率的で効果的なシステム につながります。
- 重複を防ぐため、複数のエージェントに似たタスクを与えない。
- 単一のエージェントに、無関係な複数タスクをさせない(例:ユーザー入力の受け取り、データベースへの接続、データの検証)。
- 複数エージェントにタスクを分割する。
- Agent 1: コードを書く
- Agent 2: コードをテストする
- Agent 3: コードをドキュメント化する
Input/Output コントラクトを定義する
エージェント間のコミュニケーションを標準化します。フォーマットと期待されるデータを定義してください。
すべてのエージェントは `task`、`input`、`output` フィールドを持つ JSON をやり取りする。
エージェントの協調
Agent-to-Agent のコミュニケーションを促進する方法:
- 追加エージェントへの呼び出しを管理する coordinator agent を使用する
- あるいは、必要に応じてエージェント同士が直接呼び出し合えるようにする
いずれの場合も、次のいずれかを通じてプロセスのエントリーポイントを管理するのは coordinator agent とすべきです。
- ユーザー入力
- API call
- Webhook
- Function calls