azure-ai-projects-ts – DevOps & Infrastructure skill for AI agents
High-level SDK for Azure AI Foundry projects with agents, connections, deployments, and evaluations.
Install the azure-ai-projects-ts skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/azure-ai-projects-ts-361a4.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /azure-ai-projects-ts – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/azure-ai-projects-ts-361a4.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $azure-ai-projects-ts – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/azure-ai-projects-ts-361a4.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /azure-ai-projects-ts – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/azure-ai-projects-ts-361a4.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /azure-ai-projects-ts – then describe the task you want done.
SKILL.md content
Azure AI Projects SDK for TypeScript
High-level SDK for Azure AI Foundry projects with agents, connections, deployments, and evaluations.
Installation
npm install @azure/ai-projects @azure/identityFor tracing:
npm install @azure/monitor-opentelemetry @opentelemetry/apiEnvironment Variables
AZURE_AI_PROJECT_ENDPOINT=https://<resource>.services.ai.azure.com/api/projects/<project>
MODEL_DEPLOYMENT_NAME=gpt-4oAuthentication
import { AIProjectClient } from "@azure/ai-projects";
import { DefaultAzureCredential } from "@azure/identity";
const client = new AIProjectClient(
process.env.AZURE_AI_PROJECT_ENDPOINT!,
new DefaultAzureCredential()
);SDK generation and effects
These independent fragments span version-sensitive project/agent APIs. Pin the actual package/API generation and verify available operation groups before use. Confirm tenant/project and budget before agent runs, dataset uploads or tools; code interpreter/MCP can execute code or disclose private data. getWithCredentials returns secrets and is not a default discovery operation. Cleanup must target only resources created and owned by this task.
Operation Groups
| Group | Purpose |
|-------|---------|
| client.agents | Create and manage AI agents |
| client.connections | List connected Azure resources |
| client.deployments | List model deployments |
| client.datasets | Upload and manage datasets |
| client.indexes | Create and manage search indexes |
| client.evaluators | Manage evaluation metrics |
| client.memoryStores | Manage agent memory |
Getting OpenAI Client
const openAIClient = await client.getOpenAIClient();
// Use for responses
const response = await openAIClient.responses.create({
model: "gpt-4o",
input: "What is the capital of France?"
});
// Use for conversations
const conversation = await openAIClient.conversations.create({
items: [{ type: "message", role: "user", content: "Hello!" }]
});Agents
Create Agent
const agent = await client.agents.createVersion("my-agent", {
kind: "prompt",
model: "gpt-4o",
instructions: "You are a helpful assistant."
});Agent with Tools
// Code Interpreter
const agent = await client.agents.createVersion("code-agent", {
kind: "prompt",
model: "gpt-4o",
instructions: "You can execute code.",
tools: [{ type: "code_interpreter", container: { type: "auto" } }]
});
// File Search
const agent = await client.agents.createVersion("search-agent", {
kind: "prompt",
model: "gpt-4o",
tools: [{ type: "file_search", vector_store_ids: [vectorStoreId] }]
});
// Web Search
const agent = await client.agents.createVersion("web-agent", {
kind: "prompt",
model: "gpt-4o",
tools: [{
type: "web_search_preview",
user_location: { type: "approximate", country: "US", city: "Seattle" }
}]
});
// Azure AI Search
const agent = await client.agents.createVersion("aisearch-agent", {
kind: "prompt",
model: "gpt-4o",
tools: [{
type: "azure_ai_search",
azure_ai_search: {
indexes: [{
project_connection_id: connectionId,
index_name: "my-index",
query_type: "simple"
}]
}
}]
});
// Function Tool
const agent = await client.agents.createVersion("func-agent", {
kind: "prompt",
model: "gpt-4o",
tools: [{
type: "function",
function: {
name: "get_weather",
description: "Get weather for a location",
strict: true,
parameters: {
type: "object",
properties: { location: { type: "string" } },
required: ["location"]
}
}
}]
});
// MCP Tool
const agent = await client.agents.createVersion("mcp-agent", {
kind: "prompt",
model: "gpt-4o",
tools: [{
type: "mcp",
server_label: "my-mcp",
server_url: "https://mcp-server.example.com",
require_approval: "always"
}]
});Run Agent
const openAIClient = await client.getOpenAIClient();
// Create conversation
const conversation = await openAIClient.conversations.create({
items: [{ type: "message", role: "user", content: "Hello!" }]
});
// Generate response using agent
const response = await openAIClient.responses.create(
{ conversation: conversation.id },
{ body: { agent: { name: agent.name, type: "agent_reference" } } }
);
// Cleanup
await openAIClient.conversations.delete(conversation.id);
await client.agents.deleteVersion(agent.name, agent.version);Connections
// List all connections
for await (const conn of client.connections.list()) {
console.log(conn.name, conn.type);
}
// Get connection by name
const conn = await client.connections.get("my-connection");
// Get connection with credentials
const connWithCreds = await client.connections.getWithCredentials("my-connection");
// Get default connection by type
const defaultAzureOpenAI = await client.connections.getDefault("AzureOpenAI", true);Deployments
// List all deployments
for await (const deployment of client.deployments.list()) {
if (deployment.type === "ModelDeployment") {
console.log(deployment.name, deployment.modelName);
}
}
// Filter by publisher
for await (const d of client.deployments.list({ modelPublisher: "OpenAI" })) {
console.log(d.name);
}
// Get specific deployment
const deployment = await client.deployments.get("gpt-4o");Datasets
// Upload single file
const dataset = await client.datasets.uploadFile(
"my-dataset",
"1.0",
"./data/training.jsonl"
);
// Upload folder
const dataset = await client.datasets.uploadFolder(
"my-dataset",
"2.0",
"./data/documents/"
);
// Get dataset
const ds = await client.datasets.get("my-dataset", "1.0");
// List versions
for await (const version of client.datasets.listVersions("my-dataset")) {
console.log(version);
}
// Delete
await client.datasets.delete("my-dataset", "1.0");Indexes
import { AzureAISearchIndex } from "@azure/ai-projects";
const indexConfig: AzureAISearchIndex = {
name: "my-index",
type: "AzureSearch",
version: "1",
indexName: "my-index",
connectionName: "search-connection"
};
// Create index
const index = await client.indexes.createOrUpdate("my-index", "1", indexConfig);
// List indexes
for await (const idx of client.indexes.list()) {
console.log(idx.name);
}
// Delete
await client.indexes.delete("my-index", "1");Key Types
import {
AIProjectClient,
AIProjectClientOptionalParams,
Connection,
ModelDeployment,
DatasetVersionUnion,
AzureAISearchIndex
} from "@azure/ai-projects";Best Practices
1. Use getOpenAIClient() - For responses, conversations, files, and vector stores
2. Version your agents - Use createVersion for reproducible agent definitions
3. Clean up resources - Delete agents, conversations when done
4. Use connections - Get credentials from project connections, don't hardcode
5. Filter deployments - Use modelPublisher filter to find specific models
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Related skills
- azure-ai-textanalytics-py – Azure AI Text Analytics SDK for sentiment analysis, entity recognition, key phrases…
- azure-ai-transcription-py – Azure AI Transcription SDK for Python. Use for audio-file transcription with timestamps…
- k8s-manifest-generator – Create production-ready Kubernetes manifests for Deployments, Services, ConfigMaps, and…
- azure-ai-vision-imageanalysis-py – Azure AI Vision Image Analysis SDK for captions, tags, objects, OCR, people detection…
- azure-ai-voicelive-dotnet – Azure AI Voice Live SDK for .NET. Build real-time voice AI applications with…
- azure-ai-voicelive-py – Build real-time voice AI applications with bidirectional WebSocket communication.
- azure-ai-voicelive-ts – Azure AI Voice Live SDK for JavaScript/TypeScript. Build real-time voice AI applications…
- azure-aks – Deploy and manage Azure Kubernetes Service clusters. Configure node pools, networking…