This repo contains two things:
- A simple RPG-like environment for an LLM-enabled AI Agent to exist in
- A simple AI Agent connected to the OpenAI API to exist in that environment
It is intended as a proof of concept.
GPTRPG is intended to be run locally. To run:
- Make sure you have updated the
agent/env.json
file with your OpenAI API key. - Only tested with node 16.19.0
- In the
gptrpg
directory runnpm install
to install dependencies for all projects. - Then run
npm start
in the root directory. This will start the agent and the front-end. The front-end will be available athttp://localhost:3000
.
Code for the environment lives in the ui-admin
directory. It is a React project.
The environment was made with Tiled map editor. The files live in ui-admin/src/assets
.
The environment is rendered with Phaser and the Grid Engine Plugin
The environment consists of:
- The character (agent)
- Impassable tiles
- A plant layer with "plantable" tiles, and plants (not currently in use by agent). Player can plant food on plantable tiles with S key and harvest food with D key.
Code for the agent lives in the agent
directory.
The agent is a simple AI agent that uses the OpenAI API to make decisions. It communicates with the front-end via a websocket.
The agent is provided with a list of possible actions, the state of its surroundings, and its internal state (currently only sleepiness is measured).
- Multi agent support
- More agent actions (drink, eat, plant food, harvest food, write poetry, etc.)
- More agent states (hunger, thirst, etc.)
- Agent memory
- Agent goals
- Agent inventory
- Deployment to web
- Human controlled character
- UI enhancements (agent state, human interactions, etc.)
Currently, GPTRPG runs with the gpt-3.5-turbo
API.