Skip to content

ADK 智能体的 Claude 模型

Supported in ADKJava v0.2.0

你可以在智能体中使用 Claude 类,通过直接访问 Anthropic API 或 Vertex AI 后端。有关通过 Google Cloud Vertex AI 服务访问 Anthropic 模型的更多信息,请参阅 Vertex AI 上的第三方模型 部分。在 Python 中,你还可以通过 LiteLLM 库使用 Anthropic 模型。

入门

以下代码示例展示了在智能体中使用 Anthropic 模型的基本实现:

public static LlmAgent createAgent() {

  AnthropicClient anthropicClient = AnthropicOkHttpClient.builder()
      .apiKey("ANTHROPIC_API_KEY")
      .build();

  Claude claudeModel = new Claude(
      "claude-sonnet-4-6", anthropicClient
  );

  return LlmAgent.builder()
      .name("claude_direct_agent")
      .model(claudeModel)
      .instruction("你是一个由 Anthropic Claude 驱动的得力 AI 助手。")
      .build();
}

前置条件

  1. 依赖项:

    • Anthropic SDK 类(传递依赖): Java ADK 的 com.google.adk.models.Claude 包装器依赖于 Anthropic 官方 Java SDK 中的类。这些通常作为传递性依赖项包含在内。有关更多信息,请参阅 Anthropic Java SDK
  2. Anthropic API 密钥:

    • 从 Anthropic 获取 API 密钥。请使用密钥管理工具安全地管理此密钥。

示例实现

实例化 com.google.adk.models.Claude,提供所需的 Claude 模型名称和使用你的 API 密钥配置的 AnthropicOkHttpClient。然后,将 Claude 实例传递给你的 LlmAgent,如以下示例所示:

import com.anthropic.client.AnthropicClient;
import com.google.adk.agents.LlmAgent;
import com.google.adk.models.Claude;
import com.anthropic.client.okhttp.AnthropicOkHttpClient; // 来自 Anthropic SDK

public class DirectAnthropicAgent {

  private static final String CLAUDE_MODEL_ID = "claude-sonnet-4-6"; // 或你首选的 Claude 模型

  public static LlmAgent createAgent() {

    // 建议从安全配置中加载敏感密钥
    AnthropicClient anthropicClient = AnthropicOkHttpClient.builder()
        .apiKey("ANTHROPIC_API_KEY")
        .build();

    Claude claudeModel = new Claude(
        CLAUDE_MODEL_ID,
        anthropicClient
    );

    return LlmAgent.builder()
        .name("claude_direct_agent")
        .model(claudeModel)
        .instruction("你是一个由 Anthropic Claude 驱动的得力 AI 助手。")
        // ... 其他 LlmAgent 配置
        .build();
  }

  public static void main(String[] args) {
    try {
      LlmAgent agent = createAgent();
      System.out.println("成功创建 Anthropic 直连智能体:" + agent.name());
    } catch (IllegalStateException e) {
      System.err.println("创建智能体时出错:" + e.getMessage());
    }
  }
}