Skip to content

如何使用 Java SDK 构建持久化 Azure AI Agent

解决 AI 交互中状态丢失的问题:通过 Azure AI Agents Persistent SDK,开发者可以构建能够跨会话保留上下文的 AI 智能体,实现基于 Thread(线程)的消息管理与任务运行。

为什么需要这个技能

在构建复杂的 AI 应用时,简单的单次请求-响应模式无法处理长期的用户交互。如果每次对话都需要将所有历史记录重新发送给模型,不仅会迅速消耗 Token 额度,还会增加响应延迟。

Azure AI Agents Persistent SDK 提供了一套低级 API,允许开发者在云端创建持久化的 Agent 和 Thread。这意味着对话状态由服务端管理,开发者只需通过 ID 引用即可恢复之前的会话,极大地简化了状态管理逻辑。

适用场景

  • 多轮对话机器人:需要记住用户之前输入信息并进行长周期跟踪的客服或助手。
  • 复杂任务编排:需要 AI Agent 调用外部工具并在此过程中多次往返确认状态的场景。
  • 企业级 AI 助手:要求高度可控的权限管理(通过 Azure Identity)和稳定运行环境的软件项目。

核心工作流

1. 环境准备与依赖

pom.xml 中添加依赖:

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

配置环境变量:

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

2. 客户端初始化

使用 DefaultAzureCredentialBuilder 实现安全认证:

java
import com.azure.ai.agents.persistent.PersistentAgentsClient;
import com.azure.ai.agents.persistent.PersistentAgentsClientBuilder;
import com.azure.identity.DefaultAzureCredentialBuilder;

String endpoint = System.getenv("PROJECT_ENDPOINT");
PersistentAgentsClient client = new PersistentAgentsClientBuilder()
    .endpoint(endpoint)
    .credential(new DefaultAzureCredentialBuilder().build())
    .buildClient();

3. 实现 Agent 交互链路

完整的生命周期包含:创建 Agent 创建 Thread 发送消息 运行 Agent 获取结果

java
// 1. 创建 Agent
PersistentAgent agent = client.createAgent(
    modelDeploymentName,
    "Math Tutor",
    "You are a personal math tutor."
);

// 2. 创建会话线程
PersistentAgentThread thread = client.createThread();

// 3. 添加用户消息
client.createMessage(
    thread.getId(),
    MessageRole.USER,
    "I need help with equations."
);

// 4. 运行并轮询状态
ThreadRun run = client.createRun(thread.getId(), agent.getId());
while (run.getStatus() == RunStatus.QUEUED || run.getStatus() == RunStatus.IN_PROGRESS) {
    Thread.sleep(500);
    run = client.getRun(thread.getId(), run.getId());
}

// 5. 提取响应内容
PagedIterable<PersistentThreadMessage> messages = client.listMessages(thread.getId());
for (PersistentThreadMessage message : messages) {
    System.out.println(message.getRole() + ": " + message.getContent());
}

下载和安装

下载 azure-ai-agents-persistent-java 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐