Structured Reasoning With Open-Language Hierarchies of Any Depth
Think the project is interesting? Give it a star! β
π¦
β π¦ sr-olthad # Standalone sr-OLTHAD package that could be published to PyPI
β β£ π sr_olthad # sr-OLTHAD source code
β β ...
β£ π research # Code/data for research tasks
β β£ π data
β β£ π experiments
β β£ π eval_harness
β β π scripts
β£ πpyproject.toml
β πuv.lock(contact me directly)
This project uses the following tooling:
You can run sr-OLTHAD with the GUI and manually input environment states (like you are the dungeon master in D&D) as follows:
uv sync(Learn how to install uv here)
You can set this by running:
export PYTHONPATH=$(pwd)You can verify this by running:
echo $PYTHONPATHFor whatever API's sr-OLTHAD is currently configured to use (see sr-olthad/sr_olthad/config.py), you will need API keys.
These need to be environment variables at run time. To accomplish this, you can either:
- Create a
.envfile with their declaration (python will load them at run time), e.g.:
OPENAI_API_KEY="..."
GROQ_API_KEY="..."
...
- ...or export them to your terminal session manually, e.g.:
export OPENAI_API_KEY="..."
export GROQ_API_KEY="..."
...uv run research/scripts/run_gui.pyπ₯³ You are now running sr-OLTHAD with the GUI!
π βΉοΈ How to run sr-OLTHAD + GUI w/ SemanticSteve
(Make sure you have Docker installed)
- β IMPORTANT: ~1-4 GBs of disk space is required for the image.
docker build -t sr-olthad-ss-gui .-
β IMPORTANT: You MUST use
-itso that you can enter 'yes' to agree to the Minecraft EULA. -
β IMPORTANT: You need to link the ports you want to use, e.g.:
25565for the Minecraft server3000for to view the bot's POV8080for the sr-OLTHAD GUI
-
β IMPORTANT: You need to set whatever environment variables you need, e.g.,
OPENAI_API_KEYGROQ_API_KEY- etc.
βΉοΈ See
sr-olthad/sr_olthad/config.pyto know what API's are configured for use. -
β IMPORTANT: Replace the
MC_USERNAMEwith your Microsoft account email address.
docker run -it \
-p 25565:25565 \
-p 3000:3000 \
-p 8080:8080 \
-e OPENAI_API_KEY="$OPENAI_API_KEY" \
-e GROQ_API_KEY="$GROQ_API_KEY" \
-e MC_USERNAME="microsoftaccountemail@example.com" \
-e HIGHEST_LEVEL_TASK="Acquire iron." \
sr-olthad-ss-guiEventually, you will see a message like this in the terminal:
To sign in, use a web browser to open the page https://www.microsoft.com/link and use the code 3ABE9FVH or visit http://microsoft.com/link?otc=3ABE9FVH
Follow this link and do the Microsoft login flow.
- Open the GUI at
localhost:8080 - Open the bot POV at
localhost:3000
(Assuming these were the ports you linked in the docker run command)
π₯³ You are now running sr-OLTHAD with SemanticSteve and the GUI!
Since every re-run requires (1) logging in to Microsoft and (2) waiting for the server to start, invoking docker run every time you want to run the run_gui_semantic_steve.py script is a major hassle!
Instead, we recommend leveraging the in-container terminal accessible via Docker Desktop to re-run the script.
Here are some useful commands (assumes pwd is /app, which it should be by default):
pkill -2 python- Sends SIGINT to any running Python processes (stopping any previously running script)
export HIGHEST_LEVEL_TASK="Acquire diamond."- Re-sets sr-OLTHAD's highest-level task.
uv run research/scripts/run_gui_semantic_steve.py- Re-runs the script.
uv sync(Learn how to install uv here)
You must have Node.js 22 installed. You can check your version with:
node --versionIf the result is not v22.x.x, you MUST install and link Node.js 22. We recommend using nvm (Node Version Manager) for managing this.
- You must have
yarninstalled. Learn how to install it here.
(Use the Minecraft launcher w/ your Microsoft Account)
- IMPORTANT: The world MUST be β Java Edition, version 1.21.1 β
- DO NOT use 1.21.5 (the latest release)!
In Minecraft, press the Esc key, and click Open to LAN.
You can set this by running:
export PYTHONPATH=$(pwd)You can verify this by running:
echo $PYTHONPATHFor whatever API's sr-OLTHAD is currently configured to use (see sr-olthad/sr_olthad/config.py), you will need API keys.
These need to be environment variables at run time. To accomplish this, you can either:
- Create a
.envfile with their declaration (python will load them at run time), e.g.:
OPENAI_API_KEY="..."
GROQ_API_KEY="..."
...
- ...or export them to your terminal session manually, e.g.:
export OPENAI_API_KEY="..."
export GROQ_API_KEY="..."
...uv run research/scripts/run_gui_semantic_steve.py- Open the GUI at
localhost:8080 - Open the bot POV at
localhost:3000
π₯³ You are now running sr-OLTHAD with SemanticSteve and the GUI!

