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.
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:
ends up allocating new objects as part of those implicit casts.