Skip to content
Back to skills

Foundry Agent Platform

ASecurity

Microsoft Foundry agent deployment, orchestration, and cloud-native AI service patterns

  • 4 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 3, 2026
ai-agentspythongojavac#bashdockerazureapibackendsecurity

Works with

  • vscode
  • cli
  • api
  • mcp

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned September 3, 2026

npx -y skills add fabioc-aloha/Alex_Skill_Mall --skill foundry-agent-platform --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Foundry Agent Platform?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Foundry Agent Platform
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/fabioc-aloha-foundry-agent-platform/badge)](https://www.skillsdirectory.com/skills/fabioc-aloha-foundry-agent-platform)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: foundry-agent-platform
description: "Microsoft Foundry agent deployment, orchestration, and cloud-native AI service patterns"
lastReviewed: 2026-04-30
---

# Foundry Agent Platform Skill


> Deploy, orchestrate, and manage AI agents on Microsoft Foundry — the unified Azure PaaS for enterprise AI.

> **Staleness Watch**: See `EXTERNAL-API-REGISTRY.md` for source URLs and recheck cadence

## Rapid Evolution Domain

Foundry is in active preview (February 2026). SDK versions change frequently.

**Refresh triggers:**

- `azure-ai-projects` SDK version bump (currently 2.0.0b3)
- Foundry portal feature releases
- Hosted Agents GA
- Memory API changes

**Last validated:** February 2026

---

## Platform Overview

Microsoft Foundry (formerly Azure AI Foundry) unifies model hosting, agent orchestration, tool management, observability, and multi-channel publishing.

| Concept | Description |
|---------|-------------|
| **Portal** | <https://ai.azure.com> |
| **Endpoint** | `https://<resource>.services.ai.azure.com/api/projects/<project>` |
| **MCP Server** | <https://mcp.ai.azure.com> (cloud-hosted, Entra ID) |
| **VS Code Extension** | `TeamsDevApp.vscode-ai-foundry` |
| **Key Distinction** | Infrastructure platform (backend), not a surface |

### Foundry vs Other Platforms

| Aspect | VS Code Extension | M365 Copilot | Foundry |
|--------|------------------|-------------|---------|
| **Type** | IDE plugin | Declarative agent | Cloud PaaS |
| **Runtime** | Desktop app | M365 cloud | Azure managed |
| **Users** | Single developer | Single user | Multi-user |
| **Availability** | When IDE open | When M365 open | Always-on (24/7) |
| **Memory** | File-based synapses | OneDrive | Platform-managed |
| **Tools** | MCP (manual config) | Web/SP/Graph | 1,400+ catalog |
| **Agents** | `.agent.md` files | Single agent | Multi-agent fleet |
| **Observability** | Manual | None | Full OpenTelemetry |

---

## Four SDK Types

This is the most common source of confusion. Foundry has **four distinct SDK types**, each with different endpoints and use cases:

| SDK | Endpoint | When to Use |
|-----|----------|-------------|
| **Foundry SDK** | `.services.ai.azure.com/api/projects/` | Agent management, evaluations, deployments |
| **OpenAI SDK** | `.openai.azure.com/openai/v1` | Chat completions, embeddings (OpenAI-compatible) |
| **Foundry Tools SDKs** | Service-specific | Speech, Vision, Language, Search, etc. |
| **Agent Framework** | Framework-specific | Multi-agent orchestration (cloud-agnostic) |

### SDK Packages

| Language | Foundry SDK | OpenAI SDK |
|----------|-------------|------------|
| Python | `azure-ai-projects>=2.0.0b3` (use `--pre`) | `openai` |
| C# | `Azure.AI.Projects` (preview) | `Azure.AI.OpenAI` |
| JS/TS | `@azure/ai-projects` (beta) | `openai` |
| Java | `com.azure:azure-ai-projects` (preview) | — |

> **Breaking Change**: Python 2.x is **incompatible** with 1.x. The 2.x uses `.services.ai.azure.com` endpoints.

---

## Agent Service Patterns

### Create Agent

```python
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential

client = AIProjectClient(
    endpoint="https://<resource>.services.ai.azure.com/api/projects/<project>",
    credential=DefaultAzureCredential()
)

agent = client.agents.create_agent(
    model="gpt-4.1-mini",
    name="my-agent",
    instructions="System prompt here."
)
```

### Versioned Agents

```python
from azure.ai.projects.models import PromptAgentDefinition

definition = PromptAgentDefinition(
    model="gpt-4.1-mini",
    instructions="System prompt",
    tools=[bing_tool, file_search_tool]
)

version = client.agents.create_agent_version(
    agent_id=agent.id,
    definition=definition
)
```

### Conversations (Multi-Turn)

```python
conversation = client.agents.create_conversation(agent_id=agent.id)

client.agents.create_message(
    conversation_id=conversation.id,
    role="user",
    content="Hello"
)

run = client.agents.create_run(
    conversation_id=conversation.id,
    agent_id=agent.id
)
```

### Key Concepts

| Concept | Meaning |
|---------|---------|
| **Agent** | Stateless definition (model + instructions + tools) |
| **Conversation** | Stateful multi-turn context |
| **Run** | Single execution within a conversation |
| **Version** | Immutable snapshot of agent definition |

---

## Tool Categories

| Tool | Use Case | Setup |
|------|----------|-------|
| **Bing Grounding** | Real-time web search | Bing Search resource |
| **File Search** | RAG over documents (vector stores) | Upload files → vector store |
| **Code Interpreter** | Python sandbox execution | Automatic |
| **SharePoint** | Enterprise document grounding | SP site + permissions |
| **OpenAPI** | Any REST API via spec | Provide spec + auth |
| **MCP Servers** | Remote Model Context Protocol | Server URL + auth |
| **A2A** | Agent-to-Agent communication | Target URL + auth |

### File Search Setup

```python
vector_store = client.agents.create_vector_store(name="knowledge")
client.agents.upload_file_and_poll(
    vector_store_id=vector_store.id,
    file_path="skills.pdf"
)
file_search_tool = FileSearchTool(vector_store_ids=[vector_store.id])
```

---

## Memory & Foundry IQ

| Feature | Description |
|---------|-------------|
| **Memory** | Cross-session context retention, per-user, automatic |
| **Foundry IQ** | Enterprise knowledge base with citations + web grounding |
| **Priority Chain** | Instructions → IQ → File Search → Tool results → Training data |

Memory is the cloud-native equivalent of the AI's synapse architecture — automatic, persistent, cross-surface.

---

## Hosted Agents (Preview)

Containerized agents on managed infrastructure:

```bash
pip install azure-ai-agentserver-agentframework
agentserver run --interactive   # local test
agentserver run                 # container mode (port 8080)
azd deploy                      # deploy to Foundry
```

Supports any framework: LangGraph, MS Agent Framework, Semantic Kernel, custom.

---

## Observability Stack

```
Agent → OpenTelemetry → Application Insights → Agent Dashboard
```

```python
from azure.ai.agentserver import setup_observability
setup_observability(vs_code_extension_port=4319)  # local dev
```

### Built-in Evaluators

Relevance, Groundedness, Coherence, Safety, F1, BLEU, ROUGE

---

## Publishing Channels

One agent, many surfaces:

| Channel | Transport |
|---------|-----------|
| **M365 Copilot** | Teams manifest + Entra app |
| **Teams** | Bot Framework |
| **BizChat** | Via M365 publish |
| **Web Preview** | Auto-generated URL |
| **REST API** | Standard HTTP |
| **Container** | Docker (Hosted Agent) |

---

## Realtime API (Voice)

| Transport | Latency | Use Case |
|-----------|---------|----------|
| **WebRTC** | ~100ms | Browser voice |
| **WebSocket** | ~200ms | Server-side |
| **SIP** | Varies | Telephony |

Models: `gpt-realtime` (GA), `gpt-realtime-mini` (GA). Supports MCP tools during voice sessions, semantic VAD, image input. 30-min session limit, PCM16 mono 24kHz.

---

## Authentication

```python
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()  # Keyless (recommended)
client = AIProjectClient(endpoint=endpoint, credential=credential)
```

| RBAC Role | Scope |
|-----------|-------|
| Azure AI User | Least privilege — call agents, use models |
| Azure AI Owner | Create/manage agents, deploy models |
| Contributor | Create Foundry projects and resources |

---

## Anti-Patterns

| Anti-Pattern | Why It Fails | Instead |
|-------------|-------------|---------|
| Using Python SDK 1.x with 2.x docs | Incompatible APIs, wrong endpoints | Always install `--pre` for 2.x |
| Treating Foundry as "just another heir" | It's a backend, not a surface | Design as shared infrastructure |
| Hardcoding API keys | Security risk, doesn't scale | Use `DefaultAzureCredential` |
| One giant agent | Context overload, poor routing | Multi-agent with orchestrator |
| Skipping evaluation | No quality baseline | Run evaluators before shipping |
| Ignoring cost | Pay-per-use can surprise | Use efficient models (4.1-mini) for most agents |

---

## Decision Checklist

When designing a Foundry-based agent:

- [ ] Which SDK type? (Foundry SDK for agents, OpenAI SDK for completions)
- [ ] Which model tier? (Premium for orchestrator, efficient for specialists)
- [ ] Agent Service or Hosted Agent? (Start with Agent Service; migrate later)
- [ ] What tools? (Bing, File Search, Code Interpreter, MCP, OpenAPI)
- [ ] Memory strategy? (Foundry Memory, File Search, or hybrid)
- [ ] Publishing targets? (API first, then Teams, then Web, then Voice)
- [ ] Evaluation plan? (Which evaluators, what dataset, what baseline)
- [ ] Auth model? (Entra ID keyless via DefaultAzureCredential)

---

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.