-
Notifications
You must be signed in to change notification settings - Fork 508
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[draft] feat: multi-task agents #1270
base: main
Are you sure you want to change the base?
Conversation
|
llm=openai.LLM(), | ||
tts=openai.TTS(), | ||
initial_task=news_mailer, | ||
available_tasks=[news_mailer, email_collector], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
how does it know which tasks to use in this case? is it purely from the instructions indicating Use email_collector to collect the user's email address.
.. does that mean email_collector
is represented as a function?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
each task has a built in transfer_to
method that will be added to fnc_ctx
if the can_enter
of the task returns true.
"3. Repeat both pieces of information back to ensure accuracy\n" | ||
"Transfer to:\n" | ||
"- checkout: when all details are confirmed\n" | ||
"- order_taking: to modify the order\n" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMO embedding these in instructions is less than ideal.. it seems fragile (i.e. changing one place and not changing the other) since there are no typechecks/compilers
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree.
Currently the default description for a transfer function is just Called to transfer to {task}
, this is not enough to prompt the LLM to call the function if there is no detailed instruction in the system prompt.
Ideally we can enhance the description of the transfer function instead of embedding this in separate instructions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated the detailed transfer instructions and removed them from the task instructions, but still need to add Transfer to the next step using functions after ...
to each task to ensure automatic transfer between tasks.
A draft for multi-task agents
An example chat logs on how the conversation transferred between tasks in the restaurant example.