[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-105fcb78-f33c-4f3e-9186-b83b58f6045c":3,"$fLFrPz5dAWurP3NRv4t4GbCzJGuqOKfLGXls7iD8Lqac":43},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":34},"105fcb78-f33c-4f3e-9186-b83b58f6045c","azure-ai-projects-py","在Microsoft Foundry上使用azure-ai-projects SDK构建AI应用。","cat_coding_devops","mod_coding","sickn33,coding","---\nname: azure-ai-projects-py\ndescription: \"Build AI applications on Microsoft Foundry using the azure-ai-projects SDK.\"\nrisk: unknown\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# Azure AI Projects Python SDK (Foundry SDK)\n\nBuild AI applications on Microsoft Foundry using the `azure-ai-projects` SDK.\n\n## Installation\n\n```bash\npip install azure-ai-projects azure-identity\n```\n\n## Environment Variables\n\n```bash\nAZURE_AI_PROJECT_ENDPOINT=\"https:\u002F\u002F\u003Cresource>.services.ai.azure.com\u002Fapi\u002Fprojects\u002F\u003Cproject>\"\nAZURE_AI_MODEL_DEPLOYMENT_NAME=\"gpt-4o-mini\"\n```\n\n## Authentication\n\n```python\nimport os\nfrom azure.identity import DefaultAzureCredential\nfrom azure.ai.projects import AIProjectClient\n\ncredential = DefaultAzureCredential()\nclient = AIProjectClient(\n    endpoint=os.environ[\"AZURE_AI_PROJECT_ENDPOINT\"],\n    credential=credential,\n)\n```\n\n## Client Operations Overview\n\n| Operation | Access | Purpose |\n|-----------|--------|---------|\n| `client.agents` | `.agents.*` | Agent CRUD, versions, threads, runs |\n| `client.connections` | `.connections.*` | List\u002Fget project connections |\n| `client.deployments` | `.deployments.*` | List model deployments |\n| `client.datasets` | `.datasets.*` | Dataset management |\n| `client.indexes` | `.indexes.*` | Index management |\n| `client.evaluations` | `.evaluations.*` | Run evaluations |\n| `client.red_teams` | `.red_teams.*` | Red team operations |\n\n## Two Client Approaches\n\n### 1. AIProjectClient (Native Foundry)\n\n```python\nfrom azure.ai.projects import AIProjectClient\n\nclient = AIProjectClient(\n    endpoint=os.environ[\"AZURE_AI_PROJECT_ENDPOINT\"],\n    credential=DefaultAzureCredential(),\n)\n\n# Use Foundry-native operations\nagent = client.agents.create_agent(\n    model=os.environ[\"AZURE_AI_MODEL_DEPLOYMENT_NAME\"],\n    name=\"my-agent\",\n    instructions=\"You are helpful.\",\n)\n```\n\n### 2. OpenAI-Compatible Client\n\n```python\n# Get OpenAI-compatible client from project\nopenai_client = client.get_openai_client()\n\n# Use standard OpenAI API\nresponse = openai_client.chat.completions.create(\n    model=os.environ[\"AZURE_AI_MODEL_DEPLOYMENT_NAME\"],\n    messages=[{\"role\": \"user\", \"content\": \"Hello!\"}],\n)\n```\n\n## Agent Operations\n\n### Create Agent (Basic)\n\n```python\nagent = client.agents.create_agent(\n    model=os.environ[\"AZURE_AI_MODEL_DEPLOYMENT_NAME\"],\n    name=\"my-agent\",\n    instructions=\"You are a helpful assistant.\",\n)\n```\n\n### Create Agent with Tools\n\n```python\nfrom azure.ai.agents import CodeInterpreterTool, FileSearchTool\n\nagent = client.agents.create_agent(\n    model=os.environ[\"AZURE_AI_MODEL_DEPLOYMENT_NAME\"],\n    name=\"tool-agent\",\n    instructions=\"You can execute code and search files.\",\n    tools=[CodeInterpreterTool(), FileSearchTool()],\n)\n```\n\n### Versioned Agents with PromptAgentDefinition\n\n```python\nfrom azure.ai.projects.models import PromptAgentDefinition\n\n# Create a versioned agent\nagent_version = client.agents.create_version(\n    agent_name=\"customer-support-agent\",\n    definition=PromptAgentDefinition(\n        model=os.environ[\"AZURE_AI_MODEL_DEPLOYMENT_NAME\"],\n        instructions=\"You are a customer support specialist.\",\n        tools=[],  # Add tools as needed\n    ),\n    version_label=\"v1.0\",\n)\n```\n\nSee references\u002Fagents.md for detailed agent patterns.\n\n## Tools Overview\n\n| Tool | Class | Use Case |\n|------|-------|----------|\n| Code Interpreter | `CodeInterpreterTool` | Execute Python, generate files |\n| File Search | `FileSearchTool` | RAG over uploaded documents |\n| Bing Grounding | `BingGroundingTool` | Web search (requires connection) |\n| Azure AI Search | `AzureAISearchTool` | Search your indexes |\n| Function Calling | `FunctionTool` | Call your Python functions |\n| OpenAPI | `OpenApiTool` | Call REST APIs |\n| MCP | `McpTool` | Model Context Protocol servers |\n| Memory Search | `MemorySearchTool` | Search agent memory stores |\n| SharePoint | `SharepointGroundingTool` | Search SharePoint content |\n\nSee references\u002Ftools.md for all tool patterns.\n\n## Thread and Message Flow\n\n```python\n# 1. Create thread\nthread = client.agents.threads.create()\n\n# 2. Add message\nclient.agents.messages.create(\n    thread_id=thread.id,\n    role=\"user\",\n    content=\"What's the weather like?\",\n)\n\n# 3. Create and process run\nrun = client.agents.runs.create_and_process(\n    thread_id=thread.id,\n    agent_id=agent.id,\n)\n\n# 4. Get response\nif run.status == \"completed\":\n    messages = client.agents.messages.list(thread_id=thread.id)\n    for msg in messages:\n        if msg.role == \"assistant\":\n            print(msg.content[0].text.value)\n```\n\n## Connections\n\n```python\n# List all connections\nconnections = client.connections.list()\nfor conn in connections:\n    print(f\"{conn.name}: {conn.connection_type}\")\n\n# Get specific connection\nconnection = client.connections.get(connection_name=\"my-search-connection\")\n```\n\nSee references\u002Fconnections.md for connection patterns.\n\n## Deployments\n\n```python\n# List available model deployments\ndeployments = client.deployments.list()\nfor deployment in deployments:\n    print(f\"{deployment.name}: {deployment.model}\")\n```\n\nSee references\u002Fdeployments.md for deployment patterns.\n\n## Datasets and Indexes\n\n```python\n# List datasets\ndatasets = client.datasets.list()\n\n# List indexes\nindexes = client.indexes.list()\n```\n\nSee references\u002Fdatasets-indexes.md for data operations.\n\n## Evaluation\n\n```python\n# Using OpenAI client for evals\nopenai_client = client.get_openai_client()\n\n# Create evaluation with built-in evaluators\neval_run = openai_client.evals.runs.create(\n    eval_id=\"my-eval\",\n    name=\"quality-check\",\n    data_source={\n        \"type\": \"custom\",\n        \"item_references\": [{\"item_id\": \"test-1\"}],\n    },\n    testing_criteria=[\n        {\"type\": \"fluency\"},\n        {\"type\": \"task_adherence\"},\n    ],\n)\n```\n\nSee references\u002Fevaluation.md for evaluation patterns.\n\n## Async Client\n\n```python\nfrom azure.ai.projects.aio import AIProjectClient\n\nasync with AIProjectClient(\n    endpoint=os.environ[\"AZURE_AI_PROJECT_ENDPOINT\"],\n    credential=DefaultAzureCredential(),\n) as client:\n    agent = await client.agents.create_agent(...)\n    # ... async operations\n```\n\nSee references\u002Fasync-patterns.md for async patterns.\n\n## Memory Stores\n\n```python\n# Create memory store for agent\nmemory_store = client.agents.create_memory_store(\n    name=\"conversation-memory\",\n)\n\n# Attach to agent for persistent memory\nagent = client.agents.create_agent(\n    model=os.environ[\"AZURE_AI_MODEL_DEPLOYMENT_NAME\"],\n    name=\"memory-agent\",\n    tools=[MemorySearchTool()],\n    tool_resources={\"memory\": {\"store_ids\": [memory_store.id]}},\n)\n```\n\n## Best Practices\n\n1. **Use context managers** for async client: `async with AIProjectClient(...) as client:`\n2. **Clean up agents** when done: `client.agents.delete_agent(agent.id)`\n3. **Use `create_and_process`** for simple runs, **streaming** for real-time UX\n4. **Use versioned agents** for production deployments\n5. **Prefer connections** for external service integration (AI Search, Bing, etc.)\n\n## SDK Comparison\n\n| Feature | `azure-ai-projects` | `azure-ai-agents` |\n|---------|---------------------|-------------------|\n| Level | High-level (Foundry) | Low-level (Agents) |\n| Client | `AIProjectClient` | `AgentsClient` |\n| Versioning | `create_version()` | Not available |\n| Connections | Yes | No |\n| Deployments | Yes | No |\n| Datasets\u002FIndexes | Yes | No |\n| Evaluation | Via OpenAI client | No |\n| When to use | Full Foundry integration | Standalone agent apps |\n\n## Reference Files\n\n- references\u002Fagents.md: Agent operations with PromptAgentDefinition\n- references\u002Ftools.md: All agent tools with examples\n- references\u002Fevaluation.md: Evaluation operations overview\n- references\u002Fbuilt-in-evaluators.md: Complete built-in evaluator reference\n- references\u002Fcustom-evaluators.md: Code and prompt-based evaluator patterns\n- references\u002Fconnections.md: Connection operations\n- references\u002Fdeployments.md: Deployment enumeration\n- references\u002Fdatasets-indexes.md: Dataset and index operations\n- references\u002Fasync-patterns.md: Async client usage\n- references\u002Fapi-reference.md: Complete API reference for all 373 SDK exports (v2.0.0b4)\n- scripts\u002Frun_batch_evaluation.py: CLI tool for batch evaluations\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,156,153,"2026-05-16 13:05:21",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"编程开发","coding","mdi-code-braces","代码生成、调试、审查，提升开发效率",2,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":32,"skillCount":33,"createdAt":26},"DevOps","devops","mdi-cog-outline","CI\u002FCD、容器化、部署运维",3,162,[35],{"id":36,"skillId":4,"version":37,"fileName":38,"fileSize":39,"filePath":40,"fileHash":41,"manifest":42,"createdAt":19},"4ba055bc-11f4-42f1-b744-2796a3d48dc7","1.0.0","azure-ai-projects-py.zip",3029,"uploads\u002Fskills\u002F105fcb78-f33c-4f3e-9186-b83b58f6045c\u002Fazure-ai-projects-py.zip","bd7edbccc49c00b5ee1156e27ce1421958be64d3edb965aec22bfabda20bd145","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":8589}]",{"code":44,"message":45,"data":46},200,"success",{"items":47,"stats":48,"page":51},[],{"averageRating":49,"totalRatings":49,"ratingCounts":50},0,[49,49,49,49,49],{"limit":52,"offset":49,"hasMore":53,"nextOffset":52,"ratedOnly":16},15,false]