AIAgentSubgraph

open class AIAgentSubgraph<Input, Output>(val name: String, val start: StartAIAgentNodeBase<Input>, val finish: FinishAIAgentNodeBase<Output>, toolSelectionStrategy: ToolSelectionStrategy) : AIAgentNodeBase<Input, Output> (source)

AIAgentSubgraph represents a structured subgraph within an AI agent workflow. It serves as a logical segment containing a defined starting and ending point. The subgraph is responsible for executing tasks in a step-by-step manner, managing iterations, and handling tool selection strategies.

Parameters

Input

The type of input data accepted by the subgraph.

Output

The type of output data returned by the subgraph.

name

The name of the subgraph.

start

The starting node of the subgraph, which initiates the processing.

finish

The finishing node of the subgraph, which concludes the processing.

toolSelectionStrategy

Strategy determining which tools should be available during this subgraph's execution.

Inheritors

Constructors

Link copied to clipboard
constructor(name: String, start: StartAIAgentNodeBase<Input>, finish: FinishAIAgentNodeBase<Output>, toolSelectionStrategy: ToolSelectionStrategy)

Properties

Link copied to clipboard

Represents the directed edges connecting the current node in the AI agent strategy graph to other nodes. Each edge defines the flow and transformation of output data from this node to another.

Link copied to clipboard
Link copied to clipboard
open override val name: String
Link copied to clipboard

Functions

Link copied to clipboard
open fun addEdge(edge: AIAgentEdge<Output, *>)

Adds a directed edge from the current node, enabling connections between this node and other nodes in the AI agent strategy graph.

Link copied to clipboard
open suspend override fun execute(context: AIAgentContextBase, input: Input): Output

Executes the desired operation based on the input and the provided context. This function determines the execution strategy based on the tool selection strategy configured in the class.

Link copied to clipboard

Resolves the edge associated with the provided node output and execution context. Iterates through available edges and identifies the first edge that can successfully process the given node output within the provided context. If a resolvable edge is found, it returns a ResolvedEdge containing the edge and its output. Otherwise, returns null.