Singlestoreは毎年2つの内部ハッカソンを開催しています。従業員は、好きなものに自由に取り組むことができます。
このハッカソンのテーマはAI/MLだったので、 Singlestoreが提供するVector Databaseのもので何かをしようとすることを試み、いくつかのOpenai Shenanigansをミックスすることにしました。
このプロジェクトの目標は、「ユーザーが提供するタスクを達成するために協力しなければならないポケモンのような世界に住んでいる複数のAIエージェントがいる」という線に沿って何かを作ることでした。
残念ながら、時間の制約のため、最終的には単一のエージェントのAIサポートのみを実装することになりました。迅速なエンジニアリングは簡単ではありません - エージェントはかなり愚かであり、すでに開いたドアを開けるなど、すでに行ったタスクを繰り返すことになります。
エージェントは、 walk(target)とinteract(item, target) 2つのアクションを実行できます。ターゲットに歩くと、指定されたオブジェクトまたは文字の隣の文字を移動するだけです。たとえば、操作を使用して、キーを使用してドアを開けることができます。
エージェントは自分の行動の結果からフィードバックを得る:たとえば、 Cannot walk to 'goal' because 'door' is blocking the path walk(goal) 「ゴール」に歩くことができない。決定は、ベクトルデータベース(この場合はSingleStore )から世界情報を照会し、プロンプトに含めることによって実行されます。
世界情報にはルールと状態が含まれます。例えば:
You can open 'door's by interacting with them using 'key'.
There is a 'door' named 'door 1'.
エージェントは、3つの異なるプロンプトタイプで制御されています。
cp .env{.example,}.envファイルを編集して入力します(SingLestoreデータベースの作成が必要です)LEVEL=<level_name> DATABASE=[dumb|s2] python3 scripts/main.py注: level_nameはscripts/levelsフォルダー内で選択するファイルの名前です。