Runs
Runs and Templates
A Run is an individual execution which Inferable undertakes to complete a task.
Inferable will evaluate any provided instructions, the available functions and process a series of steps in order to complete the request.
These runs are “agentic” in the sense that multiple steps can be performed in order to complete the request, evaluating the results and repeating as necessary.
Issue the prompt with the Inferable web application.
At each step, Inferable will provide details including any functions that are invoked, the reasoning for invoking a function or any issues the agent has encountered.
An Inferable Run is interactive, you can continue an existing run with follow-up messages or go back and edit previous messages to re-evaluate the run from that point.
References
The result of a run may include data from multiple functions. Within the Inferable UI, clicking on individual keys in the result allows you to see where in the run that data is sourced from. This helps to guard against hallucinations, and provides a way to understand where a result is coming from.
We are currently exploring ways to leverage these references when invoking functions.
For example, only allowing certain function invocations if the individual arguments all have valid references.
If this is something you would find useful, please reach out to us at [email protected].
Prompt Templates
The chat interface is great for exploring and interacting with your functions, you can think of it as a REPL (Read-Eval-Print Loop) that allows you to interact with your functions in a natural language interface.
For more complex runs where you want more repeatability and structure over the inputs, you may want to create a prompt template.
A prompt is a set of instructions and inputs. Each execution of an template will result in a new run.
Cluster Context
As well as the initial instructions, you can provide a cluster-wide context. This is available to all runs, and is useful for providing additional information which is relevant to all applications.
For example, you may want to describe certain relationships between functions, entities or domain specific details.
Continuous Learning
As your applications are run, details are extracted and ranked based on their ability to improve the behavior of future runs. The UI will surface these suggestions periodically as recommended updates to the application instructions.
For example, if a set of functions should always be called in a specific order, this is captured as part of the application instructions.
Only suggestions which have been accepted will be added to the application instructions.