Skip to content

add apim private byo#1

Closed
Vijendra123 wants to merge 295 commits into
vtomar/mainfrom
main
Closed

add apim private byo#1
Vijendra123 wants to merge 295 commits into
vtomar/mainfrom
main

Conversation

@Vijendra123

Copy link
Copy Markdown
Owner

No description provided.



[![Deploy To Azure](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/1-CONTRIBUTION-GUIDE/images/deploytoazure.svg?sanitize=true)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fazure-ai-foundry%2Ffoundry-samples%2Frefs%2Fheads%2Fmain%2Fsamples%2Fmicrosoft%2Finfrastructure-setup%2F15-private-network-standard-agent-setup%2Fazuredeploy.json)
[![Deploy To Azure](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/1-CONTRIBUTION-GUIDE/images/deploytoazure.svg?sanitize=true)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FVijendra123%2Ffoundry-samples%2Frefs%2Fheads%2Fmain%2Fsamples%2Fmicrosoft%2Finfrastructure-setup%2F15-private-network-standard-agent-setup%2Fazuredeploy.json)

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will revert

brandom-msft and others added 7 commits October 2, 2025 16:26
* Update output path and placeholders in test data

* add exclusions to gitignore

* move completions templates into subfolder

* update parameter names in C# completion templates

* add c# chat responses template w keyAuth

* Add support for token credentials and extra parameters in C# response templates

* Add C# response templates with keyAuth and entra authentication options

* pull in Go changes from main

* Update OpenAI Go SDK dependency to version v2

* Update SDK and add scenario tags in YAML config for agents

* Refactor tags in agent samples config

* remove duplicate tag entry

* missed one

* Add Python sample template and YAML configuration for OpenAI responses

* Add response templates for Python and update sample output formatting

* [WIP] responses templates other langs

* Add Java response templates for OpenAI integration

* Add container environment variables for Maven configuration

* Update Go templates to use OpenAI Go SDK v3

* Add JavaScript response templates

* Remove unused import of 'fmt' from Go response template

* Refactor output paths in foundry-samples.yaml for response templates

---------

Co-authored-by: Siddhant Sonkar <siddhant.sonkar@gmail.com>
* adding placeholder sample for cURL

* Update placeholders in foundry-samples.yaml

---------

Co-authored-by: Siddhant Sonkar <siddhant.sonkar@gmail.com>
…y#75)

Added a sample configuration for a Workflow Agent placeholder Python sample.
…crosoft-foundry#77)

* [WIP] add test sample directory for validation runs

* Refactor service validation execution to check for 'test' directory presence

* Update deployment name variable and enable environment variable usage in service tests

* Enhance error message for missing 'test' directory in service validation

* Add endpointSuffix parameter to OpenAI configuration and update sample template

* temp debug output

* Fix endpointSuffix formatting in OpenAI configuration

* Update deployment name variable in OpenAI configuration

* Fix exit status in service validation when 'test' directory is missing

* [chore] cleanup python template

* Add optional endpointSuffix parameter to templates for Azure OpenAI

* Add test variant config entries to foundry-samples.yaml for service tests (microsoft-foundry#79)

* Initial plan

* Add test variants to foundry-samples.yaml config entries

Co-authored-by: brandom-msft <42854725+brandom-msft@users.noreply.github.com>

* Add test variants for chat-responses entra entries

Co-authored-by: brandom-msft <42854725+brandom-msft@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: brandom-msft <42854725+brandom-msft@users.noreply.github.com>

* Fix placeholder section in foundry-samples.yaml for clarity

* Add capability field to service workflow configuration in foundry-samples.yaml

* Add optional endpointSuffix parameter to templates for Azure OpenAI

* Update output paths in foundry-samples.yaml to reflect auth naming conventions

* Add endpointSuffix parameter to image generation templates for Azure OpenAI

* formatting cleanup

* try

* Add service principal ID and tenant ID to Python validation job

* Persist ID token to secure temp file for Azure Identity SDK in pipeline

* Refactor Azure pipeline to streamline credential handling

* Update image templates to use image model

* Refactor image generation template to improve deployment name handling and update file writing method

* add model-specific image configs

* exclude endpoint suffix from non-tests

* adapt command pipeline to conditional statement to avoid collision with top-level set -e

* remove unneeded default images sample

* [debug] script failure in pipeline

* revert debug statements in validation script

* refactor validation sequence to account for pipeline-ready samples

* get one Go sample working in pipeline

* fix one javascript template for service runs

* remove unnecessary set -e and clean up script formatting

* fix go Image templates

* fix JS templates for service runs

* enhance sample configurations and validation script with new parameters

* fix indentation

* hopefully fixing stupid Go version that magically broke?

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
* split pipeline to stages

* update download job

* update job condition

* update variable mapping

* update other mappings

* add java exec step
brandom-msft and others added 13 commits October 22, 2025 10:21
updating project root filepaths
update generated samples path
update scripts dir with root dir prefix
* move files

* update pathing

* rename samples/

* add ci configs

* fix pathing

* add default config, add stage conditions

* changing variables for testing

* revert
* move files

* update pathing

* rename samples/

* add ci configs

* fix pathing

* add default config, add stage conditions

* changing variables for testing

* revert

* add github publish step

* update generated-samples dir handling

* move devcontainer

* add default-samples generation config

* validation bug fixes

* run validation from root

* update path

* add readme

* update triggers

* update var declaration

* update conditional

* update default configs

* change condition

* add publish workflow

* add param option

* dummy trigger for testing

* fix command

* fix trigger

* re-add dummy trigger

* re-fix trigger

* add checkout step

* update perms

* change trigger to manual only

* add dynamic versioning

* comments
* add curl validation to pipeline

* add curl sample for testing

* reenable run validate steps

* rename curl default
huimiu and others added 28 commits June 23, 2026 07:26
…azd recommendations (microsoft-foundry#585)

* docs(hosted-agents): collapse Foundry Toolkit section and neutralize azd recs

Minimal README updates across the python and csharp hosted-agents samples: collapse the 'Using the Foundry Toolkit VS Code Extension' section into a <details> block, drop azd 'Recommended'/'recommended' qualifiers, and rename 'Without azd' to 'Manual setup' (with anchor fixes). H1 headers, descriptions, and other section content are left unchanged.

* docs(hosted-agents): revert Python overview README
…esponses) (microsoft-foundry#570)

* samples(python/hosted-agents): add Foundry IQ knowledge base agent (Responses)

Add an Agent Framework hosted-agent sample that answers questions from a
Foundry IQ knowledge base (Azure AI Search agentic retrieval), reached
through a Foundry Toolbox using the agent's managed identity (Agentic
Identity) for keyless Entra ID auth.

- provision_kb.py: creates the search index, knowledge source, and knowledge
  base (answer synthesis via a keyless Azure OpenAI model) and prints the KB
  MCP endpoint.
- main.py: FoundryChatClient + MCPStreamableHTTPTool over the toolbox; injects
  a fresh bearer token and the Toolboxes=V1Preview feature header.
- agent.manifest.yaml: RemoteTool connection (AgenticIdentity) + toolbox
  exposing the knowledge_base_retrieve MCP tool.
- README with azd and VS Code (Foundry Toolkit) quick starts and RBAC table.

Validated end-to-end on a Foundry project: deploy -> grant Search Index Data
Reader -> grounded, cited answers from the knowledge base.

* samples(python/foundry-iq): use TOOLBOX_ENDPOINT env var instead of TOOLBOX_NAME

Align with the sibling 04-foundry-toolbox sample: the agent reads the full
toolbox MCP endpoint from TOOLBOX_ENDPOINT, falling back to building it from
FOUNDRY_PROJECT_ENDPOINT + TOOLBOX_NAME. Update main.py, agent.manifest.yaml,
agent.yaml, .env.example, and the README accordingly.

* samples(python/foundry-iq): create connection + toolbox via azd ai CLI

Match the sibling 04-foundry-toolbox pattern instead of declaring the
connection/toolbox as manifest resources (the manifest's AgenticIdentity
connection block hits the azd Bicep authType mapping). The manifest now only
declares the model resource; a new toolbox.yaml defines the KB MCP tool, and
the README walks through 'azd ai connection create' + 'azd ai toolbox create'.

* samples(python/foundry-iq): drop dead TOOLBOX_NAME fallback

TOOLBOX_ENDPOINT is now the single source for the toolbox MCP endpoint; the
sample never sets TOOLBOX_NAME, and the old URL-deriving fallback produced the
version number as the tool name for versioned endpoints. Require TOOLBOX_ENDPOINT
and use a stable 'knowledge_base' tool name.

* samples(python/foundry-iq): one-command provisioning via azd postprovision hook

Add hooks/postprovision.{sh,ps1} that run provision_kb.py, create the
knowledge-base-mcp connection and knowledge-base toolbox, and set
TOOLBOX_ENDPOINT, so a single azd provision does all the manual steps.
provision_kb.py now stores the KB MCP endpoint as KB_MCP_ENDPOINT in the azd
env (best-effort). README documents wiring the hook into azure.yaml, with the
manual flow kept as a fallback.

* samples(python/foundry-iq): add server_url to toolbox MCP tool

The MCP tool needs server_url pointing at the knowledge base's MCP endpoint
alongside project_connection_id (which supplies Agentic Identity auth), matching
the connection+server_url pattern used by the other toolbox samples. toolbox.yaml
uses a \ placeholder that the postprovision hook substitutes
before azd ai toolbox create.

* Fix Foundry IQ KB postprovision hooks: idempotent, self-locating, .yaml temp file

* Exclude foundry-iq-knowledge-base from cloud e2e (requires external provisioning)

The sample's postprovision hook provisions an Azure AI Search KB and creates the knowledge-base toolbox/TOOLBOX_ENDPOINT. The generic Cloud E2E harness never runs the hook, leaving TOOLBOX_ENDPOINT empty so main.py raises ValueError on startup and every invoke returns HTTP 500. Add .ci-skip per the documented requires-external-credentials opt-out.

* Rename foundry-iq sample to 17-foundry-iq-toolbox so cloud e2e injects a real toolbox endpoint

The Cloud E2E harness only injects a pre-provisioned TOOLBOX_ENDPOINT (from TOOLBOX_ENDPOINT_NCUS) into samples it classifies as toolbox samples, which it detects by the substring 'toolbox' in the path. The previous name left TOOLBOX_ENDPOINT empty so main.py raised ValueError and every invoke returned HTTP 500. Renaming to include 'toolbox' opts the sample into the toolbox-endpoint matrix expansion (same path as the passing 04-foundry-toolbox sibling); drop the .ci-skip and fix the README init path.

* Update README azd init path to 17-foundry-iq-toolbox

The rename commit moved README.md but a failed multi-pathspec git add dropped the in-file path edit, so line 66 still referenced the old 17-foundry-iq-knowledge-base directory. Point it at 17-foundry-iq-toolbox.

* Fall back to FOUNDRY_PROJECT_ENDPOINT/TOOLBOX_NAME when TOOLBOX_ENDPOINT is unset

* Use narrow agent-framework-foundry subpackages; keep strict TOOLBOX_ENDPOINT (e2e provides it)

* Cloud E2E: pin 17-foundry-iq-toolbox to the foundry-iq-kb knowledge toolbox

* ci(hosted-agents): scope foundry-iq-kb toolbox to sample 17 only
…ostprovision hook (microsoft-foundry#576)

Add a postprovision hook (.ps1/.sh) that creates the Foundry Memory Store and wires MEMORY_STORE_NAME so a single 'azd provision' is enough. The hook also patches the init'd agent.yaml so the resolved store name reaches the deployed container (azd ai agent init resolves \ to empty at init time). Pin mcp<2 (agent-framework-foundry-hosting imports McpError, renamed in mcp 2.x). Document the project-scope Cognitive Services OpenAI User role needed for the embedding call. Exclude hooks/ from container/azd packaging.
* Adding BYO agent.

* Prompt updates.

* remove.

* Some changes.

* Fixing form filler prompt to base prompt.

* PR coomments and a bug fix.
…icrosoft-foundry#595)

The sample used AIProjectClient.GetToolboxToolsAsync, an extension that was
removed from Microsoft.Agents.AI.Foundry.Hosting. Switch to the supported
eager path: register the toolbox with builder.Services.AddFoundryToolboxes,
so the hosting layer connects to the toolbox managed MCP proxy at startup and
injects its tools into every request.

Also bump the Agent Framework dependency to the latest preview and align the
Azure SDK it depends on:
  Microsoft.Agents.AI.Foundry.Hosting 1.3.0-preview.260423.1 -> 1.11.0-preview.260623.1
  Azure.AI.Projects 2.1.0-beta.1 -> 2.1.0-beta.3

README and agent.manifest.yaml wording updated to describe the new flow.
Verified live on a Foundry hosted agent against a Tao toolbox.
…r file migration (microsoft-foundry#590)

* initial commit

* improve error messaging output, better retry behavior based on error code, include output json status of the migration, improve token usage correctness, fix dedupe issue
Replace gpt-4.1-mini with gpt-5.4-mini across the python and csharp hosted-agents samples, and bump the langgraph-chat azure.yaml model version to 2026-03-17 (SKU remains GlobalStandard).
Tree-replacement commit: public main content reset to match private.
This is the force_full recovery path — the sync branch had no mergeable
common ancestor with public main (orphan history from full re-export).

Synced commits: 212
Authors: Aaron Hill,Adi Yadav AhmadAbdullah91,Alvin Ashcraft Amanda Foster,Amit Bhave Ankit Singhal,Ankit Sinha Antriksh Jain,Ben Ben Thomas,Billy Hu Brandon Miller,Copilot Dchillakuru,Declan Dennis Eikelenboom,Dooriya Li Eamon O'Reilly,Eduard van Valkenburg Evan Mattson,Glenn Harper Haflidi Fridthjofsson,Hameed Kunkanoor Harsheet Shah,Hui Miao Jian Miao,Johan Stenberg John Miller,Jon Burchel Karthik Saligrama,Kaylie Kishore B R,Kuojian Lu Lakshmi Naarayanan Ramakrishnan,Linda Li Luis Quintanilla,Mahya Gheini Maria N,Meera Kurup Mitesh Shah,Mohit Pavan Kumar Gadamsetty Nagendra Posani,Ning Tang Rayan Khoury,Roger Barreto Samuel Kemp,Sanjeev Jagtap Santhosh Kumar Gunasekaran,SergeyMenshykh Sheri Gilley,Shruti Iyer Tao Chen,Vedanivas Yimin-Jin,Yulin Li djetchev,geabdluca kdestin,lusu-msft melionel,nikhowlettMicrosoft pelong97,qinezh retry-recv,saanikaguptamicrosoft sarajag,vtrika zyying
Rollback point: 082b552
Run: https://github.com/microsoft-foundry/foundry-samples-pr/actions/runs/28408011280
…foundry#611)

* Add NSG with AzureFrontDoor.Frontend outbound rule to template 18 VNet

- Add network security group to the new-VNet path (modules-network-secured/vnet.bicep)
  with an outbound Allow rule to AzureFrontDoor.Frontend, associated to pe-subnet.
- Add privatelink.azurecr.io to existingDnsZones and dnsZoneNames in main.bicepparam
  so the ACR private DNS zone is validated/created during deployment.

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

* Move AzureFrontDoor.Frontend rule to managed-network outbound rules

The agent runs in the Microsoft-managed network, so the customer VNet NSG
does not govern its egress. Remove the NSG/rule from vnet.bicep and instead
add an AzureFrontDoor.Frontend service-tag outbound rule to the account's
managed network, which is what actually governs hosted-agent egress to the
Agent365 (A365) tracing endpoint.

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

* Add A365 Front Door managed-network outbound rule to template 18 Terraform

Mirror the Bicep change in the Terraform variant of template 18: add a
ServiceTag managed-network outbound rule (AzureFrontDoor.Frontend, TCP 443)
so the hosted agent can reach the Agent365 tracing endpoint. Chained after
ampls_outbound_rule and included in the outbound-rule provisioning wait.

Note: this template uses isolationMode AllowInternetOutbound, so the rule is
redundant for connectivity today; it is added for parity with the Bicep
template and for correctness if the mode is changed to AllowOnlyApprovedOutbound.

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

* Document A365 tracing service-tag outbound rule in template 18 README

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Bump bring-your-own samples to protocol 2.0.0 and SDK b8; forward call-id via SDK request context; bump C# SDK pins (model deployments kept at main)

* Simplify request-context import per review feedback

Remove the dead try/except ImportError guard around the
azure.ai.agentserver.core request-context import and the
redundant 'if get_request_context is not None' check, since
azure-ai-agentserver-core is always installed as a transitive
dependency of the pinned SDKs.

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

* Update protocol version to 2.0.0 in bring-your-own agent.manifest.yaml files

---------

Co-authored-by: Harsheet Shah <harsheetshah@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
…kage (microsoft-foundry#628)

* feat: bump langgraph sample to v2.0.0 protocol and latest hosting packages

* mail map
* Add hosted agent session multiplexing samples

Add Python and .NET Bring Your Own samples for Invocations and Responses protocol 2.0.0 that demonstrate sharing one hosted-agent session while isolating user-owned data by platform user context.

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

* Use published AgentServer core beta for Python samples

Pin Python session multiplexing samples to azure-ai-agentserver-core 2.0.0b6, which is available in CI, and keep request context resolution compatible with both SDK helper exports and direct protocol 2.0.0 platform headers.

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

* Restore intended AgentServer beta pins

Keep session multiplexing samples pinned to the AgentServer beta versions required for protocol 2.0.0 request context support. These packages are expected to be available once published; CI package resolution failures are expected until then.

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

* Add caller-side session multiplexing demos

Add invoke_shared_session.py scripts to show how customers call the deployed Agent Service endpoint with one shared session and different x-ms-user-identity values. Document delegation permission requirements and clarify that containers should rely on platform-resolved context, not caller-side headers.

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

* Update .NET session samples to latest AgentServer SDKs

Use Azure.AI.AgentServer.Responses 1.0.0-beta.6 and Azure.AI.AgentServer.Invocations 1.0.0-beta.5 for the session multiplexing .NET samples.

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

* Address session multiplexing review feedback

Remove legacy isolation-key fallbacks from .NET samples, add Python Responses platform header parity, improve caller-side delegation scripts, and document the exact UserIdentityImpersonation RBAC action and package version rationale.

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

* Fix session multiplexing delegation action name

Use the current delegateViaUserId data action name in caller scripts and README notes for x-ms-user-identity.

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

* Align session multiplexing RBAC wording with docs

Use the documented UserIdentityImpersonation data action in caller scripts and README notes for x-ms-user-identity.

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

* Clarify hosted session multiplexing isolation behavior

Fail closed in hosted mode when platform user context is absent, and clarify local fallback behavior plus Python/.NET platform-context differences in the session multiplexing READMEs.

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

* Fail closed without platform user context in .NET samples

Ensure hosted .NET session multiplexing samples do not use request-body user_id as an isolation source when running in Foundry.

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

* Apply multi-model session sample review fixes

Use strongly typed .NET PlatformContext, reject malformed/invalid C# invocation requests as bad requests, harden caller response parsing, and clarify platform context wording.

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

* Demonstrate per-conversation session multiplexing

Partition session multiplexing samples by session, platform user, and caller conversation. Expand caller scripts to validate parallel conversations in one shared session, and enhance the Python Responses sample with simple note storage plus optional toolbox list-tools integration.

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

* refactor(session-multiplexing): focus python responses sample

Keep the session multiplexing PR focused on the Python Responses sample.

Remove the earlier C# and Invocations variants from the branch and refine the caller demos into a simple previous_response_id isolation script plus a lazy sticky session-pool wrapper.

Authored-by: GitHub Copilot CLI 1.0.66-1

Model: GPT-5.5 (gpt-5.5)

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

* docs(session-multiplexing): clarify platform context usage

Clarify that platform-managed history is authorized by the Responses SDK and does not require manual header forwarding from the container.

Note that future outbound Foundry 1P calls, such as Storage or Toolbox/MCP, should forward platform_headers() so the per-request call ID is preserved.

Authored-by: GitHub Copilot CLI 1.0.66-1

Model: GPT-5.5 (gpt-5.5)

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

* refactor(session-multiplexing): simplify caller scripts

Read Foundry endpoints only from environment variables and remove the configurable session prefix options.

Default acted-for users to alice and bob so the demos can be run with fewer arguments while still allowing overrides.

Authored-by: GitHub Copilot CLI 1.0.66-1

Model: GPT-5.5 (gpt-5.5)

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

* refactor(session-multiplexing): refine caller demos

Move invocation helpers under scripts and clarify that they call the deployed hosted agent endpoint.

Keep the pool demo simple with sticky-fill and round-robin assignment strategies, and skip the same-session isolation check when assignments differ.

Authored-by: GitHub Copilot CLI 1.0.66-1

Model: GPT-5.5 (gpt-5.5)

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

* refactor(session-multiplexing): use agent sdk client

Use the agent-bound OpenAI Responses client for caller scripts and pass agent_session_id via extra_body plus x-ms-user-identity via extra_headers.

Keep the pool demo focused on sticky-fill and round-robin assignment strategies.

Authored-by: GitHub Copilot CLI 1.0.66-1

Model: GPT-5.5 (gpt-5.5)

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

---------

Co-authored-by: vedanivas <vchowdary@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ox samples (microsoft-foundry#599)

* Remove Foundry-Features: Toolboxes=V1Preview opt-in header from toolbox samples

* Keep Foundry-Features: Toolboxes=V1Preview header for agent-framework toolbox samples

The header is still required on the python agent-framework/responses toolbox path. Removing it makes 04-foundry-toolbox, 06-files, 07-teams-activity, and 17-foundry-iq-toolbox return HTTP 500 server_error on the live toolbox invoke (proven by main-vs-PR A/B: these pass on main with the header and fail on this branch without it). Restore the header only on these samples.

* Keep Foundry-Features: Toolboxes=V1Preview header for bring-your-own-toolbox sample

Removing the header (and the call_id platform-header forwarding) makes the live toolbox invoke E2E fail with "Agent returned an error response". Proven by main-vs-PR A/B: bring-your-own-toolbox-code-interpreter-container is success on main with the header and fails on this branch without it. Restore the file to main.

* Keep Foundry-Features: Toolboxes=V1Preview header for langgraph-toolbox (bring-your-own/responses) sample

Removing the header + call_id forwarding makes the Foundry-Ext smoke invoke return 500 server_error. Same proven regression as bring-your-own-toolbox / agent-framework toolbox samples. Restore the file to main.
…2.0 support (microsoft-foundry#624)

* Bump .NET hosted-agent samples to latest MAF (1.11.1)

Aligns all 19 csharp/hosted-agents/agent-framework samples to the latest published Microsoft.Agents.AI.* line (Foundry.Hosting/Foundry 1.11.1-preview.260625.1, core/Workflows 1.11.1, Mcp 1.11.1-alpha.260625.1) and their Azure deps (Azure.AI.Projects 2.1.0-beta.3, AgentServer.Invocations 1.0.0-beta.5, Microsoft.Extensions.AI.OpenAI 10.6.0). Migrates the a2a caller off the removed AIProjectClient.GetToolboxToolsAsync extension to the server-side AddFoundryToolboxes pattern. agent-skills stays on Azure.AI.Projects 2.1.0-beta.2 pending its skills-API migration. All 19 build clean.

* Fix stale GetToolboxToolsAsync references in sample READMEs

All toolbox samples (caller, toolbox-auth-paths, foundry-toolbox-server-side) consume toolboxes server-side via AddFoundryToolboxes; the READMEs still described the removed AIProjectClient.GetToolboxToolsAsync extension and the old pass-tools-to-AsAIAgent pattern. Updates the top-level index, the a2a delegation overview + diagram, the caller README, and the toolbox-auth-paths README to match the actual code.

* Prepare .NET hosted-agent samples for Responses protocol v2.0

Bumps every responses sample's agent.yaml and agent.manifest.yaml from protocol responses 1.0.0 to 2.0.0 (invocations-echo-agent stays invocations 1.0.0), and pins the Microsoft.Agents.AI.* packages to the 1.12.0 line that carries the AgentServer 2.0 migration. The 1.12.0 packages are not published yet, so the versions are placeholders (1.12.0-preview.260701.1 / 1.12.0-alpha.260701.1, marked TO-UPDATE) and dotnet restore fails until they land. Adds a v2.0 + unreleased-package note to the .NET samples README. Use the 1.11.x line for the previous protocol v1 definition.

* Updating agent-framework package version.

* Updating more package versions.

* agent-skills: migrate to Azure.AI.Projects beta.3 and align skills download to MAF

The sample pinned Azure.AI.Projects beta.2 to keep its provisioning code compiling,
which forced a transitive downgrade below what MAF hosting requires (beta.3). Move to
beta.3 and migrate the reshaped skills API to the MAF-sponsored pattern:
GetSkillContentAsync(name, dir) download-and-unzip and CreateSkillVersionFromFilesAsync
for provisioning; drop the bespoke SafeExtractZip and the stale NU1605 suppression.
Validated live on cace (provision + download + load_skill + policy applied).

---------

Co-authored-by: alliscode <25218250+alliscode@users.noreply.github.com>
* docs: update SDK versions to latest stable releases with breaking API changes

Dependencies updated:
- Java: azure-ai-agents 1.0.0-beta.2 → 2.0.0, azure-ai-projects 1.0.0-beta.2 → 2.1.0, azure-ai-inference 1.0.0-beta.5 → 1.0.0
- Python: azure-ai-projects pinned to 2.3.0 (stable) for all quickstart and enterprise samples
- C#: Azure.AI.Projects 1.2.0-beta → 2.0.0, Azure.AI.Projects.OpenAI 1.0.0-beta → 1.0.0, Azure.Identity 1.17.1 → 1.20.0

Breaking Changes:
- Java: Replaced azure-ai-agents-persistent package with azure-ai-agents
  * Updated class imports: PersistentAgentsClient → AgentsClient
  * Updated builder pattern: PersistentAgentsClientBuilder → AgentsClientBuilder
  * Updated agent model classes and API calls
- Python: Updated OpenAI client binding to use new agent binding pattern
  * Old: openai.responses.create(..., extra_body={'agent_reference': ...})
  * New: openai = project.get_openai_client(agent_name=AGENT_NAME)
- C#: Pinned OpenAI package version to 2.2.1 (removed wildcard)

Files affected:
- /samples-classic/java/quickstart/pom.xml
- /samples-classic/java/quickstart/src/main/java/com/azure/ai/foundry/samples/*.java
- /samples/python/enterprise-agent-tutorial/requirements.txt
- /samples/python/quickstart/*/requirements.txt
- /samples/csharp/enterprise-agent-tutorial/*/csproj
- /samples/python/quickstart/chat-with-agent/quickstart-chat-with-agent.py

* docs: add comprehensive SDK update summary with breaking changes documentation

This summary document provides:
- Complete list of all dependency version changes
- Detailed breaking changes with before/after code examples
- Specific files affected by each change
- Testing recommendations for each language
- Verification checklist for reviewing changes

* remove summary md file

---------

Co-authored-by: sdgilley <3650506+sdgilley@users.noreply.github.com>
Tree-replacement commit: public main content reset to match private.
This is the force_full recovery path — the sync branch had no mergeable
common ancestor with public main (orphan history from full re-export).

Synced commits: 225
Authors: Aaron Hill,Adi Yadav AhmadAbdullah91,Alex Wang Alvin Ashcraft,Amanda Foster Amit Bhave,Ankit Singhal Ankit Sinha,Antriksh Jain Ben,Ben Thomas Billy Hu,Brandon Miller Copilot,Dchillakuru Declan,Dennis Eikelenboom Dooriya Li,Eamon O'Reilly Eduard van Valkenburg,Evan Mattson Glenn Harper,Haflidi Fridthjofsson Hameed Kunkanoor,Harsheet Shah Hui Miao,Jian Miao Johan Stenberg,John Miller Jon Burchel,Junjie Li Karthik Saligrama,Kaylie Kishore B R,Kuojian Lu Lakshmi Naarayanan Ramakrishnan,Linda Li Luis Quintanilla,Mahya Gheini Maria N,Meera Kurup Mitesh Shah,Mohit Pavan Kumar Gadamsetty Nagendra Posani,Ning Tang Rayan Khoury,Roger Barreto Samuel Kemp,Sanjeev Jagtap Santhosh Kumar Gunasekaran,SergeyMenshykh Sheri Gilley,Shruti Iyer Tao Chen,Vedanivas Yimin-Jin,Yulin Li djetchev,geabdluca kdestin,lusu-msft melionel,nikhowlettMicrosoft pelong97,qinezh retry-recv,saanikaguptamicrosoft sarajag,vtrika zhenjiao-ms,zyying
Rollback point: a1d8b8f
Run: https://github.com/microsoft-foundry/foundry-samples-pr/actions/runs/28824621186
Tree-replacement commit: public main content reset to match private.
This is the force_full recovery path — the sync branch had no mergeable
common ancestor with public main (orphan history from full re-export).

Synced commits: 225
Authors: Aaron Hill,Adi Yadav AhmadAbdullah91,Alex Wang Alvin Ashcraft,Amanda Foster Amit Bhave,Ankit Singhal Ankit Sinha,Antriksh Jain Ben,Ben Thomas Billy Hu,Brandon Miller Copilot,Dchillakuru Declan,Dennis Eikelenboom Dooriya Li,Eamon O'Reilly Eduard van Valkenburg,Evan Mattson Glenn Harper,Haflidi Fridthjofsson Hameed Kunkanoor,Harsheet Shah Hui Miao,Jian Miao Johan Stenberg,John Miller Jon Burchel,Junjie Li Karthik Saligrama,Kaylie Kishore B R,Kuojian Lu Lakshmi Naarayanan Ramakrishnan,Linda Li Luis Quintanilla,Mahya Gheini Maria N,Meera Kurup Mitesh Shah,Mohit Pavan Kumar Gadamsetty Nagendra Posani,Ning Tang Rayan Khoury,Roger Barreto Samuel Kemp,Sanjeev Jagtap Santhosh Kumar Gunasekaran,SergeyMenshykh Sheri Gilley,Shruti Iyer Tao Chen,Vedanivas Yimin-Jin,Yulin Li djetchev,geabdluca kdestin,lusu-msft melionel,nikhowlettMicrosoft pelong97,qinezh retry-recv,saanikaguptamicrosoft sarajag,vtrika zhenjiao-ms,zyying
Rollback point: 9c4e42a
Run: https://github.com/microsoft-foundry/foundry-samples-pr/actions/runs/28885420048
* ci(samples): add basic data-plane validation

Run hosted-agent diagnostics after each ephemeral Bicep deployment so the ADO validation proves deployed data-plane endpoints are reachable from a hosted agent runtime.

The diagnostic step discovers Foundry project endpoints, deploys the checked-in diagnostic agent into the ephemeral resource group, invokes DNS/TCP/TLS/HTTP probes, and fails the job on probe failures.

Authored-by: GitHub Copilot CLI v1.0.65

Model: GPT-5.5 (gpt-5.5)

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

* fix(samples): initialize diagnostic azd environment

Create the azd environment explicitly before setting diagnostic deployment values so CI does not block during hosted-agent diagnostics setup.

Authored-by: GitHub Copilot CLI v1.0.65

Model: GPT-5.5 (gpt-5.5)

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

* fix(samples): install diagnostic azd project extension

Install the azure.ai.projects azd extension before deploying the diagnostic hosted-agent project so azd can resolve the azure.ai.project service host in the checked-in sample.

Authored-by: GitHub Copilot CLI v1.0.65

Model: GPT-5.5 (gpt-5.5)

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

* test(samples): trigger private data-plane validation

Add a harmless marker under the private-network standard agent sample so the ADO PR validation deploys that private sample and runs the new data-plane diagnostics against it.

Authored-by: GitHub Copilot CLI v1.0.65

Model: GPT-5.5 (gpt-5.5)

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

* fix(samples): prefer main bicep params in PR validation

Deploy main.bicepparam for targeted or changed sample validation when present so CI validates the primary sample path instead of auxiliary add-existing-project parameter files that require external resources.

Authored-by: GitHub Copilot CLI v1.0.65

Model: GPT-5.5 (gpt-5.5)

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

* fix(samples): surface private validation blockers

Fail deployment validation immediately when ARM deployments fail instead of continuing inside a conditional shell function. Add the missing ACR private DNS zone key for template 15 and emit an actionable diagnostic error when public access is disabled without private endpoint connectivity from the ADO runner.

Authored-by: GitHub Copilot CLI v1.0.65

Model: GPT-5.5 (gpt-5.5)

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

* ci(samples): skip private hosted diagnostics

Treat private-only Foundry samples as deploy/resource validation on Microsoft-hosted ADO agents. Hosted-agent data-plane diagnostics now skip with a warning unless private endpoint connectivity is explicitly provided, and the temporary README marker used to exercise the private sample is removed.

Authored-by: GitHub Copilot CLI v1.0.65

Model: GPT-5.5 (gpt-5.5)

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

---------

Co-authored-by: kishorebr <kishorebr@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ow (microsoft-foundry#673)

* docs: update readme for vscode instructions - python - agentframework

* docs: consolidate readme for BYO python hosted-agent samples

* docs: consolidate langgragh readme

* docs: consolidate dotnet samples

* docs: add folder-level AGENTS.md to guide AI-generated hosted-agent READMEs
…microsoft-foundry#684)

* fix: update README sample paths from samples/dotnet to samples/csharp

* add the noreply email in the sync-mailmap file

* move the noreply email in vendor section
…dry#692)

* Remove "(without Tools behind VNET)" from template 11 README title

The parenthetical was confusing/misleading to customers, implying tools
are not supported in this template, which is not the case.

* Initial plan

* Remove "(without Tools behind VNET)" from template 11 README title

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
…-foundry#681)

PR microsoft-foundry#221 in foundrysdk_specs flips the hosted-agent `invocations_ws`
WebSocket endpoint to GA, removing the `HostedAgents=V1Preview` preview
gate that callers previously sent via the `Foundry-Features` header (or
`foundry_features` query parameter).

The samples already build the GA path-based URL
(`/api/projects/{project}/agents/{agent}/endpoint/protocols/invocations_ws`
with `api-version=v1`), so the only client-facing drift was the lingering
preview header. This removes it from every WebSocket client (Python and
C#) and updates the doc mentions accordingly.

Co-authored-by: Yulin Li <yulili@microsoft.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.