mcpField
A
azure-ai-agents-persistent-java

azure-ai-agents-persistent-java

github.com/sickn33Agent 工作流48.7k104 次安装今天更新
代码仓库

关于 azure-ai-agents-persistent-java

用于通过 Azure AI Agents 创建和管理持久化 AI Agent 的底层 Java SDK。它提供同步和异步客户端,支持管理 Agent、线程、消息和运行。

主要功能

  1. 01创建和管理持久化 Agent
  2. 02使用同步或异步客户端
  3. 03创建线程和消息
  4. 04启动运行并检查状态
  5. 05删除线程和 Agent

适用场景

  1. 01在 Java 应用中构建持久化 Agent
  2. 02跨会话管理 Agent 对话
  3. 03处理 Agent 运行及其结果

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill azure-ai-agents-persistent-java

安装后在 Claude Code 中输入/azure-ai-agents-persistent-java确认已加载。

详细介绍

Azure AI Agents Persistent SDK for Java

用于创建和管理持久化 AI Agent 的底层 SDK,支持线程、消息、运行和工具。

安装

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-ai-agents-persistent</artifactId>
    <version>1.0.0-beta.2</version>
</dependency>

环境变量

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

身份验证

import com.azure.ai.agents.persistent.PersistentAgentsClient;
import com.azure.ai.agents.persistent.PersistentAgentsClientBuilder;
import com.azure.ai.agents.persistent.*;
import com.azure.ai.agents.persistent.models.*;
import com.azure.core.http.rest.PagedIterable;
import com.azure.identity.DefaultAzureCredentialBuilder;

String endpoint = System.getenv("PROJECT_ENDPOINT");
PersistentAgentsClient client = new PersistentAgentsClientBuilder()
    .endpoint(endpoint)
    .credential(new DefaultAzureCredentialBuilder().build())
    .buildClient();
String modelDeploymentName = System.getenv("MODEL_DEPLOYMENT_NAME");
PersistentAgentsAdministrationClient administration = client.getPersistentAgentsAdministrationClient();
ThreadsClient threads = client.getThreadsClient();
MessagesClient messageClient = client.getMessagesClient();
RunsClient runs = client.getRunsClient();

核心概念

Azure AI Agents Persistent SDK 提供底层 API,用于管理可跨会话重复使用的持久化 Agent。

客户端层级
客户端用途
PersistentAgentsClient用于 Agent 操作的同步客户端
PersistentAgentsAsyncClient用于 Agent 操作的异步客户端

核心工作流

1. 创建 Agent
// Create agent with tools
PersistentAgent agent = administration.createAgent(
    new CreateAgentOptions(modelDeploymentName)
        .setName("Math Tutor")
        .setInstructions("You are a personal math tutor.")
);
2. 创建线程
PersistentAgentThread thread = threads.createThread();
3. 添加消息
messageClient.createMessage(
    thread.getId(),
    MessageRole.USER,
    "I need help with equations."
);
4. 运行 Agent
ThreadRun run = runs.createRun(new CreateRunOptions(thread.getId(), agent.getId()));

// Bound polling; a terminal non-success state is not a completed answer.
long deadline = System.nanoTime() + java.util.concurrent.TimeUnit.SECONDS.toNanos(60);
while (run.getStatus() == RunStatus.QUEUED || run.getStatus() == RunStatus.IN_PROGRESS) {
    if (System.nanoTime() > deadline) {
        throw new IllegalStateException("Run polling timed out; inspect/cancel the owned run separately");
    }
    Thread.sleep(500);
    run = runs.getRun(thread.getId(), run.getId());
}

读取最终响应前,请检查运行状态:requires_action 需要经过授权的工具输出处理程序;failed、cancelled、expired 或其他非成功状态必须明确报告。轮询超时不会取消云端运行。

5. 获取响应
PagedIterable<ThreadMessage> messages = messageClient.listMessages(thread.getId());
for (ThreadMessage message : messages) {
    System.out.println("Message role: " + message.getRole()); // Do not log retained prompt/response payloads.
}
6. 清理
threads.deleteThread(thread.getId());
administration.deleteAgent(agent.getId());

最佳实践

  1. 生产环境身份验证使用 DefaultAzureCredential
  2. 适当延迟轮询——建议每次状态检查间隔 500ms
  3. 清理资源——完成后删除线程和 Agent
  4. 处理所有运行状态——检查 RequiresAction、Failed、Cancelled
  5. 使用异步客户端,在高并发场景下可获得更高吞吐量

错误处理

import com.azure.core.exception.HttpResponseException;

try {
    PersistentAgent exampleAgent = administration.createAgent(
        new CreateAgentOptions(modelDeploymentName).setName("Example").setInstructions("Answer briefly"));
} catch (HttpResponseException e) {
    System.err.println("Error: " + e.getResponse().getStatusCode() + " - " + e.getMessage());
}

参考链接

资源URL
Maven 包https://central.sonatype.com/artifact/com.azure/azure-ai-agents-persistent
GitHub 源码https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/ai/azure-ai-agents-persistent

适用场景

使用预览版 SDK 实现或维护 Java 持久化 Agent 的线程、消息、运行和管理功能时使用。经审查的示例使用 beta.2 子客户端,而非 PersistentAgentsClient 上的直接 CRUD 方法。

限制

  • 操作会创建需付费的云资源、发送提示词并保留线程数据。请使用已获授权的项目/模型并设置明确的预算;仅删除当前运行所创建的资源,失败时保留 ID,并对消息/凭据日志进行脱敏。
  • 代码片段是应用程序代码中的连续片段,并非可独立编译的程序。API 结构已根据 Microsoft 的 beta.2 示例和预览版参考资料进行核对;未执行云端运行。请使用项目中经过审查的 Azure BOM,添加兼容的 azure-identity 和所需依赖项。
  • 请勿将输出视为环境特定验证、测试或专家审查的替代品。
  • 如果缺少必需的输入、权限、安全边界或成功标准,请停止并请求澄清。

评论

支持 Markdown