Skip to content

.NET: How is the need for user interaction supposed to be recognized in workflows? #858

@stephentoub

Description

@stephentoub

An AIAgent can return back various kinds of content that represent the need for the caller to do something in order to make forward progress. This could be FunctionCallContent without a paired FunctionResultContent, or UserInputRequestContent without a corresponding UserInputResponseContent, or any other custom content type a user may construct.

How is a workflow that involves AIAgents supposed to handle this? e.g. if I have a workflow that connects agent A to agent B, and the response from A includes a UserInputRequestContent that needs reaction, what is it supposed to do? And how does an arbitrary workflow (such as one from a reusable workflow builder that provides patterns like sequential, handoff, et.c) supposed to recognize / differentiate such things?

Should we special-case UserInputRequestContent and only that, and have FunctionCallContent changed to derive from UserInputRequestContent?

And in the case where user input is required, invariably the response will need to be handled by the same sub-agent that created the request. How will the user's response be handled so as to get it back to that node in the graph?

cc: @westey-m

Metadata

Metadata

Assignees

Labels

.NETepicUsed for milestone planning, please create tasks for the associated development work.v1.0Features being tracked for the version 1.0 GAworkflowsRelated to Workflows in agent-framework

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions