Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Jan 22, 2026

GitHub Copilot SDK AIAgent Implementation

All Changes Complete

  • Fixed event handling: Added AgentResponseUpdate yields for SessionIdleEvent and SessionErrorEvent
  • Removed explicit subscription.Dispose() (handled by using statement)
  • Removed AutoStart from README example (defaults to true)
  • Moved name/description defaults to primary constructor (applies to all construction paths)
  • Made Name and Description properties non-nullable (always have defaults)
  • Enhanced UsageContent with complete usage details:
    • InputTokenCount from InputTokens
    • OutputTokenCount from OutputTokens
    • CachedInputTokenCount from CacheReadTokens
    • AdditionalCounts for CacheWriteTokens, Cost, Duration
  • All 11 tests passing across net8.0, net9.0, net10.0
  • All builds successful

Implementation Complete

All PR feedback addressed. Event handling complete, usage tracking comprehensive, defaults properly applied.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

@stephentoub
Copy link
Member

@westey-m I was talking with @SteveSanderson earlier today about doing exactly this. :)

Copilot AI and others added 3 commits January 22, 2026 21:10
Co-authored-by: westey-m <164392973+westey-m@users.noreply.github.com>
Co-authored-by: westey-m <164392973+westey-m@users.noreply.github.com>
Co-authored-by: westey-m <164392973+westey-m@users.noreply.github.com>
Copilot AI changed the title [WIP] Add AIAgent implementation for Github Copilot SDK .NET: Add AIAgent implementation for GitHub Copilot SDK Jan 22, 2026
Copilot AI requested a review from westey-m January 22, 2026 21:23
@markwallace-microsoft markwallace-microsoft added documentation Improvements or additions to documentation .NET labels Jan 23, 2026
…tOptions ctor, streaming improvements, better sample, container warning

Co-authored-by: westey-m <164392973+westey-m@users.noreply.github.com>
Copilot AI requested a review from westey-m January 23, 2026 09:42
Co-authored-by: westey-m <164392973+westey-m@users.noreply.github.com>
@dmytrostruk dmytrostruk added this pull request to the merge queue Jan 27, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Jan 27, 2026
@dmytrostruk dmytrostruk enabled auto-merge January 27, 2026 18:20
@dmytrostruk dmytrostruk added this pull request to the merge queue Jan 27, 2026
github-merge-queue bot pushed a commit that referenced this pull request Jan 27, 2026
* Initial plan

* Add GitHub Copilot SDK AIAgent implementation with tests

Co-authored-by: westey-m <164392973+westey-m@users.noreply.github.com>

* Add projects to solution and fix sample imports

Co-authored-by: westey-m <164392973+westey-m@users.noreply.github.com>

* Improve pragma comment clarity in GithubCopilotAgentThread

Co-authored-by: westey-m <164392973+westey-m@users.noreply.github.com>

* Address PR feedback: internal constructor/setter, remove CopilotClientOptions ctor, streaming improvements, better sample, container warning

Co-authored-by: westey-m <164392973+westey-m@users.noreply.github.com>

* Add ownsClient parameter to allow caller control over client disposal

Co-authored-by: westey-m <164392973+westey-m@users.noreply.github.com>

* Fix unit tests by removing await using to avoid StreamJsonRpc disposal issues

Co-authored-by: westey-m <164392973+westey-m@users.noreply.github.com>

* Fix file encoding: add UTF-8 BOM to Program.cs

Co-authored-by: westey-m <164392973+westey-m@users.noreply.github.com>

* Fix dotnet-format errors: UTF-8 BOM, remove unused logger, add this qualifier, remove unnecessary usings

Co-authored-by: westey-m <164392973+westey-m@users.noreply.github.com>

* Fix test file encoding and remove redundant cast

Co-authored-by: westey-m <164392973+westey-m@users.noreply.github.com>

* Add AsAIAgent extension methods for CopilotClient with tests

Co-authored-by: westey-m <164392973+westey-m@users.noreply.github.com>

* Remove IL suppressions, use TryComplete for channel writer, remove TCS from streaming

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>

* Keep session alive across calls, add tools overload, add tests

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>

* Revert session persistence changes - sessions dispose after each call

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>

* Add CreatedAt property mapping using DateTimeOffset.UtcNow

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>

* Add DataContent handling via temp files and attachments

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>

* Fix formatting: remove extra indentation, simplify Path references, remove unused using

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>

* Refactor: extract helper methods to reduce duplication in DataContent handling

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>

* Updated sample and session config mapping

* Added instructions parameter

* Updated README

* Address PR feedback: reorder params, optimize dictionary, update prefix, remove InternalsVisibleTo, update sample prompts, add defaults

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>

* Remove StreamJsonRpc reference from sample project

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>

* Fix parameter ordering: tools now after description, rename to s_mediaTypeExtensions, simplify extension logic, update prompts, fix test expectations

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>

* Fix streaming prompt: change Python to C# for Fibonacci example

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>

* Handle all SDK events, add UsageContent support, fix model name, remove AutoStart, add using for Channels

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>

* Resolved build errors

* Addressed comments

* Small fix

* Addressed comment

* Small fix

* Addressed comments

* Added integration tests

* Small update

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: westey-m <164392973+westey-m@users.noreply.github.com>
Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Jan 27, 2026
@dmytrostruk dmytrostruk added this pull request to the merge queue Jan 27, 2026
Merged via the queue into main with commit e82d9f5 Jan 27, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation .NET

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants