AgentWorkflow
Defined in: packages/workflow/src/agent/agent-workflow.ts:169
AgentWorkflow - An event-driven workflow for executing agents with tools
This class provides a simple interface for creating and running agent workflows based on the LlamaIndexTS workflow system. It supports single agent workflows with multiple tools.
Implements
Workflow
Constructors
Constructor
new AgentWorkflow(
__namedParameters
):AgentWorkflow
Defined in: packages/workflow/src/agent/agent-workflow.ts:180
Parameters
__namedParameters
Returns
AgentWorkflow
Methods
handle()
handle<
AcceptEvents
,Result
>(accept
,handler
):void
Defined in: packages/workflow/src/agent/agent-workflow.ts:238
Registers a handler function for one or more workflow events.
The handler will be invoked whenever any of the accepted events are sent through a workflow context. Handlers can process events and optionally return new events to continue the workflow.
Type Parameters
AcceptEvents
AcceptEvents
extends WorkflowEvent
<unknown
>[]
Array of event types this handler accepts
Result
Result
extends void
| WorkflowEventData
<unknown
, string
>
Return type of the handler (event data or void)
Parameters
accept
AcceptEvents
Array of event types that trigger this handler
handler
Handler
<AcceptEvents
, Result
>
Function to execute when matching events are received
Returns
void
Example
// Handle multiple event types
workflow.handle([StartEvent, RestartEvent], async (context, event) => \{
if (StartEvent.include(event)) {
return ProcessEvent.with({ action: 'start' \});
} else \{
return ProcessEvent.with({ action: 'restart' \});
}
});
Implementation of
Workflow.handle
createContext()
createContext():
WorkflowContext
Defined in: packages/workflow/src/agent/agent-workflow.ts:245
Creates a new workflow context for event processing.
The context provides the runtime environment for executing handlers and managing event flow. Each context maintains its own execution state and event queue.
Returns
WorkflowContext
A new workflow context instance
Example
const context = workflow.createContext();
// Send events through the context
await context.send(MyEvent.with(\{ data: 'hello' \}));
// Listen for specific events
const result = await context.waitFor(CompletionEvent);
Implementation of
Workflow.createContext
addAgent()
addAgent(
agent
):this
Defined in: packages/workflow/src/agent/agent-workflow.ts:299
Adds a new agent to the workflow
Parameters
agent
Returns
this
getAgents()
getAgents():
BaseWorkflowAgent
[]
Defined in: packages/workflow/src/agent/agent-workflow.ts:310
Gets all agents in this workflow
Returns
Array of agents in this workflow
fromTools()
static
fromTools(params
):AgentWorkflow
Defined in: packages/workflow/src/agent/agent-workflow.ts:319
Create a simple workflow with a single agent and specified tools
Parameters
params
Parameters for the single agent workflow
Returns
AgentWorkflow
A new AgentWorkflow instance
runStream()
runStream(
userInput
,params?
):WorkflowStream
<WorkflowEventData
<any
,string
>>
Defined in: packages/workflow/src/agent/agent-workflow.ts:639
Parameters
userInput
MessageContent
params?
chatHistory?
ChatMessage
[]
state?
Returns
WorkflowStream
<WorkflowEventData
<any
, string
>>
run()
run(
userInput
,params?
):Promise
<WorkflowEventData
<AgentResultData
>>
Defined in: packages/workflow/src/agent/agent-workflow.ts:661
Parameters
userInput
MessageContent
params?
chatHistory?
ChatMessage
[]
state?
Returns
Promise
<WorkflowEventData
<AgentResultData
>>
createHandoffTool()
createHandoffTool(
agents
):FunctionTool
<{toAgent
:string
;reason
:string
; },JSONValue
|Promise
<JSONValue
>, () =>AgentWorkflowState
>
Defined in: packages/workflow/src/agent/agent-workflow.ts:679
Parameters
agents
Map
<string
, BaseWorkflowAgent
>
Returns
FunctionTool
<{ toAgent
: string
; reason
: string
; }, JSONValue
| Promise
<JSONValue
>, () => AgentWorkflowState
>