サブエージェント
Perchがタスクの一部を役割を絞ったヘルパーエージェントに任せる仕組み、それによってメインの流れがすっきり保たれる理由、そしてヘルパーエージェントが動くモデルの選び方。
一つのターンの中で、Perchは作業の一部をサブエージェントに任せることができます。サブエージェントとは、範囲の狭い目的、専用のコンテキスト、限られたツールを持つヘルパーエージェントです。ヘルパーエージェントは作業を行い、結論を返します。Perchは会話の流れを保持し、判断を下し、回答を書きます。
これは、より大きなモードの土台にある基本要素です。サブエージェント一つならヘルパーエージェントです。それらをチームとして計画し、フェーズごとに動かして互いにチェックさせるのがFlockです。
そもそも作業を任せる理由
わかりやすい理由は速さですが、それは最も重要性の低い理由です。本当の理由はコンテキストです。
四十件の請求書を読むと、四十件のツール結果が生まれます。Perchが自分で読めば、四十件すべてが会話に入り込み、あなたの最初の質問を含むほかのすべてを押しのけます。サブエージェントが読めば、戻ってくるのはそのサブエージェントの指摘事項だけです。生の資料はヘルパーエージェントのコンテキストにとどまり、メインの流れは、見つかったことについて考えられるだけの余裕を保てます。
ほかにも、二つの理由があります:
- 独立した判断。出典と照らしてドラフトをレビューするチェッカーは、直前の十分間をそのドラフトの執筆に費やしていません。出典の欠落は、その欠落に気づかずに書き進めた当人でないほうが見つけやすいものです。
- 本当の並列処理。十二社の取引先、十二の独立した質問、相互の干渉なし。これらは一つずつ順番にではなく、同時に実行されます。
Perchがサブエージェントを使うとき
Perchが当てはめる判断基準はシンプルです。この作業は独立して完結していて、必要なのはその結論だけか? どちらも「はい」なら任せます。どちらかが「いいえ」なら、自分のループの中で行います。
実際には、次のようになります:
- 多数のファイルにわたる根拠の収集。フォルダ全体の確認、大量の明細書からの数値の抽出、大規模なコードベースの全体像の把握などです。
- 正確な計算。照合や合計を、文章で見積もるのではなく、サンドボックスで実際の分析として実行します。
- 完成した作業のチェック。ドラフトを引用元の出典と照らして読み直し、成り立たない箇所を報告します。
- 独立した作業単位。多数の別々の対象に、同じ質問を投げかけます。
そして、意図的に任せないものもあります:
- 会話が必要なもの。サブエージェントはあなたとの会話を見られず、あなたに質問することもできません。作業にどちらかが必要なら、メインのループにとどまります。
- 小さな作業。ファイルを一つ読む、ちょっと編集する程度なら、任せるほうが自分で行うよりもコストがかかります。
- 成果物の送付と現実世界での操作。メールの送信、ドキュメントの作成、カレンダーの予定の登録などです。下書きしたのはPerchなので、それまでのすべてのステップを踏まえたまま、Perchが届けます。
すべてのターンにチームが必要なわけではありません
サブエージェントが動くモデルを選ぶ
Perch Desktopでは、入力欄のモデルメニューにSub-agentsの行(Agents run on)があります。Inheritのままにしておくと、ヘルパーエージェントはそのターンと同じモデルで動きます。モデルを選ぶと、Perchが起動するすべてのヘルパーエージェントがそのモデルで動きます。バックグラウンドに委任したエージェントも含みます。
選べるモデルは、自分用に固定できるモデルと同じです。つまり、あなたのプランで固定できるモデルは、ここでも選べます。名前を指定したモデルで動くエージェントは、ほかの固定したモデルと同じように課金されます。Inheritの場合はRoostのルーティングのままです。
Perchは理由があれば、一つのタスクの中でヘルパーエージェントごとにモデルを選ぶこともできます。そこで、知っておく価値のあるパターンがあります。別のモデルに作業をチェックさせることです。書いたモデル自身がレビューしたドラフトは、自分自身に同意しがちです。別のモデルがレビューすれば、食い違いが表面化します。直接頼んでください:
draft the summary, then have a different model verify it against the sourcesプランに含まれないモデルを指定すると、Perchは黙って別のモデルを使うのではなく、その旨を伝えて止まります。
エフォートバーが積極性を決める
入力欄のエフォートバーは、Perchがターンにどれだけ力を注ぐかを決めます。そこには、どれだけ積極的に作業を分散させるかも含まれます。
| エフォート | 動作 |
|---|---|
| Off、Low、Medium | Perchはほとんど自分のループの中で作業します。それでも作業を任せることはでき、頼めばそうします。 |
| High | Perchは、どんな形の作業を任せる価値があり、どれがオーバーヘッドに見合わないかを判断します。これがデフォルトです。 |
| Flock | タスク全体を最初からチームとして計画します。Flockを参照してください。 |
ターンを超えて続く作業
サブエージェントは、あなたが待っているターンの中で動きます。待ちたくないほど長い作業の場合は、/delegateを使うと、代わりにバックグラウンドのエージェントに任せられます。すぐに次の入力ができるようになり、完了すると結果がレビューのために届きます。スラッシュコマンドを参照してください。
上限
- 再帰なし。サブエージェントは、自分のサブエージェントを起動できません。オーケストレーション用のツールは、すべてのヘルパーエージェントから取り除かれています。
- 範囲を限った実行。各ヘルパーエージェントには実行できるステップ数とツール呼び出し数に上限があり、モデルに要求するのではなく、Perchが強制します。
- 正直な結果。ファイルを読めなかったヘルパーエージェントは、それを未読として報告します。部分的な結果は、部分的なものとして返ってきます。
- Perch Terminalのみ。サブエージェントには、デスクトップアプリとCLIが持つ、ローカルファイルへのアクセスが必要です。Webチャットは一度の処理で回答します。
サブエージェントが動くループについてはオペレーターとエージェントを、チーム全体の計画と検証の仕組みについてはFlockを参照してください。