Azure AI Projects TS
microsoft/skills
Build AI applications using Azure AI Projects SDK for JavaScript (@azure/ai-projects).
Provides research patterns for Foundry Agent Service SDK. An agent skill from microsoft-foundry/foundry-agent-webapp.
$ npx skills add microsoft-foundry/foundry-agent-webapp --skill researching-azure-ai-sdk -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install microsoft-foundry/foundry-agent-webapp researching-azure-ai-sdk --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/microsoft-foundry/foundry-agent-webapp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/researching-azure-ai-sdk .claude/skills/researching-azure-ai-sdk && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "researching-azure-ai-sdk" agent skill from https://github.com/microsoft-foundry/foundry-agent-webapp/tree/main/.github/skills/researching-azure-ai-sdk into .claude/skills/researching-azure-ai-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "researching-azure-ai-sdk", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/microsoft-foundry/foundry-agent-webapp/tree/main/.github/skills/researching-azure-ai-sdkType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add microsoft-foundry/foundry-agent-webapp --skill researching-azure-ai-sdk -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install microsoft-foundry/foundry-agent-webapp researching-azure-ai-sdk --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft-foundry/foundry-agent-webapp.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/researching-azure-ai-sdk .agents/skills/researching-azure-ai-sdk && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "researching-azure-ai-sdk" agent skill from https://github.com/microsoft-foundry/foundry-agent-webapp/tree/main/.github/skills/researching-azure-ai-sdk into .agents/skills/researching-azure-ai-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "researching-azure-ai-sdk", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add microsoft-foundry/foundry-agent-webapp --skill researching-azure-ai-sdk -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install microsoft-foundry/foundry-agent-webapp researching-azure-ai-sdk --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft-foundry/foundry-agent-webapp.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/researching-azure-ai-sdk .cursor/skills/researching-azure-ai-sdk && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "researching-azure-ai-sdk" agent skill from https://github.com/microsoft-foundry/foundry-agent-webapp/tree/main/.github/skills/researching-azure-ai-sdk into .cursor/skills/researching-azure-ai-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "researching-azure-ai-sdk", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/microsoft-foundry/foundry-agent-webapp.git --path .github/skills/researching-azure-ai-sdk--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add microsoft-foundry/foundry-agent-webapp --skill researching-azure-ai-sdk -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install microsoft-foundry/foundry-agent-webapp researching-azure-ai-sdk --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft-foundry/foundry-agent-webapp.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/researching-azure-ai-sdk .gemini/skills/researching-azure-ai-sdk && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "researching-azure-ai-sdk" agent skill from https://github.com/microsoft-foundry/foundry-agent-webapp/tree/main/.github/skills/researching-azure-ai-sdk into .gemini/skills/researching-azure-ai-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "researching-azure-ai-sdk", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install microsoft-foundry/foundry-agent-webapp researching-azure-ai-sdkInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add microsoft-foundry/foundry-agent-webapp --skill researching-azure-ai-sdk -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/microsoft-foundry/foundry-agent-webapp.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/researching-azure-ai-sdk .github/skills/researching-azure-ai-sdk && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "researching-azure-ai-sdk" agent skill from https://github.com/microsoft-foundry/foundry-agent-webapp/tree/main/.github/skills/researching-azure-ai-sdk into .github/skills/researching-azure-ai-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "researching-azure-ai-sdk", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add microsoft-foundry/foundry-agent-webapp --skill researching-azure-ai-sdk -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install microsoft-foundry/foundry-agent-webapp researching-azure-ai-sdk --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft-foundry/foundry-agent-webapp.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/researching-azure-ai-sdk .opencode/skills/researching-azure-ai-sdk && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "researching-azure-ai-sdk" agent skill from https://github.com/microsoft-foundry/foundry-agent-webapp/tree/main/.github/skills/researching-azure-ai-sdk into .opencode/skills/researching-azure-ai-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "researching-azure-ai-sdk", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
researching-azure-ai-sdkProvides research patterns for Foundry Agent Service SDK. An agent skill from microsoft-foundry/foundry-agent-webapp.
Researching Azure AI SDK is an agent skill from microsoft-foundry/foundry-agent-webapp. Provides research patterns for Foundry Agent Service SDK. Use when implementing agent features, looking up SDK methods, finding code samples, or troubleshooting Azure.AI.Projects API usage.
Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in DevOps & Cloud. It works with Vercel AI SDK, Microsoft Azure, Azure AI Foundry and OpenAI. The repository describes itself as: GitHub Copilot enabled repo for building and deploying a web application with Entra ID authentication and integrated with Azure AI Foundry Agents. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f6cb362. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
dotnetFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
ai.azure.comAlso links to:
learn.microsoft.comgithub.comnuget.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Researching Azure AI SDK loads about 4.7k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 1,039 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from microsoft-foundry/foundry-agent-webapp at commit f6cb362, republished under its MIT licence (© microsoft-foundry). 1,039 words, ~4,671 tokens.
.claude/skills/researching-azure-ai-sdk/SKILL.md (or your agent's skills folder).CRITICAL: Don't guess SDK usage. Follow this research workflow.
Multi-repo research blows up context (1000+ tokens per file). Delegate to subagent for:
runSubagent(
prompt: "RESEARCH task - do NOT write code.
**Question**: [specific SDK question]
**Search these sources in order**:
1. Azure.AI.Projects SDK: github.com/Azure/azure-sdk-for-net/tree/main/sdk/ai/Azure.AI.Projects
2. Azure.AI.Agents.Persistent samples: .../Azure.AI.Agents.Persistent/samples
3. Microsoft Foundry Samples: github.com/microsoft-foundry/foundry-samples
**Find**:
- Method signatures for [specific API]
- Usage examples (pseudocode only)
- Any gotchas or edge cases
**Return** (max 20 lines):
- Key method name and signature
- Code pattern (pseudocode)
- File path where found (for later reference)
Do NOT include full file contents.",
description: "SDK research: [topic]"
)| Delegate to Subagent | Keep Inline |
|---|---|
| Multi-repo code search | Local codebase grep |
| Finding all usages | Known method lookup |
| API surface exploration | Single file read |
| Pattern comparison | Quick signature check |
| Sample discovery | Using known pattern |
The Foundry Agent Service SDK has two API surfaces for agents:
| API | Endpoint | ID Format | SDK Access |
|---|---|---|---|
| v2 Agents API | /agents/ | Human-readable (e.g., dadjokes) | AIProjectClient.AgentAdministrationClient |
| OpenAI Assistants API | /assistants/ | OpenAI format (e.g., asst_xxx) | PersistentAgentsClient |
This project uses v2 Agents API for human-readable agent IDs.
Azure.AI.Projects (Main Entry Point)
├── AIProjectClient
│ ├── .AgentAdministrationClient.GetAgentVersionAsync() → ProjectsAgentVersion (v2 Agents API)
│ ├── .GetPersistentAgentsClient() → PersistentAgentsClient (Assistants API)
│ └── .ProjectOpenAIClient.GetProjectResponsesClientForAgent() → ProjectResponsesClient (Responses API)
└── Companion packages:
├── Azure.AI.Projects.Agents (ProjectsAgentVersion, DeclarativeAgentDefinition, …)
├── Azure.AI.Extensions.OpenAI (ProjectConversationsClient, ProjectOpenAIClient, …)
└── OpenAI.Responses (streaming types)Azure.AI.Projects SDK: https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/ai/Azure.AI.Projects
tests/Samples/ folder with full examplesAzure.AI.Agents.Persistent SDK: https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/ai/Azure.AI.Agents.Persistent
Sample9_PersistentAgents_Streaming.md - Basic streaming patternSample8_PersistentAgents_FunctionsWithStreaming.md - Tool calls with streamingSample27_PersistentAgents_MCP_Streaming.md - MCP server integrationMicrosoft Foundry Samples: https://github.com/microsoft-foundry/foundry-samples
samples/csharp/quickstart/quickstart-chat-with-agent.cs - Responses API patternsamples/csharp/quickstart/ - Multiple quickstart examplesKey pattern from official quickstart:
AIProjectClient projectClient = new(new Uri(projectEndpoint), new AzureCliCredential());
ProjectConversation conversation = projectClient.ProjectOpenAIClient.GetProjectConversationsClient().CreateProjectConversation();
ProjectResponsesClient responsesClient = projectClient.ProjectOpenAIClient.GetProjectResponsesClientForAgent(
defaultAgent: agentName,
defaultConversationId: conversation.Id);
ResponseResult response = responsesClient.CreateResponse("Your prompt");Baseline Chat App: https://github.com/Azure-Samples/microsoft-foundry-baseline
website/chatui/Controllers/ChatController.cs - SSE streaming patternBasic Chat Example: https://github.com/Azure-Samples/microsoft-foundry-basic
Semantic Kernel + Foundry: https://github.com/Azure-Samples/app-service-agentic-semantic-kernel-ai-foundry-agent
Azure AI Agents React Sample: https://github.com/Azure-Samples/get-started-with-ai-agents
This is the primary UI reference for this project. Many UI patterns were borrowed from here:
Agent Framework DevUI: https://github.com/microsoft/agent-framework/tree/main/python/packages/devui
Alternative UI patterns for agent development:
When implementing new UI features, check these sources in order:
get-started-with-ai-agents - React + TypeScript patterns for chat UIagent-framework/devui - Development UI patternsRepository: https://github.com/microsoft/semantic-kernel
Relevant paths:
dotnet/src/Agents/OpenAI/ - OpenAI Responses API integrationdotnet/samples/GettingStartedWithAgents/AzureAIAgent/dotnet/samples/Concepts/Agents/ (Step##_*.cs files)Repository: https://github.com/openai/openai-dotnet
docs/guides/streaming-responses/ - Streaming patternsStreamingResponseOutputTextDeltaUpdate and related typesUse GitHub search to find usage examples:
# Find streaming patterns
"StreamingResponseOutputTextDeltaUpdate language:csharp"
# Find Responses API usage
"ProjectResponsesClient CreateResponseStreamingAsync language:csharp"
# Find conversation patterns
"ProjectConversation GetProjectResponsesClientForAgent language:csharp"| Package | Purpose |
|---|---|
Azure.AI.Projects | Main entry point, AIProjectClient, v2 Agents API, Responses API |
Azure.Identity | Authentication (AzureDeveloperCliCredential, ManagedIdentityCredential) |
Microsoft.Identity.Web | JWT Bearer authentication for API |
Note: Check WebApp.Api.csproj for current versions. This project requires Azure.AI.Projects GA with v2 Agents API support (AIProjectClient.AgentAdministrationClient).
Companion packages used:
Azure.AI.Projects.Agents — ProjectsAgentVersion, ProjectsAgentRecord, DeclarativeAgentDefinition / HostedAgentDefinition / WorkflowAgentDefinition, AgentAdministrationClientAzure.AI.Extensions.OpenAI — ProjectOpenAIClient, ProjectConversationsClient, ProjectResponsesClient, ProjectConversationOpenAI.Responses — streaming typesAgent Framework (Microsoft.Agents.AI.AzureAI): Not referenced. As of rc5, incompatible with Azure.AI.Projects 2.0.0 GA. See "Compatibility blocker" below.
Key Resources:
Start here when researching agent capabilities, limits, or new features:
Agent Framework (Microsoft.Agents) docs:
| Topic | URL |
|---|---|
| Agent Framework overview | https://learn.microsoft.com/microsoft-agents/overview |
| Agent Framework .NET SDK | https://github.com/microsoft/Agents-for-net |
| NuGet package | https://www.nuget.org/packages/Microsoft.Agents.AI.AzureAI |
| IChatClient abstraction | https://learn.microsoft.com/dotnet/api/microsoft.extensions.ai.ichatclient |
The SDK provides several annotation types for citations (from OpenAI.Responses namespace):
| Type | Class | Use Case | Key Properties |
|---|---|---|---|
| URI Citation | UriCitationMessageAnnotation | Bing, Azure AI Search, SharePoint | Uri, Title, StartIndex, EndIndex |
| File Citation | FileCitationMessageAnnotation | File search (vector stores) | FileId, Filename, Index |
| File Path | FilePathMessageAnnotation | Code interpreter output | FileId, Index |
| Container Citation | ContainerFileCitationMessageAnnotation | Container file citations | FileId, Filename, ContainerId, StartIndex, EndIndex |
Note: FileCitationMessageAnnotation uses Index (not StartIndex/EndIndex) per the SDK. See ExtractAnnotations() in AgentFrameworkService.cs for mapping to AnnotationInfo.
The C# SDK does not yet have a typed client for container file downloads. Use the REST API directly with a bearer token scoped to https://ai.azure.com/.default:
GET {projectEndpoint}/openai/v1/containers/{containerId}/files/{fileId}/content
Authorization: Bearer {token}For standard (non-container) files (cfile_ prefix absent), use OpenAI.Files.FileClient instead. The backend endpoint GET /api/files/{fileId}?containerId={id} abstracts this: it routes cfile_-prefixed files through the REST API and standard files through FileClient.
| Type | Purpose |
|---|---|
StreamingResponseOutputTextDeltaUpdate | Text content delta chunks |
StreamingResponseOutputItemDoneUpdate | Item completion signals |
StreamingResponseCompletedUpdate | Response completion with usage |
ResponseItem | Base type for response items |
Pattern used in this project:
await foreach (var update in responsesClient.CreateResponseStreamingAsync(...))
{
if (update is StreamingResponseOutputTextDeltaUpdate textUpdate)
yield return new StreamChunk { Text = textUpdate.Delta };
if (update is StreamingResponseOutputItemDoneUpdate itemDone)
// Extract annotations from itemDone.Item
}Package: Microsoft.Agents.AI.AzureAI (prerelease, not referenced)
Status: ❌ Not installed. Blocked on compatibility with Azure.AI.Projects 2.0.0 GA.
Microsoft.Agents.AI.AzureAI 1.0.0-rc5 pins Azure.AI.Projects 2.0.0-beta.2 and references types removed in the GA release. Attempting to use rc5 with Azure.AI.Projects 2.0.0 throws TypeLoadException at runtime. Re-evaluate when rc6+ ships.
Even when the compat blocker is lifted, this project's streaming path needs direct access to ProjectResponsesClient and typed response items that are not surfaced by the IChatClient abstraction:
McpToolCallApprovalRequestItem for MCP approval flowsFileSearchCallResponseItem for file search quotesMessageResponseItem.OutputTextAnnotations for citationsResponseItem.CreateMcpApprovalResponseItem() to respond to MCP approvalsRouting through ChatClientAgent.RunStreamingAsync() would require casting RawRepresentation for each of these, which defeats the abstraction benefit.
// Agent metadata — no "latest" keyword in the REST spec; enumerate versions descending.
ProjectsAgentVersion? agentVersion = null;
await foreach (var v in projectClient.AgentAdministrationClient.GetAgentVersionsAsync(
agentName: agentName,
limit: 1,
order: AgentListOrder.Descending,
after: null,
before: null,
cancellationToken: ct))
{
agentVersion = v;
break;
}
var definition = agentVersion?.Definition as DeclarativeAgentDefinition;
string model = definition?.Model ?? "";
string instructions = definition?.Instructions ?? "";
// Streaming — pin the resolved version so streaming hits the same version as metadata.
ProjectResponsesClient responsesClient = projectClient.ProjectOpenAIClient
.GetProjectResponsesClientForAgent(
new AgentReference(agentId, agentVersion?.Version),
conversationId);
await foreach (var update in responsesClient.CreateResponseStreamingAsync(...)) { }AIProjectClient requires a project endpoint URI (not a connection string):
var projectClient = new AIProjectClient(new Uri(projectEndpoint), new DefaultAzureCredential());Connection-string constructors are deprecated. See: https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/ai/Azure.AI.Projects/AGENTS_MIGRATION_GUIDE.md
Type definitions live in these repos—read them directly:
Search across all .NET codebases for real-world usage:
"ProjectResponsesClient CreateResponseStreamingAsync" language:csharp
"StreamingResponseOutputTextDeltaUpdate" language:csharpThis finds how other projects use these APIs, revealing patterns and edge cases.
Use when SDK docs are outdated or incomplete — the DLLs are the ground truth.
Works even when dotnet build fails (loads from NuGet cache):
cd backend/WebApp.Api; dotnet restore
# Option A: Load from build output (requires successful build)
$asm = [Reflection.Assembly]::LoadFrom((Resolve-Path "bin/Debug/net10.0/Azure.AI.Projects.dll"))
# Option B: Load from NuGet cache (works even if build fails — use for pre-release migrations)
$dll = Get-ChildItem "$env:USERPROFILE\.nuget\packages\azure.ai.projects" -Recurse -Filter "Azure.AI.Projects.dll" | Select-Object -Last 1
$asm = [Reflection.Assembly]::LoadFrom($dll.FullName)
# Find types matching a pattern
$asm.GetExportedTypes() | Where-Object { $_.Name -like "*Streaming*" } | ForEach-Object { $_.FullName }
# Get method signatures with parameter details
$type = $asm.GetType("Azure.AI.Extensions.OpenAI.ProjectResponsesClient")
$type.GetMethods() | Where-Object { $_.Name -like "*Async*" } | Select-Object Name, ReturnType, @{N='Params';E={($_.GetParameters() | ForEach-Object { "$($_.ParameterType.Name) $($_.Name)" }) -join ', '}}Agent Framework assemblies (for Microsoft.Agents.AI.AzureAI migrations):
# Load Agent Framework DLL from NuGet cache
$pkg = Get-ChildItem "$env:USERPROFILE\.nuget\packages\microsoft.agents.ai.azureai" -Recurse -Filter "Microsoft.Agents.AI.AzureAI.dll" | Select-Object -Last 1
$asm = [Reflection.Assembly]::LoadFrom($pkg.FullName)
# Dump all exported types to see what changed between versions
$asm.GetExportedTypes() | ForEach-Object { $_.FullName } | Sort-Object
# Check if types you depend on still exist
@("ChatClientAgent", "AgentVersion", "PromptAgentDefinition", "AgentReference") | ForEach-Object {
$match = $asm.GetExportedTypes() | Where-Object { $_.Name -eq $_ }
if ($match) { Write-Host "FOUND: $($match.FullName)" } else { Write-Host "MISSING: $_" -ForegroundColor Red }
}
# Inspect extension methods (GetAIAgentAsync, etc.)
$asm.GetExportedTypes() | Where-Object { $_.GetMethods([Reflection.BindingFlags]::Static -bor [Reflection.BindingFlags]::Public) | Where-Object { $_.IsDefined([Runtime.CompilerServices.ExtensionAttribute], $false) } } | ForEach-Object {
$_.GetMethods() | Where-Object { $_.IsDefined([Runtime.CompilerServices.ExtensionAttribute], $false) } | ForEach-Object { Write-Host "$($_.DeclaringType.Name).$($_.Name)" }
}When to use: SDK upgrade with breaking changes, pre-release packages where docs lag, verifying actual API surface before writing migration code.
Key insight: Load from NuGet cache ($env:USERPROFILE\.nuget\packages\) to inspect the new version's types even when the build is broken.
© microsoft-foundry, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .github/skills/researching-azure-ai-sdk of microsoft-foundry/foundry-agent-webapp.
Open the folder on GitHubat commit f6cb362
Researching Azure AI SDK next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Researching Azure AI SDK this skillmicrosoft-foundry/foundry-agent-webapp | 127 | — | ~4.7k | Automated safety check: Pass | MIT | |
| Azure AI Projects TSmicrosoft/skills | 3.1k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Openai Docsaafqaq/codex-lb-enhanced | 103 | 2 repos | ~861 | Automated safety check: Pass | Apache-2.0 | |
| Deploynoskillish/bankmcp | 277 | — | ~744 | Automated safety check: Pass | MIT | |
| Neurolink Guidejuspay/neurolink | 145 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Go Spec Reviewerinference-gateway/inference-gateway | 214 | — | ~1.2k | Automated safety check: Pass | Apache-2.0 |
microsoft/skills
Build AI applications using Azure AI Projects SDK for JavaScript (@azure/ai-projects).
aafqaq/codex-lb-enhanced
A skill your agent uses when the user asks how to build with OpenAI products or APIs and needs up-to-date official documentation with citations (for example: Codex, Responses API, Chat Completions…
noskillish/bankmcp
Deploy BankMCP™ to a small server so it works in claude.ai and on the phone: Railway or Fly.io, volume, domain, setup page, connector.
juspay/neurolink
Guide for using the NeuroLink SDK and CLI. An agent skill from juspay/neurolink.
inference-gateway/inference-gateway
Review a Go design spec before implementation begins - dispatch a subagent that checks a design doc for completeness, consistency, and idiomatic Go (simplicity, small consumer-defined interfaces…
juspay/neurolink
How to post clean, rich, deduplicated GitHub PR review comments — suggestion blocks, multi-line anchors, markers, formatting rules.
microsoft-foundry/foundry-agent-webapp
Provides commit message format and workflow for this repository.
microsoft-foundry/foundry-agent-webapp
Provides SSE streaming patterns for the chat API and frontend.
microsoft-foundry/foundry-agent-webapp
Provides structured plan template for feature implementation.
microsoft-foundry/foundry-agent-webapp
Provides deployment commands and troubleshooting for Azure Container Apps.
microsoft-foundry/foundry-agent-webapp
Synchronize MCP server configuration between VS Code (.vscode/mcp.json) and Copilot CLI (~/.copilot/mcp-config.json).
microsoft-foundry/foundry-agent-webapp
Validate that Copilot CLI can see all repo skills, MCP servers, and custom instructions.
Categories
Provides research patterns for Foundry Agent Service SDK. An agent skill from microsoft-foundry/foundry-agent-webapp. Researching Azure AI SDK is an agent skill from microsoft-foundry/foundry-agent-webapp. Provides research patterns for Foundry Agent Service SDK.
Researching Azure AI SDK fits situations like: implementing agent features; looking up SDK methods; finding code samples; troubleshooting Azure.AI.Projects API usage.
Run `npx skills add microsoft-foundry/foundry-agent-webapp --skill researching-azure-ai-sdk -a claude-code`. Or copy the skill folder (.github/skills/researching-azure-ai-sdk in microsoft-foundry/foundry-agent-webapp) into .claude/skills/researching-azure-ai-sdk in your project. Claude Code loads it when a task matches its description.
Run `npx skills add microsoft-foundry/foundry-agent-webapp --skill researching-azure-ai-sdk -a codex`. Or copy the skill folder (.github/skills/researching-azure-ai-sdk in microsoft-foundry/foundry-agent-webapp) into .agents/skills/researching-azure-ai-sdk in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add microsoft-foundry/foundry-agent-webapp --skill researching-azure-ai-sdk -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/researching-azure-ai-sdk, .gemini/skills/researching-azure-ai-sdk, .github/skills/researching-azure-ai-sdk and .opencode/skills/researching-azure-ai-sdk in your project.
Going by SKILL.md and its folder, Researching Azure AI SDK needs the command-line tools its instructions call (dotnet).
SKILL.md names 4 domains. In commands or code: ai.azure.com; the agent is likely to contact it when it follows the instructions. As links in the text: learn.microsoft.com, github.com and nuget.org. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Researching Azure AI SDK is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.7k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Researching Azure AI SDK: Azure AI Projects TS (microsoft/skills, 3.1k stars), Openai Docs (aafqaq/codex-lb-enhanced, 103 stars), Deploy (noskillish/bankmcp, 277 stars) and Neurolink Guide (juspay/neurolink, 145 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
microsoft-foundry (a GitHub organization) maintains it in microsoft-foundry/foundry-agent-webapp, which has 127 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on April 21, 2026.
Source: microsoft-foundry/foundry-agent-webapp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.