-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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
fix!: only run specified plugin. Fixes #10304 #12705
base: main
Are you sure you want to change the base?
Conversation
I encountered a similar issue while working on #13026 (comment) and this PR nicely solve the issue, however I am worried about the back compatibility. If I understand this correctly the Also there is no strict name convention for the name value, so some plugins took the liberty to name it a bit differently (see 1). Also all private plugins may break if they are not using the correct |
That's a good question which I didn't think aboud it before. One way to fix it is that replacing the sidecar name with plugin name when loading. |
I was thinking if we really want to provide back compatibility, but also a way forward we could extend Another problem is that as it is now you could theoretically write an plugin which can provide more than one RPC, that's why |
In fact, compatibility can be ensured without extending the spec. For example, prioritize running the specified plugin, and if it is not found, then fallback to the existing polling logic.
It seems like you want the same plugin to perform multiple functions, but this can actually be achieved within a single RPC without extending the entire executor plugins runtime framework. |
That would be the real end goal for me. As it is now I find it really impractical and resource wasteful to load all the plugins and eventually unusable of you have a lot of plugins.
Personally I would have one plugin for one RPC/task, but what I tried to say is that some users may already have plugins which provide multiple functionality. For example no one is stopping you that in your plugin |
I couldn't agree more, but I currently can't find a elegant way to achieve this goal.
So, the key point is how to declare which plugins the current workflow requires and which plugin should be specified to execute the current template. |
Signed-off-by: oninowang <[email protected]>
/retest |
Fixes #10304
Motivation
Multiple plugins in
AgentPod
will attempt to execute the same task, but the required plugin has already been specified in the template.Modifications
map[string]executorplugins.TemplateExecutor
and try to select the plugin specified in the template to execute the task, and fallback to the original logic if it was not found.Verification
UT and local test.