LlmInteraction

constructor(id: InteractionId, llm: <Error class: unknown class> = LlmOptions(), toolGroups: Set<ToolGroupRequirement> = emptySet(), tools: List<Tool> = emptyList(), promptContributors: List<<Error class: unknown class>> = emptyList(), contextualPromptContributors: List<ContextualPromptElement> = emptyList(), generateExamples: Boolean? = null, propertyFilter: Predicate<String> = Predicate { true }, validation: Boolean = true, useEmbabelToolLoop: Boolean = true, maxToolIterations: Int = 20)

Parameters

id

Unique identifier for the interaction. Note that this is NOT the id of this particular LLM call, but of the interaction in general. For example, it might be the "analyzeProject" call within the "Analyze" action. Every such call with have the same id, but many calls may be made across different AgentProcesses, or even within the same AgentProcess if the action can be rerun. This is per action, not per process.

llm

LLM options to use, specifying model and hyperparameters

tools

Tools to use for this interaction

promptContributors

Prompt contributors to use for this interaction

useEmbabelToolLoop

If true, use Embabel's own tool loop instead of Spring AI's. This enables dynamic tool injection and gives full control over the tool execution loop. Default is true.

maxToolIterations

Maximum number of tool loop iterations (default 20)