エージェント・ゼロ
パーソナルで有機的な AI フレームワーク
- Agent Zero は、事前定義されたエージェント フレームワークではありません。動的で有機的に成長し、使用するにつれて学習できるように設計されています。
- Agent Zero は完全に透過的で、読みやすく、理解しやすく、カスタマイズ可能でインタラクティブです。
- Agent Zero は、(ユーザーの) タスクを達成するためのツールとしてコンピューターを使用します。
レスポンシブ UI、自動メモリ、リフレクションが追加されました:
主要な概念
- 汎用アシスタント
- Agent Zero は、特定のタスク用に事前にプログラムされていません (ただし、プログラムすることは可能です)。これは、汎用のパーソナルアシスタントを目的としています。タスクを与えると、情報を収集し、コマンドとコードを実行し、他のエージェント インスタンスと連携して、そのタスクを達成するために最善を尽くします。
- 永続的なメモリを備えているため、以前のソリューション、コード、事実、指示などを記憶し、将来的にタスクをより迅速かつ確実に解決できるようになります。
- 道具としてのコンピュータ
- Agent Zero は、タスクを実行するためのツールとしてオペレーティング システムを使用します。事前にプログラムされた単一目的のツールはありません。代わりに、独自のコードを記述し、ターミナルを使用して独自のツールを必要に応じて作成および使用できます。
- その武器庫にある唯一のデフォルト ツールは、オンライン検索、メモリ機能、通信 (ユーザーおよび他のエージェントとの)、およびコード/ターミナル実行です。他のものはすべてエージェント自体によって作成されるか、ユーザーによって拡張できます。
- ツール使用機能は、非常に小規模なモデルであっても、最も互換性があり信頼性が高いように最初から開発されました。
- デフォルトのツール: Agent Zero には、ナレッジ、Web ページ コンテンツ、コード実行、コミュニケーションなどのツールが含まれています。
- カスタム ツールの作成:独自のカスタム ツールを作成して、Agent Zero の機能を拡張します。
- インストゥルメント:インストゥルメントは、Agent Zero から呼び出すことができるカスタム関数とプロシージャを作成できる新しいタイプのツールです。
- マルチエージェント連携
- すべてのエージェントには、タスクと指示を与える優れたエージェントがいます。その後、すべてのエージェントが上司に報告します。
- チェーン内の最初のエージェント (エージェント 0) の場合、上位は人間のユーザーです。エージェントには違いがわかりません。
- すべてのエージェントは、サブタスクを分解して解決するために下位エージェントを作成できます。これにより、すべてのエージェントがコンテキストをクリーンかつ集中的に保つことができます。
- 完全にカスタマイズ可能で拡張可能
- このフレームワークにはハードコーディングされたものはほとんどありません。何も隠されていません。ユーザーはすべてを拡張または変更できます。
- 全体の動作は、prompts/default/agent.system.mdファイル内のシステム プロンプトによって定義されます。このプロンプトを変更し、フレームワークを大幅に変更します。
- このフレームワークは、エージェントをいかなる形でもガイドしたり制限したりしません。エージェントが従わなければならないハードコーディングされたレールはありません。
- すべてのプロンプト、通信ループでエージェントに送信されるすべての小さなメッセージ テンプレートは、 prompts/フォルダーで見つけて変更できます。
- すべてのデフォルト ツールはpython/tools/フォルダーにあり、変更またはコピーして新しい事前定義ツールを作成できます。
- もちろん、これはオープンソースです (Perplexity などの一部のツールを除きますが、これも将来的にはオープンソースの代替ツールに置き換えられる予定です)。
- コミュニケーションが鍵です
- エージェントに適切なシステム プロンプトと指示を与えると、奇跡が起こる可能性があります。
- エージェントは上司や部下とコミュニケーションをとり、質問したり、指示を出したり、ガイダンスを提供したりできます。システム プロンプトでエージェントに効果的なコミュニケーション方法を指示します。
- 端末インターフェイスはリアルタイムでストリーミングされ、インタラクティブです。いつでも停止して介入できます。エージェントが間違った方向に進んでいるのを見つけたら、立ち止まってすぐに伝えてください。
- この枠組みには多くの自由があります。継続の許可を求める上司に定期的に報告するようエージェントに指示できます。サブタスクをいつ委任するかを決定する際に、ポイントスコアリング システムを使用するように指示できます。上司は部下の結果を再確認し、議論することができます。可能性は無限大です。
嬉しい機能
- 出力は非常にきれいで、カラフルで、読みやすく、インタラクティブです。何も隠されていません。
- ターミナルに表示されるのと同じカラフルな出力が、セッションごとにlogs/フォルダー内の HTML ファイルに自動的に保存されます。
- エージェントの出力はリアルタイムでストリーミングされるため、ユーザーはいつでも読み進めて介入できます。
- コーディングは必要ありません。プロンプトとコミュニケーションのスキルのみが必要です。
- 堅牢なシステム プロンプトを備えたフレームワークは、ツールの正確な使用を含め、小規模なモデルであっても信頼性が高くなります。
覚えておいてください
エージェント ゼロは危険な可能性があります!適切な指示があれば、Agent Zero は多くのことを実行でき、コンピュータ、データ、アカウントに危険を及ぼす可能性もあります。 Agent Zero は常に隔離された環境 (組み込みの Docker コンテナーなど) で実行し、必要な内容に注意してください。
Agent Zero は事前にプログラムされていません。プロンプトベースです。フレームワーク全体には最小限のコードのみが含まれており、エージェントをまったくガイドしません。すべては、 prompts/フォルダー内のシステム プロンプトにあります。ここで、フレームワークの動作全体をニーズに合わせて書き直すことができます。エージェントが適切にコミュニケーションできない場合は、ツールを使用し、論理的に考え、記憶を使い、答えを見つけてください。エージェントにより適切に指示するだけです。
理想的な環境を提供できない場合は、エージェントに知らせてください。 Agent Zero は、(安全のため) いくつかのツールが事前にインストールおよび構成された、分離された仮想環境で使用されるように作られています。必要な条件や API キーをすべて提供できない場合は、システム プロンプトを変更して、エージェントに使用できるオペレーティング システムとツールを伝えてください。何もハードコーディングされていません。特定のツールについてエージェントに伝えなければ、エージェントはそのツールについて知ることができず、使用しようとしません。
既知の問題
- システムプロンプトは最悪です。もっと上手にできるよ。もしそうなら、助けてください:)
- SSH を介した Docker コンテナ内のエージェントと端末間の通信が中断され、出力の生成が停止する場合があります。エージェントが「server.serve_forever()」のようなものを実行することが原因で端末がハングすることもあれば、ランダムなエラーが発生することもあります。エージェントや Docker コンテナを再起動すると役に立ちます。
- エージェントはオペレーティング システムを破壊する可能性があります。場合によっては、エージェントが仮想環境の非アクティブ化、パッケージのアンインストール、構成の変更などを行うことがあります。この場合も、Docker コンテナーを削除してwork_dir/ をクリーンアップするだけで問題を解決できます。
理想的な環境
- Docker コンテナ: Agent Zero を実行するのに最適な環境は、組み込みの Docker コンテナです。エージェントはイメージfrdel/agent-zero-exe を独自にダウンロードしてコンテナーを起動できます。必要なのは、Docker を実行することだけです (Docker デスクトップ アプリケーションなど)。
- Python : フレームワークを実行するには、Python をシステムにインストールする必要があります。
- インターネット アクセス: エージェントは、オンライン ナレッジ ツールを使用したり、接続が必要なコマンドやスクリプトを実行したりするために、インターネット アクセスが必要です。エージェントをオンラインにする必要がない場合は、 prompts/フォルダー内のプロンプトを変更し、完全にローカルにすることができます。
設定
Windows、macOS、Linux の詳細なセットアップ ガイド (ビデオ付き) は、このページの新しい Agent Zero ドキュメントにあります。
ドキュメントを参照してください
このドキュメントでは、フレームワークとその機能について詳しく説明しています。 Agent Zero を初めて使用する場合は、ここから始めるのが良いでしょう。ここをクリックしてドキュメントを参照してください。
もうすぐ
- プレインストールされたバイナリとバンドラー スクリプト
- ナレッジツールのオープンソース化とWebスクレイピングツール
- ユーザーインタラクションの改良
- インコンテキストで切り替え可能な LLM
変更履歴 [バージョン 0.7 以降]
v0.7.1
- 常設チャット- /tmp/chats にシリアル化され、起動時に run_ui.py に自動的にロードされます。
- ドキュメントスタックがリポジトリにマージされました
- バグ修正
v0.7
- 自動メモリ
- UIの改善
- 楽器
- 拡張フレームワーク
- 反省のプロンプト
- バグ修正
注記
v0.6 以降の起動ファイルの変更:
- main.py ファイルは、run_ui.py (webui) および run_cli.py (ターミナル) 起動ファイルに置き換えられました。
- WebUI とターミナル起動ファイルの両方の設定は、initialize.py に移動されました。