Git-of-Thoughts / Gothub

Gothub magical repo
0 stars 1 forks source link

some summary of related repos #21

Open wayne-wang-1119 opened 1 year ago

wayne-wang-1119 commented 1 year ago

MetaGPT: chunker: https://github.com/geekan/MetaGPT/blob/45e3f954455df71470181d4c84705e4f824edea3/metagpt/utils/text.py#L29C27-L29C27

main method being used: https://github.com/geekan/MetaGPT/blob/45e3f954455df71470181d4c84705e4f824edea3/metagpt/software_company.py#L53

essentially, a company has k tokens as investments meaning running the service in total k times (similar to your while loop but their stop condition is by how many token)

Get this, each company can "hire roles" which is each company can include roles like engineer, product, into a list of roles and they will listen to a published message, which comes from the previous step, and you are probably thinking this: the message is kept in the memory, look here: https://github.com/geekan/MetaGPT/blob/45e3f954455df71470181d4c84705e4f824edea3/metagpt/environment.py#L45

Each role, get a template and use it to send to gpt4, like this: https://github.com/geekan/MetaGPT/blob/45e3f954455df71470181d4c84705e4f824edea3/metagpt/roles/role.py#L22 And they each publish message to "environment", which the memory from the previous step, they collectively share a memory and act upon it with their own "personality" from role.py

One problem: they let the gpt to decide which "stage" it wants to come in to help, from the memory, not agent based but more like one agent playing multiple roles at different times and plug in details in that process as different roles...

wayne-wang-1119 commented 1 year ago

ive been thinking about this: what is the essential difference between having a shared memo where the agents do not communicate with each other and having an individualized memo where the agents talk to each other to understand what the other is up to

some conclusion i have for now:

  1. a shared memo is needed because the agents need a "todo list" of some sort, just a matter of how detailed it is.
  2. if the agents share a "brain" then they do not need to communicate with each other, or the communication is the shared doc
  3. if we use github commits as the "memo", essentially force the interaction between agents to how human developers interact, does that change anything? This will fit as a condensed memo, not a full memo, which means probably we need a manager agent
  4. regarding what you were thinking, a while True loop that is iterating before stop condition is met, which is the software has met its demands, my concern is a shared full memo would make gpt hallucinate and entirely diminish the point of having the agents interact with each other in a protocol, because they are just sequentially finishing tasks, with better prompts as a suggestion of how to "better" frame some answers, but if we choose to have a manager agent and the agents access only condensed version memo, they are more focused on their own trace, with some understanding of what is happening in the big picture, but this could slow the service down because of having that manager agent as additional async layer or bottleneck.

btw, I thought of it as having a schizophrenic worker of different identities that has full memory to work on our software or a company like what we have in our society. Which is preferable?

wayne-wang-1119 commented 1 year ago

also btw, having a manager agent definitely helps with tasking because we are expanding to lots of agents, what if some of them are too alike?

kingh0730 commented 1 year ago

Communicating through messages are probably better.

wayne-wang-1119 commented 1 year ago

i agree. also we are exploding notion they are 99% used lol