Commit Graph

10 Commits

  • .NET: A2A agent (#520)
    * add a2a agent
    
    * Update dotnet/src/Microsoft.Extensions.AI.Agents.A2A/A2AAgent.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * address pr review feedback
    
    * move unit tests for extension methods to the extensions folder
    
    * address pr review comments
    
    * address pr review comments
    
    * address pr review feedback
    
    * move a2a agent sample to console app
    
    * remove unnecessary Ids set for new projects in the solution file
    
    * remove unnecessary configuration
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • .NET: fix: FanIn Edge does not work (#541)
    * fix: FanIn Edge does not work
    
    We were not creating the state for FanIn edge in EdgeMap correctly, leading to crashes. After fixing that, it turns out the logic in FanInEdgeRunner was only forwarding the last message, not all of them.
    
    * fix: Remove duplicate code and fix typo
  • fix: ChatMessage Aggregation in AIAgentHostExecutor (#530)
    The previous fix for the aggregation in AIAgentHostExecutor has a bug wherein we only include the first update from a ChatMessage in the outgoing "collected" message.
    
    The fix is to ensure we put the collected updates into the message before sending it out.
  • .NET: Implement browse/clear functionality for state (#513)
    * feat: Implement browse/clear functionality for state
    
    * fix: Assertion comments in StateManagerTests
  • .NET: Make WorkflowBuilder more intuititve (#503)
    * feat: Make WorkflowBuilder more intutitve
    
    Right now Executorish binding has some unintutitive behaviour. When a user adds an eecutor with an id of an executor that already exists, we silently replace it, if the user provides it inside of add_edge. When a user introduces an executor via an unbound id, the user must bind it via BindExecutor, even though the registration is created implicitly when an edge id added.
    
    The change will remove the invisible update in favor of a "best efforts" check of type and instance equality.
    
    * Expand errors when rebinding to disallowed
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • .NET: feat: Implement Checkpointing API (#420)
    * feat: Implement Checkpointing API
    
    * refactor: Normalzie Namespaces and break out multi-class files
    
    * feat: Support checkpointing in AIAgentHostExecutor
    
    * test: Representation tests
    
    * feat: Add Step-level Tracing and WorkflowEvents
    
    * feat: Add Checkpointing Sample and Smoke Test
    
    * Fixes an issue where StateManager was not properly clearing the incoming queued updates.
    * Fixes order of checkpointing and in-step event publication
    * Adds import of RunContext state on LoadCheckpoint
    * Add re-firing of events for unserviced ExternalRequests on Checkpoint load
    
    * docs: Add documentation to publics
    
    * Also adds documentation to ICheckpointManager which may go public
    
    * refactor: Fix Union Aggregators and add Tests
    
    * fix: Fix issues raised in PR comments and remove dead code
  • .NET: feat: Host Workflow as AIAgent (#469)
    * feat: Host Workflow as AIAgent
    
    * Also changes AIAgent-as-Executor to use streaming runs and streaming
      events
    * Also enables default setting for yielding events
    
    * fix: Infinite loop in GenerateNewId()
    
    * docs: Spelling
    
    * test: Add Workflow-as-Agent sample and test
  • .NET: feat: Improve Support for AIAgent-as-Executor (#432)
    * feat: Support Executor-targeted messages
    
    This adds support for only sending a message to a given executor. Messages will still only route through connected edges.
    
    * feat: Support sending all valid input types after starting a run
    
    * feat: Normalize AIAgent-as-Executor Message Protocol to use MEAI types
  • .Net: WIP: feat: Define Workflow and Executor APIs (#261)
    * feat: Define Workflow and Executor APIs
    
    * feat: Define IExecutionContext and Events
    
    * feat: Simple Workflow Demos
    
    * refactor: Move Workflows classes to separate assembly
    
    * feat: Move FanOut/In to LowLevel API with new semantics
    
    * feat: Implement Local Execution
    
    * refactor: Assembly name .Workflow => .Workflows
    
    * feat: Enable Default Message Handling
    
    * also lifts Bind in MessageHandlerInfo to better be able to direclty invoke handlers (for AOT, later)
    
    * feat: Implement StreamingHandle APIs
    
    This allows the user to respond to WorkflowEvents with external messages, enabling HIL.
    
    * feat: Add checks for duplicate edges and chain cycles
    
    * feat: Add built-in WorkflowEvents
    
    * refactor: Pull classes into own files
    
    * refactor: Simplify Disposal pattern in Executor
    
    * refactor: Break EdgeRunner file into per-type files
    
    * refactor: Use Throw.IfNull()
    
    * refactor: Remove AddLoop()
    
    Per https://github.com/microsoft/agent-framework/pull/272#discussion_r2241739079 we decided this was not very useful.
    
    * refactor: Normalize use of ValueTask
    
    * fix: Build Break from removing .AddLoop
    
    * refactor: Explicit routing and RouteBuilder
    
    Split out reflection from MessageRouter implemention into build phase, enabling AOT compilation to drive RouteBuilding without reflection.
    
    * test: Add Reflection/Invocation tests
    
    * fix: Terminate on Completion event
    
    * refactor: Update public API surface
    
    * feat: Add support for external requests
    
    * feat: Support hosting AIAgent instances in Workflows
    
    * fix: Fix routing to go through Executor.ExecuteAsync
    
    * test: Update samples for "must SendMessage" semantics
    
    * Add invoking samples to unit tests to avoid future breaks
    
    * fix: ExternalRequest should block Workflow completion
    
    * feat: Normalize API surface against Python
    
    * Also adds xmldoc to all public APIs
    
    * refactor: Normalize UnitTest and Sample namespaces
    
    * fix: Formatting
    
    * refactor: Normalize project/folder names
    
    * feat: Remove DynamicCodeExecution from ValueTaskTypeErasure
    
    * fix: Fix ILTrim warnings
    
    * docs: Add missing docs and fix typos
    
    * feat: Hosted Agents should report Run events
    
    * fix: Fix type propagation for ILTrim changes
    
    * refactor: Simplify DynamicallyAccessedMembers annotations
    
    * sample: Use static-Type construction of InputPort
    
    * feat: Support non-Streaming Run Mode
    
    * test: Add test for non-streaming execution
    
    * refactor: Remove unused types
    
    * refactor: Simplify Event and EdgeData type hierarchies
    
    * feat: Add Switch (=Conditional Edge Group) control flow
    
    * feat: Make .NET AutoSend the MessageHandler result
    
    * feat: Implement State APIs
    
    * refactor: Simplify public namespaces and code organization
    
    * refactor: Reconcile .NET and Python names
    
    ---------
    
    Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>