DynaSaur: Large Language Agents Beyond Predefined Actions

Dang Nguyen, Viet Dac Lai, Seunghyun Yoon, Ryan A. Rossi, Handong Zhao +7 more
11/4/2024
cs.CL

Official code: adobe-research/dynasaur (360 stars, last commit 2024-12-21).

Abstract

Existing LLM agent systems typically select actions from a fixed and predefined set at every step. While this approach is effective in closed, narrowly scoped environments, it presents two major challenges for real-world, open-ended scenarios: (1) it significantly restricts the planning and acting capabilities of LLM agents, and (2) it requires substantial human effort to enumerate and implement all possible actions, which is impractical in complex environments with a vast number of potential actions. To address these limitations, we propose an LLM agent framework that can dynamically create and compose actions as needed. In this framework, the agent interacts with its environment by generating and executing programs written in a general-purpose programming language. Moreover, generated actions are accumulated over time for future reuse. Our extensive experiments across multiple benchmarks show that this framework significantly improves flexibility and outperforms prior methods that rely on a fixed action set. Notably, it enables LLM agents to adapt and recover in scenarios where predefined actions are insufficient or fail due to unforeseen edge cases. Our code can be found in https://github.com/adobe-research/dynasaur.

View on arXivView PDF

Code Implementations(1)

Official repository for "DynaSaur: Large Language Agents Beyond Predefined Actions"

36030PythonOct 23, 20241 years agoNOASSERTION
agentsagiaillmnlp

Similar Papers

Cite this paper

@article{nguyen2024dynasaur,
  title  = {DynaSaur: Large Language Agents Beyond Predefined Actions},
  author = {Dang Nguyen and Viet Dac Lai and Seunghyun Yoon and Ryan A. Rossi and Handong Zhao and Ruiyi Zhang and Puneet Mathur and Nedim Lipka and Yu Wang and Trung Bui and Franck Dernoncourt and Tianyi Zhou},
  year   = {2024},
  eprint = {2411.01747},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2411.01747v3}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2411.01747.svg)](https://codeofpaper.com/paper/2411.01747)

Discussion