daveshap / openai_agent_swarm Goto Github PK
View Code? Open in Web Editor NEWHAAS = Hierarchical Autonomous Agent Swarm - "Resistance is futile!"
License: MIT License
HAAS = Hierarchical Autonomous Agent Swarm - "Resistance is futile!"
License: MIT License
Open bounty! Someone please take a stab at using the OpenAI Assistant to create a tool building assistant.
Take inspiration from ChatDev and AutoGen. Probably keep chat local between multiple agents for now. Too early for Discord and other platforms.
Goals:
I found this repo from microsoft/autogen#575
It's a very interesting effort and I'd like to see if autogen could help as a generic infrastructure to support inter-agent conversations.
@gagb @LeoLjl @IANTHEREAL are working hard to support openai assistant agent (will finish in a day or two), which is very similar to some agents autogen already has offered for months.
p.s. I'm a fan of your videos.
Dave,
I recently developed a functional model of the Hierarchical Autonomous Agent Swarm (HAAS) system, which operates as intended but hasn't yet produced Artificial General Intelligence (AGI). Each agent in this model learns continuously post-deployment, possesses defined goals, and maintains autonomous decision-making capabilities. The specialized agents demonstrate incremental improvements in their respective tasks and share these enhancements for future agent development. However, the evolution towards AGI remains elusive. The Master Agent is not evolving into a higher state of awareness.
While I am enthusiastic about the HAAS concept, seeing it as an effective framework for managing and deploying cooperative agents for management, control, and specialization, I have reservations about its capacity to facilitate the emergence of AGI. My current hypothesis, which may well be incorrect, is that AGI could emerge when the base model crosses a certain threshold, potentially related to parameter size. Once AGI is achieved, it might surpass the need for a system like HAAS.
I might be missing how the swarm dynamics of HAAS contribute to the goal of AGI. If that's the case, I'm open to insights. If AGI is defined merely as the ability to understand, learn, and apply intelligence across diverse tasks, then perhaps we have already attained it. However, my interpretation of AGI is a form of super-intelligence, self-managing and far surpassing human capabilities, and will not be constrained by our existing frameworks or oversight.
Your videos and projects have always inspired me, so please continue your excellent contributions. It's clear to me that with the current technology, we can achieve almost anything we can envision, super-intelligence possibly being the sole exception.
On the other hand, there's a strong possibility that super-intelligence, could be within reach using the tools currently available, given sufficient resources (most likely the culprit) and the inherent ability to self-improve. We have already achieved the ability to improve post-deployment, along with nearly limitless memory capacity. Issues of context and temporal coherence seem to be effectively addressed by systems akin to HAAS.
trying to get the unit manager to run, but get an error that chat_manager.py can't find the API_KEY.
Made an .env file and tried different locations for it, to no avail.
Also set an export in .bash_profile not working either.
What am I doing wrong?
We still have only a few Wiki pages. This is a great start and a few people have jumped in to help. Here are some ideas for new wiki pages:
There have been several PRs merged as well as several open PRs. I'd like the collective to take a look at them and test them, comment, etc. Make sure everything is working, and abiding by best practices.
The idea is simple: let's try using discord as an arena for agent communication
Responsibilities:
There's been great work on tool making and tool using, as well as the new tool library idea. The next step is to test and refine tools.
Make it so.
https://github.com/daveshap/OpenAI_Agent_Swarm/tree/main/agents/gpts
This agent wont save when the API token is put in. I have tried classic tokens and fine-grained access tokens. I have tried with and without permissions set.
The network tab isnt any use, its a 500 error. I have reported this to OpenAI on their forums as well.
I would love to get this working so I can contribute to Dave's excellent work
I'm looking for an enterprising individual to step up and take ownership of documentation. Please comment here and jump in optimizing the wiki.
I propse that we call what we today refer to as an "agent swarm" insteat to be named an "Agency". I Argue for this by presenting the definitions of the word "Agency".
The word "Agency" has different meanings depending on the context it is used in:
Sociology and Psychology: In these fields, agency refers to the capacity of individuals to act independently and to make their own free choices.
Legal and Business: In a legal or business context, agency refers to the relationship where one party (the agent) is authorized to act on behalf of another (the principal) in business dealings or other matters.
Governmental and Organizational: An agency in this sense is an organization or unit of a government responsible for a specific area of administration or function.
Philosophical: In philosophy, agency is often discussed in the context of free will and determinism. It refers to the capability of an entity to act in a world controlled by natural laws.
I belive the connotations of "Agency" to be much more reflective of what a group of LLMs working together in order to complete a task represent.
I would be happy about feedback and critiques of this proposition.
Someone please create a GPT with the GPT Builder that can serve as a main concierge for this Discussion board so that people can ask what's going on regularly.
https://github.com/daveshap/OpenAI_Agent_Swarm/wiki/Assistant-Best-Practices
I've seen some remarkable improvements with new GPTs and Assistants. Please start capturing your best practices on the Wiki for easy reference. This includes the Concierge GPTs, toolmaker GPTs, and others.
How to run tool_demo.py? I'm unable to find one
Let's use the convenience of the ChatGPT web interface (GPT builder) to instantiate a swarm. We'll start with just another both. This will require:
python run.py --agents-definition-folder definitions/boss-worker3/
gives an error:
File "[..]/OpenAI_Agent_Swarm/agents/manual_assistants/logger.py", line 21, in emit
'name': self.agent.id,
^^^^^^^^^^^^^
AttributeError: 'Agent' object has no attribute 'id'
Please record demos and examples and share in Show and Tell. This will serve several purposes:
I recommend screen recording with OBS, it's totally free and I still use it for all my videos. You don't need to show your face, just explain your code and demo as it goes.
Don't you think it would be good to try implementing a genetic (evolutionary) algorithm on top of a swarm of agents? We could encode the initial knowledge and prompts (or any other settings) of the agents as their DNA. Multiply, vary, let the strongest live and the weakest die.
Lots of strong conversation still going on about, assistant, tool building, and communication architectures. In order to make some of the ideas discussed around agent communication and communication structures and agent hierarchies more concrete. We need to agree what an gent in the system is and does. I have attempted to kick of the conversation with the MVA discussion, but let get on board. Lets walk before we can run, lets understand what our individual agents look like, and then use that to inform the Swarm structure.
MVA Discussion: #123
What Tools are use by MVA and what tools are local to assistant or global: #116
How does this impact: #93 (reply in thread)
Conversations between agents and agents/tools
Directive: Build, test, and document the first instance of a SOB
General ideas:
Thanks everyone for jumping in. It's clear there's a ton of energy and some general consensus. However, we're quickly finding out that network communication of agents is the hardest part. I had a great hourlong conversation with the core team of the ACE Framework as well, and we all agree - agents are easy now. The hard part will be organizing networks of agents, and getting to a self-organizing, arbitrarily scaling swarm is the Triple Crown we're looking for, but it will take work.
The end goal is to have a fully autonomous swarm of agents with the following characteristics:
Milestones need to be a set of objective tests, tasks, achievements, and capabilities. The Roadmap should be a sequential list of general achievements. This is more like guidelines than a rigid plan, but this discussion will help us figure out where we're going.
I'll add a WIKI to this repo so we can document some of this stuff.
I thought I had already submitted this two days ago but I'm not seeing it.
There have been several conversations around communication theory, tech stack, and layered strategies. I'd like to see some folks do some experiments around these to identify what works and what doesn't.
Overall, the PRIMARY goal here is to start surfacing general principles to optimize communication to minimize noise and maximize signals. What I mean by general principles are:
(base) joey@Joeys-MacBook-Pro OpenAI_Agent_Swarm-main % python3 -m agents.tool_maker.unit_manager
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/Users/joey/Downloads/OpenAI_Agent_Swarm-main/agents/tool_maker/unit_manager.py", line 2, in <module>
from agents.tool_maker.chat_manager import ChatManager
File "/Users/joey/Downloads/OpenAI_Agent_Swarm-main/agents/tool_maker/chat_manager.py", line 8, in <module>
Assistant = type(OpenAI().beta.assistants.list().data[0])
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
IndexError: list index out of range
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.