Commit Graph

81 Commits

  • .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: 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: Bring some MEAI types to AF temporarily. (#426)
    * Bring some MEAI types to AF temporarily.
    
    * Exclude the copied files from code completion.
  • .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: 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>
  • Bump Aspire.Hosting.Azure.CognitiveServices from 9.3.1 to 9.4.0 (#368)
    ---
    updated-dependencies:
    - dependency-name: Aspire.Hosting.Azure.CognitiveServices
      dependency-version: 9.4.0
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
  • Bump Aspire.Hosting.Azure.CosmosDB from 9.3.1 to 9.4.0 (#369)
    ---
    updated-dependencies:
    - dependency-name: Aspire.Hosting.Azure.CosmosDB
      dependency-version: 9.4.0
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
  • Bump Aspire.Hosting.AppHost from 9.3.1 to 9.4.0 (#367)
    ---
    updated-dependencies:
    - dependency-name: Aspire.Hosting.AppHost
      dependency-version: 9.4.0
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
  • .NET: Avoid double responses when streaming (#365)
    * Avoid double responses when streaming.
    
    * Fix tests.
  • .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.
  • Add some OpenAI and Foundry extension methods (#225)
    * Add some OpenAI specific extensions
    
    * Update samples and extension methods
    
    * Apply suggestion from @Copilot
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Apply suggestion from @Copilot
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Add extension methods for creating agents using the Assistant API
    
    * Add orchestration sample
    
    * Add orchestration sample
    
    * Sample for the Foundry alignment document
    
    * Address code review feedback
    
    * Rename provider samples
    
    * Sample showing how to get an AI agent for Foundry SDK
    
    * Add OpenAI chat completion based implementation of AIAgent
    
    * Split OpenAI client extension methods by client type
    
    * Remove OpenAIClient extension methods
    
    * Rename AsRunnableAgent
    
    * Fix XML comments
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • .Net: Add Structured output ChatClientAgent samples (#250)
    * 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
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
  • .NET: Move external MEAI classes to releasable packages (#279)
    * Move external MEAI classes to releaseable packages
    
    * Update dotnet/src/Microsoft.Extensions.AI.Agents.Abstractions/MEAI/NewHostedFileSearchTool.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update dotnet/src/Microsoft.Extensions.AI.Agents.Abstractions/MEAI/NewHostedCodeInterpreterTool.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update dotnet/src/Microsoft.Extensions.AI.Agents.AzureAI/NewPersistentAgentsChatClient.cs
    
    Co-authored-by: westey <164392973+westey-m@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: westey <164392973+westey-m@users.noreply.github.com>
  • .Net: FileSearch Tool Sample + API Proposal Updates for MEAI.Abstractions/Azure.AI.Agents (#210)
    * Wip, bringing persistent chat client back
    
    * Bring back code interpreter resource logic
    
    * Add file search samples and proposal for new OpenAIAssistantChatClient and AgentPersistantChatCLient
    
    * Update dotnet/samples/GettingStarted/External/MEAI.Abstractions/NewHostedFileSearchTool.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update dotnet/samples/GettingStarted/Steps/Step04_ChatClientAgent_UsingFileSearchTools.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update dotnet/samples/GettingStarted/External/Azure.AI.Agents.Persistent/NewPersistentAgentsChatClient.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update MEAI abstractions to reflect latest discussions, updated underlying chatclients
    
    * Remove unneeded comments
    
    * Address PR feedback
    
    * Address PR feedback
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • .Net: Bump Azure.AI.Agents.Persistent and 6 others (#243)
    * Bump Azure.AI.Agents.Persistent and 6 others
    
    Bumps Azure.AI.Agents.Persistent from 1.1.0-beta.4 to 1.1.0
    Bumps Microsoft.Agents.CopilotStudio.Client from 1.1.125-beta to 1.1.151
    Bumps Roslynator.Analyzers from 4.12.10 to 4.14.0
    Bumps Roslynator.CodeAnalysis.Analyzers from 4.12.4 to 4.14.0
    Bumps Roslynator.Formatting.Analyzers from 4.12.11 to 4.14.0
    Bumps xunit from 2.9.2 to 2.9.3
    Bumps xunit.runner.visualstudio from 3.0.2 to 3.1.3
    
    ---
    updated-dependencies:
    - dependency-name: Azure.AI.Agents.Persistent
      dependency-version: 1.1.0
      dependency-type: direct:production
      update-type: version-update:semver-patch
    - dependency-name: Microsoft.Agents.CopilotStudio.Client
      dependency-version: 1.1.151
      dependency-type: direct:production
      update-type: version-update:semver-patch
    - dependency-name: Roslynator.Analyzers
      dependency-version: 4.14.0
      dependency-type: direct:production
      update-type: version-update:semver-minor
    - dependency-name: Roslynator.CodeAnalysis.Analyzers
      dependency-version: 4.14.0
      dependency-type: direct:production
      update-type: version-update:semver-minor
    - dependency-name: Roslynator.Formatting.Analyzers
      dependency-version: 4.14.0
      dependency-type: direct:production
      update-type: version-update:semver-minor
    - dependency-name: xunit
      dependency-version: 2.9.3
      dependency-type: direct:production
      update-type: version-update:semver-patch
    - dependency-name: xunit.runner.visualstudio
      dependency-version: 3.1.3
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    
    * Missing extra bump
    
    ---------
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com>
  • Clean up handoff orchestration creation (#235)
    - Remove Dictionary-derived types
    - Add an optional name to orchestrations
    - Make Handoffs based purely on AIAgent instances rather than separately provided names
  • .Net: Add missing providers to tool samples (#211)
    * Add missing providers to tool samples
    
    * Add Options ctor and simplify samples a bit
    
    * Remove basic
  • Clean up usage of JsonSerializerContext (#229)
    * Clean up usage of JsonSerializerContext
    
    * review feedback
  • Initial draft of actor runtime abstractions (#197)
    * Initial draft of actor runtime abstractions
  • Add an AgentRunResponse ctor accepting a ChatResponse (#204)
    * Add an AgentRunResponse ctor accepting a ChatResponse
    
    * Update dotnet/src/Microsoft.Extensions.AI.Agents.Abstractions/AgentRunResponseUpdate.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • Add a minimum console demo app (#198)
    * Add a minimum console demo app
    
    * Remove hardcoded values from sample.
    
    * Make console project .net 9.0 only.
    
    * Move minimum console demo to demo folder.
    
    * Fix framework issue with demo project.
    
    * Undo unintended commit.
    
    * Address PR comments
    
    * Fix build issue.
    
    * Address PR Comments
    
    * Rename Agent to AIAgent in new console app.
  • Round 3 of cleanup (#186)
    - Enable warnings as errors
    - Make the remaining src projects NativeAOT compatible
    - Use Throw helpers
  • .Net: Add OpenTelemetry Support and Samples (#182)
    * Adding sample and implementation similar to MEAI approach
    
    * Add Telemetry UnitTests
    
    * Fix Async suffix
    
    * Add ADR with the proposal
    
    * Address merge changes
    
    * Fixing const visibility + coverage
    
    * Increase test coverage, add metrics collection code paths
    
    * Fix warnings
    
    * WIp
    
    * Convention adeherence
    
    * Add gen-ai.system logic + UT
    
    * Add convetion reference
    
    * Address PR comments
    
    * Addressing PR comments, Agent name optional
    
    * Remove constant
    
    * Update dotnet/src/Microsoft.Extensions.AI.Agents/ChatCompletion/ChatClientAgent.cs
    
    Co-authored-by: westey <164392973+westey-m@users.noreply.github.com>
    
    * GetLoggingName
    
    ---------
    
    Co-authored-by: westey <164392973+westey-m@users.noreply.github.com>
  • Add extension methods to get an AF agent from a Foundry Client (#191)
    * Add helpers to go from foundry client to agent more easily.
    
    * Fix xml docs.
  • Add ChatClientAgent constructor overload (#188)
    * Add ChatClientAgent constructor overload
    
    * Add unit tests for new constructor
    
    * Up code coverage with extra tests
    
    * Address PR comments.
    
    * Address PR comment
    
    * Add additional test to increase code coverage.
  • Basic agent invocation sample (#175)
    * Basic agent invocation sample
    
    * Simplify sample further.
    
    * Add additional comment.
    
    * Address code review comments.
    
    * Suppress CA2000 and remove using from most basic sample, since the IChatClient instances involved do not do any disposal.
  • Allow InProcessRuntime subscriptions to be processed concurrently (#179)
    * Allow InProcessRuntime subscriptions to be processed concurrently
    
    * Fix tests
  • Fix handoff function names (#178)
    * Fix handoff function names
    
    Handoffs are including the agent name in the function name. But the agent name can include characters that are invalid for a function name, which results in errors. Replace them.
    
    * Update dotnet/src/Microsoft.Agents.Orchestration/Handoff/HandoffActor.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@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.
  • .Net: Introduce Dependency Injection Samples (#165)
    * DI WIP
    
    * Update dependency injection examples and Agent Creation update
    
    * Rollback override for GettingStarted as Azure.AI.OpenAI package currentl does not support OpenAI 2.2.0 GA version
    
    * Dropping ct
    
    * Update dotnet/samples/GettingStarted/AgentSample.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • 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>
  • Add PoC CopilotStudio agent (#84)
    * Add project and skeleton files.
    
    * Add CopilotStudioAgent implementation
    
    * Add CopilotStudio integration tests
    
    * Fix typos and PR feedback.
    
    * Fix .net framework build errors.
    
    * Address PR comments
    
    * Remove temp test.
    
    * Add rawresponse for streaming updates and more comments.
    
    * Add TODO to review streaming updates
    
    * Address PR comments and fix some issues with streaming messages.
    
    * Map additional properties to agent reponses
    
    * Update CopilotStudio integration tests to match new approach.
    
    * Update copilot studio namespaces/project names to match new naming
    
    * Add todo's for AIContent types.
    
    * Remove files from PR.
    
    * Fix up sln file.
    
    * Update .gitignore.
    
    * Remove duplicate package version items.
  • .Net: Update Code Interpreter Sample as a Step. (#148)
    * Updating code interpreter samples
    
    * Small adjustments to ensure it works as expected
    
    * Update dotnet/samples/GettingStarted/Steps/Step03_ChatClientAgent_UsingCodeInterpreterTools.cs
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Address xmldoc
    
    * Addressing PR coment, external implementaions + ChatClients update, removing RawRepresentationFactory requirement
    
    * Address warnings
    
    * Update Fix warnings
    
    * Proposed changes for the OpenAIAssistantChatClient
    
    * Address PR comments
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: Mark Wallace <127216156+markwallace-microsoft@users.noreply.github.com>