All-Hands-AI / OpenHands

🙌 OpenHands: Code Less, Make More
https://all-hands.dev
MIT License
31.27k stars 3.61k forks source link

[Feature Request] OpenDevin to read files/folders contents of Workspace before starting tasks, esp. to avoir restarting a project that is in progress #2838

Open MarArMar opened 2 months ago

MarArMar commented 2 months ago

What problem or use case are you trying to solve?

OpenDevin tries to create a project from scratch even when the project is started

Describe the UX of the solution you'd like

No UX, backend should simply list /workspace folder contents & inform Devin before Devin starts to build a project from scratch, it should be sufficient for the AI to understand the project is started

Do you have thoughts on the technical implementation?

Yes as seen before a simple os.walk and a list of folder / files currently in the workspace folder should be enough

Describe alternatives you've considered

Doing it manually each time, tell devin to manually list the fils before starting

Additional context

MarArMar commented 2 months ago

Related / experienced the problem with : https://github.com/OpenDevin/OpenDevin/issues/2837

SmartManoj commented 2 months ago

Could you share a sample task?

MarArMar commented 2 months ago

@SmartManoj This is the task I used :

The stack I mentioned was already installed & fully ready and I could check all the files were there in the /workspace folder

Your mission : create an interval timer website.

It should feature: 
- A single static page with all the features
- The timer should be at 6 minutes 30 seconds for the "work" phase
- The timer should be at 2 minutes for the "break" phase
- There should be 4 cycles of these, so 4 "work" phases and 4 "break" phases
- The background should change between "blue" during the "work" phase and "green" during the "break" phase
- The timer should be displayed in a huge font
- There should be an indicator of the current phase (work or break) and the current cycle (1 to 4)
- There should be buttons to : start, stop the timer, add 5 seconds to the current time, and reset the timer
- Everything should be reasonably responsive for a single tablet screen (900 width * 1000 height)
- No need to guide the user on how to use the app, it should be intuitive

Code standards should be followed, and the code should be clean, easy to understand, well organized. There should be typescript types.

This project uses this stack:
- Bun v1.1
- SvelteKit v2
- Svelte v4
- TailwindCSS v3
- Typescript v5

Current OS: Debian 12.5
MarArMar commented 2 months ago

Workaround : explicitly tell OpenDevin that the project is ready / where to start

This worked :

This project is already set up

You can start by editing the `src/routes/+page.svelte` file to start coding.

Run the dev server with:
`
bunx run dev
`
github-actions[bot] commented 1 month ago

This issue is stale because it has been open for 30 days with no activity. Remove stale label or comment or this will be closed in 7 days.

FellowTraveler commented 1 month ago

Should fix this by putting the current directory ls listing into the context. I've seen this problem myself countless times, and not only with OpenDevin but in other agent projects.

enyst commented 4 weeks ago

Workaround : explicitly tell OpenDevin that the project is ready / where to start

This worked :

This project is already set up

You can start by editing the `src/routes/+page.svelte` file to start coding.

Run the dev server with:
`
bunx run dev
`

@MarArMar I agree that running a ls is useful, but I'm not sure about more than that: if your task says "Your mission : create an interval timer website", the LLM can decide anyway to ignore the workspace and start to "create".

If the prompt would say to continue, like the example quoted above, what if the user doesn't want to continue what is in the workspace, or they have multiple projects or tasks within a project, in progress? For example, I usually use a workspace with a project (opendevin itself) set up, but might do unrelated or partially related things at times. The agent shouldn't then expect to continue the existing project.

I think this request might be addressed better by: