Replies: 1 comment
-
This sounds good for modelling more dynamic behaviours.
|
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
-
Currently, the Pipelines / PipelineElements support a fixed set of StreamEvents (ERROR, STOP, OKAY) and StreamStates (ERROR, STOP, RUN). With hard-coded state management in main/pipeline.py:PipelineImpl._process_stream_event().
Also, it is intended to support user defined StreamEvents and StreamStates that are supported by a finite state machine ... main/state.py:StateMachine() ... with user defined triggers and actions.
For PipelineElements that represent proper A.I Agents ... it will be necessary to support a form of conditional and looping mechanisms, e.g SELECT, LOOP, BREAK, CONTINUE. This would enable tool (function) calling PipelineElements, including Agents to return new StreamEvents that dynamically alter the flow of frames through the graph.
Example use-cases may be ...
(Router:SELECT ToolA ToolB ToolC)
# SELECT may just be syntactic sugar to make things obvious(Agent:LOOP ToolA:CONTINUE ToolB:BREAK)
# right now ... more of an aspiration than a solid ideaNote: This discussion focuses on a static PipelineDefinition graph. A future discussion will focus on graphs, where the graph shape, e.g nodes and edge involved may change over time, i.e be more dynamic !
Beta Was this translation helpful? Give feedback.
All reactions