Skip to content

.NET: ExecutorIsh is confusingly named and hard to discover how to use #758

Description

@stephentoub

https://github.com/microsoft/agent-framework/blob/main/dotnet/src/Microsoft.Agents.Workflows/ExecutorIsh.cs

The name is hard to understand, with "Ish" as a suffix.

Also when looking at APIs that accept one, like WorkflowBuilder's constructor, it's hard to figure out how to get one. It relies on implicit cast operators to turn other things into this... and such implicit operators are also something we recommend folks avoid:
https://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/operator-overloads#conversion-operators

The implicit operators also make it so that reference identity breaks, because code like:

AIAgent agent = ...;
ExecutorIsh e1 = agent;
ExecutorIsh e2 = agent;

ends up allocating new objects as part of those implicit casts.

Metadata

Metadata

Assignees

Labels

.NETUsage: [Issues, PRs], Target: .NetworkflowsUsage: [Issues, PRs], Target: Workflows

Type

Fields

No fields configured for Task.

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions