Singlestore hospeda dois hackathons internos todos os anos, onde os funcionários são livres para trabalhar no que quiserem - não precisam ser úteis de forma alguma.
O tema deste hackathon foi a IA/ML, então decidimos tentar fazer algo com o banco de dados do vetor que o SingleStore nos fornece e também misturar algumas travessuras do Openai .
O objetivo do projeto era fazer algo como "existem vários agentes de IA que vivem em um mundo de Pokemon, que deve colaborar para realizar tarefas dadas pelo usuário".
Infelizmente, devido a restrições de tempo, acabamos implementando apenas o suporte de IA para um único agente. Acontece que a engenharia imediata não é fácil - os agentes são bastante burros e às vezes acabam repetindo tarefas que já fizeram, como abrir uma porta que já abriram.
Os agentes podem executar duas ações: walk(target) e interact(item, target) . Caminhando para um alvo apenas move o personagem ao lado do objeto ou personagem fornecido. A interação pode ser usada, por exemplo, para abrir uma porta usando uma chave.
Os agentes recebem feedback do resultado de suas ações: por exemplo, walk(goal) pode resultar em Cannot walk to 'goal' because 'door' is blocking the path . As decisões são realizadas consultando informações mundiais de um banco de dados vetorial ( SingleStore neste caso) e incluí -las em prompts.
As informações mundiais incluem regras e estado. Por exemplo:
You can open 'door's by interacting with them using 'key'.
There is a 'door' named 'door 1'.
Os agentes são controlados com 3 tipos de prompts diferentes:
cp .env{.example,}.env e preencha -o (precisa criar um banco de dados SingleStore)LEVEL=<level_name> DATABASE=[dumb|s2] python3 scripts/main.py Nota: level_name é o nome de um arquivo de sua escolha na pasta scripts/levels .