Commit Graph

2 Commits

  • .NET: Remove required token params from HarnessAgent, make compaction opt-in (#6409)
    * Move token params from HarnessAgent constructor to options
    
    Remove the required maxContextWindowTokens and maxOutputTokens
    constructor parameters from HarnessAgent and AsHarnessAgent, replacing
    them with optional MaxContextWindowTokens and MaxOutputTokens properties
    on HarnessAgentOptions.
    
    When both values are provided, compaction is enabled as before (in-loop
    CompactionProvider and chat reducer on the default InMemoryChatHistory
    Provider). When either is null, compaction is disabled entirely, making
    it opt-in.
    
    New constructor: HarnessAgent(IChatClient, HarnessAgentOptions?,
    ILoggerFactory?, IServiceProvider?)
    
    Closes #6333
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Improving comments.
    
    * feat: Add custom CompactionStrategy and DisableCompaction to HarnessAgentOptions
    
    Allow users to provide their own CompactionStrategy via options, with
    a clear priority system:
    1. DisableCompaction=true: no compaction regardless of other settings
    2. Custom CompactionStrategy provided: use it (token params ignored)
    3. Both MaxContextWindowTokens and MaxOutputTokens set: default strategy
    4. Otherwise: no compaction
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * fix: Address PR review comments on compaction opt-in
    
    - Update chatClient param XML doc to reflect compaction is opt-in
    - Strengthen compaction tests to assert ChatReducer is null/not-null
      rather than just asserting construction succeeds
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
  • .NET: Harness code act skill sample (#5930)
    * Add sample that shows code execution and skills together
    
    * Use nuget for python module path
    
    * Update readme.
    
    * Fix formatting.
    
    * Reduce flashing in rendering.
    
    * Improve screen clearing for Powershell
    
    * Add a couple of small UX fixes