Skip to content

[ICML 2024] Official repository for "Language Agent Tree Search Unifies Reasoning Acting and Planning in Language Models"

License

Notifications You must be signed in to change notification settings

lapisrocks/LanguageAgentTreeSearch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Official Repo of Language Agent Tree Search (LATS) - ICML 2024

Build License

teaser

Official implementation for ICML 2024 paper Language Agent Tree Search Unifies Reasoning Acting and Planing in Language Models with code, prompts, model outputs.

More can be found at our project website or paper

Check out our demo, CodeLATS at our demo

For a more general implementation for your AI applications, please look at the LangChain implementation in LangGraph. LATS-LangChain

or the LlamaIndex implementation LATS-LlamaIndex

Reasoning + Acting (HotPotQA)

Setup

To get started:

  1. Clone this repo and move to the HotPotQA directory:
git clone https://github.com/andyz245/LanguageAgentTreeSearch && cd LanguageAgentTreeSearch/hotpot
  1. Install the module dependencies into your environment:
pip install -r requirements.txt
  1. Set OPENAI_API_KEY environment variable to your OpenAI API key:
export OPENAI_API_KEY=<your key>
  1. Set the scripts and run paper experiments
sh lats.sh
  • --n_generate_sample: number of times to prompt during expansion/sampling
  • --n_evaluate_sample: number of times to prompt for state evaluation
  • --iterations: maximum number of trajectories to sample

Reasoning (Programming)

Setup

To get started:

  1. Clone this repo and move to the HotPotQA directory:
git clone https://github.com/andyz245/LanguageAgentTreeSearch && cd LanguageAgentTreeSearch/programming
  1. Install the module dependencies into your environment:
pip install -r requirements.txt
  1. Set OPENAI_API_KEY environment variable to your OpenAI API key:
export OPENAI_API_KEY=<your key>
  1. Set the scripts and run paper experiments
sh run_lats.sh

Code adapted from https://github.com/noahshinn024/reflexion/tree/main

Decision-making (WebShop)

Setup

To get started:

  1. Clone this repo and move to the WebShop directory:
git clone https://github.com/andyz245/LanguageAgentTreeSearch && cd LanguageAgentTreeSearch/webshop
  1. Install WebShop from source and run environment instance locally. Follow the instructions here (https://github.com/princeton-nlp/WebShop)

  2. Install the module dependencies into your environment:

pip install -r requirements.txt
  1. Set OPENAI_API_KEY environment variable to your OpenAI API key:
export OPENAI_API_KEY=<your key>
  1. Change localhost in lats.py to your local port running WebShop

  2. Set the scripts and run paper experiments

sh lats.sh
  • --n_generate_sample: number of times to prompt during expansion/sampling
  • --n_evaluate_sample: number of times to prompt for state evaluation
  • --iterations: maximum number of trajectories to sample

Trajectories

programming/root/ contains all the trajectories from the paper's experiments on programming. Please use get_acc.py with the log path to get the actual accuracy. HotPotQA and WebShop logs were too large to upload, feel free to email if interested.

Citations

Please cite the paper and star this repo if you use LATS and find it interesting. Feel free to contact [email protected] or open an issue if you have any questions.

@misc{zhou2023language,
      title={Language Agent Tree Search Unifies Reasoning Acting and Planning in Language Models}, 
      author={Andy Zhou and Kai Yan and Michal Shlapentokh-Rothman and Haohan Wang and Yu-Xiong Wang},
      year={2023},
      eprint={2310.04406},
      archivePrefix={arXiv},
      primaryClass={cs.AI}
}

About

[ICML 2024] Official repository for "Language Agent Tree Search Unifies Reasoning Acting and Planning in Language Models"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published