基于 AAS 技能库掌握 Azure AI Projects Java SDKAzure AI Foundry 项目级资源管理实战指南【免费下载链接】agentic-awesome-skillsAAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,600 agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.项目地址: https://gitcode.com/GitHub_Trending/an/agentic-awesome-skills本指南以 AASAgentic Awesome Skills开源仓库中的azure-ai-projects-java技能文档为骨架系统讲解如何使用 Java 版azure-ai-projectsSDK 连接并管理 Azure AI FoundryAzure AI Studio 演进形态项目中的连接Connections、数据集Datasets、索引Indexes与评估Evaluations。读完本文你将掌握从 Maven 依赖引入、环境变量与身份认证配置到子客户端分层调用与异常处理的一整套可落地 Java 编码方案。技能背景它在 AAS 仓库中的定位azure-ai-projects-java是 AAS 仓库中收录的一枚社区技能source: community完整内容位于 SKILL.md。技能文件通过 YAML frontmatter 声明元数据--- name: azure-ai-projects-java description: Azure AI Projects SDK for Java. High-level SDK for Azure AI Foundry project management including connections, datasets, indexes, and evaluations. risk: critical source: community date_added: 2026-02-27 ---其中risk: critical表示该技能涉及关键业务操作Agent 或开发者在触发时应谨慎核对输入与权限边界。仓库的 目录索引 将其归类为cloud类别标注了azure、ai、java等标签与检索触发词triggers技能索引 中也登记了同名条目与 Python、TypeScript、.NET 三个同族技能并列存在见 azure-ai-projects-py、azure-ai-projects-ts、azure-ai-projects-dotnet方便按语言栈选择对等实现。该 SDK 是 Azure AI Foundry 项目管理的高层封装客户端屏蔽了底层 REST 协议细节统一提供对连接、数据集、部署、索引、评估、评估器与调度等资源的访问入口适合 Java 服务端应用、Agent 工具链与自动化流水线集成。依赖引入与版本说明项目当前推荐引入的 Maven 坐标如下dependency groupIdcom.azure/groupId artifactIdazure-ai-projects/artifactId version1.0.0-beta.1/version /dependency要点版本状态1.0.0-beta.1属于 beta 阶段公共 API 存在变更可能。生产环境应固定该精确版本号或升级到经评估的更新版本避免传递依赖浮动导致编译/运行不一致。配套依赖认证部分依赖com.azure:azure-identity提供DefaultAzureCredential请一并加入pom.xml使用 Gradle 时可写为implementation com.azure:azure-ai-projects:1.0.0-beta.1。Java 版本前提作为 Azure SDK for Java 家族成员通常要求 JDK 8具体以该版本 pom 声明的目标版本为准实际构建前请核对本机java -version。环境变量配置SDK 客户端通过环境变量注入项目终结点技能文档给出的核心变量为PROJECT_ENDPOINThttps://resource.services.ai.azure.com/api/projects/projectPROJECT_ENDPOINTAzure AI Foundry 项目的唯一终结点格式为https://资源名.services.ai.azure.com/api/projects/项目名可在 Azure 门户对应 AI Foundry 项目的“概览 / 连接字符串”区域获取。在创建/更新索引等操作中技能还使用了另外两个变量AI_SEARCH_CONNECTION_NAMEAzure AI Search 连接名称与AI_SEARCH_INDEX_NAME目标搜索索引名它们将被读入createOrUpdate调用见下文核心操作。建议将终结点与凭据类信息统一放入环境变量或密钥管理服务如 Azure Key Vault避免硬编码进源码。身份认证DefaultAzureCredential 链路技能文档推荐的认证方式是 Azure Identity 的DefaultAzureCredentialimport com.azure.ai.projects.AIProjectClientBuilder; import com.azure.identity.DefaultAzureCredentialBuilder; AIProjectClientBuilder builder new AIProjectClientBuilder() .endpoint(System.getenv(PROJECT_ENDPOINT)) .credential(new DefaultAzureCredentialBuilder().build());DefaultAzureCredential会按预定义顺序尝试多种凭据源直到成功为止典型链路包括环境变量凭据AZURE_CLIENT_ID/AZURE_CLIENT_SECRET/AZURE_TENANT_ID工作负载标识Workload Identity常见于 AKS / GitHub Actions托管标识Managed Identity适用于 Azure VM、App Service 等资源Azure CLI 已登录账号IntelliJ / Visual Studio Code 等 IDE 登录态。正因如此同一套代码在本地开发走 Azure CLI 登录、CI/CD走工作负载身份或环境变量与云端运行时走托管标识之间无需改动即可切换这正是技能将其列为生产环境首选认证方式的原因。若需要显式限制凭据来源可使用DefaultAzureCredentialBuilder().excludeXxxCredential()系列方法裁剪链路。客户端层级架构一个 Builder 派生七类子客户端AIProjectClientBuilder是唯一入口同一 builder 实例可派生出多个职责单一的子客户端技能文档中的对应关系如下子客户端用途ConnectionsClient枚举已连接的 Azure 资源DatasetsClient上传文档、管理数据集DeploymentsClient枚举 AI 模型部署IndexesClient创建与管理搜索索引EvaluationsClient运行 AI 模型评估EvaluatorsClient管理评估器配置SchedulesClient管理定时调度操作// Build sub-clients from builder ConnectionsClient connectionsClient builder.buildConnectionsClient(); DatasetsClient datasetsClient builder.buildDatasetsClient(); DeploymentsClient deploymentsClient builder.buildDeploymentsClient(); IndexesClient indexesClient builder.buildIndexesClient(); EvaluationsClient evaluationsClient builder.buildEvaluationsClient();架构收益客户端按资源域拆分避免单一巨型客户端builder 复用一个终结点与凭据配置派生出的子客户端共享相同的认证上下文与 HTTP 管道重试、日志、代理等统一由 Azure Core 管理。核心操作实战1. 枚举项目连接List Connections连接表示项目内已绑定的外部 Azure 资源如 Azure AI Search、Azure Storage、Azure OpenAI 等。技能给出的列举代码import com.azure.ai.projects.models.Connection; import com.azure.core.http.rest.PagedIterable; PagedIterableConnection connections connectionsClient.listConnections(); for (Connection connection : connections) { System.out.println(Name: connection.getName()); System.out.println(Type: connection.getType()); System.out.println(Credential Type: connection.getCredentials().getType()); }说明返回类型为PagedIterableConnection支持按页惰性拉取无需手动处理分页游标见最佳实践第 3 条。Connection暴露getName()、getType()与凭据对象getCredentials()凭据类型如 API Key、托管标识等决定后续以何种方式访问底层资源读取前应做类型判断见最佳实践第 5 条。2. 列举搜索索引List IndexesindexesClient.listLatest().forEach(index - { System.out.println(Index name: index.getName()); System.out.println(Version: index.getVersion()); System.out.println(Description: index.getDescription()); });listLatest()返回各索引的最新版本列表Index对象携带名称、版本号与描述字段适合用于检索现有索引资产、辅助索引生命周期管理。3. 创建或更新索引Create or Update Index技能文档给出通过 Azure AI Search 后端创建/更新索引的完整示例import com.azure.ai.projects.models.AzureAISearchIndex; import com.azure.ai.projects.models.Index; String indexName my-index; String indexVersion 1.0; String searchConnectionName System.getenv(AI_SEARCH_CONNECTION_NAME); String searchIndexName System.getenv(AI_SEARCH_INDEX_NAME); Index index indexesClient.createOrUpdate( indexName, indexVersion, new AzureAISearchIndex() .setConnectionName(searchConnectionName) .setIndexName(searchIndexName) ); System.out.println(Created index: index.getName());要点createOrUpdate语义为幂等索引存在则更新不存在则创建。AzureAISearchIndex是后端类型的具体实现本技能场景下后端为 Azure AI Search通过setConnectionName/setIndexName绑定到项目中已有的搜索连接及其中的目标索引。连接名与索引名均从环境变量读取避免在代码中硬编码资源标识。4. 访问 OpenAI 官方评估 APISDK 直接暴露 OpenAI 官方 SDK 的评估入口技能文档示例import com.openai.services.EvalService; EvalService evalService evaluationsClient.getOpenAIClient(); // Use OpenAI evaluation APIs directly通过evaluationsClient.getOpenAIClient()获得EvalService后即可使用 OpenAI 官方评估 API 定义评估任务、运行评估并获取结果无需单独初始化第二套认证客户端——身份上下文由EvaluationsClient统一承接。错误处理技能文档给出的异常处理范式import com.azure.core.exception.HttpResponseException; import com.azure.core.exception.ResourceNotFoundException; try { Index index indexesClient.get(indexName, version); } catch (ResourceNotFoundException e) { System.err.println(Index not found: indexName); } catch (HttpResponseException e) { System.err.println(Error: e.getResponse().getStatusCode()); }ResourceNotFoundException目标资源索引、连接等不存在可针对性地提示或触发创建流程。HttpResponseExceptionHTTP 层通用错误基类e.getResponse().getStatusCode()可获取 4xx/5xx 状态码用于日志分级与告警实际项目中建议进一步细分如ClientAuthenticationException处理 401 凭据失效HttpResponseException兜底其他错误。技能同时提醒不要将输出视为环境特定验证、测试或专家评审的替代品缺少必要输入、权限或成功标准时应停下来向用户确认。最佳实践总结技能文档提炼的五条工程经验逐条展开生产环境优先使用DefaultAzureCredential——一次配置、多环境无缝切换避免在各环境中维护不同的凭据代码分支。复用 client builder 派生多个子客户端——避免为每个资源域重复构建终结点与凭据配置降低出错面并统一 HTTP 管道行为。使用PagedIterable处理分页——枚举连接、索引等可能返回大量数据的资源时交给 Azure Core 的分页机制惰性拉取防止内存峰值与截断。用环境变量承载连接名与配置——AI_SEARCH_CONNECTION_NAME、AI_SEARCH_INDEX_NAME等资源标识与运行环境强相关注入环境变量便于不同环境复用同一份代码。访问凭据前先校验连接类型——不同连接携带的凭据类型不同API Key、托管标识等先判断getCredentials().getType()再决定访问策略避免类型假设导致运行时异常。使用边界与限制该技能有其明确的适用前提文档在结尾给出了三条限制Agent 与开发者应遵守仅在任务与上文描述范围Azure AI Foundry 项目级资源管理明确匹配时使用不得将技能输出视为环境特定验证、测试或专家评审的替代品若缺少所需输入、权限、安全边界或成功标准应停止并请求澄清而不是盲目执行。如何在仓库中继续深入如需在 AAS 仓库内继续探索可以从以下路径入手技能原文SKILL.md目录与检索元数据catalog.json、skills_index.json同族多语言实现azure-ai-projects-py、azure-ai-projects-ts、azure-ai-projects-dotnet技能中提到的产品文档、REST API 参考、SDK 源码与官方示例等外部资源可通过微软官方文档渠道与 Azure SDK for Java 官方仓库获取本文不再重复罗列外链。【免费下载链接】agentic-awesome-skillsAAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,600 agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.项目地址: https://gitcode.com/GitHub_Trending/an/agentic-awesome-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考