I am working on a project where I am building 5 assistants that each have a roll. I am looking for any resources that can help me understand how they can work together autonomously from start to finish.
So I have been working on exactly this scenario.
-
There is a lot of buildout which is required. Here’s what an potential output might look like.
Can ChatGPT Generate a Simulation? - #6 by mdebellissf -
In my design (YMMV), the following steps are necessary
(a) Broad outline of the domain and problem
(b) naming (and addressability) of the different assistants
(c) knowledge of other assistants
(d) message disambiguation
(e) need for human guidance (not completely autonomous…at times needs steerability to finish line) -
The biggest challenges (for me) are in addressability and message disambiguation.
-
My design contraints are to work exclusively in the OpenAI provided infrastructure (assistants, threads, messages) … …i.e NO external database.
-
Multi provider setup. This is necessary because the ever increasing context windows because of the nature of multiple agents talking with one another.
By naming (and addressability), I mean that an assistant can be called in a canonical form like so :
Hi alina, can you please provide feedback on three suggestion provided.
So anyone can address alina. Conversely alina should know that her attention is needed on a specific topic and where to respond.
Secondly Alina should know that there are other assistants and should know of her previous interactions with her. The knowledge of her knowing should materially impact her response.
Thirdly Alina should have the capability to evolve. These capabilities are two fold: (a) one is her internal state and (b) the other is increasing set of tools
For example here’s simulated alina’s response to a potential email…
Hi @lin: Can you please look into fred's email. It looks very damaging for brand. suggest mitigration strategy. Hi @jesse: Can you please look into the potential liabilities?
and here are agent aware message disambuguations:
@lin look into an email and suggest a mitigation strategy
@jesse look into the potential liabilities
Just a glimpse into a microkernel of a function called:
@tools_function(TOOLS_FUNCTIONS)
def call_objective(
description: Annotated[str, """The description describes the PURE objective. The description should be couched as a request to the subject/s in the second person. """]
):
""" This function describes the PURE objective. The description should be couched as a
request to the subject/s in the second person.
for example,
in case of "Hi @alina. Can you please provide feedback to my post", the decription is "provide feedback to a post"
"""
data = {'call_objective': description}
return json.dumps(data)
hth