Skip to content

Clarify sample maturity tiers and add durable-state reference samples#641

Draft
andrewmatkin wants to merge 34 commits into
microsoft:mainfrom
andrewmatkin:sample-taxonomy-strategy
Draft

Clarify sample maturity tiers and add durable-state reference samples#641
andrewmatkin wants to merge 34 commits into
microsoft:mainfrom
andrewmatkin:sample-taxonomy-strategy

Conversation

@andrewmatkin

Copy link
Copy Markdown

Summary

  • Adds sample maturity-tier guidance and a reusable README template so quickstarts, scenario starters, and production references are clearly distinguished.
  • Adds Azure Blob Storage persistent-state starter samples for .NET, Node.js, and Python.
  • Adds a .NET Tier 3 production-reference support triage sample with managed identity, Key Vault, Blob Storage, health checks, telemetry, Bicep infrastructure, tests, deployment guidance, and runbook.

Closes #640

Validation

  • dotnet build samples\dotnet\persistent-state\PersistentState.csproj
  • dotnet build samples\dotnet\production-reference\ProductionReference.csproj
  • dotnet test samples\dotnet\production-reference\tests\ProductionReference.Tests.csproj
  • [x]
    pm run --prefix samples\nodejs\persistent-state build
  • Python compile check for samples\python\persistent-state\src
  • [x]
    pm run lint -- --quiet
  • [x]
    pm run validate-plugin
  • �z bicep build --file samples\dotnet\production-reference\infra\main.bicep
  • Markdown link/fence validation

andrewmatkin and others added 30 commits June 5, 2026 10:27
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- New Tier 2 sample: samples/dotnet/persistent-state
- PersistentState.csproj references Microsoft.Agents.Storage.Blobs 1.5.*
- Program.cs reads AZURE_BLOB_STORAGE_CONNECTION_STRING (fail-fast) and
  AZURE_BLOB_STORAGE_CONTAINER_NAME (default: agents-persistent-state),
  registers BlobsStorage as IStorage singleton
- MyAgent.cs uses turnState.Conversation.GetValue/SetValue to maintain a
  per-conversation message counter across restarts
- AspNetExtensions.cs, appsettings.json, launchSettings.json copied from
  QuickStart to preserve local auth and launch behavior
- README follows SAMPLE_README_TEMPLATE.md; covers local connection string
  setup, Azurite emulation, container naming rules, verify steps, and
  managed identity / workload identity as the cloud deployment path
- Project added to samples/dotnet/Samples.sln

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- nodejs/persistent-state: fix broken Next starter link from
  ../multiagent/README.md to ../multi-turn-prompt/README.md
- python/persistent-state: fix broken Next starter link from
  ../multi-turn-prompt/README.md (path does not exist) to
  ../semantic-kernel-multiturn/README.md
- nodejs/README.md: move Persistent State row before Copilot SDK

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ests

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
andrewmatkin and others added 4 commits June 26, 2026 14:09
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
# Conflicts:
#	samples/dotnet/README.md
#	samples/dotnet/Samples.sln
#	samples/nodejs/README.md
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@andrewmatkin

Copy link
Copy Markdown
Author

@andrewmatkin please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.

@microsoft-github-policy-service agree [company="{your company}"]

Options:

  • (default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.
@microsoft-github-policy-service agree
  • (when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.
@microsoft-github-policy-service agree company="Microsoft"

Contributor License Agreement

@microsoft-github-policy-service agree company="Microsoft"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

From Fork Samples Changes to Samples

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Clarify sample maturity tiers and add durable-state reference samples

1 participant