add apim private byo#1
Closed
Vijendra123 wants to merge 295 commits into
Closed
Conversation
Vijendra123
commented
Aug 21, 2025
|
|
||
|
|
||
| [](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) | ||
| [](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) |
* 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
updating project root filepaths
rename root prefix
update generated samples path
update scripts dir with root dir prefix
…e for generated samples and configurations
* 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
Vijendra123
force-pushed
the
main
branch
2 times, most recently
from
November 20, 2025 07:23
4560866 to
56bf507
Compare
Vijendra123
force-pushed
the
main
branch
3 times, most recently
from
December 8, 2025 13:17
85df1d5 to
b118184
Compare
* add curl validation to pipeline * add curl sample for testing * reenable run validate steps * rename curl default
…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
…t CompiledStateGraph.tools (microsoft-foundry#619)
…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>
…t-foundry#671) Co-authored-by: Jian Miao <jianm@microsoft.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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.