Reference:Datawhale wow agent day13
エージェント#
MetaGPT の観点から、エージェントは環境の中のデジタル人間として想像できます。ここで、
エージェント = 大規模言語モデル(LLM) + 観察 + 思考 + 行動 + 記憶
この公式はエージェントの機能の本質を要約しています。各構成要素を理解するために、人間との類似性を考えてみましょう:
- 大規模言語モデル(LLM):LLM はエージェントの「脳」の部分として機能し、情報を処理し、相互作用から学び、意思決定を行い、行動を実行します。
- 観察:これはエージェントの知覚メカニズムであり、環境を認識することを可能にします。エージェントは、別のエージェントからのテキストメッセージ、監視カメラからの視覚データ、カスタマーサービスの録音からの音声など、さまざまな信号を受信する可能性があります。これらの観察は、すべての後続の行動の基礎を形成します。
- 思考:思考プロセスは、観察結果と記憶内容を分析し、可能な行動を考慮することを含みます。これはエージェント内部の意思決定プロセスであり、LLM によって駆動される可能性があります。
- 行動:これらはエージェントが思考と観察に対して明示的に応答するものです。行動は、LLM を利用してコードを生成することや、ローカルファイルを読むなどの手動で定義された操作である可能性があります。さらに、エージェントは、インターネットで天気を検索したり、計算機を使って数学計算を行ったりするなど、ツールを使用する操作を実行することもできます。
- 記憶:エージェントの記憶は過去の経験を保存します。これは学習にとって重要であり、エージェントが以前の結果を参照し、それに基づいて将来の行動を調整することを可能にします。
マルチエージェント#
マルチエージェントシステムは、エージェントの社会と見なすことができ、ここで
マルチエージェント = エージェント + 環境 + 標準プロセス(SOP) + コミュニケーション + 経済
これらのコンポーネントはそれぞれ重要な役割を果たします:
- エージェント:上記で個別に定義された基盤の上に、マルチエージェントシステム内のエージェントは協力して作業し、各エージェントは独自の LLM、観察、思考、行動、記憶を備えています。
- 環境:環境はエージェントが生存し、相互作用する公共の場です。エージェントは環境から重要な情報を観察し、他のエージェントが使用するために行動の出力結果を発表します。
- 標準プロセス(SOP):これらはエージェントの行動と相互作用を管理するための既定の手順であり、システム内部の秩序と効率的な運用を確保します。例えば、自動車製造の SOP では、一つのエージェントが自動車部品を溶接し、別のエージェントがケーブルを取り付け、組立ラインの秩序ある運用を維持します。
- コミュニケーション:コミュニケーションはエージェント間の情報交換のプロセスです。これはシステム内での協力、交渉、競争にとって重要です。
- 経済:これはマルチエージェント環境内の価値交換システムを指し、資源配分とタスクの優先順位を決定します。
タスク#
各タスクについて、少なくとも二つの点を明確にする必要があります:目標と期待。目標と期待は自然言語で説明できます。
他に明確にする必要があるのは、文脈、コールバック、出力、使用するツールです。
コールバックは Python 関数である可能性があります。使用するツールは Python リストである可能性があります。
pydantic を使用して出力を制約することができます。大モデルの曖昧な出力を強制的に構造化された出力に変えることができます。
ツール#
一般的なツールの一つは検索エンジンです。例えば、Google の serper。国内の代替品は何ですか?
また、クローリングツールもあります。
新しい Jupyter ノートブックを作成し、以下のコードをコピーします。
import asyncio
from metagpt.roles import (
Architect,
Engineer,
ProductManager,
ProjectManager,
)
from metagpt.team import Team
async def startup(idea: str):
company = Team()
company.hire(
[
ProductManager(),
Architect(),
ProjectManager(),
Engineer(),
]
)
company.invest(investment=3.0)
company.run_project(idea=idea)
await company.run(n_round=5)
上記のコードでは、デフォルトの役割をそのまま使用できます。これらの役割が何をするかはすでに書かれているので、そのまま使えます。
次に、以下の行のコードを実行して作業を開始します:
|Python<br>await startup(idea="問題解決プログラムを開発する")|
| :- |