AutoGPT icon indicating copy to clipboard operation
AutoGPT copied to clipboard

do_nothing is the only response i get from auto-gpt: NEXT ACTION: COMMAND = do_nothing ARGUMENTS = {}

Open torchesburn opened this issue 1 year ago • 24 comments

⚠️ Search for existing issues first ⚠️

  • [X] I have searched the existing issues, and there is no existing issue for my problem

GPT-3 or GPT-4

  • [ ] I am using Auto-GPT with GPT-3 (GPT-3.5)

Steps to reproduce 🕹

breaks on simple tasks

Continue with the last settings?
Name:  javascript-developer-GPT
Role:  an ai that codes
Goals: ['write code for javascript', 'create a javascript file', 'run a request animation frame and print out +1 on a variable', 'return a print for every time there is 1000 added', 'return a print for every time there is 2000 added']
Continue (y/n): y
Using memory of type:  LocalCache
Using Browser:  chrome
 THOUGHTS:  I will start by writing the code for javascript and creating a javascript file. Then I will use the request animation frame to print out +1 on a variable. I will set up a condition to return a print for every time there is 1000 added and another print for every time there is 2000 added.
REASONING:  I will start by breaking down the task into smaller steps and then executing each step in order. This will ensure that I am able to complete the task efficiently and without any errors.
PLAN: 
-  Write the code for javascript
-  Create a javascript file
-  Use the request animation frame to print out +1 on a variable
-  Set up a condition to return a print for every time there is 1000 added
-  Set up a condition to return a print for every time there is 2000 added
CRITICISM:  I need to ensure that I am writing clean and efficient code. I should also test my code thoroughly to ensure that it is working as expected.
NEXT ACTION:  COMMAND = do_nothing ARGUMENTS = {}


### Current behavior 😯

NEXT ACTION:  COMMAND = do_nothing ARGUMENTS = {}

### Expected behavior 🤔

do_something 

### Your prompt 📝

```yaml
#
javascript-developer-GPT is: an ai that codes
Goal 1: write code for javascript
Goal 2: create a javascript file
Goal 3: run a request animation frame and print out +1 on a variable
Goal 4: return a print for every time there is 1000 added
Goal 5: return a print for every time there is 2000 added

branch

master

torchesburn avatar Apr 16 '23 23:04 torchesburn

im on linux mint if that helps

torchesburn avatar Apr 16 '23 23:04 torchesburn

@torchesburn . I've been running into similar issues. Also, running on GPT3.5 as well. Maybe GPT3.5 may not have the brainpower for this?

I do wonder though if just some simple meta-reflection on the progress of tasks would help with this. Kind of like the "CRITICISM" section but for the entire process rather than the current step. Thoughts?

Jessie-Wilkins avatar Apr 17 '23 01:04 Jessie-Wilkins

Also, maybe use one of the releases rather than main. I think those are supposed to be more stable and might have these issues fixed (hopefully).

Jessie-Wilkins avatar Apr 17 '23 01:04 Jessie-Wilkins

@torchesburn . I've been running into similar issues. Also, running on GPT3.5 as well. Maybe GPT3.5 may not have the brainpower for this?

I do wonder though if just some simple meta-reflection on the progress of tasks would help with this. Kind of like the "CRITICISM" section but for the entire process rather than the current step. Thoughts?

@torchesburn . I've been running into similar issues. Also, running on GPT3.5 as well. Maybe GPT3.5 may not have the brainpower for this?

gpt3.5 spits it out in 200ms

function animate() {
  count++;
  console.log(count);
  if (count % 1000 === 0) {
    console.log("Count is now " + count);
  }
  if (count % 2000 === 0) {
    console.log("Count is now " + count + " (multiple of 2000)");
  }
  requestAnimationFrame(animate);
}

AndroidDev77 avatar Apr 17 '23 01:04 AndroidDev77

This is a breakage caused between yesterday and today. In trying older versions, file execution still works.

patrickdeluca avatar Apr 17 '23 02:04 patrickdeluca

LLMs love predicting the next token with high confidence, and since do_nothing takes no arguments and is universally applicable, it's a dangerous command to offer to the AI.

The only reason why instructions like "If you don't know the answer, say 'I don't know'" work, is that it's they're universally applicable and can be predicted with higher confidence than most other (higher entropy) completions.

Androbin avatar Apr 17 '23 02:04 Androbin

@torchesburn @patrickdeluca What temperature do you use? If your temperature is set low, try a higher temperature.

Androbin avatar Apr 17 '23 02:04 Androbin

Ah, is that the issue? Set at “0” per new configs.

On Sun, Apr 16, 2023 at 10:21 PM Robin Richtsfeld @.***> wrote:

@torchesburn https://github.com/torchesburn

patrickdeluca avatar Apr 17 '23 02:04 patrickdeluca

Ah, is that the issue? Set at “0” per new configs. On Sun, Apr 16, 2023 at 10:21 PM Robin Richtsfeld @.***> wrote: @torchesburn https://github.com/torchesburn

mine has set the temperature to 1 and still gets the error

Julienbase avatar Apr 17 '23 20:04 Julienbase

@Julienbase Are you using gpt-3.5-turbo or gpt-4 ?

Androbin avatar Apr 17 '23 22:04 Androbin

  • My prompt was to open some text files, and summarise the content inside them in a new text file. The idea was to use execute_shell with various AutoGPT commands, including linux terminal commands.

  • Lets say there are 10 files, i want it to remember it has processed 4 files already and 6 more to go, and to remember which file it has last left the 'cursor' on

  • I have some doubts about this. my prompts have been simple really, but ive spent $10 so far on GPT4 and was not really able to get it to do something coherent, its definitely not too smart on the directory cursor. So even in the workspace it doesnt know which folder its in, I got around this by giving it full directory paths.

  • GPT-4 sometimes hangs for a while, and it just says thinking for ages until it times out. i had not really gone over the token limit.

  • Fairly certain continuous mode had something in a background thread event loop still running on python making requests, and it was not until i deleted the API key that it stopped adding to the cost

  • Setting the temperature higher and lower has varying results.

  • It definitely needs to do more to record the current step that its on in the task journey.

I will keep trying to figure out a decent workflow.

torchesburn avatar Apr 17 '23 23:04 torchesburn

same issue here, After switching to the Stable branch, it will make plans but all the commands are do_nothing.

shFrank avatar Apr 18 '23 09:04 shFrank

I replaced the line response for the do_nothing command in the app.py with the following:

            return (
                    "You are not allowed to do nothing. You must take an action."
                    "Review the tasks you've been given and choose an action that suits the task at hand."
                )

This worked fairly well for me. At the very least, it doesn't get stuck in a loop of planning what it will do but actually do nothing.

0xRy4n avatar Apr 19 '23 04:04 0xRy4n

@Julienbase Are you using gpt-3.5-turbo or gpt-4 ?

Gpt 3.5

Julienbase avatar Apr 19 '23 04:04 Julienbase

Same issue for me. Stuck in a loop despite implementing @0xRy4n fix

source /Users/evandk/Documents/VSCode/Auto-GPT/autogpt_env/bin/activate
❯ source /Users/evandk/Documents/VSCode/Auto-GPT/autogpt_env/bin/activate
❯ python -m autogpt
Welcome back!  Would you like me to return to being BiologyTech-GPT?
Continue with the last settings?
Name:  BiologyTech-GPT
Role:  Create a database for my inventory in my biology lab
Goals: ['Identify the data entities: Determine the primary entities you need to store information about in the biology laboratory database. Common entities in a laboratory database may include samples, experiments, test results, etc.', 'Define the attributes: For each entity, list the attributes (columns) that need to be recorded. For example, for the "samples" entity, you might have attributes such as sample_id, sample_name, sample_type, date_collected, etc.', 'Determine relationships: Understand the relationships between different entities. For example, a sample may be associated with a specific experiment', 'Create the schema: Use SQL commands to create the schema, including creating tables for each entity, defining columns with appropriate data types, setting primary keys, and defining any foreign keys for relationships between tables.']
Continue (y/n): y
Using memory of type:  LocalCache
Using Browser:  chrome
 THOUGHTS:  To determine which command to use for creating the database schema, let's start by identifying the data entities and their attributes.
REASONING:  By starting with the entities and attributes, we can plan out the schema and determine how the entities should be related to each other.
PLAN: 
-  Identify the data entities
-  Define the attributes for each entity
-  Determine relationships between entities
-  Create the schema using SQL commands
CRITICISM:  We need to ensure that we are accurately capturing all necessary information for the biology lab inventory, and making efficient use of the SQL commands to create the schema.
SPEAK:  Let's start by identifying the data entities and their attributes so we can create the schema for the lab inventory database.
Attempting to fix JSON by finding outermost brackets 
Apparently json was fixed. 
NEXT ACTION:  COMMAND = do_nothing ARGUMENTS = {}
Enter 'y' to authorise command, 'y -N' to run N continuous commands, 'n' to exit program, or enter feedback for ...
Input:y
-=-=-=-=-=-=-= COMMAND AUTHORISED BY USER -=-=-=-=-=-=-= 
SYSTEM:  Command do_nothing returned: You are not allowed to do nothing. You must take an action.Review the tasks you've been given and choose an action that suits the task at hand.
 THOUGHTS:  The first step in creating the database schema is to identify the primary entities that we need to store information about in the biology laboratory database.
REASONING:  By identifying the primary entities, we can determine what information needs to be stored and in which tables, which will then inform how the tables should be related to each other.
PLAN: 
-  Identify the primary entities that need to be stored in the database
CRITICISM:  We need to ensure that we are capturing all necessary entities and not overcomplicating the database schema.
SPEAK:  Our first step is to identify the primary entities that need to be stored in the database. This will guide us in determining how the tables should be related to each other.
Attempting to fix JSON by finding outermost brackets 
Apparently json was fixed. 
NEXT ACTION:  COMMAND = do_nothing ARGUMENTS = {}
Enter 'y' to authorise command, 'y -N' to run N continuous commands, 'n' to exit program, or enter feedback for ...
Input:y -2
-=-=-=-=-=-=-= COMMAND AUTHORISED BY USER -=-=-=-=-=-=-= 
SYSTEM:  Command do_nothing returned: You are not allowed to do nothing. You must take an action.Review the tasks you've been given and choose an action that suits the task at hand.
 THOUGHTS:  The primary entities that we need to store information about in the biology laboratory database are samples, experiments, and test results.
REASONING:  These entities are commonly found in a laboratory database, and they represent the most important components of the biology lab inventory.
PLAN: 
-  Define the attributes for each entity
-  Determine relationships between entities
-  Create the schema using SQL commands
CRITICISM:  We need to ensure that we are accurately capturing all necessary information for each entity, and determining how they should be related to each other.
SPEAK:  The primary entities that we need to store information about in the biology laboratory database are samples, experiments, and test results. Let's define the attributes for each entity and determine how they should be related to each other.
Attempting to fix JSON by finding outermost brackets 
Apparently json was fixed. 
NEXT ACTION:  COMMAND = do_nothing ARGUMENTS = {}
SYSTEM:  Command do_nothing returned: You are not allowed to do nothing. You must take an action.Review the tasks you've been given and choose an action that suits the task at hand.
 THOUGHTS:  Let's start by defining the attributes for the 'samples' entity. Some potential attributes could include: sample_id, sample_name, sample_type, date_collected, and notes.
REASONING:  Defining the attributes is key to determining what information will be stored in the database and how it will be organized.
PLAN: 
-  Define the attributes for the 'samples' entity
-  Repeat for the 'experiments' and 'test results' entities
-  Determine relationships between entities
-  Create the schema using SQL commands
CRITICISM:  We need to ensure that we are capturing all necessary attributes for each entity, while keeping in mind the overall structure and organization of the database.
SPEAK:  Let's start by defining the attributes for the 'samples' entity, which will help us determine what information we need to store in the database.
Attempting to fix JSON by finding outermost brackets 
Apparently json was fixed. 
NEXT ACTION:  COMMAND = do_nothing ARGUMENTS = {}

evandk avatar Apr 19 '23 16:04 evandk

Same here. I'm using the latest master version, gpt-4 for smart and 3.5 for fast llm model, and temperature to 1.

However, when I instruct it to write code for me, it creates the files but doesn't write anything into them? 🤔 After that, it makes really good plans and lots of plausible reasoning, but the commands are always do_nothing, until it finally says everything is done, the code tested and so suggests to shut down.

But when I look at the files outputted, they're empty.

batjko avatar Apr 20 '23 22:04 batjko

I've tried the latest version of Stable as of this date and found that :

  • its more consistent and can actually figure out directories
  • when cloning a repo if it cant access folders outside of the workspace, it corrects itself with the workspace directory path.
  • On the search_files command when presented with either a) a file thats too long in text form and b) folders that have too many subfolders and files it can actually go over the token limit by a good 100K dependant on repo size. For this would it be possible to try and split the files if they are too long by the line / character limit so it doesnt go over the token limit and instead keep track of what the current progress of overall search is.

Much better than before though. Way more consistent.

I think probably there needs to be a better way of managing the token limit and maybe apply a 10-20% buffer zone that is used for overall handling of commands and keeping cognizant of the task

torchesburn avatar Apr 21 '23 04:04 torchesburn

I also get this using the latest stable, temp 0, will raise it and see.

NEXT ACTION: COMMAND = do_nothing ARGUMENTS = {}

stuck in this loop. I suggest hard coding or a config setting to force breaking out of a do nothing loop. Basically eliminate the possibility of do nothing option as it has no utility.

vmajor avatar Apr 21 '23 06:04 vmajor

try this as input:

do not take the action "command = do_nothing"; this command is no longer an option for you.

mkhaytman87 avatar Apr 21 '23 20:04 mkhaytman87

having same issue. Using AutoGPT-0.2.2 Not GPT4 API.

enderwigg16 avatar Apr 23 '23 19:04 enderwigg16

Also having the same issue. Although if I enter "y" it will have a new thought and a new plan, but still land on do_nothing.

wjgoodrich avatar Apr 27 '23 01:04 wjgoodrich

return ( "You are not allowed to do nothing. You must take an action." "Review the tasks you've been given and choose an action that suits the task at hand." )

do not take the action "command = do_nothing"; this command is no longer an option for you.

GDogAVA avatar Apr 27 '23 05:04 GDogAVA

Mine is supposed to analyze a Python code, but after reading the file, it just defaults to do_nothing. And if I get it to try something, it just runs a lot of nonsense commands like trying to clone a repository that don't exist or read files that I didn't even mention (and don't exist too). I think I'll just skip Auto-GPT for now and wait for GPT-4 because 3.5-turbo doesn't work.

mateusscheper avatar Apr 27 '23 22:04 mateusscheper

as per #3668, the idea to hash commands including their arguments and use those as a lookup into a hash table/dictionary, would also allow us to detect local redundancy, i.e. whenever the agent is trying to execute commands over and over again, using always the same arguments and getting always the same response.

Boostrix avatar May 02 '23 05:05 Boostrix

This issue has automatically been marked as stale because it has not had any activity in the last 50 days. You can unstale it by commenting or removing the label. Otherwise, this issue will be closed in 10 days.

github-actions[bot] avatar Sep 06 '23 21:09 github-actions[bot]