[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-microsoft-microsoft-foundry":3,"mdc--o9or6x-key":43,"related-repo-microsoft-microsoft-foundry":3108,"related-org-microsoft-microsoft-foundry":3238},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":31,"repoUrl":32,"updatedAt":33,"license":34,"forks":35,"topics":36,"repo":38,"sourceUrl":41,"mdContent":42},"microsoft-foundry","deploy and manage Foundry agents","Deploy, evaluate, fine-tune, and manage Foundry agents end-to-end with azd: hosted agent scaffold\u002Frun\u002Fdeploy, prompt agent create, batch eval, continuous eval, prompt optimizer, Agent Optimizer scaffold, agent.yaml, dataset curation from traces, model fine-tuning (SFT\u002FDPO\u002FRFT). USE FOR: azd ai agent, azd provision\u002Fdeploy, deploy agent, hosted agent, create agent, add tool to agent, invoke agent, evaluate agent, continuous eval, continuous monitoring, agent CI\u002FCD, optimize prompt, improve prompt, optimize agent instructions, agent optimizer, deploy model, Foundry project, RBAC, role assignment, permissions, quota, capacity, region, troubleshoot agent, deployment failure, AI Services, create Foundry resource, provision, knowledge index, customize deployment, onboard, availability, fine-tune, SFT, DPO, RFT, training-data, grader, distillation, fine-tuned model, large file upload. DO NOT USE FOR: Azure Functions, App Service, general Azure deploy (use azure-deploy), general Azure prep (use azure-prepare).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"microsoft","Microsoft","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmicrosoft.png",[12,16,19,22,25,28],{"name":13,"slug":14,"type":15},"Azure","azure","tag",{"name":17,"slug":18,"type":15},"Evals","evals",{"name":20,"slug":21,"type":15},"Deployment","deployment",{"name":23,"slug":24,"type":15},"Agents","agents",{"name":26,"slug":27,"type":15},"Foundry","foundry",{"name":29,"slug":30,"type":15},"Docker","docker",1324,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills","2026-07-31T05:56:31.079248","MIT",220,[37],"agent-skills",{"repoUrl":32,"stars":31,"forks":35,"topics":39,"description":40},[37],"Official agent plugin providing skills and MCP server configurations for Azure scenarios.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Ftree\u002FHEAD\u002Fskills\u002Fmicrosoft-foundry","---\nname: microsoft-foundry\ndescription: \"Deploy, evaluate, fine-tune, and manage Foundry agents end-to-end with azd: hosted agent scaffold\u002Frun\u002Fdeploy, prompt agent create, batch eval, continuous eval, prompt optimizer, Agent Optimizer scaffold, agent.yaml, dataset curation from traces, model fine-tuning (SFT\u002FDPO\u002FRFT). USE FOR: azd ai agent, azd provision\u002Fdeploy, deploy agent, hosted agent, create agent, add tool to agent, invoke agent, evaluate agent, continuous eval, continuous monitoring, agent CI\u002FCD, optimize prompt, improve prompt, optimize agent instructions, agent optimizer, deploy model, Foundry project, RBAC, role assignment, permissions, quota, capacity, region, troubleshoot agent, deployment failure, AI Services, create Foundry resource, provision, knowledge index, customize deployment, onboard, availability, fine-tune, SFT, DPO, RFT, training-data, grader, distillation, fine-tuned model, large file upload. DO NOT USE FOR: Azure Functions, App Service, general Azure deploy (use azure-deploy), general Azure prep (use azure-prepare).\"\nlicense: MIT\nmetadata:\n  author: Microsoft\n  version: \"1.2.1\"\n---\n\n# Microsoft Foundry Skill\n\nThis skill helps developers work with Microsoft Foundry resources, covering model discovery and deployment, complete dev lifecycle of AI agent, evaluation workflows, and troubleshooting.\n\n## Pre-Execution Requirements\n\nBefore using Foundry MCP operations, call the Azure MCP `foundry` tool and inspect the available Foundry MCP tools and related parameters. Treat this as the discovery\u002Fhelp step for MCP-based workflows.\n\n## Sub-Skills\n\n> **MANDATORY: Before executing ANY workflow-specific steps, you MUST read the corresponding sub-skill document.** Do not call workflow-specific MCP tools for a workflow without reading its skill document. This applies even if you already know the MCP tool parameters — the skill document contains required workflow steps, pre-checks, and validation logic that must be followed. This rule applies on every new user message that triggers a different workflow, even if the skill is already loaded.\n\n> **MANDATORY: Before executing ANY azd command, you MUST read [azd-guidance](foundry-agent\u002Fazd-guidance\u002Fazd-guidance.md) and strictly follow the shared rules defined in it, especially the `AZURE_DEV_USER_AGENT` setting rules.**\n\nThis skill includes specialized sub-skills for specific workflows. **Use these instead of the main skill when they match your task:**\n\n| Sub-Skill | When to Use | Reference |\n|-----------|-------------|-----------|\n| **deploy** | Deploy hosted agents to Foundry, smoke-test a deployment, create or update prompt agents, and manage agent versions and multi-environment deploys. | [deploy](foundry-agent\u002Fdeploy\u002Fdeploy.md) |\n| **cicd** | Set up a CI\u002FCD deployment pipeline for a Foundry agent. | [cicd](foundry-agent\u002Fcicd\u002Fcicd.md) |\n| **invoke** | Send messages to an agent, single or multi-turn conversations | [invoke](foundry-agent\u002Finvoke\u002Finvoke.md) |\n| **routine** | Schedule or event-trigger Foundry agents with routines; use `azd` for CRUD, enable\u002Fdisable, manual dispatch, and viewing past runs, or define routines in `azure.yaml`. | [routine](foundry-agent\u002Froutine\u002Froutine.md) |\n| **invocations-ws** | Build, deploy, and connect to hosted agents that speak the `invocations_ws` duplex WebSocket protocol — voice agents, real-time streams, and signaling for out-of-band media transports. | [invocations-ws](foundry-agent\u002Finvocations-ws\u002Finvocations-ws.md) |\n| **observe** | Evaluate agent quality, run batch evals, analyze failures, optimize prompts, improve agent instructions, compare versions, set up CI\u002FCD monitoring, and enable continuous production evaluation | [observe](foundry-agent\u002Fobserve\u002Fobserve.md) |\n| **trace** | Query traces, analyze latency\u002Ffailures, correlate eval results to specific responses via App Insights `customEvents` | [trace](foundry-agent\u002Ftrace\u002Ftrace.md) |\n| **troubleshoot** | View hosted agent logs, query telemetry, diagnose failures | [troubleshoot](foundry-agent\u002Ftroubleshoot\u002Ftroubleshoot.md) |\n| **create (quick start)** | Create a new hosted Foundry agent from scratch end-to-end — scaffold, provision or use an existing Foundry project, deploy, and smoke-test. Do not use for any work on existing code. For anything not covered by the quickstart, use **create**. | [create\u002Fquick-start-hosted.md](foundry-agent\u002Fcreate\u002Fquick-start-hosted.md) |\n| **create** | Use when the standard end-to-end happy path doesn't fit. Create a new Foundry agent, update code of an existing agent, continue development of an existing agent, wire connections at scaffold time, use advanced setup or A2A (Agent2Agent), or recover from a failed quickstart run. | [create](foundry-agent\u002Fcreate\u002Fcreate-hosted.md) |\n| **agent-optimizer** | Make existing Python hosted-agent code optimization-ready, configure eval.yaml, run Agent Optimizer jobs, apply candidates locally, and deploy through azd after review. | [agent-optimizer](foundry-agent\u002Fagent-optimizer\u002Fagent-optimizer.md) |\n| **eval-datasets** | Harvest production traces into evaluation datasets, manage dataset versions and splits, track evaluation metrics over time, detect regressions, and maintain full lineage from trace to deployment. Use for: create dataset from traces, dataset versioning, evaluation trending, regression detection, dataset comparison, eval lineage. | [eval-datasets](foundry-agent\u002Feval-datasets\u002Feval-datasets.md) |\n| **project\u002Fcreate** | Creating a new Azure AI Foundry project for hosting agents and models. Use when onboarding to Foundry or setting up new infrastructure. | [project\u002Fcreate\u002Fcreate-foundry-project.md](project\u002Fcreate\u002Fcreate-foundry-project.md) |\n| **resource\u002Fcreate** | Creating Azure AI Services multi-service resource (Foundry resource) using Azure CLI. Use when manually provisioning AI Services resources with granular control. | [resource\u002Fcreate\u002Fcreate-foundry-resource.md](resource\u002Fcreate\u002Fcreate-foundry-resource.md) |\n| **private-network** | Answer questions about Foundry network isolation **and** deploy Foundry with VNet isolation (BYO VNet, Managed VNet, hybrid). Covers architecture concepts, template selection, deployment, and post-deployment validation. | [resource\u002Fprivate-network\u002Fprivate-network.md](resource\u002Fprivate-network\u002Fprivate-network.md) |\n| **models\u002Fdeploy-model** | Unified model deployment with intelligent routing. Handles quick preset deployments, fully customized deployments (version\u002FSKU\u002Fcapacity\u002FRAI), and capacity discovery across regions. Routes to sub-skills: `preset` (quick deploy), `customize` (full control), `capacity` (find availability). | [models\u002Fdeploy-model\u002FSKILL.md](models\u002Fdeploy-model\u002FSKILL.md) |\n| **quota** | Managing quotas and capacity for Microsoft Foundry resources. Use when checking quota usage, troubleshooting deployment failures due to insufficient quota, requesting quota increases, or planning capacity. | [quota\u002Fquota.md](quota\u002Fquota.md) |\n| **rbac** | Managing RBAC permissions, role assignments, managed identities, and service principals for Microsoft Foundry resources. Use for access control, auditing permissions, and CI\u002FCD setup. | [rbac\u002Frbac.md](rbac\u002Frbac.md) |\n| **finetuning** | Fine-tune models on Azure AI Foundry — SFT distillation, DPO preference optimization, RFT with graders and tool calling. Dataset preparation, grader calibration, training, checkpoint selection, deployment, evaluation. Use for: fine-tune, SFT, DPO, RFT, training data, grader, distillation, fine-tuned model, large file upload. | [finetuning\u002FSKILL.md](finetuning\u002FSKILL.md) |\n| **azd-guidance** | Provide shared azd knowledge and guidance for managing Foundry agents. Read this first for any workflows related to azd. | [azd-guidance](foundry-agent\u002Fazd-guidance\u002Fazd-guidance.md) |\n\n> 💡 **Tip:** For a complete onboarding flow: `project\u002Fcreate` (public) or `private-network` (VNet isolation) → `models\u002Fdeploy-model` → agent workflows (`create` → `deploy` → `invoke`).\n\n> 💡 **Fine-Tuning:** Use `finetuning` for all model customization — SFT distillation, DPO preference optimization, and RFT with graders. Includes quickstart, grader calibration, and training curve analysis.\n\n> 💡 **Model Deployment:** Use `models\u002Fdeploy-model` for all deployment scenarios — it intelligently routes between quick preset deployment, customized deployment with full control, and capacity discovery across regions.\n\n> 💡 **Prompt Optimization:** For requests like \"optimize my prompt\" or \"improve my agent instructions,\" load [observe](foundry-agent\u002Fobserve\u002Fobserve.md) and use the `prompt_optimize` MCP tool through that eval-driven workflow.\n\n## Infrastructure Lifecycle\n\nMatch user intent to the correct infrastructure workflow.\n\n| User Intent | Workflow |\n|-------------|---------|\n| \"Create Foundry\" \u002F \"Set up Foundry\" (ambiguous) | Use `AskUserQuestion`: (a) just an AI Services resource, (b) a project with public access, or (c) a project with network isolation? Route: (a) → [resource\u002Fcreate](resource\u002Fcreate\u002Fcreate-foundry-resource.md), (b) → [project\u002Fcreate](project\u002Fcreate\u002Fcreate-foundry-project.md), (c) → [private-network](resource\u002Fprivate-network\u002Fprivate-network.md) |\n| Set up Foundry with VNet isolation | [private-network](resource\u002Fprivate-network\u002Fprivate-network.md) |\n| Create a Foundry project (public) | [project\u002Fcreate](project\u002Fcreate\u002Fcreate-foundry-project.md) |\n| Create a bare Foundry resource | [resource\u002Fcreate](resource\u002Fcreate\u002Fcreate-foundry-resource.md) |\n\n## Agent Development Lifecycle\n\nMatch user intent to the correct agent workflow. Read each sub-skill in order before executing.\n\n| User Intent | Workflow (read in order) |\n|-------------|------------------------|\n| Create a new hosted agent end-to-end (scaffold + deploy + test) | [azd-guidance](foundry-agent\u002Fazd-guidance\u002Fazd-guidance.md) → [quick-start-hosted](foundry-agent\u002Fcreate\u002Fquick-start-hosted.md) (self-contained end-to-end) |\n| Anything beyond the standard quickstart (existing code, migration, re-hosting, deployment customization, scaffold-time connections, A2A (Agent2Agent), recovery) | [azd-guidance](foundry-agent\u002Fazd-guidance\u002Fazd-guidance.md) → [create](foundry-agent\u002Fcreate\u002Fcreate-hosted.md) → [deploy](foundry-agent\u002Fdeploy\u002Fdeploy.md) → [invoke](foundry-agent\u002Finvoke\u002Finvoke.md) |\n| Optimize existing Python hosted agent | [azd-guidance](foundry-agent\u002Fazd-guidance\u002Fazd-guidance.md) → [agent-optimizer](foundry-agent\u002Fagent-optimizer\u002Fagent-optimizer.md) → scaffold\u002Freview → eval.yaml → optimize → apply candidate → deploy → invoke |\n| Deploy an agent (code already exists) | [azd-guidance](foundry-agent\u002Fazd-guidance\u002Fazd-guidance.md) → deploy (includes eval-suite setup) → invoke → observe (evaluate\u002Foptimize) |\n| Update\u002Fredeploy an agent after code changes | [azd-guidance](foundry-agent\u002Fazd-guidance\u002Fazd-guidance.md) → deploy (includes eval-suite setup) → invoke → observe (evaluate\u002Foptimize) |\n| Set up a CI\u002FCD deployment pipeline for a hosted agent | [azd-guidance](foundry-agent\u002Fazd-guidance\u002Fazd-guidance.md) → cicd |\n| Invoke\u002Ftest\u002Fchat with an agent | [azd-guidance](foundry-agent\u002Fazd-guidance\u002Fazd-guidance.md) → invoke |\n| Schedule\u002Fevent-trigger an agent, or CRUD\u002Fenable\u002Fdisable\u002Fdispatch a routine | [azd-guidance](foundry-agent\u002Fazd-guidance\u002Fazd-guidance.md) → routine |\n| Optimize \u002F improve agent prompt or instructions | observe (Step 4: Optimize) |\n| Evaluate and optimize agent (full loop) | observe |\n| Enable continuous evaluation monitoring | observe (Step 6: CI\u002FCD & Monitoring) |\n| Troubleshoot an agent issue | [azd-guidance](foundry-agent\u002Fazd-guidance\u002Fazd-guidance.md) → invoke → troubleshoot |\n| Fix a broken agent (troubleshoot + redeploy) | [azd-guidance](foundry-agent\u002Fazd-guidance\u002Fazd-guidance.md) → invoke → troubleshoot → apply fixes → deploy → invoke |\n\n## Agent: .foundry Workspace Standard\n\nEvery agent source folder can keep Foundry-specific cache and overlay state under `.foundry\u002F`:\n\n```text\n\u003Cagent-root>\u002F\n  .foundry\u002F\n    agent-metadata.yaml\n    agent-metadata.prod.yaml\n    suites\u002F\n    datasets\u002F\n    evaluators\u002F\n    results\u002F\n```\n\n- In azd projects, derive deployment context (project endpoint, agent name\u002Fversion, ACR, App Insights) from `azure.yaml` plus `azd env get-values`; do not duplicate those values in metadata when azd already provides them.\n- `agent-metadata.yaml` is the preferred local\u002Fdev overlay for non-azd values, remote Foundry suite references, local cache paths, result summaries, and explicit overrides. Optional sidecar files such as `agent-metadata.prod.yaml` can hold a single prod or CI-targeted overlay without mixing multiple environments in one file.\n- `suites\u002F`, `datasets\u002F`, and `evaluators\u002F` are local cache folders. Reuse them when they are current, and ask before refreshing or overwriting them.\n- See [Agent Metadata Contract](references\u002Fagent-metadata-contract.md) for the canonical schema and workflow rules.\n\n## Agent: Setup References\n\n- [Standard Agent Setup](references\u002Fstandard-agent-setup.md) — advanced setup for production workloads that need data-residency control (bring-your-own Cosmos DB \u002F Storage \u002F AI Search via a Foundry capability host). The default `azd ai agent` flow uses **Basic Agent Setup** and does **not** provision `capabilityHosts\u002Fagents` — do not flag its absence as a bug. For default post-provision state, see the \"Expected env-var fingerprint\" section in [foundry-agent\u002Fcreate\u002Fcreate-hosted.md](foundry-agent\u002Fcreate\u002Fcreate-hosted.md).\n\n## Agent: Common Project Context Resolution\n\nAgent skills should run this step **only when they need configuration values they don't already have**. If a value (for example, agent root, environment, project endpoint, or agent name) is already known from the user's message or a previous skill in the same session, skip resolution for that value.\n\n### Step 1: Discover Agent Roots and azd Context\n\nFirst check whether the workspace has `azure.yaml` with services using `host: azure.ai.agent`.\n\n- **One azd agent service** -> use that service's `project` folder as the agent root.\n- **Multiple azd agent services** -> require the user to choose the target service\u002Ffolder.\n- **No azd agent service** -> search the workspace for `.foundry\u002F` folders that contain `agent-metadata.yaml` or `agent-metadata.\u003Cenv>.yaml`.\n  - **One match** -> use that agent root.\n  - **Multiple matches** -> require the user to choose the target agent folder.\n  - **No matches** -> for create\u002Fdeploy workflows, seed a new `.foundry\u002F` folder during setup; for all other workflows, stop and ask the user which agent source folder to initialize.\n\nAfter selecting an agent root, keep all local `.foundry` cache inspection, source inspection, evaluator suggestions, dataset suggestions, and prompt-optimization context inside that folder only. Do **not** scan sibling agent folders unless the user explicitly switches roots.\n\n### Step 2: Resolve Environment and Deployment Context\n\nIf `azure.yaml` is present, resolve the azd environment first:\n\n1. Environment explicitly named by the user\n2. `AZURE_ENV_NAME` from `azd env get-values`\n3. azd default environment from `.azure\u002Fconfig.json`\n4. Environment already selected earlier in the session\n\nRun `azd env get-values` for the selected environment when project\u002Fdeployment values are not already known. Prefer azd values for deployment context:\n\n| azd Variable | Resolves To |\n|-------------|-------------|\n| `AZURE_AI_PROJECT_ENDPOINT` or `AZURE_AIPROJECT_ENDPOINT` | Project endpoint |\n| `AGENT_\u003CSERVICE>_NAME` | Agent name for the selected azd service |\n| `AGENT_\u003CSERVICE>_VERSION` | Agent version for the selected azd service |\n| `AZURE_CONTAINER_REGISTRY_NAME` or `AZURE_CONTAINER_REGISTRY_ENDPOINT` | ACR registry name \u002F image URL prefix |\n| `APPLICATIONINSIGHTS_CONNECTION_STRING` | App Insights connection string for trace workflows |\n| `AZURE_SUBSCRIPTION_ID`, `AZURE_RESOURCE_GROUP`, `AZURE_AI_ACCOUNT_NAME`, `AZURE_AI_PROJECT_NAME` | Azure resource lookup and Playground links |\n\nWhen azd supplies these values, use them as the source of truth and do not copy them into `.foundry\u002Fagent-metadata*.yaml` on metadata writes.\n\n### Step 3: Select Metadata Overlay and Resolve Environment\n\nInside the selected agent root, choose the metadata file in this order:\n1. Metadata filename or path explicitly provided by the user or workflow\n2. If an explicit environment is already known and `.foundry\u002Fagent-metadata.\u003Cenv>.yaml` exists, use that file\n3. `.foundry\u002Fagent-metadata.yaml`\n4. If multiple metadata files remain and no rule above selects one, prompt the user to choose\n\nRead the selected metadata file and resolve any remaining environment choice in this order:\n1. Environment explicitly named by the user\n2. If the selected metadata file defines exactly one environment, use it\n3. Environment already selected earlier in the session\n4. `defaultEnvironment` from metadata\n\nIf the selected metadata file still contains multiple environments and none of the rules above selects one, prompt the user to choose. Keep the selected agent root, metadata file, environment, and whether context came from azd or metadata visible in every workflow summary.\n\nIf the selected environment exposes older `testSuites[]` metadata but not `evaluationSuites[]`, treat `testSuites[]` as the source for this session and normalize each entry in memory to the `evaluationSuites[]` shape before continuing. If the metadata is older still and only exposes legacy `testCases[]`, normalize that list the same way. Preserve dataset and evaluator fields, keep any existing `tags`, and map legacy `priority` to `tags.tier` only when `tags.tier` is missing: `P0` -> `smoke`, `P1` -> `regression`, `P2` -> `coverage`.\n\n### Step 4: Resolve eval.yaml Local Evaluation Intent\n\nIf `eval.yaml` exists in the selected agent root, parse it before generating new suites:\n\n- `agent.name` -> target agent candidate; verify it matches the selected azd\u002Fmetadata agent before using it.\n- `dataset.local_uri` -> local seed dataset candidate; legacy `dataset_file` may be normalized in memory.\n- `dataset.name` \u002F `dataset.version` -> registered dataset candidate.\n- `validation_dataset` -> optional validation dataset candidate.\n- `evaluators[]` -> candidate Foundry evaluator names; verify with `evaluator_catalog_get` before treating them as remote evaluators.\n- `name` -> local eval\u002Fsuite candidate; verify remotely before persisting as `suiteName`.\n- `options.eval_model`, `options.optimization_model`, `options.max_candidates`, `options.optimization_config.model_search_space`, `options.pass_threshold`, `max_samples`, `trace_days`, and `generation_instruction` -> setup defaults.\n\nTreat `eval.yaml` as local evaluation intent, not proof that a Foundry suite exists. Persist synced suite\u002Fdataset\u002Fevaluator references to `.foundry` only after remote lookup or registration succeeds.\n\n### Step 5: Resolve Common Configuration\n\nLayer sources in this order:\n\n1. Explicit user input and values already selected in the session\n2. azd environment values for deployment context\n3. `.foundry\u002Fagent-metadata*.yaml` overlay values and remote suite\u002Fcache references\n4. `azure.yaml` and `eval.yaml` local source configuration\n5. User prompts for anything still missing\n\nIf azd and metadata both provide the same value and they differ, stop and ask which source is authoritative. If they match, use the azd value and avoid rewriting the duplicate on future metadata writes.\n\n| Effective Value | Preferred Source | Used By |\n|-----------------|------------------|---------|\n| Project endpoint | azd env | deploy, invoke, observe, trace, troubleshoot |\n| Agent name\u002Fversion | azd agent variables, then `azure.yaml` | invoke, observe, trace, troubleshoot |\n| ACR | azd env | deploy |\n| Evaluation suites and cache paths | `.foundry\u002Fagent-metadata*.yaml` | observe, eval-datasets |\n| Local seed dataset\u002Fevaluator intent | `eval.yaml` | observe, eval-datasets |\n\n### Step 6: Write Metadata Overlay (Create\u002FDeploy\u002FObserve Only)\n\nOn any metadata write (deploy, auto-setup, dataset refresh, or trace-to-dataset update), persist only non-derivable overlay\u002Fcache state in the selected metadata file:\n\n- azd binding (`azd.environmentName`, `azd.service`) when useful for future resolution\n- `evaluationSuites[]` with remote suite\u002Fdataset\u002Fevaluator references and local cache paths\n- `lastEval`, result files, comparison summaries, or explicit non-azd overrides\n\nDo not copy azd-owned deployment values into metadata when azd already provides them. If the selected file is a preferred single-environment file, rewrite only that one environment block. If the selected file is a legacy multi-environment file, rewrite only the selected environment block. Never copy or merge environments across sibling metadata files automatically. If the selected environment still uses older `testSuites[]` or legacy `testCases[]`, rewrite it to `evaluationSuites[]` and remove migrated `priority` fields from the rewritten entries.\n\n### Step 7: Collect Missing Values\n\nUse the `ask_user` or `askQuestions` tool **only for values not resolved** from the user's message, session context, metadata, or azd bootstrap. Common values skills may need:\n- **Agent root** — Target azd service project folder or folder containing `.foundry\u002Fagent-metadata*.yaml`\n- **Metadata file** — `agent-metadata.yaml` for local\u002Fdev, or an explicit sidecar such as `agent-metadata.prod.yaml`\n- **Environment** — azd environment, `dev`, `prod`, or another environment key from metadata\n- **Project endpoint** — AI Foundry project endpoint URL\n- **Agent name** — Name of the target agent\n\n> 💡 **Tip:** If the user already provides the agent path, environment, project endpoint, or agent name, extract it directly — do not ask again.\n\n## Agent: Agent Types\n\nAll agent skills support two agent types:\n\n| Type | Kind | Description |\n|------|------|-------------|\n| **Prompt** | `\"prompt\"` | LLM-based agents backed by a model deployment |\n| **Hosted** | `\"hosted\"` | Container-based agents running custom code |\n\nTreat an `azure.yaml` service with `host: azure.ai.agent` as Hosted. Use `agent_get` only when the type cannot be resolved from project context.\n\n## Tool Usage Conventions\n\n- Use the `ask_user` or `askQuestions` tool whenever collecting information from the user\n- Use the `task` or `runSubagent` tool to delegate long-running or independent sub-tasks (e.g., env var scanning, status polling, Dockerfile generation)\n- Prefer azd for Hosted Agents and Foundry MCP for Prompt Agents.\n- Reference official Microsoft documentation URLs instead of embedding CLI command syntax\n\n## Additional Resources\n\n- [Foundry Hosted Agents](https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fai-foundry\u002Fagents\u002Fconcepts\u002Fhosted-agents?view=foundry)\n- [Foundry Agent Runtime Components](https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fai-foundry\u002Fagents\u002Fconcepts\u002Fruntime-components?view=foundry)\n\n## SDK Quick Reference\n\n- [Python](references\u002Fsdk\u002Ffoundry-sdk-py.md)\n\n## Network Isolation Errors\n\nApplies to **any** call against a Foundry project or its parent Foundry account — Foundry MCP tools, `azd`, `az` CLI, `curl`, REST, or SDK.\n\nIf an error matches `Public access is disabled` \u002F `PublicNetworkAccessDisabled` \u002F `403 Forbidden` from a private endpoint \u002F connection timeout \u002F the project endpoint FQDN resolves to a public IP, this typically means the parent Foundry account has `publicNetworkAccess=Disabled` or `Enabled from selected IP addresses`, and the current shell is outside its VNet.\n\nOnly if the error is ambiguous, confirm against the Foundry account using a management-plane call (works from anywhere with reader access):\n\n```bash\naz cognitiveservices account show \\\n  --name \u003Caccount> --resource-group \u003Crg> \\\n  --query \"properties.{publicNetworkAccess:publicNetworkAccess, networkAcls:networkAcls, privateEndpointConnections:privateEndpointConnections[].properties.privateLinkServiceConnectionState.status}\"\n```\n\n`publicNetworkAccess: \"Disabled\"` — or `\"Enabled\"` together with non-empty `networkAcls.ipRules` \u002F `virtualNetworkRules` — confirms isolation. If `publicNetworkAccess: \"Enabled\"` and `networkAcls` is empty, the failure is a caller-side network issue (e.g. Private DNS resolving the FQDN to a public IP from inside a VNet with a private endpoint), not an account-config issue.\n\nIf it's indeed a network isolation issue, supported connection options are documented in [Choose a secure connection method to Foundry](https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Ffoundry\u002Fhow-to\u002Fconfigure-private-link#choose-a-secure-connection-method-to-foundry).\n\n> ℹ️ Foundry MCP tools cannot reach a VNet-isolated project even from inside the VNet.\n",{"data":44,"body":47},{"name":4,"description":6,"license":34,"metadata":45},{"author":9,"version":46},"1.2.1",{"type":48,"children":49},"root",[50,59,65,72,85,91,106,134,144,722,778,799,819,847,853,858,962,968,973,1225,1231,1244,1256,1340,1346,1395,1401,1413,1420,1439,1542,1561,1567,1579,1620,1632,1791,1804,1810,1815,1850,1855,1882,1887,2004,2010,2022,2182,2201,2207,2212,2257,2262,2386,2392,2397,2441,2474,2480,2507,2591,2604,2610,2615,2692,2719,2725,2774,2780,2804,2810,2822,2828,2862,2904,2909,3032,3081,3094,3102],{"type":51,"tag":52,"props":53,"children":55},"element","h1",{"id":54},"microsoft-foundry-skill",[56],{"type":57,"value":58},"text","Microsoft Foundry Skill",{"type":51,"tag":60,"props":61,"children":62},"p",{},[63],{"type":57,"value":64},"This skill helps developers work with Microsoft Foundry resources, covering model discovery and deployment, complete dev lifecycle of AI agent, evaluation workflows, and troubleshooting.",{"type":51,"tag":66,"props":67,"children":69},"h2",{"id":68},"pre-execution-requirements",[70],{"type":57,"value":71},"Pre-Execution Requirements",{"type":51,"tag":60,"props":73,"children":74},{},[75,77,83],{"type":57,"value":76},"Before using Foundry MCP operations, call the Azure MCP ",{"type":51,"tag":78,"props":79,"children":81},"code",{"className":80},[],[82],{"type":57,"value":27},{"type":57,"value":84}," tool and inspect the available Foundry MCP tools and related parameters. Treat this as the discovery\u002Fhelp step for MCP-based workflows.",{"type":51,"tag":66,"props":86,"children":88},{"id":87},"sub-skills",[89],{"type":57,"value":90},"Sub-Skills",{"type":51,"tag":92,"props":93,"children":94},"blockquote",{},[95],{"type":51,"tag":60,"props":96,"children":97},{},[98,104],{"type":51,"tag":99,"props":100,"children":101},"strong",{},[102],{"type":57,"value":103},"MANDATORY: Before executing ANY workflow-specific steps, you MUST read the corresponding sub-skill document.",{"type":57,"value":105}," Do not call workflow-specific MCP tools for a workflow without reading its skill document. This applies even if you already know the MCP tool parameters — the skill document contains required workflow steps, pre-checks, and validation logic that must be followed. This rule applies on every new user message that triggers a different workflow, even if the skill is already loaded.",{"type":51,"tag":92,"props":107,"children":108},{},[109],{"type":51,"tag":60,"props":110,"children":111},{},[112],{"type":51,"tag":99,"props":113,"children":114},{},[115,117,124,126,132],{"type":57,"value":116},"MANDATORY: Before executing ANY azd command, you MUST read ",{"type":51,"tag":118,"props":119,"children":121},"a",{"href":120},"foundry-agent\u002Fazd-guidance\u002Fazd-guidance.md",[122],{"type":57,"value":123},"azd-guidance",{"type":57,"value":125}," and strictly follow the shared rules defined in it, especially the ",{"type":51,"tag":78,"props":127,"children":129},{"className":128},[],[130],{"type":57,"value":131},"AZURE_DEV_USER_AGENT",{"type":57,"value":133}," setting rules.",{"type":51,"tag":60,"props":135,"children":136},{},[137,139],{"type":57,"value":138},"This skill includes specialized sub-skills for specific workflows. ",{"type":51,"tag":99,"props":140,"children":141},{},[142],{"type":57,"value":143},"Use these instead of the main skill when they match your task:",{"type":51,"tag":145,"props":146,"children":147},"table",{},[148,172],{"type":51,"tag":149,"props":150,"children":151},"thead",{},[152],{"type":51,"tag":153,"props":154,"children":155},"tr",{},[156,162,167],{"type":51,"tag":157,"props":158,"children":159},"th",{},[160],{"type":57,"value":161},"Sub-Skill",{"type":51,"tag":157,"props":163,"children":164},{},[165],{"type":57,"value":166},"When to Use",{"type":51,"tag":157,"props":168,"children":169},{},[170],{"type":57,"value":171},"Reference",{"type":51,"tag":173,"props":174,"children":175},"tbody",{},[176,201,225,249,289,321,345,375,399,430,453,477,501,525,549,580,628,652,676,700],{"type":51,"tag":153,"props":177,"children":178},{},[179,188,193],{"type":51,"tag":180,"props":181,"children":182},"td",{},[183],{"type":51,"tag":99,"props":184,"children":185},{},[186],{"type":57,"value":187},"deploy",{"type":51,"tag":180,"props":189,"children":190},{},[191],{"type":57,"value":192},"Deploy hosted agents to Foundry, smoke-test a deployment, create or update prompt agents, and manage agent versions and multi-environment deploys.",{"type":51,"tag":180,"props":194,"children":195},{},[196],{"type":51,"tag":118,"props":197,"children":199},{"href":198},"foundry-agent\u002Fdeploy\u002Fdeploy.md",[200],{"type":57,"value":187},{"type":51,"tag":153,"props":202,"children":203},{},[204,212,217],{"type":51,"tag":180,"props":205,"children":206},{},[207],{"type":51,"tag":99,"props":208,"children":209},{},[210],{"type":57,"value":211},"cicd",{"type":51,"tag":180,"props":213,"children":214},{},[215],{"type":57,"value":216},"Set up a CI\u002FCD deployment pipeline for a Foundry agent.",{"type":51,"tag":180,"props":218,"children":219},{},[220],{"type":51,"tag":118,"props":221,"children":223},{"href":222},"foundry-agent\u002Fcicd\u002Fcicd.md",[224],{"type":57,"value":211},{"type":51,"tag":153,"props":226,"children":227},{},[228,236,241],{"type":51,"tag":180,"props":229,"children":230},{},[231],{"type":51,"tag":99,"props":232,"children":233},{},[234],{"type":57,"value":235},"invoke",{"type":51,"tag":180,"props":237,"children":238},{},[239],{"type":57,"value":240},"Send messages to an agent, single or multi-turn conversations",{"type":51,"tag":180,"props":242,"children":243},{},[244],{"type":51,"tag":118,"props":245,"children":247},{"href":246},"foundry-agent\u002Finvoke\u002Finvoke.md",[248],{"type":57,"value":235},{"type":51,"tag":153,"props":250,"children":251},{},[252,260,281],{"type":51,"tag":180,"props":253,"children":254},{},[255],{"type":51,"tag":99,"props":256,"children":257},{},[258],{"type":57,"value":259},"routine",{"type":51,"tag":180,"props":261,"children":262},{},[263,265,271,273,279],{"type":57,"value":264},"Schedule or event-trigger Foundry agents with routines; use ",{"type":51,"tag":78,"props":266,"children":268},{"className":267},[],[269],{"type":57,"value":270},"azd",{"type":57,"value":272}," for CRUD, enable\u002Fdisable, manual dispatch, and viewing past runs, or define routines in ",{"type":51,"tag":78,"props":274,"children":276},{"className":275},[],[277],{"type":57,"value":278},"azure.yaml",{"type":57,"value":280},".",{"type":51,"tag":180,"props":282,"children":283},{},[284],{"type":51,"tag":118,"props":285,"children":287},{"href":286},"foundry-agent\u002Froutine\u002Froutine.md",[288],{"type":57,"value":259},{"type":51,"tag":153,"props":290,"children":291},{},[292,300,313],{"type":51,"tag":180,"props":293,"children":294},{},[295],{"type":51,"tag":99,"props":296,"children":297},{},[298],{"type":57,"value":299},"invocations-ws",{"type":51,"tag":180,"props":301,"children":302},{},[303,305,311],{"type":57,"value":304},"Build, deploy, and connect to hosted agents that speak the ",{"type":51,"tag":78,"props":306,"children":308},{"className":307},[],[309],{"type":57,"value":310},"invocations_ws",{"type":57,"value":312}," duplex WebSocket protocol — voice agents, real-time streams, and signaling for out-of-band media transports.",{"type":51,"tag":180,"props":314,"children":315},{},[316],{"type":51,"tag":118,"props":317,"children":319},{"href":318},"foundry-agent\u002Finvocations-ws\u002Finvocations-ws.md",[320],{"type":57,"value":299},{"type":51,"tag":153,"props":322,"children":323},{},[324,332,337],{"type":51,"tag":180,"props":325,"children":326},{},[327],{"type":51,"tag":99,"props":328,"children":329},{},[330],{"type":57,"value":331},"observe",{"type":51,"tag":180,"props":333,"children":334},{},[335],{"type":57,"value":336},"Evaluate agent quality, run batch evals, analyze failures, optimize prompts, improve agent instructions, compare versions, set up CI\u002FCD monitoring, and enable continuous production evaluation",{"type":51,"tag":180,"props":338,"children":339},{},[340],{"type":51,"tag":118,"props":341,"children":343},{"href":342},"foundry-agent\u002Fobserve\u002Fobserve.md",[344],{"type":57,"value":331},{"type":51,"tag":153,"props":346,"children":347},{},[348,356,367],{"type":51,"tag":180,"props":349,"children":350},{},[351],{"type":51,"tag":99,"props":352,"children":353},{},[354],{"type":57,"value":355},"trace",{"type":51,"tag":180,"props":357,"children":358},{},[359,361],{"type":57,"value":360},"Query traces, analyze latency\u002Ffailures, correlate eval results to specific responses via App Insights ",{"type":51,"tag":78,"props":362,"children":364},{"className":363},[],[365],{"type":57,"value":366},"customEvents",{"type":51,"tag":180,"props":368,"children":369},{},[370],{"type":51,"tag":118,"props":371,"children":373},{"href":372},"foundry-agent\u002Ftrace\u002Ftrace.md",[374],{"type":57,"value":355},{"type":51,"tag":153,"props":376,"children":377},{},[378,386,391],{"type":51,"tag":180,"props":379,"children":380},{},[381],{"type":51,"tag":99,"props":382,"children":383},{},[384],{"type":57,"value":385},"troubleshoot",{"type":51,"tag":180,"props":387,"children":388},{},[389],{"type":57,"value":390},"View hosted agent logs, query telemetry, diagnose failures",{"type":51,"tag":180,"props":392,"children":393},{},[394],{"type":51,"tag":118,"props":395,"children":397},{"href":396},"foundry-agent\u002Ftroubleshoot\u002Ftroubleshoot.md",[398],{"type":57,"value":385},{"type":51,"tag":153,"props":400,"children":401},{},[402,410,421],{"type":51,"tag":180,"props":403,"children":404},{},[405],{"type":51,"tag":99,"props":406,"children":407},{},[408],{"type":57,"value":409},"create (quick start)",{"type":51,"tag":180,"props":411,"children":412},{},[413,415,420],{"type":57,"value":414},"Create a new hosted Foundry agent from scratch end-to-end — scaffold, provision or use an existing Foundry project, deploy, and smoke-test. Do not use for any work on existing code. For anything not covered by the quickstart, use ",{"type":51,"tag":99,"props":416,"children":417},{},[418],{"type":57,"value":419},"create",{"type":57,"value":280},{"type":51,"tag":180,"props":422,"children":423},{},[424],{"type":51,"tag":118,"props":425,"children":427},{"href":426},"foundry-agent\u002Fcreate\u002Fquick-start-hosted.md",[428],{"type":57,"value":429},"create\u002Fquick-start-hosted.md",{"type":51,"tag":153,"props":431,"children":432},{},[433,440,445],{"type":51,"tag":180,"props":434,"children":435},{},[436],{"type":51,"tag":99,"props":437,"children":438},{},[439],{"type":57,"value":419},{"type":51,"tag":180,"props":441,"children":442},{},[443],{"type":57,"value":444},"Use when the standard end-to-end happy path doesn't fit. Create a new Foundry agent, update code of an existing agent, continue development of an existing agent, wire connections at scaffold time, use advanced setup or A2A (Agent2Agent), or recover from a failed quickstart run.",{"type":51,"tag":180,"props":446,"children":447},{},[448],{"type":51,"tag":118,"props":449,"children":451},{"href":450},"foundry-agent\u002Fcreate\u002Fcreate-hosted.md",[452],{"type":57,"value":419},{"type":51,"tag":153,"props":454,"children":455},{},[456,464,469],{"type":51,"tag":180,"props":457,"children":458},{},[459],{"type":51,"tag":99,"props":460,"children":461},{},[462],{"type":57,"value":463},"agent-optimizer",{"type":51,"tag":180,"props":465,"children":466},{},[467],{"type":57,"value":468},"Make existing Python hosted-agent code optimization-ready, configure eval.yaml, run Agent Optimizer jobs, apply candidates locally, and deploy through azd after review.",{"type":51,"tag":180,"props":470,"children":471},{},[472],{"type":51,"tag":118,"props":473,"children":475},{"href":474},"foundry-agent\u002Fagent-optimizer\u002Fagent-optimizer.md",[476],{"type":57,"value":463},{"type":51,"tag":153,"props":478,"children":479},{},[480,488,493],{"type":51,"tag":180,"props":481,"children":482},{},[483],{"type":51,"tag":99,"props":484,"children":485},{},[486],{"type":57,"value":487},"eval-datasets",{"type":51,"tag":180,"props":489,"children":490},{},[491],{"type":57,"value":492},"Harvest production traces into evaluation datasets, manage dataset versions and splits, track evaluation metrics over time, detect regressions, and maintain full lineage from trace to deployment. Use for: create dataset from traces, dataset versioning, evaluation trending, regression detection, dataset comparison, eval lineage.",{"type":51,"tag":180,"props":494,"children":495},{},[496],{"type":51,"tag":118,"props":497,"children":499},{"href":498},"foundry-agent\u002Feval-datasets\u002Feval-datasets.md",[500],{"type":57,"value":487},{"type":51,"tag":153,"props":502,"children":503},{},[504,512,517],{"type":51,"tag":180,"props":505,"children":506},{},[507],{"type":51,"tag":99,"props":508,"children":509},{},[510],{"type":57,"value":511},"project\u002Fcreate",{"type":51,"tag":180,"props":513,"children":514},{},[515],{"type":57,"value":516},"Creating a new Azure AI Foundry project for hosting agents and models. Use when onboarding to Foundry or setting up new infrastructure.",{"type":51,"tag":180,"props":518,"children":519},{},[520],{"type":51,"tag":118,"props":521,"children":523},{"href":522},"project\u002Fcreate\u002Fcreate-foundry-project.md",[524],{"type":57,"value":522},{"type":51,"tag":153,"props":526,"children":527},{},[528,536,541],{"type":51,"tag":180,"props":529,"children":530},{},[531],{"type":51,"tag":99,"props":532,"children":533},{},[534],{"type":57,"value":535},"resource\u002Fcreate",{"type":51,"tag":180,"props":537,"children":538},{},[539],{"type":57,"value":540},"Creating Azure AI Services multi-service resource (Foundry resource) using Azure CLI. Use when manually provisioning AI Services resources with granular control.",{"type":51,"tag":180,"props":542,"children":543},{},[544],{"type":51,"tag":118,"props":545,"children":547},{"href":546},"resource\u002Fcreate\u002Fcreate-foundry-resource.md",[548],{"type":57,"value":546},{"type":51,"tag":153,"props":550,"children":551},{},[552,560,572],{"type":51,"tag":180,"props":553,"children":554},{},[555],{"type":51,"tag":99,"props":556,"children":557},{},[558],{"type":57,"value":559},"private-network",{"type":51,"tag":180,"props":561,"children":562},{},[563,565,570],{"type":57,"value":564},"Answer questions about Foundry network isolation ",{"type":51,"tag":99,"props":566,"children":567},{},[568],{"type":57,"value":569},"and",{"type":57,"value":571}," deploy Foundry with VNet isolation (BYO VNet, Managed VNet, hybrid). Covers architecture concepts, template selection, deployment, and post-deployment validation.",{"type":51,"tag":180,"props":573,"children":574},{},[575],{"type":51,"tag":118,"props":576,"children":578},{"href":577},"resource\u002Fprivate-network\u002Fprivate-network.md",[579],{"type":57,"value":577},{"type":51,"tag":153,"props":581,"children":582},{},[583,591,620],{"type":51,"tag":180,"props":584,"children":585},{},[586],{"type":51,"tag":99,"props":587,"children":588},{},[589],{"type":57,"value":590},"models\u002Fdeploy-model",{"type":51,"tag":180,"props":592,"children":593},{},[594,596,602,604,610,612,618],{"type":57,"value":595},"Unified model deployment with intelligent routing. Handles quick preset deployments, fully customized deployments (version\u002FSKU\u002Fcapacity\u002FRAI), and capacity discovery across regions. Routes to sub-skills: ",{"type":51,"tag":78,"props":597,"children":599},{"className":598},[],[600],{"type":57,"value":601},"preset",{"type":57,"value":603}," (quick deploy), ",{"type":51,"tag":78,"props":605,"children":607},{"className":606},[],[608],{"type":57,"value":609},"customize",{"type":57,"value":611}," (full control), ",{"type":51,"tag":78,"props":613,"children":615},{"className":614},[],[616],{"type":57,"value":617},"capacity",{"type":57,"value":619}," (find availability).",{"type":51,"tag":180,"props":621,"children":622},{},[623],{"type":51,"tag":118,"props":624,"children":626},{"href":625},"models\u002Fdeploy-model\u002FSKILL.md",[627],{"type":57,"value":625},{"type":51,"tag":153,"props":629,"children":630},{},[631,639,644],{"type":51,"tag":180,"props":632,"children":633},{},[634],{"type":51,"tag":99,"props":635,"children":636},{},[637],{"type":57,"value":638},"quota",{"type":51,"tag":180,"props":640,"children":641},{},[642],{"type":57,"value":643},"Managing quotas and capacity for Microsoft Foundry resources. Use when checking quota usage, troubleshooting deployment failures due to insufficient quota, requesting quota increases, or planning capacity.",{"type":51,"tag":180,"props":645,"children":646},{},[647],{"type":51,"tag":118,"props":648,"children":650},{"href":649},"quota\u002Fquota.md",[651],{"type":57,"value":649},{"type":51,"tag":153,"props":653,"children":654},{},[655,663,668],{"type":51,"tag":180,"props":656,"children":657},{},[658],{"type":51,"tag":99,"props":659,"children":660},{},[661],{"type":57,"value":662},"rbac",{"type":51,"tag":180,"props":664,"children":665},{},[666],{"type":57,"value":667},"Managing RBAC permissions, role assignments, managed identities, and service principals for Microsoft Foundry resources. Use for access control, auditing permissions, and CI\u002FCD setup.",{"type":51,"tag":180,"props":669,"children":670},{},[671],{"type":51,"tag":118,"props":672,"children":674},{"href":673},"rbac\u002Frbac.md",[675],{"type":57,"value":673},{"type":51,"tag":153,"props":677,"children":678},{},[679,687,692],{"type":51,"tag":180,"props":680,"children":681},{},[682],{"type":51,"tag":99,"props":683,"children":684},{},[685],{"type":57,"value":686},"finetuning",{"type":51,"tag":180,"props":688,"children":689},{},[690],{"type":57,"value":691},"Fine-tune models on Azure AI Foundry — SFT distillation, DPO preference optimization, RFT with graders and tool calling. Dataset preparation, grader calibration, training, checkpoint selection, deployment, evaluation. Use for: fine-tune, SFT, DPO, RFT, training data, grader, distillation, fine-tuned model, large file upload.",{"type":51,"tag":180,"props":693,"children":694},{},[695],{"type":51,"tag":118,"props":696,"children":698},{"href":697},"finetuning\u002FSKILL.md",[699],{"type":57,"value":697},{"type":51,"tag":153,"props":701,"children":702},{},[703,710,715],{"type":51,"tag":180,"props":704,"children":705},{},[706],{"type":51,"tag":99,"props":707,"children":708},{},[709],{"type":57,"value":123},{"type":51,"tag":180,"props":711,"children":712},{},[713],{"type":57,"value":714},"Provide shared azd knowledge and guidance for managing Foundry agents. Read this first for any workflows related to azd.",{"type":51,"tag":180,"props":716,"children":717},{},[718],{"type":51,"tag":118,"props":719,"children":720},{"href":120},[721],{"type":57,"value":123},{"type":51,"tag":92,"props":723,"children":724},{},[725],{"type":51,"tag":60,"props":726,"children":727},{},[728,730,735,737,742,744,749,751,756,758,763,765,770,771,776],{"type":57,"value":729},"💡 ",{"type":51,"tag":99,"props":731,"children":732},{},[733],{"type":57,"value":734},"Tip:",{"type":57,"value":736}," For a complete onboarding flow: ",{"type":51,"tag":78,"props":738,"children":740},{"className":739},[],[741],{"type":57,"value":511},{"type":57,"value":743}," (public) or ",{"type":51,"tag":78,"props":745,"children":747},{"className":746},[],[748],{"type":57,"value":559},{"type":57,"value":750}," (VNet isolation) → ",{"type":51,"tag":78,"props":752,"children":754},{"className":753},[],[755],{"type":57,"value":590},{"type":57,"value":757}," → agent workflows (",{"type":51,"tag":78,"props":759,"children":761},{"className":760},[],[762],{"type":57,"value":419},{"type":57,"value":764}," → ",{"type":51,"tag":78,"props":766,"children":768},{"className":767},[],[769],{"type":57,"value":187},{"type":57,"value":764},{"type":51,"tag":78,"props":772,"children":774},{"className":773},[],[775],{"type":57,"value":235},{"type":57,"value":777},").",{"type":51,"tag":92,"props":779,"children":780},{},[781],{"type":51,"tag":60,"props":782,"children":783},{},[784,785,790,792,797],{"type":57,"value":729},{"type":51,"tag":99,"props":786,"children":787},{},[788],{"type":57,"value":789},"Fine-Tuning:",{"type":57,"value":791}," Use ",{"type":51,"tag":78,"props":793,"children":795},{"className":794},[],[796],{"type":57,"value":686},{"type":57,"value":798}," for all model customization — SFT distillation, DPO preference optimization, and RFT with graders. Includes quickstart, grader calibration, and training curve analysis.",{"type":51,"tag":92,"props":800,"children":801},{},[802],{"type":51,"tag":60,"props":803,"children":804},{},[805,806,811,812,817],{"type":57,"value":729},{"type":51,"tag":99,"props":807,"children":808},{},[809],{"type":57,"value":810},"Model Deployment:",{"type":57,"value":791},{"type":51,"tag":78,"props":813,"children":815},{"className":814},[],[816],{"type":57,"value":590},{"type":57,"value":818}," for all deployment scenarios — it intelligently routes between quick preset deployment, customized deployment with full control, and capacity discovery across regions.",{"type":51,"tag":92,"props":820,"children":821},{},[822],{"type":51,"tag":60,"props":823,"children":824},{},[825,826,831,833,837,839,845],{"type":57,"value":729},{"type":51,"tag":99,"props":827,"children":828},{},[829],{"type":57,"value":830},"Prompt Optimization:",{"type":57,"value":832}," For requests like \"optimize my prompt\" or \"improve my agent instructions,\" load ",{"type":51,"tag":118,"props":834,"children":835},{"href":342},[836],{"type":57,"value":331},{"type":57,"value":838}," and use the ",{"type":51,"tag":78,"props":840,"children":842},{"className":841},[],[843],{"type":57,"value":844},"prompt_optimize",{"type":57,"value":846}," MCP tool through that eval-driven workflow.",{"type":51,"tag":66,"props":848,"children":850},{"id":849},"infrastructure-lifecycle",[851],{"type":57,"value":852},"Infrastructure Lifecycle",{"type":51,"tag":60,"props":854,"children":855},{},[856],{"type":57,"value":857},"Match user intent to the correct infrastructure workflow.",{"type":51,"tag":145,"props":859,"children":860},{},[861,877],{"type":51,"tag":149,"props":862,"children":863},{},[864],{"type":51,"tag":153,"props":865,"children":866},{},[867,872],{"type":51,"tag":157,"props":868,"children":869},{},[870],{"type":57,"value":871},"User Intent",{"type":51,"tag":157,"props":873,"children":874},{},[875],{"type":57,"value":876},"Workflow",{"type":51,"tag":173,"props":878,"children":879},{},[880,917,932,947],{"type":51,"tag":153,"props":881,"children":882},{},[883,888],{"type":51,"tag":180,"props":884,"children":885},{},[886],{"type":57,"value":887},"\"Create Foundry\" \u002F \"Set up Foundry\" (ambiguous)",{"type":51,"tag":180,"props":889,"children":890},{},[891,893,899,901,905,907,911,913],{"type":57,"value":892},"Use ",{"type":51,"tag":78,"props":894,"children":896},{"className":895},[],[897],{"type":57,"value":898},"AskUserQuestion",{"type":57,"value":900},": (a) just an AI Services resource, (b) a project with public access, or (c) a project with network isolation? Route: (a) → ",{"type":51,"tag":118,"props":902,"children":903},{"href":546},[904],{"type":57,"value":535},{"type":57,"value":906},", (b) → ",{"type":51,"tag":118,"props":908,"children":909},{"href":522},[910],{"type":57,"value":511},{"type":57,"value":912},", (c) → ",{"type":51,"tag":118,"props":914,"children":915},{"href":577},[916],{"type":57,"value":559},{"type":51,"tag":153,"props":918,"children":919},{},[920,925],{"type":51,"tag":180,"props":921,"children":922},{},[923],{"type":57,"value":924},"Set up Foundry with VNet isolation",{"type":51,"tag":180,"props":926,"children":927},{},[928],{"type":51,"tag":118,"props":929,"children":930},{"href":577},[931],{"type":57,"value":559},{"type":51,"tag":153,"props":933,"children":934},{},[935,940],{"type":51,"tag":180,"props":936,"children":937},{},[938],{"type":57,"value":939},"Create a Foundry project (public)",{"type":51,"tag":180,"props":941,"children":942},{},[943],{"type":51,"tag":118,"props":944,"children":945},{"href":522},[946],{"type":57,"value":511},{"type":51,"tag":153,"props":948,"children":949},{},[950,955],{"type":51,"tag":180,"props":951,"children":952},{},[953],{"type":57,"value":954},"Create a bare Foundry resource",{"type":51,"tag":180,"props":956,"children":957},{},[958],{"type":51,"tag":118,"props":959,"children":960},{"href":546},[961],{"type":57,"value":535},{"type":51,"tag":66,"props":963,"children":965},{"id":964},"agent-development-lifecycle",[966],{"type":57,"value":967},"Agent Development Lifecycle",{"type":51,"tag":60,"props":969,"children":970},{},[971],{"type":57,"value":972},"Match user intent to the correct agent workflow. Read each sub-skill in order before executing.",{"type":51,"tag":145,"props":974,"children":975},{},[976,991],{"type":51,"tag":149,"props":977,"children":978},{},[979],{"type":51,"tag":153,"props":980,"children":981},{},[982,986],{"type":51,"tag":157,"props":983,"children":984},{},[985],{"type":57,"value":871},{"type":51,"tag":157,"props":987,"children":988},{},[989],{"type":57,"value":990},"Workflow (read in order)",{"type":51,"tag":173,"props":992,"children":993},{},[994,1017,1047,1069,1086,1102,1119,1136,1153,1166,1178,1191,1208],{"type":51,"tag":153,"props":995,"children":996},{},[997,1002],{"type":51,"tag":180,"props":998,"children":999},{},[1000],{"type":57,"value":1001},"Create a new hosted agent end-to-end (scaffold + deploy + test)",{"type":51,"tag":180,"props":1003,"children":1004},{},[1005,1009,1010,1015],{"type":51,"tag":118,"props":1006,"children":1007},{"href":120},[1008],{"type":57,"value":123},{"type":57,"value":764},{"type":51,"tag":118,"props":1011,"children":1012},{"href":426},[1013],{"type":57,"value":1014},"quick-start-hosted",{"type":57,"value":1016}," (self-contained end-to-end)",{"type":51,"tag":153,"props":1018,"children":1019},{},[1020,1025],{"type":51,"tag":180,"props":1021,"children":1022},{},[1023],{"type":57,"value":1024},"Anything beyond the standard quickstart (existing code, migration, re-hosting, deployment customization, scaffold-time connections, A2A (Agent2Agent), recovery)",{"type":51,"tag":180,"props":1026,"children":1027},{},[1028,1032,1033,1037,1038,1042,1043],{"type":51,"tag":118,"props":1029,"children":1030},{"href":120},[1031],{"type":57,"value":123},{"type":57,"value":764},{"type":51,"tag":118,"props":1034,"children":1035},{"href":450},[1036],{"type":57,"value":419},{"type":57,"value":764},{"type":51,"tag":118,"props":1039,"children":1040},{"href":198},[1041],{"type":57,"value":187},{"type":57,"value":764},{"type":51,"tag":118,"props":1044,"children":1045},{"href":246},[1046],{"type":57,"value":235},{"type":51,"tag":153,"props":1048,"children":1049},{},[1050,1055],{"type":51,"tag":180,"props":1051,"children":1052},{},[1053],{"type":57,"value":1054},"Optimize existing Python hosted agent",{"type":51,"tag":180,"props":1056,"children":1057},{},[1058,1062,1063,1067],{"type":51,"tag":118,"props":1059,"children":1060},{"href":120},[1061],{"type":57,"value":123},{"type":57,"value":764},{"type":51,"tag":118,"props":1064,"children":1065},{"href":474},[1066],{"type":57,"value":463},{"type":57,"value":1068}," → scaffold\u002Freview → eval.yaml → optimize → apply candidate → deploy → invoke",{"type":51,"tag":153,"props":1070,"children":1071},{},[1072,1077],{"type":51,"tag":180,"props":1073,"children":1074},{},[1075],{"type":57,"value":1076},"Deploy an agent (code already exists)",{"type":51,"tag":180,"props":1078,"children":1079},{},[1080,1084],{"type":51,"tag":118,"props":1081,"children":1082},{"href":120},[1083],{"type":57,"value":123},{"type":57,"value":1085}," → deploy (includes eval-suite setup) → invoke → observe (evaluate\u002Foptimize)",{"type":51,"tag":153,"props":1087,"children":1088},{},[1089,1094],{"type":51,"tag":180,"props":1090,"children":1091},{},[1092],{"type":57,"value":1093},"Update\u002Fredeploy an agent after code changes",{"type":51,"tag":180,"props":1095,"children":1096},{},[1097,1101],{"type":51,"tag":118,"props":1098,"children":1099},{"href":120},[1100],{"type":57,"value":123},{"type":57,"value":1085},{"type":51,"tag":153,"props":1103,"children":1104},{},[1105,1110],{"type":51,"tag":180,"props":1106,"children":1107},{},[1108],{"type":57,"value":1109},"Set up a CI\u002FCD deployment pipeline for a hosted agent",{"type":51,"tag":180,"props":1111,"children":1112},{},[1113,1117],{"type":51,"tag":118,"props":1114,"children":1115},{"href":120},[1116],{"type":57,"value":123},{"type":57,"value":1118}," → cicd",{"type":51,"tag":153,"props":1120,"children":1121},{},[1122,1127],{"type":51,"tag":180,"props":1123,"children":1124},{},[1125],{"type":57,"value":1126},"Invoke\u002Ftest\u002Fchat with an agent",{"type":51,"tag":180,"props":1128,"children":1129},{},[1130,1134],{"type":51,"tag":118,"props":1131,"children":1132},{"href":120},[1133],{"type":57,"value":123},{"type":57,"value":1135}," → invoke",{"type":51,"tag":153,"props":1137,"children":1138},{},[1139,1144],{"type":51,"tag":180,"props":1140,"children":1141},{},[1142],{"type":57,"value":1143},"Schedule\u002Fevent-trigger an agent, or CRUD\u002Fenable\u002Fdisable\u002Fdispatch a routine",{"type":51,"tag":180,"props":1145,"children":1146},{},[1147,1151],{"type":51,"tag":118,"props":1148,"children":1149},{"href":120},[1150],{"type":57,"value":123},{"type":57,"value":1152}," → routine",{"type":51,"tag":153,"props":1154,"children":1155},{},[1156,1161],{"type":51,"tag":180,"props":1157,"children":1158},{},[1159],{"type":57,"value":1160},"Optimize \u002F improve agent prompt or instructions",{"type":51,"tag":180,"props":1162,"children":1163},{},[1164],{"type":57,"value":1165},"observe (Step 4: Optimize)",{"type":51,"tag":153,"props":1167,"children":1168},{},[1169,1174],{"type":51,"tag":180,"props":1170,"children":1171},{},[1172],{"type":57,"value":1173},"Evaluate and optimize agent (full loop)",{"type":51,"tag":180,"props":1175,"children":1176},{},[1177],{"type":57,"value":331},{"type":51,"tag":153,"props":1179,"children":1180},{},[1181,1186],{"type":51,"tag":180,"props":1182,"children":1183},{},[1184],{"type":57,"value":1185},"Enable continuous evaluation monitoring",{"type":51,"tag":180,"props":1187,"children":1188},{},[1189],{"type":57,"value":1190},"observe (Step 6: CI\u002FCD & Monitoring)",{"type":51,"tag":153,"props":1192,"children":1193},{},[1194,1199],{"type":51,"tag":180,"props":1195,"children":1196},{},[1197],{"type":57,"value":1198},"Troubleshoot an agent issue",{"type":51,"tag":180,"props":1200,"children":1201},{},[1202,1206],{"type":51,"tag":118,"props":1203,"children":1204},{"href":120},[1205],{"type":57,"value":123},{"type":57,"value":1207}," → invoke → troubleshoot",{"type":51,"tag":153,"props":1209,"children":1210},{},[1211,1216],{"type":51,"tag":180,"props":1212,"children":1213},{},[1214],{"type":57,"value":1215},"Fix a broken agent (troubleshoot + redeploy)",{"type":51,"tag":180,"props":1217,"children":1218},{},[1219,1223],{"type":51,"tag":118,"props":1220,"children":1221},{"href":120},[1222],{"type":57,"value":123},{"type":57,"value":1224}," → invoke → troubleshoot → apply fixes → deploy → invoke",{"type":51,"tag":66,"props":1226,"children":1228},{"id":1227},"agent-foundry-workspace-standard",[1229],{"type":57,"value":1230},"Agent: .foundry Workspace Standard",{"type":51,"tag":60,"props":1232,"children":1233},{},[1234,1236,1242],{"type":57,"value":1235},"Every agent source folder can keep Foundry-specific cache and overlay state under ",{"type":51,"tag":78,"props":1237,"children":1239},{"className":1238},[],[1240],{"type":57,"value":1241},".foundry\u002F",{"type":57,"value":1243},":",{"type":51,"tag":1245,"props":1246,"children":1251},"pre",{"className":1247,"code":1249,"language":57,"meta":1250},[1248],"language-text","\u003Cagent-root>\u002F\n  .foundry\u002F\n    agent-metadata.yaml\n    agent-metadata.prod.yaml\n    suites\u002F\n    datasets\u002F\n    evaluators\u002F\n    results\u002F\n","",[1252],{"type":51,"tag":78,"props":1253,"children":1254},{"__ignoreMap":1250},[1255],{"type":57,"value":1249},{"type":51,"tag":1257,"props":1258,"children":1259},"ul",{},[1260,1281,1300,1327],{"type":51,"tag":1261,"props":1262,"children":1263},"li",{},[1264,1266,1271,1273,1279],{"type":57,"value":1265},"In azd projects, derive deployment context (project endpoint, agent name\u002Fversion, ACR, App Insights) from ",{"type":51,"tag":78,"props":1267,"children":1269},{"className":1268},[],[1270],{"type":57,"value":278},{"type":57,"value":1272}," plus ",{"type":51,"tag":78,"props":1274,"children":1276},{"className":1275},[],[1277],{"type":57,"value":1278},"azd env get-values",{"type":57,"value":1280},"; do not duplicate those values in metadata when azd already provides them.",{"type":51,"tag":1261,"props":1282,"children":1283},{},[1284,1290,1292,1298],{"type":51,"tag":78,"props":1285,"children":1287},{"className":1286},[],[1288],{"type":57,"value":1289},"agent-metadata.yaml",{"type":57,"value":1291}," is the preferred local\u002Fdev overlay for non-azd values, remote Foundry suite references, local cache paths, result summaries, and explicit overrides. Optional sidecar files such as ",{"type":51,"tag":78,"props":1293,"children":1295},{"className":1294},[],[1296],{"type":57,"value":1297},"agent-metadata.prod.yaml",{"type":57,"value":1299}," can hold a single prod or CI-targeted overlay without mixing multiple environments in one file.",{"type":51,"tag":1261,"props":1301,"children":1302},{},[1303,1309,1311,1317,1319,1325],{"type":51,"tag":78,"props":1304,"children":1306},{"className":1305},[],[1307],{"type":57,"value":1308},"suites\u002F",{"type":57,"value":1310},", ",{"type":51,"tag":78,"props":1312,"children":1314},{"className":1313},[],[1315],{"type":57,"value":1316},"datasets\u002F",{"type":57,"value":1318},", and ",{"type":51,"tag":78,"props":1320,"children":1322},{"className":1321},[],[1323],{"type":57,"value":1324},"evaluators\u002F",{"type":57,"value":1326}," are local cache folders. Reuse them when they are current, and ask before refreshing or overwriting them.",{"type":51,"tag":1261,"props":1328,"children":1329},{},[1330,1332,1338],{"type":57,"value":1331},"See ",{"type":51,"tag":118,"props":1333,"children":1335},{"href":1334},"references\u002Fagent-metadata-contract.md",[1336],{"type":57,"value":1337},"Agent Metadata Contract",{"type":57,"value":1339}," for the canonical schema and workflow rules.",{"type":51,"tag":66,"props":1341,"children":1343},{"id":1342},"agent-setup-references",[1344],{"type":57,"value":1345},"Agent: Setup References",{"type":51,"tag":1257,"props":1347,"children":1348},{},[1349],{"type":51,"tag":1261,"props":1350,"children":1351},{},[1352,1358,1360,1366,1368,1373,1375,1380,1382,1388,1390,1394],{"type":51,"tag":118,"props":1353,"children":1355},{"href":1354},"references\u002Fstandard-agent-setup.md",[1356],{"type":57,"value":1357},"Standard Agent Setup",{"type":57,"value":1359}," — advanced setup for production workloads that need data-residency control (bring-your-own Cosmos DB \u002F Storage \u002F AI Search via a Foundry capability host). The default ",{"type":51,"tag":78,"props":1361,"children":1363},{"className":1362},[],[1364],{"type":57,"value":1365},"azd ai agent",{"type":57,"value":1367}," flow uses ",{"type":51,"tag":99,"props":1369,"children":1370},{},[1371],{"type":57,"value":1372},"Basic Agent Setup",{"type":57,"value":1374}," and does ",{"type":51,"tag":99,"props":1376,"children":1377},{},[1378],{"type":57,"value":1379},"not",{"type":57,"value":1381}," provision ",{"type":51,"tag":78,"props":1383,"children":1385},{"className":1384},[],[1386],{"type":57,"value":1387},"capabilityHosts\u002Fagents",{"type":57,"value":1389}," — do not flag its absence as a bug. For default post-provision state, see the \"Expected env-var fingerprint\" section in ",{"type":51,"tag":118,"props":1391,"children":1392},{"href":450},[1393],{"type":57,"value":450},{"type":57,"value":280},{"type":51,"tag":66,"props":1396,"children":1398},{"id":1397},"agent-common-project-context-resolution",[1399],{"type":57,"value":1400},"Agent: Common Project Context Resolution",{"type":51,"tag":60,"props":1402,"children":1403},{},[1404,1406,1411],{"type":57,"value":1405},"Agent skills should run this step ",{"type":51,"tag":99,"props":1407,"children":1408},{},[1409],{"type":57,"value":1410},"only when they need configuration values they don't already have",{"type":57,"value":1412},". If a value (for example, agent root, environment, project endpoint, or agent name) is already known from the user's message or a previous skill in the same session, skip resolution for that value.",{"type":51,"tag":1414,"props":1415,"children":1417},"h3",{"id":1416},"step-1-discover-agent-roots-and-azd-context",[1418],{"type":57,"value":1419},"Step 1: Discover Agent Roots and azd Context",{"type":51,"tag":60,"props":1421,"children":1422},{},[1423,1425,1430,1432,1438],{"type":57,"value":1424},"First check whether the workspace has ",{"type":51,"tag":78,"props":1426,"children":1428},{"className":1427},[],[1429],{"type":57,"value":278},{"type":57,"value":1431}," with services using ",{"type":51,"tag":78,"props":1433,"children":1435},{"className":1434},[],[1436],{"type":57,"value":1437},"host: azure.ai.agent",{"type":57,"value":280},{"type":51,"tag":1257,"props":1440,"children":1441},{},[1442,1460,1470],{"type":51,"tag":1261,"props":1443,"children":1444},{},[1445,1450,1452,1458],{"type":51,"tag":99,"props":1446,"children":1447},{},[1448],{"type":57,"value":1449},"One azd agent service",{"type":57,"value":1451}," -> use that service's ",{"type":51,"tag":78,"props":1453,"children":1455},{"className":1454},[],[1456],{"type":57,"value":1457},"project",{"type":57,"value":1459}," folder as the agent root.",{"type":51,"tag":1261,"props":1461,"children":1462},{},[1463,1468],{"type":51,"tag":99,"props":1464,"children":1465},{},[1466],{"type":57,"value":1467},"Multiple azd agent services",{"type":57,"value":1469}," -> require the user to choose the target service\u002Ffolder.",{"type":51,"tag":1261,"props":1471,"children":1472},{},[1473,1478,1480,1485,1487,1492,1494,1500,1502],{"type":51,"tag":99,"props":1474,"children":1475},{},[1476],{"type":57,"value":1477},"No azd agent service",{"type":57,"value":1479}," -> search the workspace for ",{"type":51,"tag":78,"props":1481,"children":1483},{"className":1482},[],[1484],{"type":57,"value":1241},{"type":57,"value":1486}," folders that contain ",{"type":51,"tag":78,"props":1488,"children":1490},{"className":1489},[],[1491],{"type":57,"value":1289},{"type":57,"value":1493}," or ",{"type":51,"tag":78,"props":1495,"children":1497},{"className":1496},[],[1498],{"type":57,"value":1499},"agent-metadata.\u003Cenv>.yaml",{"type":57,"value":1501},".\n",{"type":51,"tag":1257,"props":1503,"children":1504},{},[1505,1515,1525],{"type":51,"tag":1261,"props":1506,"children":1507},{},[1508,1513],{"type":51,"tag":99,"props":1509,"children":1510},{},[1511],{"type":57,"value":1512},"One match",{"type":57,"value":1514}," -> use that agent root.",{"type":51,"tag":1261,"props":1516,"children":1517},{},[1518,1523],{"type":51,"tag":99,"props":1519,"children":1520},{},[1521],{"type":57,"value":1522},"Multiple matches",{"type":57,"value":1524}," -> require the user to choose the target agent folder.",{"type":51,"tag":1261,"props":1526,"children":1527},{},[1528,1533,1535,1540],{"type":51,"tag":99,"props":1529,"children":1530},{},[1531],{"type":57,"value":1532},"No matches",{"type":57,"value":1534}," -> for create\u002Fdeploy workflows, seed a new ",{"type":51,"tag":78,"props":1536,"children":1538},{"className":1537},[],[1539],{"type":57,"value":1241},{"type":57,"value":1541}," folder during setup; for all other workflows, stop and ask the user which agent source folder to initialize.",{"type":51,"tag":60,"props":1543,"children":1544},{},[1545,1547,1553,1555,1559],{"type":57,"value":1546},"After selecting an agent root, keep all local ",{"type":51,"tag":78,"props":1548,"children":1550},{"className":1549},[],[1551],{"type":57,"value":1552},".foundry",{"type":57,"value":1554}," cache inspection, source inspection, evaluator suggestions, dataset suggestions, and prompt-optimization context inside that folder only. Do ",{"type":51,"tag":99,"props":1556,"children":1557},{},[1558],{"type":57,"value":1379},{"type":57,"value":1560}," scan sibling agent folders unless the user explicitly switches roots.",{"type":51,"tag":1414,"props":1562,"children":1564},{"id":1563},"step-2-resolve-environment-and-deployment-context",[1565],{"type":57,"value":1566},"Step 2: Resolve Environment and Deployment Context",{"type":51,"tag":60,"props":1568,"children":1569},{},[1570,1572,1577],{"type":57,"value":1571},"If ",{"type":51,"tag":78,"props":1573,"children":1575},{"className":1574},[],[1576],{"type":57,"value":278},{"type":57,"value":1578}," is present, resolve the azd environment first:",{"type":51,"tag":1580,"props":1581,"children":1582},"ol",{},[1583,1588,1604,1615],{"type":51,"tag":1261,"props":1584,"children":1585},{},[1586],{"type":57,"value":1587},"Environment explicitly named by the user",{"type":51,"tag":1261,"props":1589,"children":1590},{},[1591,1597,1599],{"type":51,"tag":78,"props":1592,"children":1594},{"className":1593},[],[1595],{"type":57,"value":1596},"AZURE_ENV_NAME",{"type":57,"value":1598}," from ",{"type":51,"tag":78,"props":1600,"children":1602},{"className":1601},[],[1603],{"type":57,"value":1278},{"type":51,"tag":1261,"props":1605,"children":1606},{},[1607,1609],{"type":57,"value":1608},"azd default environment from ",{"type":51,"tag":78,"props":1610,"children":1612},{"className":1611},[],[1613],{"type":57,"value":1614},".azure\u002Fconfig.json",{"type":51,"tag":1261,"props":1616,"children":1617},{},[1618],{"type":57,"value":1619},"Environment already selected earlier in the session",{"type":51,"tag":60,"props":1621,"children":1622},{},[1623,1625,1630],{"type":57,"value":1624},"Run ",{"type":51,"tag":78,"props":1626,"children":1628},{"className":1627},[],[1629],{"type":57,"value":1278},{"type":57,"value":1631}," for the selected environment when project\u002Fdeployment values are not already known. Prefer azd values for deployment context:",{"type":51,"tag":145,"props":1633,"children":1634},{},[1635,1651],{"type":51,"tag":149,"props":1636,"children":1637},{},[1638],{"type":51,"tag":153,"props":1639,"children":1640},{},[1641,1646],{"type":51,"tag":157,"props":1642,"children":1643},{},[1644],{"type":57,"value":1645},"azd Variable",{"type":51,"tag":157,"props":1647,"children":1648},{},[1649],{"type":57,"value":1650},"Resolves To",{"type":51,"tag":173,"props":1652,"children":1653},{},[1654,1678,1695,1712,1736,1753],{"type":51,"tag":153,"props":1655,"children":1656},{},[1657,1673],{"type":51,"tag":180,"props":1658,"children":1659},{},[1660,1666,1667],{"type":51,"tag":78,"props":1661,"children":1663},{"className":1662},[],[1664],{"type":57,"value":1665},"AZURE_AI_PROJECT_ENDPOINT",{"type":57,"value":1493},{"type":51,"tag":78,"props":1668,"children":1670},{"className":1669},[],[1671],{"type":57,"value":1672},"AZURE_AIPROJECT_ENDPOINT",{"type":51,"tag":180,"props":1674,"children":1675},{},[1676],{"type":57,"value":1677},"Project endpoint",{"type":51,"tag":153,"props":1679,"children":1680},{},[1681,1690],{"type":51,"tag":180,"props":1682,"children":1683},{},[1684],{"type":51,"tag":78,"props":1685,"children":1687},{"className":1686},[],[1688],{"type":57,"value":1689},"AGENT_\u003CSERVICE>_NAME",{"type":51,"tag":180,"props":1691,"children":1692},{},[1693],{"type":57,"value":1694},"Agent name for the selected azd service",{"type":51,"tag":153,"props":1696,"children":1697},{},[1698,1707],{"type":51,"tag":180,"props":1699,"children":1700},{},[1701],{"type":51,"tag":78,"props":1702,"children":1704},{"className":1703},[],[1705],{"type":57,"value":1706},"AGENT_\u003CSERVICE>_VERSION",{"type":51,"tag":180,"props":1708,"children":1709},{},[1710],{"type":57,"value":1711},"Agent version for the selected azd service",{"type":51,"tag":153,"props":1713,"children":1714},{},[1715,1731],{"type":51,"tag":180,"props":1716,"children":1717},{},[1718,1724,1725],{"type":51,"tag":78,"props":1719,"children":1721},{"className":1720},[],[1722],{"type":57,"value":1723},"AZURE_CONTAINER_REGISTRY_NAME",{"type":57,"value":1493},{"type":51,"tag":78,"props":1726,"children":1728},{"className":1727},[],[1729],{"type":57,"value":1730},"AZURE_CONTAINER_REGISTRY_ENDPOINT",{"type":51,"tag":180,"props":1732,"children":1733},{},[1734],{"type":57,"value":1735},"ACR registry name \u002F image URL prefix",{"type":51,"tag":153,"props":1737,"children":1738},{},[1739,1748],{"type":51,"tag":180,"props":1740,"children":1741},{},[1742],{"type":51,"tag":78,"props":1743,"children":1745},{"className":1744},[],[1746],{"type":57,"value":1747},"APPLICATIONINSIGHTS_CONNECTION_STRING",{"type":51,"tag":180,"props":1749,"children":1750},{},[1751],{"type":57,"value":1752},"App Insights connection string for trace workflows",{"type":51,"tag":153,"props":1754,"children":1755},{},[1756,1786],{"type":51,"tag":180,"props":1757,"children":1758},{},[1759,1765,1766,1772,1773,1779,1780],{"type":51,"tag":78,"props":1760,"children":1762},{"className":1761},[],[1763],{"type":57,"value":1764},"AZURE_SUBSCRIPTION_ID",{"type":57,"value":1310},{"type":51,"tag":78,"props":1767,"children":1769},{"className":1768},[],[1770],{"type":57,"value":1771},"AZURE_RESOURCE_GROUP",{"type":57,"value":1310},{"type":51,"tag":78,"props":1774,"children":1776},{"className":1775},[],[1777],{"type":57,"value":1778},"AZURE_AI_ACCOUNT_NAME",{"type":57,"value":1310},{"type":51,"tag":78,"props":1781,"children":1783},{"className":1782},[],[1784],{"type":57,"value":1785},"AZURE_AI_PROJECT_NAME",{"type":51,"tag":180,"props":1787,"children":1788},{},[1789],{"type":57,"value":1790},"Azure resource lookup and Playground links",{"type":51,"tag":60,"props":1792,"children":1793},{},[1794,1796,1802],{"type":57,"value":1795},"When azd supplies these values, use them as the source of truth and do not copy them into ",{"type":51,"tag":78,"props":1797,"children":1799},{"className":1798},[],[1800],{"type":57,"value":1801},".foundry\u002Fagent-metadata*.yaml",{"type":57,"value":1803}," on metadata writes.",{"type":51,"tag":1414,"props":1805,"children":1807},{"id":1806},"step-3-select-metadata-overlay-and-resolve-environment",[1808],{"type":57,"value":1809},"Step 3: Select Metadata Overlay and Resolve Environment",{"type":51,"tag":60,"props":1811,"children":1812},{},[1813],{"type":57,"value":1814},"Inside the selected agent root, choose the metadata file in this order:",{"type":51,"tag":1580,"props":1816,"children":1817},{},[1818,1823,1836,1845],{"type":51,"tag":1261,"props":1819,"children":1820},{},[1821],{"type":57,"value":1822},"Metadata filename or path explicitly provided by the user or workflow",{"type":51,"tag":1261,"props":1824,"children":1825},{},[1826,1828,1834],{"type":57,"value":1827},"If an explicit environment is already known and ",{"type":51,"tag":78,"props":1829,"children":1831},{"className":1830},[],[1832],{"type":57,"value":1833},".foundry\u002Fagent-metadata.\u003Cenv>.yaml",{"type":57,"value":1835}," exists, use that file",{"type":51,"tag":1261,"props":1837,"children":1838},{},[1839],{"type":51,"tag":78,"props":1840,"children":1842},{"className":1841},[],[1843],{"type":57,"value":1844},".foundry\u002Fagent-metadata.yaml",{"type":51,"tag":1261,"props":1846,"children":1847},{},[1848],{"type":57,"value":1849},"If multiple metadata files remain and no rule above selects one, prompt the user to choose",{"type":51,"tag":60,"props":1851,"children":1852},{},[1853],{"type":57,"value":1854},"Read the selected metadata file and resolve any remaining environment choice in this order:",{"type":51,"tag":1580,"props":1856,"children":1857},{},[1858,1862,1867,1871],{"type":51,"tag":1261,"props":1859,"children":1860},{},[1861],{"type":57,"value":1587},{"type":51,"tag":1261,"props":1863,"children":1864},{},[1865],{"type":57,"value":1866},"If the selected metadata file defines exactly one environment, use it",{"type":51,"tag":1261,"props":1868,"children":1869},{},[1870],{"type":57,"value":1619},{"type":51,"tag":1261,"props":1872,"children":1873},{},[1874,1880],{"type":51,"tag":78,"props":1875,"children":1877},{"className":1876},[],[1878],{"type":57,"value":1879},"defaultEnvironment",{"type":57,"value":1881}," from metadata",{"type":51,"tag":60,"props":1883,"children":1884},{},[1885],{"type":57,"value":1886},"If the selected metadata file still contains multiple environments and none of the rules above selects one, prompt the user to choose. Keep the selected agent root, metadata file, environment, and whether context came from azd or metadata visible in every workflow summary.",{"type":51,"tag":60,"props":1888,"children":1889},{},[1890,1892,1898,1900,1906,1908,1913,1915,1920,1922,1928,1930,1936,1938,1944,1946,1952,1954,1959,1961,1967,1969,1975,1976,1982,1983,1989,1990,1996,1997,2003],{"type":57,"value":1891},"If the selected environment exposes older ",{"type":51,"tag":78,"props":1893,"children":1895},{"className":1894},[],[1896],{"type":57,"value":1897},"testSuites[]",{"type":57,"value":1899}," metadata but not ",{"type":51,"tag":78,"props":1901,"children":1903},{"className":1902},[],[1904],{"type":57,"value":1905},"evaluationSuites[]",{"type":57,"value":1907},", treat ",{"type":51,"tag":78,"props":1909,"children":1911},{"className":1910},[],[1912],{"type":57,"value":1897},{"type":57,"value":1914}," as the source for this session and normalize each entry in memory to the ",{"type":51,"tag":78,"props":1916,"children":1918},{"className":1917},[],[1919],{"type":57,"value":1905},{"type":57,"value":1921}," shape before continuing. If the metadata is older still and only exposes legacy ",{"type":51,"tag":78,"props":1923,"children":1925},{"className":1924},[],[1926],{"type":57,"value":1927},"testCases[]",{"type":57,"value":1929},", normalize that list the same way. Preserve dataset and evaluator fields, keep any existing ",{"type":51,"tag":78,"props":1931,"children":1933},{"className":1932},[],[1934],{"type":57,"value":1935},"tags",{"type":57,"value":1937},", and map legacy ",{"type":51,"tag":78,"props":1939,"children":1941},{"className":1940},[],[1942],{"type":57,"value":1943},"priority",{"type":57,"value":1945}," to ",{"type":51,"tag":78,"props":1947,"children":1949},{"className":1948},[],[1950],{"type":57,"value":1951},"tags.tier",{"type":57,"value":1953}," only when ",{"type":51,"tag":78,"props":1955,"children":1957},{"className":1956},[],[1958],{"type":57,"value":1951},{"type":57,"value":1960}," is missing: ",{"type":51,"tag":78,"props":1962,"children":1964},{"className":1963},[],[1965],{"type":57,"value":1966},"P0",{"type":57,"value":1968}," -> ",{"type":51,"tag":78,"props":1970,"children":1972},{"className":1971},[],[1973],{"type":57,"value":1974},"smoke",{"type":57,"value":1310},{"type":51,"tag":78,"props":1977,"children":1979},{"className":1978},[],[1980],{"type":57,"value":1981},"P1",{"type":57,"value":1968},{"type":51,"tag":78,"props":1984,"children":1986},{"className":1985},[],[1987],{"type":57,"value":1988},"regression",{"type":57,"value":1310},{"type":51,"tag":78,"props":1991,"children":1993},{"className":1992},[],[1994],{"type":57,"value":1995},"P2",{"type":57,"value":1968},{"type":51,"tag":78,"props":1998,"children":2000},{"className":1999},[],[2001],{"type":57,"value":2002},"coverage",{"type":57,"value":280},{"type":51,"tag":1414,"props":2005,"children":2007},{"id":2006},"step-4-resolve-evalyaml-local-evaluation-intent",[2008],{"type":57,"value":2009},"Step 4: Resolve eval.yaml Local Evaluation Intent",{"type":51,"tag":60,"props":2011,"children":2012},{},[2013,2014,2020],{"type":57,"value":1571},{"type":51,"tag":78,"props":2015,"children":2017},{"className":2016},[],[2018],{"type":57,"value":2019},"eval.yaml",{"type":57,"value":2021}," exists in the selected agent root, parse it before generating new suites:",{"type":51,"tag":1257,"props":2023,"children":2024},{},[2025,2036,2055,2074,2085,2104,2122],{"type":51,"tag":1261,"props":2026,"children":2027},{},[2028,2034],{"type":51,"tag":78,"props":2029,"children":2031},{"className":2030},[],[2032],{"type":57,"value":2033},"agent.name",{"type":57,"value":2035}," -> target agent candidate; verify it matches the selected azd\u002Fmetadata agent before using it.",{"type":51,"tag":1261,"props":2037,"children":2038},{},[2039,2045,2047,2053],{"type":51,"tag":78,"props":2040,"children":2042},{"className":2041},[],[2043],{"type":57,"value":2044},"dataset.local_uri",{"type":57,"value":2046}," -> local seed dataset candidate; legacy ",{"type":51,"tag":78,"props":2048,"children":2050},{"className":2049},[],[2051],{"type":57,"value":2052},"dataset_file",{"type":57,"value":2054}," may be normalized in memory.",{"type":51,"tag":1261,"props":2056,"children":2057},{},[2058,2064,2066,2072],{"type":51,"tag":78,"props":2059,"children":2061},{"className":2060},[],[2062],{"type":57,"value":2063},"dataset.name",{"type":57,"value":2065}," \u002F ",{"type":51,"tag":78,"props":2067,"children":2069},{"className":2068},[],[2070],{"type":57,"value":2071},"dataset.version",{"type":57,"value":2073}," -> registered dataset candidate.",{"type":51,"tag":1261,"props":2075,"children":2076},{},[2077,2083],{"type":51,"tag":78,"props":2078,"children":2080},{"className":2079},[],[2081],{"type":57,"value":2082},"validation_dataset",{"type":57,"value":2084}," -> optional validation dataset candidate.",{"type":51,"tag":1261,"props":2086,"children":2087},{},[2088,2094,2096,2102],{"type":51,"tag":78,"props":2089,"children":2091},{"className":2090},[],[2092],{"type":57,"value":2093},"evaluators[]",{"type":57,"value":2095}," -> candidate Foundry evaluator names; verify with ",{"type":51,"tag":78,"props":2097,"children":2099},{"className":2098},[],[2100],{"type":57,"value":2101},"evaluator_catalog_get",{"type":57,"value":2103}," before treating them as remote evaluators.",{"type":51,"tag":1261,"props":2105,"children":2106},{},[2107,2113,2115,2121],{"type":51,"tag":78,"props":2108,"children":2110},{"className":2109},[],[2111],{"type":57,"value":2112},"name",{"type":57,"value":2114}," -> local eval\u002Fsuite candidate; verify remotely before persisting as ",{"type":51,"tag":78,"props":2116,"children":2118},{"className":2117},[],[2119],{"type":57,"value":2120},"suiteName",{"type":57,"value":280},{"type":51,"tag":1261,"props":2123,"children":2124},{},[2125,2131,2132,2138,2139,2145,2146,2152,2153,2159,2160,2166,2167,2173,2174,2180],{"type":51,"tag":78,"props":2126,"children":2128},{"className":2127},[],[2129],{"type":57,"value":2130},"options.eval_model",{"type":57,"value":1310},{"type":51,"tag":78,"props":2133,"children":2135},{"className":2134},[],[2136],{"type":57,"value":2137},"options.optimization_model",{"type":57,"value":1310},{"type":51,"tag":78,"props":2140,"children":2142},{"className":2141},[],[2143],{"type":57,"value":2144},"options.max_candidates",{"type":57,"value":1310},{"type":51,"tag":78,"props":2147,"children":2149},{"className":2148},[],[2150],{"type":57,"value":2151},"options.optimization_config.model_search_space",{"type":57,"value":1310},{"type":51,"tag":78,"props":2154,"children":2156},{"className":2155},[],[2157],{"type":57,"value":2158},"options.pass_threshold",{"type":57,"value":1310},{"type":51,"tag":78,"props":2161,"children":2163},{"className":2162},[],[2164],{"type":57,"value":2165},"max_samples",{"type":57,"value":1310},{"type":51,"tag":78,"props":2168,"children":2170},{"className":2169},[],[2171],{"type":57,"value":2172},"trace_days",{"type":57,"value":1318},{"type":51,"tag":78,"props":2175,"children":2177},{"className":2176},[],[2178],{"type":57,"value":2179},"generation_instruction",{"type":57,"value":2181}," -> setup defaults.",{"type":51,"tag":60,"props":2183,"children":2184},{},[2185,2187,2192,2194,2199],{"type":57,"value":2186},"Treat ",{"type":51,"tag":78,"props":2188,"children":2190},{"className":2189},[],[2191],{"type":57,"value":2019},{"type":57,"value":2193}," as local evaluation intent, not proof that a Foundry suite exists. Persist synced suite\u002Fdataset\u002Fevaluator references to ",{"type":51,"tag":78,"props":2195,"children":2197},{"className":2196},[],[2198],{"type":57,"value":1552},{"type":57,"value":2200}," only after remote lookup or registration succeeds.",{"type":51,"tag":1414,"props":2202,"children":2204},{"id":2203},"step-5-resolve-common-configuration",[2205],{"type":57,"value":2206},"Step 5: Resolve Common Configuration",{"type":51,"tag":60,"props":2208,"children":2209},{},[2210],{"type":57,"value":2211},"Layer sources in this order:",{"type":51,"tag":1580,"props":2213,"children":2214},{},[2215,2220,2225,2235,2252],{"type":51,"tag":1261,"props":2216,"children":2217},{},[2218],{"type":57,"value":2219},"Explicit user input and values already selected in the session",{"type":51,"tag":1261,"props":2221,"children":2222},{},[2223],{"type":57,"value":2224},"azd environment values for deployment context",{"type":51,"tag":1261,"props":2226,"children":2227},{},[2228,2233],{"type":51,"tag":78,"props":2229,"children":2231},{"className":2230},[],[2232],{"type":57,"value":1801},{"type":57,"value":2234}," overlay values and remote suite\u002Fcache references",{"type":51,"tag":1261,"props":2236,"children":2237},{},[2238,2243,2245,2250],{"type":51,"tag":78,"props":2239,"children":2241},{"className":2240},[],[2242],{"type":57,"value":278},{"type":57,"value":2244}," and ",{"type":51,"tag":78,"props":2246,"children":2248},{"className":2247},[],[2249],{"type":57,"value":2019},{"type":57,"value":2251}," local source configuration",{"type":51,"tag":1261,"props":2253,"children":2254},{},[2255],{"type":57,"value":2256},"User prompts for anything still missing",{"type":51,"tag":60,"props":2258,"children":2259},{},[2260],{"type":57,"value":2261},"If azd and metadata both provide the same value and they differ, stop and ask which source is authoritative. If they match, use the azd value and avoid rewriting the duplicate on future metadata writes.",{"type":51,"tag":145,"props":2263,"children":2264},{},[2265,2286],{"type":51,"tag":149,"props":2266,"children":2267},{},[2268],{"type":51,"tag":153,"props":2269,"children":2270},{},[2271,2276,2281],{"type":51,"tag":157,"props":2272,"children":2273},{},[2274],{"type":57,"value":2275},"Effective Value",{"type":51,"tag":157,"props":2277,"children":2278},{},[2279],{"type":57,"value":2280},"Preferred Source",{"type":51,"tag":157,"props":2282,"children":2283},{},[2284],{"type":57,"value":2285},"Used By",{"type":51,"tag":173,"props":2287,"children":2288},{},[2289,2306,2329,2345,2366],{"type":51,"tag":153,"props":2290,"children":2291},{},[2292,2296,2301],{"type":51,"tag":180,"props":2293,"children":2294},{},[2295],{"type":57,"value":1677},{"type":51,"tag":180,"props":2297,"children":2298},{},[2299],{"type":57,"value":2300},"azd env",{"type":51,"tag":180,"props":2302,"children":2303},{},[2304],{"type":57,"value":2305},"deploy, invoke, observe, trace, troubleshoot",{"type":51,"tag":153,"props":2307,"children":2308},{},[2309,2314,2324],{"type":51,"tag":180,"props":2310,"children":2311},{},[2312],{"type":57,"value":2313},"Agent name\u002Fversion",{"type":51,"tag":180,"props":2315,"children":2316},{},[2317,2319],{"type":57,"value":2318},"azd agent variables, then ",{"type":51,"tag":78,"props":2320,"children":2322},{"className":2321},[],[2323],{"type":57,"value":278},{"type":51,"tag":180,"props":2325,"children":2326},{},[2327],{"type":57,"value":2328},"invoke, observe, trace, troubleshoot",{"type":51,"tag":153,"props":2330,"children":2331},{},[2332,2337,2341],{"type":51,"tag":180,"props":2333,"children":2334},{},[2335],{"type":57,"value":2336},"ACR",{"type":51,"tag":180,"props":2338,"children":2339},{},[2340],{"type":57,"value":2300},{"type":51,"tag":180,"props":2342,"children":2343},{},[2344],{"type":57,"value":187},{"type":51,"tag":153,"props":2346,"children":2347},{},[2348,2353,2361],{"type":51,"tag":180,"props":2349,"children":2350},{},[2351],{"type":57,"value":2352},"Evaluation suites and cache paths",{"type":51,"tag":180,"props":2354,"children":2355},{},[2356],{"type":51,"tag":78,"props":2357,"children":2359},{"className":2358},[],[2360],{"type":57,"value":1801},{"type":51,"tag":180,"props":2362,"children":2363},{},[2364],{"type":57,"value":2365},"observe, eval-datasets",{"type":51,"tag":153,"props":2367,"children":2368},{},[2369,2374,2382],{"type":51,"tag":180,"props":2370,"children":2371},{},[2372],{"type":57,"value":2373},"Local seed dataset\u002Fevaluator intent",{"type":51,"tag":180,"props":2375,"children":2376},{},[2377],{"type":51,"tag":78,"props":2378,"children":2380},{"className":2379},[],[2381],{"type":57,"value":2019},{"type":51,"tag":180,"props":2383,"children":2384},{},[2385],{"type":57,"value":2365},{"type":51,"tag":1414,"props":2387,"children":2389},{"id":2388},"step-6-write-metadata-overlay-createdeployobserve-only",[2390],{"type":57,"value":2391},"Step 6: Write Metadata Overlay (Create\u002FDeploy\u002FObserve Only)",{"type":51,"tag":60,"props":2393,"children":2394},{},[2395],{"type":57,"value":2396},"On any metadata write (deploy, auto-setup, dataset refresh, or trace-to-dataset update), persist only non-derivable overlay\u002Fcache state in the selected metadata file:",{"type":51,"tag":1257,"props":2398,"children":2399},{},[2400,2420,2430],{"type":51,"tag":1261,"props":2401,"children":2402},{},[2403,2405,2411,2412,2418],{"type":57,"value":2404},"azd binding (",{"type":51,"tag":78,"props":2406,"children":2408},{"className":2407},[],[2409],{"type":57,"value":2410},"azd.environmentName",{"type":57,"value":1310},{"type":51,"tag":78,"props":2413,"children":2415},{"className":2414},[],[2416],{"type":57,"value":2417},"azd.service",{"type":57,"value":2419},") when useful for future resolution",{"type":51,"tag":1261,"props":2421,"children":2422},{},[2423,2428],{"type":51,"tag":78,"props":2424,"children":2426},{"className":2425},[],[2427],{"type":57,"value":1905},{"type":57,"value":2429}," with remote suite\u002Fdataset\u002Fevaluator references and local cache paths",{"type":51,"tag":1261,"props":2431,"children":2432},{},[2433,2439],{"type":51,"tag":78,"props":2434,"children":2436},{"className":2435},[],[2437],{"type":57,"value":2438},"lastEval",{"type":57,"value":2440},", result files, comparison summaries, or explicit non-azd overrides",{"type":51,"tag":60,"props":2442,"children":2443},{},[2444,2446,2451,2453,2458,2460,2465,2467,2472],{"type":57,"value":2445},"Do not copy azd-owned deployment values into metadata when azd already provides them. If the selected file is a preferred single-environment file, rewrite only that one environment block. If the selected file is a legacy multi-environment file, rewrite only the selected environment block. Never copy or merge environments across sibling metadata files automatically. If the selected environment still uses older ",{"type":51,"tag":78,"props":2447,"children":2449},{"className":2448},[],[2450],{"type":57,"value":1897},{"type":57,"value":2452}," or legacy ",{"type":51,"tag":78,"props":2454,"children":2456},{"className":2455},[],[2457],{"type":57,"value":1927},{"type":57,"value":2459},", rewrite it to ",{"type":51,"tag":78,"props":2461,"children":2463},{"className":2462},[],[2464],{"type":57,"value":1905},{"type":57,"value":2466}," and remove migrated ",{"type":51,"tag":78,"props":2468,"children":2470},{"className":2469},[],[2471],{"type":57,"value":1943},{"type":57,"value":2473}," fields from the rewritten entries.",{"type":51,"tag":1414,"props":2475,"children":2477},{"id":2476},"step-7-collect-missing-values",[2478],{"type":57,"value":2479},"Step 7: Collect Missing Values",{"type":51,"tag":60,"props":2481,"children":2482},{},[2483,2485,2491,2492,2498,2500,2505],{"type":57,"value":2484},"Use the ",{"type":51,"tag":78,"props":2486,"children":2488},{"className":2487},[],[2489],{"type":57,"value":2490},"ask_user",{"type":57,"value":1493},{"type":51,"tag":78,"props":2493,"children":2495},{"className":2494},[],[2496],{"type":57,"value":2497},"askQuestions",{"type":57,"value":2499}," tool ",{"type":51,"tag":99,"props":2501,"children":2502},{},[2503],{"type":57,"value":2504},"only for values not resolved",{"type":57,"value":2506}," from the user's message, session context, metadata, or azd bootstrap. Common values skills may need:",{"type":51,"tag":1257,"props":2508,"children":2509},{},[2510,2525,2547,2572,2581],{"type":51,"tag":1261,"props":2511,"children":2512},{},[2513,2518,2520],{"type":51,"tag":99,"props":2514,"children":2515},{},[2516],{"type":57,"value":2517},"Agent root",{"type":57,"value":2519}," — Target azd service project folder or folder containing ",{"type":51,"tag":78,"props":2521,"children":2523},{"className":2522},[],[2524],{"type":57,"value":1801},{"type":51,"tag":1261,"props":2526,"children":2527},{},[2528,2533,2535,2540,2542],{"type":51,"tag":99,"props":2529,"children":2530},{},[2531],{"type":57,"value":2532},"Metadata file",{"type":57,"value":2534}," — ",{"type":51,"tag":78,"props":2536,"children":2538},{"className":2537},[],[2539],{"type":57,"value":1289},{"type":57,"value":2541}," for local\u002Fdev, or an explicit sidecar such as ",{"type":51,"tag":78,"props":2543,"children":2545},{"className":2544},[],[2546],{"type":57,"value":1297},{"type":51,"tag":1261,"props":2548,"children":2549},{},[2550,2555,2557,2563,2564,2570],{"type":51,"tag":99,"props":2551,"children":2552},{},[2553],{"type":57,"value":2554},"Environment",{"type":57,"value":2556}," — azd environment, ",{"type":51,"tag":78,"props":2558,"children":2560},{"className":2559},[],[2561],{"type":57,"value":2562},"dev",{"type":57,"value":1310},{"type":51,"tag":78,"props":2565,"children":2567},{"className":2566},[],[2568],{"type":57,"value":2569},"prod",{"type":57,"value":2571},", or another environment key from metadata",{"type":51,"tag":1261,"props":2573,"children":2574},{},[2575,2579],{"type":51,"tag":99,"props":2576,"children":2577},{},[2578],{"type":57,"value":1677},{"type":57,"value":2580}," — AI Foundry project endpoint URL",{"type":51,"tag":1261,"props":2582,"children":2583},{},[2584,2589],{"type":51,"tag":99,"props":2585,"children":2586},{},[2587],{"type":57,"value":2588},"Agent name",{"type":57,"value":2590}," — Name of the target agent",{"type":51,"tag":92,"props":2592,"children":2593},{},[2594],{"type":51,"tag":60,"props":2595,"children":2596},{},[2597,2598,2602],{"type":57,"value":729},{"type":51,"tag":99,"props":2599,"children":2600},{},[2601],{"type":57,"value":734},{"type":57,"value":2603}," If the user already provides the agent path, environment, project endpoint, or agent name, extract it directly — do not ask again.",{"type":51,"tag":66,"props":2605,"children":2607},{"id":2606},"agent-agent-types",[2608],{"type":57,"value":2609},"Agent: Agent Types",{"type":51,"tag":60,"props":2611,"children":2612},{},[2613],{"type":57,"value":2614},"All agent skills support two agent types:",{"type":51,"tag":145,"props":2616,"children":2617},{},[2618,2639],{"type":51,"tag":149,"props":2619,"children":2620},{},[2621],{"type":51,"tag":153,"props":2622,"children":2623},{},[2624,2629,2634],{"type":51,"tag":157,"props":2625,"children":2626},{},[2627],{"type":57,"value":2628},"Type",{"type":51,"tag":157,"props":2630,"children":2631},{},[2632],{"type":57,"value":2633},"Kind",{"type":51,"tag":157,"props":2635,"children":2636},{},[2637],{"type":57,"value":2638},"Description",{"type":51,"tag":173,"props":2640,"children":2641},{},[2642,2667],{"type":51,"tag":153,"props":2643,"children":2644},{},[2645,2653,2662],{"type":51,"tag":180,"props":2646,"children":2647},{},[2648],{"type":51,"tag":99,"props":2649,"children":2650},{},[2651],{"type":57,"value":2652},"Prompt",{"type":51,"tag":180,"props":2654,"children":2655},{},[2656],{"type":51,"tag":78,"props":2657,"children":2659},{"className":2658},[],[2660],{"type":57,"value":2661},"\"prompt\"",{"type":51,"tag":180,"props":2663,"children":2664},{},[2665],{"type":57,"value":2666},"LLM-based agents backed by a model deployment",{"type":51,"tag":153,"props":2668,"children":2669},{},[2670,2678,2687],{"type":51,"tag":180,"props":2671,"children":2672},{},[2673],{"type":51,"tag":99,"props":2674,"children":2675},{},[2676],{"type":57,"value":2677},"Hosted",{"type":51,"tag":180,"props":2679,"children":2680},{},[2681],{"type":51,"tag":78,"props":2682,"children":2684},{"className":2683},[],[2685],{"type":57,"value":2686},"\"hosted\"",{"type":51,"tag":180,"props":2688,"children":2689},{},[2690],{"type":57,"value":2691},"Container-based agents running custom code",{"type":51,"tag":60,"props":2693,"children":2694},{},[2695,2697,2702,2704,2709,2711,2717],{"type":57,"value":2696},"Treat an ",{"type":51,"tag":78,"props":2698,"children":2700},{"className":2699},[],[2701],{"type":57,"value":278},{"type":57,"value":2703}," service with ",{"type":51,"tag":78,"props":2705,"children":2707},{"className":2706},[],[2708],{"type":57,"value":1437},{"type":57,"value":2710}," as Hosted. Use ",{"type":51,"tag":78,"props":2712,"children":2714},{"className":2713},[],[2715],{"type":57,"value":2716},"agent_get",{"type":57,"value":2718}," only when the type cannot be resolved from project context.",{"type":51,"tag":66,"props":2720,"children":2722},{"id":2721},"tool-usage-conventions",[2723],{"type":57,"value":2724},"Tool Usage Conventions",{"type":51,"tag":1257,"props":2726,"children":2727},{},[2728,2745,2764,2769],{"type":51,"tag":1261,"props":2729,"children":2730},{},[2731,2732,2737,2738,2743],{"type":57,"value":2484},{"type":51,"tag":78,"props":2733,"children":2735},{"className":2734},[],[2736],{"type":57,"value":2490},{"type":57,"value":1493},{"type":51,"tag":78,"props":2739,"children":2741},{"className":2740},[],[2742],{"type":57,"value":2497},{"type":57,"value":2744}," tool whenever collecting information from the user",{"type":51,"tag":1261,"props":2746,"children":2747},{},[2748,2749,2755,2756,2762],{"type":57,"value":2484},{"type":51,"tag":78,"props":2750,"children":2752},{"className":2751},[],[2753],{"type":57,"value":2754},"task",{"type":57,"value":1493},{"type":51,"tag":78,"props":2757,"children":2759},{"className":2758},[],[2760],{"type":57,"value":2761},"runSubagent",{"type":57,"value":2763}," tool to delegate long-running or independent sub-tasks (e.g., env var scanning, status polling, Dockerfile generation)",{"type":51,"tag":1261,"props":2765,"children":2766},{},[2767],{"type":57,"value":2768},"Prefer azd for Hosted Agents and Foundry MCP for Prompt Agents.",{"type":51,"tag":1261,"props":2770,"children":2771},{},[2772],{"type":57,"value":2773},"Reference official Microsoft documentation URLs instead of embedding CLI command syntax",{"type":51,"tag":66,"props":2775,"children":2777},{"id":2776},"additional-resources",[2778],{"type":57,"value":2779},"Additional Resources",{"type":51,"tag":1257,"props":2781,"children":2782},{},[2783,2794],{"type":51,"tag":1261,"props":2784,"children":2785},{},[2786],{"type":51,"tag":118,"props":2787,"children":2791},{"href":2788,"rel":2789},"https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fai-foundry\u002Fagents\u002Fconcepts\u002Fhosted-agents?view=foundry",[2790],"nofollow",[2792],{"type":57,"value":2793},"Foundry Hosted Agents",{"type":51,"tag":1261,"props":2795,"children":2796},{},[2797],{"type":51,"tag":118,"props":2798,"children":2801},{"href":2799,"rel":2800},"https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fai-foundry\u002Fagents\u002Fconcepts\u002Fruntime-components?view=foundry",[2790],[2802],{"type":57,"value":2803},"Foundry Agent Runtime Components",{"type":51,"tag":66,"props":2805,"children":2807},{"id":2806},"sdk-quick-reference",[2808],{"type":57,"value":2809},"SDK Quick Reference",{"type":51,"tag":1257,"props":2811,"children":2812},{},[2813],{"type":51,"tag":1261,"props":2814,"children":2815},{},[2816],{"type":51,"tag":118,"props":2817,"children":2819},{"href":2818},"references\u002Fsdk\u002Ffoundry-sdk-py.md",[2820],{"type":57,"value":2821},"Python",{"type":51,"tag":66,"props":2823,"children":2825},{"id":2824},"network-isolation-errors",[2826],{"type":57,"value":2827},"Network Isolation Errors",{"type":51,"tag":60,"props":2829,"children":2830},{},[2831,2833,2838,2840,2845,2846,2852,2854,2860],{"type":57,"value":2832},"Applies to ",{"type":51,"tag":99,"props":2834,"children":2835},{},[2836],{"type":57,"value":2837},"any",{"type":57,"value":2839}," call against a Foundry project or its parent Foundry account — Foundry MCP tools, ",{"type":51,"tag":78,"props":2841,"children":2843},{"className":2842},[],[2844],{"type":57,"value":270},{"type":57,"value":1310},{"type":51,"tag":78,"props":2847,"children":2849},{"className":2848},[],[2850],{"type":57,"value":2851},"az",{"type":57,"value":2853}," CLI, ",{"type":51,"tag":78,"props":2855,"children":2857},{"className":2856},[],[2858],{"type":57,"value":2859},"curl",{"type":57,"value":2861},", REST, or SDK.",{"type":51,"tag":60,"props":2863,"children":2864},{},[2865,2867,2873,2874,2880,2881,2887,2889,2895,2896,2902],{"type":57,"value":2866},"If an error matches ",{"type":51,"tag":78,"props":2868,"children":2870},{"className":2869},[],[2871],{"type":57,"value":2872},"Public access is disabled",{"type":57,"value":2065},{"type":51,"tag":78,"props":2875,"children":2877},{"className":2876},[],[2878],{"type":57,"value":2879},"PublicNetworkAccessDisabled",{"type":57,"value":2065},{"type":51,"tag":78,"props":2882,"children":2884},{"className":2883},[],[2885],{"type":57,"value":2886},"403 Forbidden",{"type":57,"value":2888}," from a private endpoint \u002F connection timeout \u002F the project endpoint FQDN resolves to a public IP, this typically means the parent Foundry account has ",{"type":51,"tag":78,"props":2890,"children":2892},{"className":2891},[],[2893],{"type":57,"value":2894},"publicNetworkAccess=Disabled",{"type":57,"value":1493},{"type":51,"tag":78,"props":2897,"children":2899},{"className":2898},[],[2900],{"type":57,"value":2901},"Enabled from selected IP addresses",{"type":57,"value":2903},", and the current shell is outside its VNet.",{"type":51,"tag":60,"props":2905,"children":2906},{},[2907],{"type":57,"value":2908},"Only if the error is ambiguous, confirm against the Foundry account using a management-plane call (works from anywhere with reader access):",{"type":51,"tag":1245,"props":2910,"children":2914},{"className":2911,"code":2912,"language":2913,"meta":1250,"style":1250},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","az cognitiveservices account show \\\n  --name \u003Caccount> --resource-group \u003Crg> \\\n  --query \"properties.{publicNetworkAccess:publicNetworkAccess, networkAcls:networkAcls, privateEndpointConnections:privateEndpointConnections[].properties.privateLinkServiceConnectionState.status}\"\n","bash",[2915],{"type":51,"tag":78,"props":2916,"children":2917},{"__ignoreMap":1250},[2918,2951,3008],{"type":51,"tag":2919,"props":2920,"children":2923},"span",{"class":2921,"line":2922},"line",1,[2924,2929,2935,2940,2945],{"type":51,"tag":2919,"props":2925,"children":2927},{"style":2926},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[2928],{"type":57,"value":2851},{"type":51,"tag":2919,"props":2930,"children":2932},{"style":2931},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[2933],{"type":57,"value":2934}," cognitiveservices",{"type":51,"tag":2919,"props":2936,"children":2937},{"style":2931},[2938],{"type":57,"value":2939}," account",{"type":51,"tag":2919,"props":2941,"children":2942},{"style":2931},[2943],{"type":57,"value":2944}," show",{"type":51,"tag":2919,"props":2946,"children":2948},{"style":2947},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[2949],{"type":57,"value":2950}," \\\n",{"type":51,"tag":2919,"props":2952,"children":2954},{"class":2921,"line":2953},2,[2955,2960,2966,2971,2976,2981,2986,2990,2995,3000,3004],{"type":51,"tag":2919,"props":2956,"children":2957},{"style":2931},[2958],{"type":57,"value":2959},"  --name",{"type":51,"tag":2919,"props":2961,"children":2963},{"style":2962},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[2964],{"type":57,"value":2965}," \u003C",{"type":51,"tag":2919,"props":2967,"children":2968},{"style":2931},[2969],{"type":57,"value":2970},"accoun",{"type":51,"tag":2919,"props":2972,"children":2973},{"style":2947},[2974],{"type":57,"value":2975},"t",{"type":51,"tag":2919,"props":2977,"children":2978},{"style":2962},[2979],{"type":57,"value":2980},">",{"type":51,"tag":2919,"props":2982,"children":2983},{"style":2931},[2984],{"type":57,"value":2985}," --resource-group",{"type":51,"tag":2919,"props":2987,"children":2988},{"style":2962},[2989],{"type":57,"value":2965},{"type":51,"tag":2919,"props":2991,"children":2992},{"style":2931},[2993],{"type":57,"value":2994},"r",{"type":51,"tag":2919,"props":2996,"children":2997},{"style":2947},[2998],{"type":57,"value":2999},"g",{"type":51,"tag":2919,"props":3001,"children":3002},{"style":2962},[3003],{"type":57,"value":2980},{"type":51,"tag":2919,"props":3005,"children":3006},{"style":2947},[3007],{"type":57,"value":2950},{"type":51,"tag":2919,"props":3009,"children":3011},{"class":2921,"line":3010},3,[3012,3017,3022,3027],{"type":51,"tag":2919,"props":3013,"children":3014},{"style":2931},[3015],{"type":57,"value":3016},"  --query",{"type":51,"tag":2919,"props":3018,"children":3019},{"style":2962},[3020],{"type":57,"value":3021}," \"",{"type":51,"tag":2919,"props":3023,"children":3024},{"style":2931},[3025],{"type":57,"value":3026},"properties.{publicNetworkAccess:publicNetworkAccess, networkAcls:networkAcls, privateEndpointConnections:privateEndpointConnections[].properties.privateLinkServiceConnectionState.status}",{"type":51,"tag":2919,"props":3028,"children":3029},{"style":2962},[3030],{"type":57,"value":3031},"\"\n",{"type":51,"tag":60,"props":3033,"children":3034},{},[3035,3041,3043,3049,3051,3057,3058,3064,3066,3072,3073,3079],{"type":51,"tag":78,"props":3036,"children":3038},{"className":3037},[],[3039],{"type":57,"value":3040},"publicNetworkAccess: \"Disabled\"",{"type":57,"value":3042}," — or ",{"type":51,"tag":78,"props":3044,"children":3046},{"className":3045},[],[3047],{"type":57,"value":3048},"\"Enabled\"",{"type":57,"value":3050}," together with non-empty ",{"type":51,"tag":78,"props":3052,"children":3054},{"className":3053},[],[3055],{"type":57,"value":3056},"networkAcls.ipRules",{"type":57,"value":2065},{"type":51,"tag":78,"props":3059,"children":3061},{"className":3060},[],[3062],{"type":57,"value":3063},"virtualNetworkRules",{"type":57,"value":3065}," — confirms isolation. If ",{"type":51,"tag":78,"props":3067,"children":3069},{"className":3068},[],[3070],{"type":57,"value":3071},"publicNetworkAccess: \"Enabled\"",{"type":57,"value":2244},{"type":51,"tag":78,"props":3074,"children":3076},{"className":3075},[],[3077],{"type":57,"value":3078},"networkAcls",{"type":57,"value":3080}," is empty, the failure is a caller-side network issue (e.g. Private DNS resolving the FQDN to a public IP from inside a VNet with a private endpoint), not an account-config issue.",{"type":51,"tag":60,"props":3082,"children":3083},{},[3084,3086,3093],{"type":57,"value":3085},"If it's indeed a network isolation issue, supported connection options are documented in ",{"type":51,"tag":118,"props":3087,"children":3090},{"href":3088,"rel":3089},"https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Ffoundry\u002Fhow-to\u002Fconfigure-private-link#choose-a-secure-connection-method-to-foundry",[2790],[3091],{"type":57,"value":3092},"Choose a secure connection method to Foundry",{"type":57,"value":280},{"type":51,"tag":92,"props":3095,"children":3096},{},[3097],{"type":51,"tag":60,"props":3098,"children":3099},{},[3100],{"type":57,"value":3101},"ℹ️ Foundry MCP tools cannot reach a VNet-isolated project even from inside the VNet.",{"type":51,"tag":3103,"props":3104,"children":3105},"style",{},[3106],{"type":57,"value":3107},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":3109,"total":3237},[3110,3128,3142,3163,3184,3201,3219],{"slug":3111,"name":3111,"fn":3112,"description":3113,"org":3114,"tags":3115,"stars":31,"repoUrl":32,"updatedAt":3127},"airunway-aks-setup","set up AI Runway on Azure Kubernetes Service","Set up AI Runway on AKS — from bare cluster to running model. Covers cluster verification, controller install, GPU assessment, provider setup, and first deployment. WHEN: \"setup AI Runway\", \"onboard AKS cluster\", \"install AI Runway\", \"airunway setup\", \"deploy model to AKS\", \"GPU inference on AKS\", \"KAITO setup on AKS\", \"run LLM on AKS\", \"vLLM on AKS\", \"set up model serving on AKS\", \"AI Runway controller\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3116,3119,3120,3121,3124],{"name":3117,"slug":3118,"type":15},"AI Infrastructure","ai-infrastructure",{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"name":3122,"slug":3123,"type":15},"Kubernetes","kubernetes",{"name":3125,"slug":3126,"type":15},"Runway","runway","2026-07-31T05:56:13.054971",{"slug":3129,"name":3129,"fn":3130,"description":3131,"org":3132,"tags":3133,"stars":31,"repoUrl":32,"updatedAt":3141},"appinsights-instrumentation","instrument webapps with Azure Application Insights","Guidance for instrumenting webapps with Azure Application Insights. Provides telemetry patterns, SDK setup, and configuration references. WHEN: how to instrument app, App Insights SDK, telemetry patterns, what is App Insights, Application Insights guidance, instrumentation examples, APM best practices.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3134,3135,3138],{"name":13,"slug":14,"type":15},{"name":3136,"slug":3137,"type":15},"Monitoring","monitoring",{"name":3139,"slug":3140,"type":15},"Observability","observability","2026-07-31T05:56:09.068625",{"slug":3143,"name":3143,"fn":3144,"description":3145,"org":3146,"tags":3147,"stars":31,"repoUrl":32,"updatedAt":3162},"azure-ai","build applications with Azure AI services","Use for Azure AI: Search, Speech, OpenAI, Document Intelligence. Helps with search, vector\u002Fhybrid search, speech-to-text, text-to-speech, transcription, OCR. WHEN: AI Search, query search, vector search, hybrid search, semantic search, speech-to-text, text-to-speech, transcribe, OCR, convert text to speech.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3148,3149,3150,3153,3156,3159],{"name":3117,"slug":3118,"type":15},{"name":13,"slug":14,"type":15},{"name":3151,"slug":3152,"type":15},"LLM","llm",{"name":3154,"slug":3155,"type":15},"OpenAI","openai",{"name":3157,"slug":3158,"type":15},"Search","search",{"name":3160,"slug":3161,"type":15},"Speech","speech","2026-07-31T05:56:19.069133",{"slug":3164,"name":3164,"fn":3165,"description":3166,"org":3167,"tags":3168,"stars":31,"repoUrl":32,"updatedAt":3183},"azure-aigateway","configure Azure API Management as an AI Gateway","Configure Azure API Management as an AI Gateway for AI models, MCP tools, and agents. WHEN: semantic caching, token limit, content safety, load balancing, AI model governance, MCP rate limiting, jailbreak detection, add Azure OpenAI backend, add AI Foundry model, test AI gateway, LLM policies, configure AI backend, token metrics, AI cost control, convert API to MCP, import OpenAPI to gateway.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3169,3170,3173,3174,3177,3180],{"name":3117,"slug":3118,"type":15},{"name":3171,"slug":3172,"type":15},"API Development","api-development",{"name":13,"slug":14,"type":15},{"name":3175,"slug":3176,"type":15},"Caching","caching",{"name":3178,"slug":3179,"type":15},"Governance","governance",{"name":3181,"slug":3182,"type":15},"Security","security","2026-07-31T05:56:23.05242",{"slug":3185,"name":3185,"fn":3186,"description":3187,"org":3188,"tags":3189,"stars":31,"repoUrl":32,"updatedAt":3200},"azure-cloud-migrate","migrate cross-cloud workloads to Azure","Assess and migrate cross-cloud workloads to Azure with reports and code conversion. Supports Lambda→Functions, Beanstalk\u002FHeroku\u002FApp Engine→App Service, Fargate\u002FKubernetes\u002FCloud Run\u002FSpring Boot→Container Apps. WHEN: migrate Lambda to Functions, AWS to Azure, migrate Beanstalk, migrate Heroku, migrate App Engine, Cloud Run migration, Fargate to ACA, ECS\u002FKubernetes\u002FGKE\u002FEKS to Container Apps, Spring Boot to Container Apps, cross-cloud migration.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3190,3193,3194,3197],{"name":3191,"slug":3192,"type":15},"AWS","aws",{"name":13,"slug":14,"type":15},{"name":3195,"slug":3196,"type":15},"Google Cloud","google-cloud",{"name":3198,"slug":3199,"type":15},"Migration","migration","2026-07-31T05:56:29.049979",{"slug":3202,"name":3202,"fn":3203,"description":3204,"org":3205,"tags":3206,"stars":31,"repoUrl":32,"updatedAt":3218},"azure-compliance","audit Azure compliance and security","Run Azure compliance and security audits with azqr plus Key Vault expiration checks. Covers best-practice assessment, resource review, policy\u002Fcompliance validation, and security posture checks. WHEN: compliance scan, security audit, BEFORE running azqr (compliance cli tool), Azure best practices, Key Vault expiration check, expired certificates, expiring secrets, orphaned resources, compliance assessment.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3207,3210,3211,3214,3217],{"name":3208,"slug":3209,"type":15},"Audit","audit",{"name":13,"slug":14,"type":15},{"name":3212,"slug":3213,"type":15},"Compliance","compliance",{"name":3215,"slug":3216,"type":15},"Regulatory Compliance","regulatory-compliance",{"name":3181,"slug":3182,"type":15},"2026-07-31T05:56:11.06797",{"slug":3220,"name":3220,"fn":3221,"description":3222,"org":3223,"tags":3224,"stars":31,"repoUrl":32,"updatedAt":3236},"azure-compute","manage and optimize Azure compute resources","Azure VM\u002FVMSS router. WHEN: create \u002F provision \u002F deploy \u002F spin-up VM, recommend VM size, compare VM pricing, VMSS, scale set, autoscale, burstable, lightweight server, website, backend, GPU, machine learning, HPC simulation, dev\u002Ftest, workload, family, load balancer, Flexible orchestration, Uniform orchestration, cost estimate, capacity reservation (CRG), reserve, guarantee capacity, pre-provision, CRG association, CRG disassociation, machine enrollment (EMM), Essential Machine Management, monitor. PREFER OVER mcp__azure__get_azure_bestpractices for VM create intents — use compute_vm_list-skus \u002F compute_vm_list-images \u002F compute_vm_check-quota.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3225,3226,3227,3230,3233],{"name":3117,"slug":3118,"type":15},{"name":13,"slug":14,"type":15},{"name":3228,"slug":3229,"type":15},"Cost Optimization","cost-optimization",{"name":3231,"slug":3232,"type":15},"Performance","performance",{"name":3234,"slug":3235,"type":15},"Virtual Machines","virtual-machines","2026-07-31T05:56:16.042469",28,{"items":3239,"total":3417},[3240,3262,3277,3296,3307,3321,3332,3343,3358,3373,3392,3405],{"slug":3241,"name":3241,"fn":3242,"description":3243,"org":3244,"tags":3245,"stars":3259,"repoUrl":3260,"updatedAt":3261},"rushstack-best-practices","manage Rush monorepos with best practices","Provides best practices and guidance for working with Rush monorepos. Use when the user is working in a Rush-based repository, asks about Rush commands (install, update, build, rebuild), needs help with project selection, dependency management, build caching, subspace configuration, or troubleshooting Rush-specific issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3246,3249,3252,3253,3256],{"name":3247,"slug":3248,"type":15},"Engineering","engineering",{"name":3250,"slug":3251,"type":15},"Local Development","local-development",{"name":9,"slug":8,"type":15},{"name":3254,"slug":3255,"type":15},"Project Management","project-management",{"name":3257,"slug":3258,"type":15},"Rush","rush",6484,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frushstack","2026-04-06T18:34:44.965032",{"slug":3263,"name":3263,"fn":3264,"description":3265,"org":3266,"tags":3267,"stars":3274,"repoUrl":3275,"updatedAt":3276},"azure-ai-agents-persistent-dotnet","build AI agents with Azure .NET SDK","Azure AI Agents Persistent SDK for .NET. Low-level SDK for creating and managing AI agents with threads, messages, runs, and tools. Use for agent CRUD, conversation threads, streaming responses, function calling, file search, and code interpreter. Triggers: \"PersistentAgentsClient\", \"persistent agents\", \"agent threads\", \"agent runs\", \"streaming agents\", \"function calling agents .NET\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3268,3271,3272,3273],{"name":3269,"slug":3270,"type":15},".NET","net",{"name":23,"slug":24,"type":15},{"name":13,"slug":14,"type":15},{"name":3151,"slug":3152,"type":15},2804,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills","2026-07-03T16:32:10.297433",{"slug":3278,"name":3278,"fn":3279,"description":3280,"org":3281,"tags":3282,"stars":3274,"repoUrl":3275,"updatedAt":3295},"azure-ai-anomalydetector-java","build anomaly detection applications with Java","Build anomaly detection applications with Azure AI Anomaly Detector SDK for Java. Use when implementing univariate\u002Fmultivariate anomaly detection, time-series analysis, or AI-powered monitoring.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3283,3286,3287,3290,3293,3294],{"name":3284,"slug":3285,"type":15},"Analytics","analytics",{"name":13,"slug":14,"type":15},{"name":3288,"slug":3289,"type":15},"Data Analysis","data-analysis",{"name":3291,"slug":3292,"type":15},"Java","java",{"name":9,"slug":8,"type":15},{"name":3136,"slug":3137,"type":15},"2026-05-13T06:14:16.261754",{"slug":3297,"name":3297,"fn":3298,"description":3299,"org":3300,"tags":3301,"stars":3274,"repoUrl":3275,"updatedAt":3306},"azure-ai-contentsafety-java","build content moderation applications with Azure AI","Build content moderation applications with Azure AI Content Safety SDK for Java. Use when implementing text\u002Fimage analysis, blocklist management, or harm detection for hate, violence, sexual content, and self-harm.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3302,3303,3304,3305],{"name":3117,"slug":3118,"type":15},{"name":13,"slug":14,"type":15},{"name":3291,"slug":3292,"type":15},{"name":3181,"slug":3182,"type":15},"2026-07-07T06:53:31.293235",{"slug":3308,"name":3308,"fn":3309,"description":3310,"org":3311,"tags":3312,"stars":3274,"repoUrl":3275,"updatedAt":3320},"azure-ai-contentsafety-py","detect harmful content with Azure AI Content Safety","Azure AI Content Safety SDK for Python. Use for detecting harmful content in text and images with multi-severity classification.\nTriggers: \"azure-ai-contentsafety\", \"ContentSafetyClient\", \"content moderation\", \"harmful content\", \"text analysis\", \"image analysis\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3313,3314,3315,3316,3317,3319],{"name":13,"slug":14,"type":15},{"name":3212,"slug":3213,"type":15},{"name":3151,"slug":3152,"type":15},{"name":9,"slug":8,"type":15},{"name":2821,"slug":3318,"type":15},"python",{"name":3181,"slug":3182,"type":15},"2026-07-18T05:14:23.017504",{"slug":3322,"name":3322,"fn":3323,"description":3324,"org":3325,"tags":3326,"stars":3274,"repoUrl":3275,"updatedAt":3331},"azure-ai-language-conversations-py","implement conversational language understanding with Python","Implement Conversational Language Understanding (CLU) using the azure-ai-language-conversations Python SDK. Use when working with ConversationAnalysisClient to analyze conversation intent and entities, building NLP features, or integrating language understanding into applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3327,3328,3329,3330],{"name":3284,"slug":3285,"type":15},{"name":13,"slug":14,"type":15},{"name":3151,"slug":3152,"type":15},{"name":2821,"slug":3318,"type":15},"2026-07-31T05:54:29.068751",{"slug":3333,"name":3333,"fn":3334,"description":3335,"org":3336,"tags":3337,"stars":3274,"repoUrl":3275,"updatedAt":3342},"azure-ai-translation-text-py","translate text using Azure AI services","Azure AI Text Translation SDK for real-time text translation, transliteration, language detection, and dictionary lookup. Use for translating text content in applications.\nTriggers: \"text translation\", \"translator\", \"translate text\", \"transliterate\", \"TextTranslationClient\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3338,3339,3340,3341],{"name":3171,"slug":3172,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":2821,"slug":3318,"type":15},"2026-07-18T05:14:16.988376",{"slug":3344,"name":3344,"fn":3345,"description":3346,"org":3347,"tags":3348,"stars":3274,"repoUrl":3275,"updatedAt":3357},"azure-ai-vision-imageanalysis-py","analyze images with Azure AI Vision","Azure AI Vision Image Analysis SDK for captions, tags, objects, OCR, people detection, and smart cropping. Use for computer vision and image understanding tasks.\nTriggers: \"image analysis\", \"computer vision\", \"OCR\", \"object detection\", \"ImageAnalysisClient\", \"image caption\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3349,3350,3353,3356],{"name":13,"slug":14,"type":15},{"name":3351,"slug":3352,"type":15},"Computer Vision","computer-vision",{"name":3354,"slug":3355,"type":15},"Images","images",{"name":2821,"slug":3318,"type":15},"2026-07-18T05:14:18.007737",{"slug":3359,"name":3359,"fn":3360,"description":3361,"org":3362,"tags":3363,"stars":3274,"repoUrl":3275,"updatedAt":3372},"azure-appconfiguration-java","manage configuration with Azure App Configuration","Azure App Configuration SDK for Java. Centralized application configuration management with key-value settings, feature flags, and snapshots.\nTriggers: \"ConfigurationClient java\", \"app configuration java\", \"feature flag java\", \"configuration setting java\", \"azure config java\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3364,3365,3368,3371],{"name":13,"slug":14,"type":15},{"name":3366,"slug":3367,"type":15},"Configuration","configuration",{"name":3369,"slug":3370,"type":15},"Feature Flags","feature-flags",{"name":3291,"slug":3292,"type":15},"2026-07-03T16:32:01.278468",{"slug":3374,"name":3374,"fn":3375,"description":3376,"org":3377,"tags":3378,"stars":3274,"repoUrl":3275,"updatedAt":3391},"azure-cosmos-rust","build applications with Azure Cosmos DB","Azure Cosmos DB library for Rust (NoSQL API). Document CRUD, containers, and globally distributed data.\nTriggers: \"cosmos db rust\", \"CosmosClient rust\", \"document crud rust\", \"NoSQL rust\", \"partition key rust\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3379,3382,3385,3388],{"name":3380,"slug":3381,"type":15},"Cosmos DB","cosmos-db",{"name":3383,"slug":3384,"type":15},"Database","database",{"name":3386,"slug":3387,"type":15},"NoSQL","nosql",{"name":3389,"slug":3390,"type":15},"Rust","rust","2026-07-31T05:54:27.021432",{"slug":3393,"name":3393,"fn":3375,"description":3394,"org":3395,"tags":3396,"stars":3274,"repoUrl":3275,"updatedAt":3404},"azure-cosmos-ts","Azure Cosmos DB JavaScript\u002FTypeScript SDK (@azure\u002Fcosmos) for data plane operations. Use for CRUD operations on documents, queries, bulk operations, and container management. Triggers: \"Cosmos DB\", \"@azure\u002Fcosmos\", \"CosmosClient\", \"document CRUD\", \"NoSQL queries\", \"bulk operations\", \"partition key\", \"container.items\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3397,3398,3399,3400,3401],{"name":3380,"slug":3381,"type":15},{"name":3383,"slug":3384,"type":15},{"name":9,"slug":8,"type":15},{"name":3386,"slug":3387,"type":15},{"name":3402,"slug":3403,"type":15},"TypeScript","typescript","2026-07-03T16:31:19.368382",{"slug":3406,"name":3406,"fn":3407,"description":3408,"org":3409,"tags":3410,"stars":3274,"repoUrl":3275,"updatedAt":3416},"azure-data-tables-java","build table storage applications with Java","Build table storage applications with Azure Tables SDK for Java. Use when working with Azure Table Storage or Cosmos DB Table API for NoSQL key-value data, schemaless storage, or structured data at scale.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3411,3412,3413,3414,3415],{"name":13,"slug":14,"type":15},{"name":3380,"slug":3381,"type":15},{"name":3383,"slug":3384,"type":15},{"name":3291,"slug":3292,"type":15},{"name":3386,"slug":3387,"type":15},"2026-05-13T06:14:17.582229",267]