コンテンツにスキップ

endue のしくみ

Markdown で表示

endue のエージェントに何かを頼んでも、エージェントは一度で答えを出すわけではありません。決める、動く、返ってきたものを見る、また決める、というループで仕事をします。このループを理解すると、もどかしいエージェントが役に立つエージェントに変わります。なぜそうしたのか、なぜ止まったのか、なぜ質問してきたのか。振る舞いについての疑問は、ほとんどがこのループについての疑問だからです。

実行とは、このサイクルを1周ずつ、エージェントが答えを得るか、あなたの助けが必要になるまで繰り返すことです。

  1. コンテキストを読む。何よりも先に、エージェントは自分が知っていることを集めます。システムプロンプト、ここまでの会話、関連するメモリ、そして作業中のプロジェクトです。

  2. 決める。ツールを呼び出す、あなたに質問する、答えを返す、のいずれかから次の行動を選びます。

  3. 動く。ツールを選んだ場合は、そのツールが実行されます。呼び出しとその結果は、起きたそばから確認できます。

  4. 結果を見る。ツールの出力はコンテキストに戻されます。失敗した呼び出しも情報の一つです。エージェントはエラーを見て、別の方法を試せます。

  5. 繰り返す。前より多くの情報を持って、ステップ2に戻ります。

エージェントがループを抜けるのは、必要なものがそろったとき、あなたに何かを求める必要が出たとき、または上限に達したときです。

エージェントは、あなたのアカウントのすべてを見通せるわけではありません。これは意図的な設計です。実行が始まった時点で、コンテキストには次のものが含まれます。

含まれるもの含まれないもの
現在のリビジョンのシステムプロンプトほかのエージェントの会話
この会話の履歴同じスレッドでない限り、このエージェントとほかの場所で交わした会話
保存したメモリのうち、今関係のあるものこれまでに覚えたことすべて(メモリはまるごと読み込まれるのではなく、選んで使われます)
会話がプロジェクトの中にある場合は、そのプロジェクトのコンテキスト接続していないサービスのデータ
使用を許可されたツールほかのエージェントに紐付けられたツール

紐付けが重要なのはこのためです。Gmail をアカウントに接続しても、すべてのエージェントのコンテキストに受信トレイが入るわけではありません。接続は必要なエージェントに紐付け、紐付けたエージェントだけがそれを見られます。

実行が途中で止まる理由は、ちょうど3つです。会話の中での見え方は、それぞれ異なります。

あなたしか知らない情報が必要なとき。エージェントは質問をして待ちます。選択肢から選んでもらう、自由に入力してもらう、好みをまとめて尋ねる、といった形です。答えると作業が再開します。

取り消しのきかないことをしようとしているとき。メールの送信、メッセージの投稿、データの削除などです。実行は一時停止し、どの操作をどの引数で行うのかをそのまま表示します。この確認のしくみは設定で変更できません。

持っていない能力が必要なとき。役に立つスキルが紐付けられていない場合、エージェントは失敗する代わりに、そのスキルを求めることができます。許可するか拒否するかは、会話の中で選びます。

実行はブラウザーのタブではなく、endue のサーバー上で行われます。ここから、知っておきたいことが一つ導かれます。アプリを閉じても作業は止まりません。

長いタスクを始めてタブを閉じ、あとで戻ってくれば、実行は続いていて、結果が待っています。ルーティンが成り立つのも同じ理由です。スケジュールされた実行は、誰かが見ている必要がありません。

自分のマシン上で、そのマシンのファイルにアクセスしながら作業させたい場合は、そのマシンに endue Computer をインストールしてエージェントに渡します。実行を進めるのはこれまでどおり endue のサーバーで、ファイルとプログラムはあなたのマシンに置かれたままです。

ループのしくみから、そのまま3つの習慣が導かれます。

エージェントが自分で確かめられる方法を用意する。ループの質は、ステップ4で得られるフィードバックの質で決まります。検索して確認する、書いてから読み返す、というように自分の仕事を検証できるタスクのほうが、手探りで一発で正解しなければならないタスクよりもうまくいきます。

手順ではなく、ゴールを具体的に伝える。行動はステップ2でエージェント自身が選びます。「どんな結果なら良いのか」を伝えれば、目指すべきものがはっきりします。一つひとつの手順を細かく指示すると、ループの働きを妨げてしまいます。

早めに修正する。実行中でも軌道修正できます。ステップ3での修正なら1ステップ分で済みますが、実行が終わってから同じ修正をすると、実行1回分がまるごと無駄になります。