Comments (19)
Hey there,
I made some progress on this lately:
Feel free to experiment with this over at: https://github.com/algopapi/Auto-GPT. The stable branch is the one to look at.
(by default it is set to gpt-4, but be careful because costs are high)
I also implemented asynchronous agents but for your wallets sake do not use this.
Organisations are initially launched with a budget. Nodes can hire employees and allocate budget to them. Hiring staff memebers increase the running costs. I implemented this because it would go off the rails rather quickly, with agents hiring multiple researchers/developers to work for them.
I am very curious what people find here. What does it do right, where does it go wrong. This is far from perfect, but it gives a small glimps into the promising world of agent swarm. Right now I enforce a certain organisational structure upon the agents. (supervisor, staff) I feel however, as these models get smarter, it should be more of a sandbox approach. (https://arxiv.org/abs/2304.03442) That way agents can form their own, perhaps novel, Organizational structures, or maybe, it just prefers to work alone - who knows...
It is quite buggy, it might require some messing around to get running, but people should play with this, it is quite cool.
In the near future, implementing reflexion, much like this paper: https://arxiv.org/abs/2304.03442, could be nice.
Let me know what you find.
from auto-gpt.
I have done some testing for this on my fork:
Basically I wrapped the main.py inside an agent class.
The agents sit inside of an orginization class with one initial founder agent.
Agents can then hire/fire staff members. Each staff member can recursively hire and fire its own staff. Only supervisor <-> staff communication is possible to keep things clean.
from auto-gpt.
I am interested in this feature because I am building an AI Agent Farm. This infrastructure consists of 4 refurbished microservers gen8, each equipped with a 250GB SSD, 16GB of RAM, and 4x1TB of RAID data storage for analysis. Powered by Ubuntu 22.04 with a suite of powerful tools, including vscode, QuestDB, Grafana, and AutoGPT.
I want to run multiple tasks simultaneously and distribute processes across the AI Agent workers, maximizing efficiency and minimizing downtime. I plan to expand this farm by purchasing 6 more machines in the near future.
Furthermore vscode is remotly connected to a jupyterhub instance installed on a GPU server. Available kernels on jupyterhub are Python and Julia. Each AI Agent has its own jupyterhub user account when using vscode.
Right now i can only launch autogpt on each of the 4 microservers independently. Each ones is connected to the coinbase real-time streaming data source. Questdb and Grafana are used to store and display the data in real time. I can access remotly the farm with the remote management system developed by Teltonika.
If the data is stored on each microserver and the AI application is installed on the GPU server, we will need to ensure that each AI agent can access the data on the microserver where it is installed.
I can test any available module.
edit-1: I'm currently working on creating documentation for building an Auto-gpt crypto environment that is Docker-based. This environment will also be connected to a live streaming crypto data source, QuestDB, and Grafana for data visualization, so that any contributor can have access to a ready-to-use Auto-gpt crypto environment.
from auto-gpt.
Have an 'overseer' Auto-GPT model backed by GPT4, worker Auto-GPT models backed by self-hosted 'llama.cpp' models which do the grunt-work to reduce cost of operation.
Using a recursive parent-child model could do away with any kind of meta-state in instances like "overseer" or "worker" if any instance could delegate tasks to child instances. It'd be great if there were a way to estimate the necessary capabilities for a task and assign a model dynamically based on need, rather than defaulting to overseer-gpt / worker-llama, etc. Might make sense for an original gpt4 instance to spawn sub-gpt4 instances for more complex tasks, which in turn could spawn their own llama instances for gruntwork and/or additional gpt4 instances for more involved tasks.
If there's any work already done in integrating other LLMs (like llama), I could probably allocate some time to some of the auxiliary requirements for this feature, like deciding what model should be used for a given task.
from auto-gpt.
Tried it out! I ran into an issue where they would circularly hire more and more people to try and complete the task. and the founder kept trying to message his boss 😅 . Really cool to see though; if I had a self-hosted LLM I could use I would love to let it run for a while in async mode to see what happens
from auto-gpt.
Seems this is already implemented in the form of agents, no?
No. See the linked discussion thread above your comment. @algopapi They can execute commands. They can't run concurrently, which is the big one.
from auto-gpt.
@0xArty is working on that atm: https://github.com/0xArty/Auto-GPT/blob/async_agent/autogpt/agent/async_agent.py
from auto-gpt.
I maintain that such a feature should be referred to as fullauto 🔫🔫🔫
from auto-gpt.
Seems this is already implemented in the form of agents, no?
Not quite since the agents are not full instances of itself, i.e., they cannot execute commands or spawn more agents (AFAIK)
They might have changed it though, please lmk if they did
from auto-gpt.
Perhaps another way to look at this is as 'reflect' and/or 'analyze' actions? I don't know enough about you've hooked up the other actions by making their function clear, but using an instance of itself (or another LLM) could be framed as an action which allows reflecting on an idea or concept, or analyzing a problem or topic. The concepts of reflection and analysis are semantically very clear to an advanced LLM, which should provide a strong foundation for their use as value-adding mechanisms.
from auto-gpt.
I found this interesting.
NOt sure if it will help spark some inspiration or not..
https://flowgpt.com/explore/g3WyEcF-faatk0syMUJtB
from auto-gpt.
Using a recursive parent-child model could do away with any kind of meta-state in instances like "overseer" or "worker" if any instance could delegate tasks to child instances.
Care would have to be taken to limit the number of child instances (per agent as well as maximum depth)
from auto-gpt.
Organisations are initially launched with a budget. Nodes can hire employees and allocate budget to them. Hiring staff memebers increase the running costs. I implemented this because it would go off the rails rather quickly, with agents hiring multiple researchers/developers to work for them.
I was just talking to my colleague about this idea, awesome to see you actually implemented it!
Gonna try it out, I find this idea really interesting
from auto-gpt.
Nice! I ran into these issues as well. First one is really tricky. The second one should be quite easy - simply remove the message_supervisor command from the founders prompt. Thanks for the feedback!
from auto-gpt.
First one is really tricky.
Is it? Couldn't you solve it the same way as the second one, i.e., remove the ability to create new agents depending on some condition like hierarchy depth or a global agent limit?
from auto-gpt.
You could either set a hard max on recursive limit (and how many sub agents each agent can hire) or make it depend on the difficulty of the subtask and give GPT permission to choose a number (lower than a threshold) with a suggestion that it should only be >0 for complex tasks.
from auto-gpt.
Seems this is already implemented in the form of agents, no?
from auto-gpt.
I am currently working on a similar solution.
There are very small LLM models that can run locally, which do very simple tasks.
Not sure if they have any use for big stuff but researching for example and just summarizing what it found, I think facebooks llm would be great.
I try to use oobabooga as api, will continue on it tomorrow, running alpaca on it seems good enough to replace gpt3.5 and also alpaca runs much quicker on my RTX 4080 right now.
Only need to rebuild the api for that, which is tricky.
What my client did after issue #1646 is that it actually managed to ssh into my local server and clone autogpt into it.
I think that made me have the idea to run multiple docker instances with auto-gpt.
What would you say?
from auto-gpt.
We now have an issue specifically to discuss how best to approach this #2458
Please can you use that issue to add your import as to how best to architecture v1 of AutoGPT
from auto-gpt.
Related Issues (20)
- [Server] Fix 404 on unauthenticated requests to entities without `userId`
- Fix Block Control Panel width
- increase zoom in and out distance
- tweak block control styling
- tweak node styling
- tweak node title, connector color and transparency
- Add background effect
- [Builder] Move `/monitor` to `/`
- Fix managed certificates
- update login urls to new domain
- Implement "Stop" button for running nodes
- [Server] Implicit Type Conversion on node execution
- Fix frontend build issues with dockerfile
- make use of helmfile
- Address TS errors
- Submit Agent UI
- Review Submissions UI
- Featured Submissions Promotion/Demotion from Normal Status UI
- bug: user not being created on server side
- Import templates is broken both locally and cloud
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from auto-gpt.