# Oracle モードについて

## **Oracle とは？**

Oracle は、flowithチームが開発した最先端のインテリジェントエージェントシステムです。pre-AGI（pre-Artificial General Intelligence）の実現を目指して設計されました。複数のツールを使用する必要がある多段階の複雑なタスクを処理するために特別に設計されています。



Oracleの主な特長は以下の通りです：

* **自律的なタスク計画**
* **タスクの分解**
* **無制限のツール活用**
* **自己最適化**

Oracleの外部機能は継続的に更新・強化されており、時間とともにより強力になっていきます。



<figure><img src="https://content.gitbook.com/content/2agAjJERs7Y6IiotYFD6/blobs/Lb1TccN0scGPrEBlzdlD/Amazing%20Mockups.jpeg" alt=""><figcaption><p>Oracle Recipe and Nodes</p></figcaption></figure>

{% hint style="info" %}


つまり、Oracleはデータレベルで動作する汎用エージェントです。これは以下の特徴を持ちます：

1. データ層で機能し、物理的な媒体や実世界との直接的なやりとりは行いません。
2. 汎用性が高く、事前に訓練された機能や定義された機能に限定されず、幅広いタスクを実行できます。
3. 単なる大規模言語モデル（LLM）を超えたエージェントとして、ツールの利用、メモリの管理、複数の LLM との協調が可能です。
4. 単純なクエリやコマンドを超えた複雑なタスクを完了できます。
5. 新しい状況に適応する能力があり、未知の環境やタスクにおいても自己学習と処理が可能です。
{% endhint %}

## 主要概念

**Recipe Workflow**

「recipe」 という言葉は、本来、料理の作り方を示す一連の手順を指します。Oracle においては、recipe は AI がユーザーのタスクを完了するために実行する体系的なワークフローを表します。ユーザーが要求や指示を入力すると、Oracle はその全体的な指示を、自身の能力と利用可能なツールに基づいて、より小さなサブタスクに分解します。これらのサブタスクは、その後、タスクアロケーターに渡され、段階的に実行されます。



完全な recipe を設計した後、Oracle は必ず実行を開始する前にユーザーに確認を取ります。この確認プロセス中、ユーザーはレシピ内の特定のステップを直接修正することができます。以下の操作が可能です：

* Adjusting the order of steps
* Deleting steps
* Modifying text
* Adding new steps

<figure><img src="https://content.gitbook.com/content/2agAjJERs7Y6IiotYFD6/blobs/zu8C1nUY5LDCaMxYYNnm/%E4%BA%A712%E5%93%81%E5%9B%BE%205.png" alt="" width="563"><figcaption><p>A Recipe Generated by Oracle</p></figcaption></figure>

**Dispatcher**&#x20;

Dispatcher 別名：タスク割り当て器）は、オラクルが生成したサブタスクの実行において重要な役割を果たす要素です。オラクルが生成した各サブタスクに対し、Dispatcher 内の専用エージェントが割り当てと実行を担当します。このエージェントは、オラクルがサポートするツールセットの中から最適なツールを選択し、サブタスクを実行して完了させます。

例えば、サブタスクが 「ソーシャルメディアで flowith のユーザーレビューを検索する」 場合、タスク割り当て機能は 「Twitter検索ツール」、「Reddit検索ツール」、そして 「Google検索ツール」 を呼び出し、Flowith のユーザーレビューを検索します。

Oracle の会話開始ページで、現在サポートされているツールの一覧をご確認いただけます。このリストはリアルタイムで更新されており、私たちは継続的に Oracle のサポートされているツールキットに最も有用なツールを追加しています。

{% content-ref url="oracle-gasaptosuruno" %}
[oracle-gasaptosuruno](oracle-gasaptosuruno)
{% endcontent-ref %}





<figure><img src="https://content.gitbook.com/content/2agAjJERs7Y6IiotYFD6/blobs/g6n2Kda04BzP3TPTHtPJ/%E4%BA%A7%E5%93%81%E5%9B%BE4.jpg" alt="" width="563"><figcaption><p>Tools supported by Oracle</p></figcaption></figure>





**Memory and Context Management**

Oracle is designed for complex tasks, which often generate extensive context due to their multi-step nature. If we were to provide all previous context to the LLM (Large Language Model), it could potentially impact its performance.

To address this, Oracle employs intelligent context management during task allocation and execution. For example, when Oracle reaches step 10 of a process, its memory manager evaluates which information from previous steps is essential and incorporates only the necessary context into the current step. This approach eliminates concerns about excessively long context.



**Self-Iteration and Update Recipe**

After completing each step, Oracle automatically updates the entire Recipe based on the execution results of each step. For instance, if it fails to find the required information, it will incorporate additional search steps into the subsequent stages to ensure successful task completion.

When Oracle inquires about user satisfaction with the results, and the user expresses dissatisfaction, it will generate additional steps in an attempt to provide the desired outcome.

