Managing Available Kernel Functions #10997
Closed
AdamSobieski
started this conversation in
General
Replies: 1 comment
-
Thanks for the feedback. We've seen a number of customers build a vector store of plugins for this scenario. We are looking in the future to potentially create a sample to create. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello. I would like to share some ideas and questions for discussion involving the runtime management of dynamic collections of available kernel plugins and functions.
In theory, invoked kernel functions could modify application state and, while doing so, add or remove kernel plugins and functions from the
kernel.Plugins
collection. In theory, available kernel plugins and functions could be dynamic at runtime.For example, one could allow users to invoke kernel functions to move an agent around on a world map, through various rooms, where different kernel plugins and functions could be available to users for each different room.
Brainstorming, here is a list of implementation possibilities:
Kernel
using a static property somewhere, e.g.,Program.CurrentKernel
:Kernel
could be passed to kernel functions as a special attributed first argument:ChatMessageContent
in the contextualChatHistory
(or a shallow copy of it) to determine when to perform transitions between states. These Boolean functions for the transitions of state machines could make use of AI when processing such input arguments and content. As envisioned, both exiting and entering nodes, or states, could modify kernels'Plugins
collections.Update: Some quick experiments with version 1.41.0 showed that while
kernel.Plugins
, of typeKernelPluginCollection
, supportsAdd()
andRemove()
methods, involved AI chat-completion services appear to want to invoke removed plugins' functions after they are removed. Built kernels still forward information about later removed plugins to AI systems. So, while thekernel.Plugins
collection is mutable at runtime, and is not read-only, updating this collection doesn't update built kernels as previously considered.What do you think about runtime-dynamic kernel plugins and functions? What do you think about available kernel plugins and functions varying depending upon applications' or agents' states?
Are there any other approaches to manage dynamic collections of kernel plugins and functions?
Thank you.
Beta Was this translation helpful? Give feedback.
All reactions