- Remove Dictionary-derived types
- Add an optional name to orchestrations
- Make Handoffs based purely on AIAgent instances rather than separately provided names
- Moved InProcessRuntime type into abstractions package and deleted InProcess package.
- Moved several members of IAgentRuntime to be extension methods instead, e.g. multiple GetActorAsync overloads.
- Added synchronous RegisterMessageHandler overloads and used them to avoid unnecessary async usage at call sites.
- Removed unnecessary surface area from InProcessRuntime, e.g. StopAsync, RunUntilIdleAsync, etc.
- Fixed spin loop in InProcessRuntime that would consume an entire core for the duration of the orchestration's operation.
- Removed a bunch of allocation from InProcessRuntime.
- Made a runtime optional for orchestrations, defaulting to using a temporary InProcessRuntime if none is provided.
- Removed custom delegate types from orchestrations.
- Consolidated namespaces.
- Used records to simplify message classes.
- Tweaked naming on AgentActor to make purpose of protected methods more clear.
- Removed invocation in AgentActor.InvokeAsync of empty update / isFinal parameter.
- Changed OrchestrationHandoffs to avoid needing to pass in agents duplicatively.
- Made various extension methods, such as those on OrchestrationHandoffsExtensions, into instance methods.
* Add ADR for different run response options
* Add another option to the list.
* Update agno non-streaming with further clarification
* Add another option
* Adding optional includeUpdates option
* Adding Pros/Cons for each option
* Make pros/cons a list
* Add some thoughts on structured outputs and custom AIContent types
* Update design doc to clarify primary and secondary better and split out custom response types with it's own options
* Add structured outputs competitive comparison and suggestion
* Address PR comments.
* Remove AgentRunFinishReason until we can find a good use case for it.
* Add finish reason to list of excluded properties.
* Add custom agent run response types.
Usage to follow.
* Update Agent run response types
* Add additional code coverage
* Remove onIntermediateMessage since it is unecessary with the new response approach.
* Add AgentId to response.
* Rename ParseAsStructuredOutput to Deserialize
* Update decision doc.
* Fix formatting.
* Update CopilotStudio to return new response types
* Address PR comment
Co-authored-by: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com>
---------
Co-authored-by: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com>
* Remove instructions from base agent type, and ensure description is only required where necessary.
* Fix code issue.
* Remove unused import.
* Remove typo
* Make the description parameter optional
* Also use name for handoffs if no description is provided.