Commit Graph

23 Commits

  • .NET Workflows - Re-enable Declarative Integration Tests (#1080)
    * Investigate
    
    * Next
    
    * Update initialization
    
    * Should be ok
    
    * Agent definition dx
    
    * Link agent definitions
    
    * Link agent definitions
    
    * Path resolution #2
    
    * Fix path resolution
    
    * Another pass
    
    * Another
    
    * Better
    
    * One more
    
    * Whoopsie
    
    * Update dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Framework/AgentFactory.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Namespace
    
    * Cleanup
    
    * Temp config for pipeline
    
    * Another temp workaround
    
    * Test config: Bing Grounding Tool
    
    * Update template
    
    * Next pass
    
    * Ok now
    
    * Cleanup
    
    * Test note
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • Remove System.Linq.Async dependency from src assemblies (#1069)
    We shouldn't be shipping any more dependencies on this package, as it's becoming legacy, replaced by System.Linq.AsyncEnumerable.
    
    We'll eventually want to replace it with System.Linq.AsyncEnumerable in all tests/samples, too, but that's hard to do until SK updates to use S.L.AsyncEnumerable once its 10.0.0 version is released. I did remove the package reference from tests/samples where it's not needed.
  • .NET Workflows - Code Generation for Declarative Workflow (#655)
    * Notes
    
    * Readme typo
    
    * Update readme
    
    * Checkpoint
    
    * Namespace fix
    
    * Fix ID and namespace
    
    * Checkpoint
    
    * Verified
    
    * Comments
    
    * Isolate "Kit"
    
    * Address note: static
    
    * Checkpoint
    
    * Checkpoint "Executor<>"
    
    * Prefix and internal executors
    
    * Test passing
    
    * Cleanup
    
    * Rename "session" concept
    
    * Revert workflow debug
    
    * Fix template base / pragma
    
    * Tune system scope
    
    * Update dotnet/src/Microsoft.Agents.Workflows.Declarative/CodeGen/ResetVariableTemplate.tt
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Fix empty template
    
    * Add validation for codegen ut
    
    * Fix test
    
    * Codegen baselines
    
    * Constant
    
    * Prep
    
    * Mark TODO
    
    * Fix
    
    * Namespace
    
    * One more
    
    * Update baselines
    
    * Checkpoint
    
    * Checkpoint
    
    * Checkpoint
    
    * fme
    
    * Checkpoint
    
    * Another step
    
    * Fixed up
    
    * Roslyn
    
    * Fix
    
    * More cleaning
    
    * Async
    
    * Fix
    
    * Enum checkpoint
    
    * Refine enum
    
    * Checkpoint
    
    * Sync templates
    
    * Checkpoint
    
    * Streamline
    
    * Pre-merge analyzer updates
    
    * Foreach
    
    * Placeholders
    
    * Checkpoint
    
    * Clean-up
    
    * Sample path resolution
    
    * Checkpoint
    
    * Checkpoint - Workflow Code Building
    
    * Validation
    
    * Test cleanup
    
    * Update test basline
    
    * Update test baseline
    
    * Fix DefaultTemplate usage
    
    * Validation checkpoint
    
    * Fix break/continue edges
    
    * Verify generated code builds
    
    * Fix merge
    
    * Fix build validation
    
    * Update template handling of literal string values.
    
    * Test for metadata case
    
    * Update baselines
    
    * Fix merge
    
    * Checkpoint
    
    * Checkpoint: Conditions
    
    * Invoke Agent Checkpoint
    
    * Namespace
    
    * Address code-analysis issues
    
    * Cross platform test support
    
    * Invoke agent checkpoint
    
    * Clean sample
    
    * Checkpoint: Agent Invoke Input Messages
    
    * Checkpoint - Passing
    
    * Checkpoint
    
    * Regenerate all template + port conversation fix
    
    * Checkpoint: Tests good
    
    * Fix test for unbuntu
    
    * Fix build command
    
    * Checkpoint - E2E
    
    * Test fix
    
    * Update integration tests
    
    * Fix merge
    
    * Update
    
    * Checkpoint !!!
    
    * Baby steps
    
    * Checkpoint
    
    * Checkpoint E2E !!!
    
    * So close...
    
    * Integrate test validation
    
    * Fix merge
    
    * Rebase tests
    
    * Namespace
    
    * Namespace
    
    * Test cleanup
    
    * Sample comment cleanup
    
    * Checkpoint: List conversion
    
    * Include these
    
    * CheckPoint: ParseValue
    
    * Namespace
    
    * Fix sampel
    
    * More namspace
    
    * Comments
    
    * Test updates
    
    * Test fix
    
    * Better build
    
    * Shared code
    
    * Sort solution
    
    * Fix build
    
    * Prune solution
    
    * One more
    
    * Conversion matrix
    
    * Final table conversion
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • .Net: Visualizing dotnet workflows (#882)
    * Adding more test for workflow vizualization.
    
    * Improving README for sample.
    
    * More cleanup.
    
    * Removing rendering of workflow visualization and adding basic support for mermaid format.
    
    * Adding basic mermaid tests.
    
    * Improving sample. Switching to another branch.
    
    * About to merge from main.
    
    * Formatting.
    
    * More fromatting.
    
    * Removng uneeded call to ToUpper.
    
    * Adding README.
    
    * Moving samples under workflow to workflows.
    
    * Removing uneeded README for map-reduce sample.
  • Rename AI Agent packages to use Microsoft.Agents.AI (#913)
    * Rename AI Agent packages to use Microsoft.Agents.AI
    
    * Fix for build
    
    * Fix formatting
    
    * Fix formatting
    
    * Ignore in VSTHRD200 in migration samples
    
    * Ignore in VSTHRD200 in migration samples
    
    * Add some missing projects and run format
    
    * Fix build errors
    
    * Address code review feedback
    
    * Fix merge issues
    
    ---------
    
    Co-authored-by: Mark Wallace <markwallace@microsoft.com>
  • .NET: Add Declarative Workflow Interpreter (#401)
    * 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
    
    * Conversion checkpoint
    
    * Fix namespace error
    
    * Restructure
    
    * Completion
    
    * Executor checkpoint
    
    * Conditional checkpoint
    
    * Cleanup
    
    * Exception cleanup
    
    * Sample cleanup
    
    * Updates
    
    * 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
    
    * Fix unit-tests
    
    * Add sample
    
    * Comment cleanup
    
    * Fix debug output
    
    * Formating helpers
    
    * 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
    
    * Add tests
    
    * Fix merge from main
    
    * Test coverage
    
    * Message event
    
    * Comments and clean-up
    
    * Format
    
    * Cleanup
    
    * Test checkpoint
    
    * Clean-up - comments / test
    
    * Test baseline - 100%
    
    * More clean-up
    
    * Comments
    
    * Streaming...sort've...
    
    * Fix build / test
    
    * Stable
    
    * Checkpoint
    
    * Checkpoint
    
    * Stable
    
    * Update sample after merge
    
    * Add "Question" workflow
    
    * State clean-up checkpoint
    
    * State clean-up
    
    * Sample updated
    
    * Expression bug fix
    
    * Sample formatting
    
    * Add unit test
    
    * Comments
    
    * Scope cleanup
    
    * Refine cleanup
    
    * Fill gaps
    
    * fcs
    
    * Finalize data-types
    
    * Add unit-test
    
    * Debug cleanup
    
    * Bug fixes
    
    * Demo progress
    
    * Sample clean-up
    
    * Update samples
    
    * Sample updates
    
    * Sync demo workflows
    
    * Sample formatting
    
    * Sample formatting
    
    * Demo complete
    
    * Workflow formatting
    
    * Demo formatting #2
    
    * Readme + Sample clean-up
    
    * Scope update
    
    * Update diagnostics
    
    * Variable initiaization
    
    * Rollback
    
    * Tune research summary
    
    * State management
    
    * Fix merge
    
    * Fix merge - demo
    
    * Add readme
    
    * Overload for workflow builder
    
    * Fault tolerance - scope equivalency
    
    * Fix feed
    
    * Update sample
    
    * Add default for "Bot"
    
    * Nuget.config patchwork
    
    * Scope assignment check
    
    * Rollback nuget.config haxx
    
    * Sample format
    
    * Namespace
    
    * Namespace
    
    * Agent-Provider
    
    * Clean-up extra files
    
    * Renaming
    
    * Update sample
    
    * Prune junk files
    
    * Clean-up
    
    * Use transform
    
    * agent provider fix
    
    * Typo
    
    * Null check fix
    
    * Fix merge
    
    * Checkpoint
    
    * Cleanup
    
    * Exception cleanup
    
    * Exception message
    
    * Clean-up
    
    * Sample config update
    
    * Update handling of "Env" scope
    
    * Sample agent templates
    
    * Add readme
    
    * Event cleanup
    
    * Rename event
    
    * Update workflows/README.md
    
    Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Jacob Alber <jaalber@microsoft.com>
    Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
  • .NET: Add more console based getting started samples (#507)
    * Add more console based getting started samples
    
    * Simplify function calling and approavls samples and some minor renaming based on PR feedback.
    
    * Cover streaming with comments for aprovals sample.
    
    * Remove extra line break.
    
    * Update getting started samples list in readme.
    
    * Address PR comments
    
    * Address PR comments.
  • .NET: Enhance console samples while preserving copyability (#475)
    * Enhance console samples while preserving copyability
    
    * Add readme for minimal console demo
    
    * Suppress pre-release version warning
    
    * Address PR comments
    
    * Change showing settings to opt-in
    
    * Update comment
  • .NET: Clean / address some message warnings (#291)
    * WIP
    
    * Structured Output sample
    
    * Update dotnet/samples/GettingStarted/Steps/Step06_ChatClientAgent_StructuredOutputs.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Address xml and comment targeting the Structured Output context
    
    * Update with proposed fix for Persistent ChatClient
    
    * Address PR feedback
    
    * Address minor warnings
    
    * Address initialization
    
    * Address initialization
    
    * Address PR comments, update suggestions
    
    * Revert changes to NullableAttributese.cs
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
  • Round 2 of cleanup for agent runtime and orchestrations (#164)
    - 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.
  • Run Response ADR & Updates (#104)
    * 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>
  • .NET Port Agent Orchestration (#107)
    * Checkpoint
    
    * Checkpoint
    
    * Namespaces
    
    * Namespace
    
    * Cleanup
    
    * Namespace order
    
    * Fix sync
    
    * Formatting
    
    * Formatting
    
    * Namespace
    
    * Namespace order
    
    * Code convention
    
    * Naming
    
    * Naming
    
    * Text handling
    
    * Text handling
    
    * Namespace
    
    * Namespace order
    
    * Namespace ordering
    
    * Test
    
    * ValueTask
    
    * net472
    
    * Test fix
    
    * Fix namespace (net472)
    
    * Namespace
    
    * Fix conditional namespace
    
    * Fix type expression
    
    * Compatibility and cleanup
    
    * Sample compatibility
    
    * Sample compat
    
    * Test compat
    
    * modifier order
    
    * Simply http-stub
    
    * Formating fix for unit-test
    
    * Fix test
    
    * Real fix
    
    * Test clean-up
    
    * Update dotnet/src/Microsoft.Agents.Orchestration/Handoff/HandoffOrchestration.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Fix build errors after merging
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: Stephen Toub <stoub@microsoft.com>
  • .Net: Add Reasoning Model Integration tests (#100)
    * Add reasoning integration tests
    
    * Adding Reasoning Model config
  • .Net: Added Azure AI Persistent Agents (#81)
    * Added PersistentAgentsChatClient
    
    * Added integration tests
    
    * Small fixes
    
    * Added sample
    
    * Added TODO for tools
    
    * Small rename
    
    * Removed user-secrets id
    
    * Renamed project
    
    * Fixed warning
    
    * Fixed warning
    
    * More fixes
    
    * More fixes
  • .Net: Add Azure OpenAI Agent Model Samples (#80)
    * Improved Merge logic
    
    * Add modularization for Model Samples and Azure OpenAI
    
    * Address PR feedback
    
    * Warning fix
    
    * Address PR comments
  • Add additional integration tests and add OpenAIAssistant integration tests project. (#79)
    * Add additional integration tests and add OpenAIAssistant integration tests project.
    
    * Address PR comments.
    
    * Address PR comments.
  • .Net: Add ChatClientAgent Samples - OpenAI Model Client (#72)
    * Add Streaming API
    
    * Removing InstructionsRole
    
    * Updating thread notification strategy
    
    * Fix net472 failing
    
    * Small fixes
    
    * Adding Samples for OpenAI
    
    * WIP samples
    
    * default runsettings for unit tests
    
    * Adding first samples with OpenAIModelChatClientAgents
    
    * Removing OpenAI dependency on the sample utility
    
    * Release -> Debug update for GettingStarted project
    
    * Fix GettingStarted.csproj failing to build in Release
    
    * Update dotnet/src/Shared/Samples/BaseSample.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Address PR feedback
    
    * Fix Step 1 samples
    
    * Simplify code
    
    * Address PR feedback
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • .Net: Added shared classes (#58)
    * Added Throw shared class
    
    * Added Experimental attribute
    
    * Added IsExternalInit
    
    * Added TrimAttributes
    
    * Small update
    
    * Small update
    
    * Suppress warning
    
    * Added comment
    
    * Updated LegacySupport.props
    
    * Small updates