-
Notifications
You must be signed in to change notification settings - Fork 10
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
create generalization for workflow, agents #286
base: main
Are you sure you want to change the base?
Conversation
Note: test currently failing because I have renamed the workflow files, easy fix once a solution is decided. |
I'm having a bit of trouble following what the different options you laid out entail (possibly just due to me not being familiar with this workstream). Could you maybe spell them out in a bit more detail? |
Sure sorry. Right now, to execute a demo, we would simply run the command Now, we have a new goal which is to have an meta-agent that given a prompt, we can create the agents/workflow yamls automatically. I am able to generalize the process for the creation of agents currently, but its hard to generalize for workflow if its executed after the creation of agents (as sequentially or condionally, the output of the previous step should be the agents.yaml file, which doesn't make sense for the prompt of creating the workflow.yaml file. Instead, I have split these processes to use the same prompt, but in 2 different workflow files because their process is different. Because they have the same prompt, I think we can execute them in parallel, or instead create an overarching workflow that would execute both of these using the same prompt. Is this a bit more clear? Sorry, the nature of meta-agent is just a bit recursive so its a bit confusing at first |
Thanks, that's helpful. I wonder if the agent creation step should have two outputs:
They'd get returned as a dictionary, and then we could pass (2) as part of the input for the workflow creation step. Alternatively, maybe there's a need for a third agent that can scan the agent file and return the name(s) of available agents. It is also very possible I'm drastically overthinking things and there's a simpler solution. Just wanted to call that one out too :) |
This makes sense, but currently based on how we have defined our process in workflow.py, step.py, etc, we directly pass the output of the previous agent into the next agent as the prompt, which means we would have to pass the entire dictionary object as the prompt which isn't necessary and adds complexity. Of course, we can add more changes inside the backend, but thats prob a question for @maximilien or @akihikokuroda |
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.
Love this... I assume you have more work since it's DRAFT. I'll keep an eye and review soon as you update. Really excited to try this. Nice progress @george-lhj
This is solving issue #281
If you look at the workflow, I've separated the original workflow into 2,
workflow.agent
which creates the agents.yaml file and alsoworkflow.workflow
which creates the workflow.yaml file. This is becuase it gives better control over the prompt as well as simplifies the execution.I've created the original prompt so that both of these actually have the same starting prompt, which means they can be either:
(1) run in parallel to be executed from the original prompt (so that both these agents use that og prompt, and not the output of whatever gets executed first)
(2) create another overarching workflow that calls on both of these workflows, so we need to add support for a workflow executing another workflow? As I would have an overarching workflow.yaml that has one prompt that should be passed and execute the 2 current workflow files.
(3) other ideas
I'm not too sure which one to go for, seems like the parallel right now may be a bit slow? So I'm leaning toward the 2nd idea. WDYT? And is this possibly creating any new features in the backend we need to address?