Sobre o projeto

Jericho serve como um ambiente de aprendizado especializado, projetado para facilitar a pesquisa em Inteligência Artificial e Aprendizado por Reforço, conectando agentes autônomos a jogos de Ficção Interativa (IF) feitos pelo homem. Construído como uma interface leve baseada em Python, ele aproveita o emulador Frotz para fornecer uma maneira padronizada para agentes interagirem com jogos de aventura baseados em texto. **Capacidades Principais e Ambiente** A função principal do Jericho é expor jogos de IF como ambientes semelhantes ao Gym, permitindo que pesquisadores treinem agentes para navegar por estruturas narrativas complexas por meio de comandos de linguagem natural. Os componentes principais incluem: * **Ambiente Frotz:** A interface central que lida com o estado do jogo, ações e observações. * **Árvore de Objetos:** Fornece insights estruturais sobre o mundo do jogo, ajudando agentes a entender relacionamentos espaciais e interações de objetos. * **Dicionário do Jogo:** Ajuda na análise e compreensão do vocabulário específico de cada jogo. * **Gerador de Ações de Template:** Um utilitário para criar templates de ações válidas para guiar a exploração do agente. **Atualizações da Versão 4.0 e Determinismo** Uma mudança significativa no Jericho 4.0 aborda o tratamento de sementes aleatórias para melhorar o rigor científico. Antes desta versão, omitir um argumento de semente fazia com que o jogo usasse silenciosamente a semente do walkthrough, tornando os episódios determinísticos. Esse comportamento foi identificado como um obstáculo para agentes de aprendizado, pois removia a estocasticidade necessária. Na versão 4.0: * Os ambientes são **estocásticos por padrão**: Se nenhuma semente for especificada, uma nova semente aleatória é sorteada para cada episódio. * **Reprodutibilidade:** A semente usada em um episódio é relatada no dicionário de informações de `reset()` e acessível via `FrotzEnv.episode_seed`, permitindo que pesquisadores reproduzam episódios específicos posteriormente. * **Controle de Walkthrough:** Os usuários podem solicitar explicitamente a semente do walkthrough usando `use_walkthrough_seed=True` em `reset()` ou acessando `env.walkthrough_seed`. Um `ImplicitRandomSeedWarning` é emitido se um agente iniciar um episódio sem uma escolha de semente explícita para jogos com walkthroughs conhecidos, incentivando as melhores práticas em design experimental. **Requisitos e Instalação** Jericho requer Linux, Python 3.12+, SpaCy e ferramentas de construção básicas (gcc, make, curl). Ele pode ser instalado via pip, com dependências gerenciadas por meio do Conda ou ambientes Python padrão. O projeto inclui documentação extensa que cobre guias de início rápido, referências de API e funções de utilidade. **Integração de Pesquisa** O repositório destaca vários agentes de IA que utilizaram o Jericho para treinamento, incluindo Reading Comprehension Deep Q-Network (RCDQN), Contextual Action Language Model (CALM), Q*BERT e Knowledge Graph Advantage Actor Critic (KG-A2C). Isso demonstra sua utilidade no teste de compreensão de linguagem natural, planejamento e algoritmos de aprendizado por reforço em domínios complexos baseados em texto.