OpenBMB / ChatDev

Create Customized Software using Natural Language Idea (through LLM-powered Multi-Agent Collaboration)
https://arxiv.org/abs/2307.07924
Apache License 2.0
25.65k stars 3.22k forks source link

Wishlist. #371

Closed arthurwolf closed 6 months ago

arthurwolf commented 7 months ago

(Love the project, awesome work).

I see Devin/this project doing demos like "do this simple video game from scratch", or "do a to-do list web app", starting from zero and using whatever libraries/technologies it prefers.

Those are neat, but I don't think they are the most useful, at least for some people.

Here's what I would want/need these projects to do, in case that would be useful to know, in the form of the prompts as I'd ask them of the agents:

  1. (Coming into my existing project/database), tell it: « in src/lib/Editor.ts, there's a function to resize images according to the specs it finds in the database, I'd like that function (and the other sub-functions it calls) to be put into a new library named Resizer.ts in src/lib/utils/, and change Editor.ts to use that library »

  2. « Once that's done, find other places in the code where we resize images, and for each, change them to use the new Resizer library. »

  3. « In src/test, using the same format and testing library as I am already using in my tools, write a series of tests for the Resizer library. You can find "sample" images to resize inside of data/samples/resized-images/ »

  4. « My project is made of two parts, the scripts (run with Node) in src/, and the ui (written in Vuejs, run in the browser) in ui/src/. Each part has its own "Page" class/abstraction with different functions/properties. I'd like you to join both of these into a single file/class that both the scripts and the UI can call/use. This is tricky because a few of the libraries the "scripts"-side class uses will not work in the browser. You must find a solution that allows us to have only one class everything imports, but to not have errors in the browser despite this. Propose and explain in detail a possible solution to this problem for me to review, then if I like the solution I'll ask you to implement it. »

If your project was able to do this, it would completely change my life.

Just a wishlist :)

Awesome work by the way.

JYM0000 commented 7 months ago

Thank you very much for your suggestions and we will continue to improve chatdev in the future

thinkwee commented 6 months ago

Thank you for your awesome ideas! ChatDev can indeed leverage incremental development and human interaction mode to intervene in the development process. However, tradeoffs inevitably arise. More detailed or strict requirements --> more artificial rules --> fewer automated processes --> simpler framework may work better (Vanilla ChatGPT>Single Agent>Multi-Agent). For instance, consider your TypeScript? project, where there are strict rules regarding modifications to the code files. In such cases, it might be more appropriate to employ a native ChatGPT with a file explorer plugin rather than relying on ChatDev for full automation.

But your idea is great! We may find better tradeoff on balancing the customization and automation.