Commit Graph

433 Commits

  • .NET: [BREAKING] Support Checkpoint Serialization (#735)
    * feat: Support Checkpoint Serialization
    
    * Implements serialization roundtripping for checkpoints.
    * Adds support for JSON serialization
    * Adds FileSystem-based checkpoint persistence
    
    * fix: Executor State does not deserialize correctly
    
    The StateManager was not properly handling delay-deserialized values.
    
    * Fix PortableValue handling in StateManager (this makes it delegate to PortableValue the uwnrapping)
    * Fix UnitTest to actually test checkpoint serialization
    * Additional review comment fixes
    
    ---------
    
    Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
  • .NET: Update AgentThread, MessageStores and Context Providers to deserialize via constructor. (#779)
    * Update AgentThread, MessageStores and Context Providers to deserialize via constructor.
    
    * Fix pr comment.
    
    * Add additional validation for AgentThread deserialization
    
    * Update WorkflowMessageStore desreialize to improve error checking.
    
    * Reduce allocations in InMemoryChatMessageStore
    
    ---------
    
    Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
  • .NET Workflow - Declarative Workflow Event Fix (#765)
    * Checkpoint
    
    * Update workflows/DeepResearch.yaml
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Comment
    
    * Fix comment
    
    * Update package version
    
    * Fix nuget haxx
    
    * Checkpoint
    
    * Code complete
    
    * Testing
    
    * Message content workaround
    
    * Add sequential flow
    
    * Checkpoint
    
    * Integration test project
    
    * Checkpoint
    
    * Checkpoint cleanup
    
    * Complete
    
    * Checkpoint
    
    * Fix tests
    
    * Comment cleanup
    
    * Namespace
    
    * Formatting
    
    * Analyzer updates
    
    * Workflow update
    
    * Fixed!
    
    * Update dotnet/tests/Microsoft.Agents.Workflows.Declarative.UnitTests/DeclarativeWorkflowTest.cs
    
    Co-authored-by: Tao Chen <taochen@microsoft.com>
    
    * Fix build error
    
    * Purge "immutable" set and dictionary
    
    * Fix as task
    
    * Collection expression
    
    * Another
    
    * Frozen => Readonly (perf)
    
    * Fix
    
    * Namespace
    
    * Checkpoint
    
    * Add test
    
    * Fix
    
    * Rollback workflow edit
    
    * nitty
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: Tao Chen <taochen@microsoft.com>
  • .NET: Add AIContextProvider support (#691)
    * Add AIContextProvider support
    
    * Address feedback.
    
    * Address PR comments.
    
    * Switch to valuetask and remove parallel calls for AIContextProvider
    
    * Remove Model from ModelInvokingAsync method name
    
    * Remove agent thread id again and remove it from context provider interface
    
    * Add AIContextProvider serialization support to AgentThread and update sample to show this feature
    
    * Address PR comments
    
    * Improve memory sample
    
    * Update sample comment.
    
    * Remove AggregateAIContextProvider for now since it makes too many assumptions.  We can include it later as a sample if needed.
    
    * Update AIContextProviders to have an Invoked method instead of MessagesAddingAsync.
    
    * Remove unused using.
    
    * Address PR comments.
    
    * Address PR comment.
    
    * Update comment.
    
    * Update comment
    
    * Address PR comments.
  • .NET Workflow - Integrated updated CPS Object Model (#681)
    * Checkpoint
    
    * Update workflows/DeepResearch.yaml
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Comment
    
    * Fix comment
    
    * Update package version
    
    * Fix nuget haxx
    
    * Checkpoint
    
    * Code complete
    
    * Testing
    
    * Message content workaround
    
    * Add sequential flow
    
    * Checkpoint
    
    * Integration test project
    
    * Checkpoint
    
    * Checkpoint cleanup
    
    * Complete
    
    * Update package
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • .NET: [BREAKING] Change implementation to use AsFunctionTool extension method to create a function from an agent (#686)
    * Change implementation to use AsFunctionTool extension method to create a function from an agent
    
    * Update dotnet/tests/Microsoft.Extensions.AI.Agents.UnitTests/AgentExtensionsTests.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Address code review feedback and add a new sample
    
    * Address some code review feedback
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • .NET: Fix Semantic Kernel migration samples (#739)
    * use GetOpenAIResponseClient
    
    Signed-off-by: Jianguo Ma <jiangma@microsoft.com>
    
    * use PersistentAgentsClient
    
    Signed-off-by: Jianguo Ma <jiangma@microsoft.com>
    
    ---------
    
    Signed-off-by: Jianguo Ma <jiangma@microsoft.com>
  • .NET: BREAKING Update AIAgent.Run to take IEnumerable instead of IReadonlyCollection (#729)
    * Update AIAgent,Run to take IEnumerable instead of IReadonlyCollection
    
    * Address PR comment.
    
    * Cast to IReadonlyCollection since this is typically all that is required to avoid unecessary allocation.
    
    * Update OrchestratingAgent protected methods as well.
  • .NET: Workflow getting started samples in .Net (Second batch) (#650)
    * Add loop and agents in workflows samples
    
    * Add foundry agent and workflow as agent samples
    
    * Checkpoint sample WIP
    
    * Checkpoint sample 1 Done
    
    * Add HIL samples
    
    * Fix formatting
    
    * Force folder name change step 1
    
    * Force folder name change step 2
    
    * Fix formatting
    
    * Fix formatting
    
    * Add checkpoint and rehydrate sample
    
    * _Foundational
    
    * Fix formatting
  • .NET: Adding Image Multi Modality Sample (#688)
    * Adding Multi Modal Sample
    
    * Address typos
    
    * Update sample to Azure OpenAI
    
    * Update readme
    
    * Update readme
    
    * Update readme
    
    * Use thread
  • .NET Workflows - Add declarative action events (#679)
    * Updated
    
    * Typos
    
    * Update sample
    
    * Typo
    
    * Add parent and prior action ids to event
  • .NET: Add getting started samples that show how to call MCP tools (#635)
    * Add getting started samples that show how to call MCP tools
    
    * Add getting started samples that show how to call MCP tools
    
    * Update dotnet/samples/GettingStarted/ModelContextProtocol/Agent_MCP_Server_Auth/README.md
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Fix README
    
    * Address code review feedback
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • .NET: Add an A2A client server sample (#633)
    * Add an A2A client server sample
    
    * Address code review feedback
    
    * Start to fix code review feedback
    
    * Start to fix code review feedback
    
    * Start to fix code review feedback
  • .NET: Add Ollama and custom agent samples, plus ONNX improvements (#639)
    * Add ollama and custom agent samples, plus onnx improvements
    
    * Update dotnet/samples/GettingStarted/AgentProviders/Agent_With_CustomImplementation/Program.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Address PR comments.
    
    * Address pr comments.
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • .NET Workflows - Update structure of samples (#645)
    * Updated
    
    * Typos
    
    * Update readme fwiw
  • .NET: Workflow getting started samples in .Net (First batch) (#554)
    * First batch of workflow getting started samples in .Net
    
    * Add Switch Case Edge group
    
    * Add multi selection group
    
    * Add comments
    
    * Add readme
    
    * Fix formatting
    
    * clean project file
    
    * WIP: Revise sample structures
    
    * Update readme
    
    * Update readme
    
    * Fix file encoding
    
    * Update sample format
    
    * Address comments
    
    * Fix formatting
    
    * Remove unwanted file
    
    * Fix unit tests
    
    * Remove unwanted file
  • .NET: AI agent as an MCP tool (#612)
    * add sample demostrating how to expose ai-agent as an mcp tool
    
    * Update dotnet/samples/GettingStarted/Agents/Agent_Step10_AsMcpTool/Program.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update dotnet/samples/GettingStarted/Agents/README.md
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * remove threadId parameter
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • .NET: Getting started samples which use OpenAI exchange types (#598)
    * Getting started samples which use OpenAI exchange types
    
    * Update dotnet/src/Microsoft.Extensions.AI.Agents.OpenAI/Extensions/AgentRunResponseUpdateExtensions.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update dotnet/src/Microsoft.Extensions.AI.Agents.OpenAI/Extensions/AgentRunResponseUpdateExtensions.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update dotnet/src/Microsoft.Extensions.AI.Agents.OpenAI/ChatCompletion/StreamingUpdatePipelineResponse.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update dotnet/samples/GettingStarted/AgentWithOpenAI/README.md
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Fix pipeline response
    
    * Update dotnet/samples/GettingStarted/AgentWithOpenAI/README.md
    
    Co-authored-by: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com>
    
    * Update comment to reflect OpenAI backend usage
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: Roger Barreto <19890735+rogerbarreto@users.noreply.github.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 info on how to deploy Azure OpenAI models with Azure AI Foundry (#588)
    * Include details on required role
    
    * Update dotnet/samples/GettingStarted/Agents/README.md
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update dotnet/samples/GettingStarted/Agents/README.md
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Add info on how to deploy Azure OpenAI models with Azure AI Foundry
    
    * Update dotnet/samples/GettingStarted/Agents/README.md
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • .NET: Include details on required role (#587)
    * Include details on required role
    
    * Update dotnet/samples/GettingStarted/Agents/README.md
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update dotnet/samples/GettingStarted/Agents/README.md
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • .NET: Organize the .Net samples (#578)
    * Organize the .Net samples
    
    * Organize the .Net samples
    
    * Merge latest from main
    
    * Update sample to also include function calling telemetry (#577)
    
    * Move package installation instructions to user-guide (#572)
    
    * Move package installation instructions to user-guide
    
    * Update user-documentation-dotnet/getting-started/README.md
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update docs/docs-templates/getting-started/README.md
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * .NET: Add SK-AF Migration Samples for Responses API. (#575)
    
    * Responses wip
    
    * Adding OpenAI Responses Migration samples
    
    * Address all samples and code for Azure and OpenAI Responses Migration code
    
    * Update dotnet/samples/SemanticKernelMigration/OpenAIResponses/Step02_ReasoningModel/Program.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Organize the .Net samples
    
    * Organize the .Net samples
    
    * Merge latest from main
    
    * Use Agent rather than AIAgent
    
    * Rename agents getting started samples
    
    * Use singular Agent
    
    ---------
    
    Co-authored-by: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com>
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • .NET: Add SK-AF Migration Samples for Responses API. (#575)
    * Responses wip
    
    * Adding OpenAI Responses Migration samples
    
    * Address all samples and code for Azure and OpenAI Responses Migration code
    
    * Update dotnet/samples/SemanticKernelMigration/OpenAIResponses/Step02_ReasoningModel/Program.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • .NET: Add missing Azure OpenAI Migration Sample code (#559)
    * Add missing Azure OpenAI Migration Sample code
    
    * Add Azure OpenAI Assistants Samples
    
    * Address miner README typos
    
    * Remove leftover
  • .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: Adding Semantic Kernel - Migration Samples (#499)
    * Guidance
    
    * Guidance
    
    * WIP Migration Preps
    
    * Move to single file projects
    
    * Update guidance code and final adjustments to ensure all feature compatibility
    
    * Move from demos to samples
    
    * Address format
    
    * Address chat client pipeline order
    
    * Update project naming
    
    * Revisition on README
    
    * Remove unused ctor
    
    * Address feedback
    
    * Address feedback
    
    * Address merge conflict fix
    
    * Address SK versioning
    
    * Address folder naming
    
    * Address feedback
  • .NET: Add samples to show how to create an AIAgent for each provider. (#525)
    * Add samples to show how to create an AIAgent for each provider.
    
    * Update dotnet/samples/HowToCreateAnAIAgentByProvider/README.md
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Address PR comments
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@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: API specification for Foundry SDK alignment (#359)
    * API specification for Foundry SDK alignment
    
    * Add descriptions to the samples
    
    * Add descriptions to the samples
    
    * Address some review feedback
    
    * Remove sample
    
    * Remove sample
    
    * Update docs/specs/001-foundry-sdk-alignment.md
    
    Co-authored-by: westey <164392973+westey-m@users.noreply.github.com>
    
    * Update docs/specs/001-foundry-sdk-alignment.md
    
    Co-authored-by: westey <164392973+westey-m@users.noreply.github.com>
    
    * Update docs/specs/001-foundry-sdk-alignment.md
    
    Co-authored-by: westey <164392973+westey-m@users.noreply.github.com>
    
    * Update docs/specs/001-foundry-sdk-alignment.md
    
    Co-authored-by: westey <164392973+westey-m@users.noreply.github.com>
    
    * Address code review feedback
    
    ---------
    
    Co-authored-by: westey <164392973+westey-m@users.noreply.github.com>
  • .NET: feat: Microsoft.Extensions.AI.Agents.Hosting.A2A package (#390)
    * add timeout handling for message send
    
    * prepare a2a proj
    
    * fix it finally
    
    * add a holder for selected protocol
    
    * init types ;
    
    * see discoveredAgentCardJson
    
    * prettify json
    
    * correct usage
    
    * client setup for card
    
    * setp?
    
    * message:send
    
    * init task based communication
    
    * try call it via the agent thread
    
    * okay i got back the message wooooow!
    
    * nit
    
    * fix duplicates
    
    * yea matey!
    
    * fix knights-knaves for A2A-Task-based communication
    
    * fix a2a agents csproj
    
    * AI feedback
    
    * a2a does not support netstandard / netfx
    
    * try fix build + refactor
    
    * bump a2a for net9 only
    
    * rollback System.Net.ServerSentEvents & Microsoft.Bcl.AsyncInterfaces version upgrade; override in-place and retarget to net9;net8 for A2A
    
    * address PR comments x1
    
    * refactor a2a interfaces
    
    * address PR comments x2
    
    * fix cancel usage
    
    * separate project for A2A.AspNetCore
    
    * simplify
    
    * cleanup
    
    * cleanup dependencies
    
    * generate convertor tests / fix namespaces etc
    
    * setup actor client!
    
    * fix build
    
    * backoff conversations
    
    * fix duplicate message streaming
    
    * address PR comments x1
    
    * remove internalsvisibleto
    
    * dont implement agent card query on my own: give it to the user
    
    * nit
    
    * rename and move projects
    
    * fix dotnet-format
    
    * address PR comments x1
    
    * remove unreferenced project
    
    * rollback
    
    * rename
    
    * nit
    
    ---------
    
    Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
  • .NET: Add Approval capabilities to FunctionInvokingChatClient (#457)
    * Add Approval capabilities to FunctionInvokingChatClient
    
    * Address PR comments.
    
    * Address PR comments.
    
    * Address PR comments.
    
    * Address PR feedback, add sample, and fix bug plus unit test.
    
    * Address PR comments
  • .NET: chore: support retries on Cosmos storage creation (#402)
    * support retries
    
    * tests + registration options
    
    * fix ordering ..
    
    * HK + update packages
    
    * fix paths
    
    * Update dotnet/tests/CosmosDB.IntegrationTests/Microsoft.Extensions.AI.Agents.Runtime.Storage.CosmosDB.Tests/CosmosTestFixture.cs
    
    * re create project and fix some pk usage
    
    * fix all tests
    
    * try workflow?
    
    * wip 1
    
    * fix definition
    
    * try with cosmos_use_emulator env?
    
    * try ignore SSL errors?
    
    * other cert verifications
    
    * hardcode to 8081?
    
    * proper valuation of ENV
    
    * logging
    
    * ensure db exsists for CI
    
    * bump
    
    * cleanup
    
    * fix usage
    
    * nit comment
    
    * try only release for stability?
    
    * try skip some flaky tests
    
    * merge fixes + rollback container
    
    * reimplement with iasyncdisposable pattern
    
    * remove example doc struct
  • .NET: Bring OpenAIResponsesChatClient temporarily (#449)
    * copy OpenAIResponsesChatClient from meai temporarly
    
    * Update dotnet/src/Microsoft.Extensions.AI.Agents.OpenAI/NewOpenAIResponsesChatClient.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * add AsNewIChatClient extension method
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • .NET: Fix bugbash issues (#448)
    * Fix bugbash issues
    
    * Update dotnet/samples/GettingStarted/Providers/AIAgent_With_OpenAIResponseClient.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • .NET: Update MEAI 9.8.0 and accepted proposed abstractions (#427)
    * Update MEAI 9.8.0 and accepted proposed abstractions
    
    * Address manual change in samples
    
    * Address warnings
    
    * Revert "Address warnings"
    
    This reverts commit 52a7d60129.
  • .NET: Update OpenTelemetry Agent - Added Demo, AIAgentMetadata and Agent.GetService() (#356)
    * OTEL Demo
    
    * updating telemetry sample
    
    * OTEL updates
    
    * WIP
    
    * Adding GetService and Agent Metadata for Telemetry
    
    * WIP
    
    * Add UT for OTEL System behavior
    
    * Address Unicode problem
    
    * Add logging
    
    * Adjust for new extensions
    
    * Change Logger to LoggerFactory for the extension method
    
    * Address AI Feedback
    
    * Simplify script and readme just for Azure OpenAI
    
    * Increase code converage
    
    * Address merge conflict
    
    * Another slnx fix
    
    * Address PR comments
    
    * Address PR feedback + Add UT
    
    * Added Hosting UT to the solution
    
    * Address PR comments
    
    * Address missing sensitivity tests
    
    * Remove unecessary override
    
    * Address PR comments
  • .NET: Add agent hosting package and update sample (#296)
    * Add agent hosting package and update sample
    
    * Review feedback and cleanup
    
    * Include the narrator
    
    * wip
    
    * wip
    
    * Remove workaround for empty state writes.
    
    * Handle changes to AgentThread.
    
    * One more.
    
    * Fix.
    
    ---------
    
    Co-authored-by: Aditya Mandaleeka <adityam@microsoft.com>
  • .NET: Switch minimal console and a few samples to use latest patterns (#348)
    * Switch minimal console and a few samples to use latest patterns
    
    * Use interpolation for sample output.
  • .Net: Add support for 3rd party thread storage and thread serialization (#203)
    * Add thread storage and serialization POC
    
    * Switch to using JsonElement and add unit tests
    
    * Add additional unit tests.
    
    * Exclude private debugger properties from CodeCoverage.
    
    * Rename IChatMessagesStorable to IChatMessageStore
    
    * Apply suggestions from code review
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Improve xml doc.
    
    * Update the message storing thread to always use external store for both local and remote storage.
    
    * Remove threadid from the IChatMessageStore interface, since the store should own the thread id itself, if it requires one.
    
    * Switch GetMessages to IEnumerable
    
    * Address pr comments.
    
    * Make jsonserializer options default consistent on DeserializeThreadAsync
    
    * Move message storing thread functionality into AgentThread and simplify AgentThread behavior.
    
    * Remove embedding generation from VectorStore chat history sample.
    
    * Remove unecessary code and fix formatting.
    
    * Make GetNewThread and DeserializeThread virtual with default implementations.
    Remove unsued json utilities.
    
    * Fix formatting
    
    * Remove problem test.
    
    * Add more unit tests
    
    * Remove unused using clause.
    
    * Address pr feedback.
    
    * Address PR comments.
    
    * Make InMemory store internal
    
    * Switch InMemoryChatMessageStore to implement IList instead of inheriting from List.
    
    * Rename store deserialize param.
    
    * Update serialization based on PR comments.
    
    * Remove confusing comment.
    
    * Address Deserialization PR comments in the same way as Serialization
    
    * Add State to IChatMessageStore Serialize and Deserialize names.
    Make Thread Deserialize internal.
    Make AgentThread type switching fobidden.
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
  • .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>
  • .NET: Fix error for ChatClientAgent DI ambiguity (#299)
    * Fix error for ChatClientAgent DI ambiguity
    
    * Using AIAgent abstraction for DI samples
    
    * Update dotnet/samples/GettingStarted/Steps/Step04_ChatClientAgent_DependencyInjection.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Fix warnings
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • .NET: CosmosDB Actor State Storage (#262)
    * Implement CosmosDB actor state storage.
    
    * Fix.
    
    * Minor fixes.
    
    * Fixes.
    
    * Make CosmosDB initialization be lazy.
    
    * Remove unnecessary read from write path.
    
    * Throw on empty writes.
    
    * Add arg validation for read.
    
    * Add CosmosIdSanitizer.
    
    * Fix.
    
    * Fix.
    
    * Simplify doc IDs.
    
    * Update comment.
    
    * fb
    
    * Make LazyCosmosContainer internal and add tests.
    
    * Make test constants public and remove IVT.
    
    * Use source generated JSON context for future nativeAOT support.
    
    * Re-add dropped comments.