azure-ai-projects-py

Azure AI Projects Python SDK (Foundry SDK)

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "azure-ai-projects-py" with this command: npx skills add claudedjale/skillset/claudedjale-skillset-azure-ai-projects-py

Azure AI Projects Python SDK (Foundry SDK)

Build AI applications on Microsoft Foundry using the azure-ai-projects SDK.

Installation

pip install azure-ai-projects azure-identity

Environment Variables

AZURE_AI_PROJECT_ENDPOINT="https://<resource>.services.ai.azure.com/api/projects/<project>" AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini"

Authentication

import os from azure.identity import DefaultAzureCredential from azure.ai.projects import AIProjectClient

credential = DefaultAzureCredential() client = AIProjectClient( endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"], credential=credential, )

Client Operations Overview

Operation Access Purpose

client.agents

.agents.*

Agent CRUD, versions, threads, runs

client.connections

.connections.*

List/get project connections

client.deployments

.deployments.*

List model deployments

client.datasets

.datasets.*

Dataset management

client.indexes

.indexes.*

Index management

client.evaluations

.evaluations.*

Run evaluations

client.red_teams

.red_teams.*

Red team operations

Two Client Approaches

  1. AIProjectClient (Native Foundry)

from azure.ai.projects import AIProjectClient

client = AIProjectClient( endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"], credential=DefaultAzureCredential(), )

Use Foundry-native operations

agent = client.agents.create_agent( model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"], name="my-agent", instructions="You are helpful.", )

  1. OpenAI-Compatible Client

Get OpenAI-compatible client from project

openai_client = client.get_openai_client()

Use standard OpenAI API

response = openai_client.chat.completions.create( model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"], messages=[{"role": "user", "content": "Hello!"}], )

Agent Operations

Create Agent (Basic)

agent = client.agents.create_agent( model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"], name="my-agent", instructions="You are a helpful assistant.", )

Create Agent with Tools

from azure.ai.agents import CodeInterpreterTool, FileSearchTool

agent = client.agents.create_agent( model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"], name="tool-agent", instructions="You can execute code and search files.", tools=[CodeInterpreterTool(), FileSearchTool()], )

Versioned Agents with PromptAgentDefinition

from azure.ai.projects.models import PromptAgentDefinition

Create a versioned agent

agent_version = client.agents.create_version( agent_name="customer-support-agent", definition=PromptAgentDefinition( model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"], instructions="You are a customer support specialist.", tools=[], # Add tools as needed ), version_label="v1.0", )

See references/agents.md for detailed agent patterns.

Tools Overview

Tool Class Use Case

Code Interpreter CodeInterpreterTool

Execute Python, generate files

File Search FileSearchTool

RAG over uploaded documents

Bing Grounding BingGroundingTool

Web search (requires connection)

Azure AI Search AzureAISearchTool

Search your indexes

Function Calling FunctionTool

Call your Python functions

OpenAPI OpenApiTool

Call REST APIs

MCP McpTool

Model Context Protocol servers

Memory Search MemorySearchTool

Search agent memory stores

SharePoint SharepointGroundingTool

Search SharePoint content

See references/tools.md for all tool patterns.

Thread and Message Flow

1. Create thread

thread = client.agents.threads.create()

2. Add message

client.agents.messages.create( thread_id=thread.id, role="user", content="What's the weather like?", )

3. Create and process run

run = client.agents.runs.create_and_process( thread_id=thread.id, agent_id=agent.id, )

4. Get response

if run.status == "completed": messages = client.agents.messages.list(thread_id=thread.id) for msg in messages: if msg.role == "assistant": print(msg.content[0].text.value)

Connections

List all connections

connections = client.connections.list() for conn in connections: print(f"{conn.name}: {conn.connection_type}")

Get specific connection

connection = client.connections.get(connection_name="my-search-connection")

See references/connections.md for connection patterns.

Deployments

List available model deployments

deployments = client.deployments.list() for deployment in deployments: print(f"{deployment.name}: {deployment.model}")

See references/deployments.md for deployment patterns.

Datasets and Indexes

List datasets

datasets = client.datasets.list()

List indexes

indexes = client.indexes.list()

See references/datasets-indexes.md for data operations.

Evaluation

Using OpenAI client for evals

openai_client = client.get_openai_client()

Create evaluation with built-in evaluators

eval_run = openai_client.evals.runs.create( eval_id="my-eval", name="quality-check", data_source={ "type": "custom", "item_references": [{"item_id": "test-1"}], }, testing_criteria=[ {"type": "fluency"}, {"type": "task_adherence"}, ], )

See references/evaluation.md for evaluation patterns.

Async Client

from azure.ai.projects.aio import AIProjectClient

async with AIProjectClient( endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"], credential=DefaultAzureCredential(), ) as client: agent = await client.agents.create_agent(...) # ... async operations

See references/async-patterns.md for async patterns.

Memory Stores

Create memory store for agent

memory_store = client.agents.create_memory_store( name="conversation-memory", )

Attach to agent for persistent memory

agent = client.agents.create_agent( model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"], name="memory-agent", tools=[MemorySearchTool()], tool_resources={"memory": {"store_ids": [memory_store.id]}}, )

Best Practices

  • Use context managers for async client: async with AIProjectClient(...) as client:

  • Clean up agents when done: client.agents.delete_agent(agent.id)

  • Use create_and_process for simple runs, streaming for real-time UX

  • Use versioned agents for production deployments

  • Prefer connections for external service integration (AI Search, Bing, etc.)

SDK Comparison

Feature azure-ai-projects

azure-ai-agents

Level High-level (Foundry) Low-level (Agents)

Client AIProjectClient

AgentsClient

Versioning create_version()

Not available

Connections Yes No

Deployments Yes No

Datasets/Indexes Yes No

Evaluation Via OpenAI client No

When to use Full Foundry integration Standalone agent apps

Reference Files

  • references/agents.md: Agent operations with PromptAgentDefinition

  • references/tools.md: All agent tools with examples

  • references/evaluation.md: Evaluation operations overview

  • references/built-in-evaluators.md: Complete built-in evaluator reference

  • references/custom-evaluators.md: Code and prompt-based evaluator patterns

  • references/connections.md: Connection operations

  • references/deployments.md: Deployment enumeration

  • references/datasets-indexes.md: Dataset and index operations

  • references/async-patterns.md: Async client usage

  • references/api-reference.md: Complete API reference for all 373 SDK exports (v2.0.0b4)

  • scripts/run_batch_evaluation.py: CLI tool for batch evaluations

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

github-issue-creator

No summary provided by upstream source.

Repository SourceNeeds Review
General

azure-observability

No summary provided by upstream source.

Repository SourceNeeds Review
General

azure-appconfiguration-java

No summary provided by upstream source.

Repository SourceNeeds Review
General

wiki-architect

No summary provided by upstream source.

Repository SourceNeeds Review