Todos os produtos
Search
Central de documentação

AgentLoop:Integrar aplicações AgentScope (Java)

Última atualização: Aug 28, 2026

O AgentLoop coleta dados de observabilidade de aplicações Java desenvolvidas com o framework AgentScope por meio do probe Java. Baseado no padrão OpenTelemetry, o probe Java captura automaticamente os rastreamentos de chamadas da aplicação e envia dados de execução de agente, invocação de modelo e invocação de ferramenta ao AgentLoop. Este tópico descreve como integrar uma aplicação Java AgentScope ao AgentLoop para monitorar o status de execução da sua aplicação de IA em tempo real.

Introdução ao framework

AgentScope é um framework de desenvolvimento de aplicações multiagente open source da alibaba. Ele fornece vários tipos de agente, como ReActAgent, inclui adaptadores de modelo integrados, como DashScope, e oferece suporte a chamada de ferramentas, gerenciamento de memória e colaboração multiagente. O AgentScope Java é a implementação Java do framework, adequada para criar aplicações LLM no ecossistema JVM.

Após a integração, o sistema monitora automaticamente os seguintes dados:

  • Rastreamentos de execução de agente.

  • Invocações de LLM: uso de tokens e conteúdo de entrada e saída das invocações de modelo.

  • Rastreamentos de chamada de ferramenta: detalhes de chamada de cada ferramenta no Toolkit.

  • Etapas ReAct: ação e observação de cada iteração do loop.

    O AgentLoop relata esses dados como Trace e Metric.

Métodos de integração

Para integrar uma aplicação Java AgentScope ao AgentLoop, obtenha os parâmetros de integração no console do AgentLoop e instale o probe Java conforme seu ambiente de implantação.

Pré-requisitos e limites

  • Versão do JDK — Execute a aplicação Java AgentScope no JDK 17 ou posterior.

  • Memória da JVM — Ao instalar o probe Java, certifique-se de que a memória heap máxima da JVM de destino seja superior a 300 MB.

  • service AgentLoop — O AgentLoop está ativado e um AgentSpace foi criado.

Obter parâmetros de integração

  1. Faça login no console do AgentLoop. No painel de navegação à esquerda, clique em Integration Center.

  2. Clique no cartão AgentScope.

  3. Na página de integração do AgentScope, selecione a linguagem Java.

  4. Insira o nome da aplicação. A página gera os parâmetros e as instruções de instalação necessários para integrar o probe Java.

Instalar o probe Java

Escolha um dos seguintes métodos de instalação conforme seu ambiente de implantação:

  • Integração com Container Service for Kubernetes (ACK) e Container Compute Service (ACS) — Para aplicações implantadas em clusters ACK ou ACS. O componente ack-onepilot instala e mantém automaticamente o probe Java em ambientes de contêiner.

  • Integração manual — Para aplicações executadas fora de clusters ACK ou ACS, como aplicações iniciadas com o comando java -jar, Tomcat ou Jetty. Baixe o probe Java e adicione-o ao processo de inicialização da aplicação.

    Após concluir a integração e reiniciar a aplicação, verifique se os dados estão sendo relatados na seção Visualizar detalhes de monitoramento.

Integração com ACK e ACS

O assistente de integração de probes de monitoramento de aplicações (ack-onepilot) é um componente essencial para integrar probes de várias linguagens. Ele prepara automaticamente pacotes de probes de monitoramento de aplicações em ambientes de contêiner e configura o ambiente de relatório para os probes. Para mais informações sobre o funcionamento do ack-onepilot, consulte Visão geral do componente ack-onepilot.

Após a integração do probe, uma nova versão é aplicada automaticamente quando a aplicação é reiniciada. Assim, o ack-onepilot atualiza o probe para a versão mais recente e mantém sua experiência consistente. Caso não deseje que o probe montado seja atualizado automaticamente conforme novas versões forem lançadas, controle a versão do probe manualmente. Para mais informações, consulte Controlar manualmente a versão do probe.

Este método consiste em três etapas: instalar o ack-onepilot, conceder as permissões de acesso exigidas pelo ARMS e ativar o monitoramento de aplicações para sua aplicação.

Etapa 1: Instalar o assistente de integração de probes (ack-onepilot)

  1. Faça login no console do Container Service for Kubernetes. Na página Clusters, clique no nome do cluster de destino.

  2. No painel de navegação à esquerda, clique em Add-ons e pesquise por ack-onepilot.

    Importante

    A versão do ack-onepilot deve ser 5.1.0 ou posterior.

  3. No cartão ack-onepilot, clique em Install.

    Nota
    • O componente ack-onepilot suporta até 1.000 pods por padrão. Para cada 1.000 pods adicionais no cluster, aumente a CPU do recurso ack-onepilot em 0,5 núcleo e a memória em 512 MB.

    • Para instalar o ack-onepilot em um cluster ACS, configure accesskey e AccessKeySecret (o AccessKey ID e o AccessKey secret da sua conta alibaba cloud) na parte inferior do cartão de instalação. Para mais informações, consulte Criar um par de AccessKeys. Certifique-se de que a conta alibaba cloud correspondente tenha as permissões AliyunARMSFullAccess e AliyunSTSAssumeRoleAccess.

  4. Na página exibida, configure os parâmetros. Use os valores padrão e clique em OK.

    Nota

    Após a conclusão da instalação, atualize, configure ou desinstale o componente ack-onepilot na página Add-ons.

Etapa 2: Conceder permissões de acesso aos recursos do ARMS

O procedimento de autorização depende do tipo do seu cluster:

  • Clusters gerenciados ACK — Verifique se o cluster contém o ARMS Addon Token. Se o token existir, nenhuma autorização adicional será necessária. Caso contrário, adicione políticas de acesso manualmente.

  • Clusters dedicados e clusters registrados — Forneça ao ack-onepilot o par de AccessKeys de uma conta alibaba cloud que possua permissões do ARMS.

  • Clusters ASK/ECI — Conclua a autorização na página Cloud Resource Access Authorization.

Clusters gerenciados ACK

Se o ARMS Addon Token não existir no seu cluster gerenciado ACK, execute as operações a seguir para conceder manualmente permissões de acesso aos recursos do ARMS. Se o ARMS Addon Token já existir, pule para a Etapa 3.

Verifique se o ARMS Addon Token existe no cluster.

  1. Faça login no console do Container Service for Kubernetes. Na página Clusters, clique no nome do cluster de destino para acessar a página de detalhes do cluster.

  2. No painel de navegação à esquerda, escolha Configurations > Secrets. No topo da página, selecione kube-system para Namespace e verifique se addon.arms.token existe.

Nota

Se o ARMS Addon Token existir no cluster, o ARMS realiza autorização sem senha. Clusters gerenciados Kubernetes possuem o ARMS Addon Token por padrão, mas alguns clusters criados em versões anteriores podem não tê-lo. Portanto, para um cluster gerenciado Kubernetes, verifique primeiro se o ARMS Addon Token existe. Se não existir, realize a autorização manual.

Adicione políticas de acesso manualmente.

  1. Faça login no console do Container Service for Kubernetes. Na página Clusters, clique no nome do cluster de destino.

  2. Na aba Basic Information da página Cluster Information, na seção Cluster Resources, clique no link ao lado de Worker RAM Role.

  3. Na aba Permissions, clique em Grant Permission.

  4. No painel Grant Permission, adicione as duas políticas de acesso a seguir e clique em Confirm Grant Permission.

    • AliyunTracingAnalysisFullAccess: permissões totais para Managed service for OpenTelemetry.

    • AliyunARMSFullAccess: permissões totais para ARMS.

Clusters dedicados e clusters registrados

Para monitorar aplicações em clusters dedicados ACK e clusters registrados ACK One, certifique-se de que a conta alibaba cloud correspondente tenha as permissões AliyunARMSFullAccess e AliyunSTSAssumeRoleAccess. Para mais informações sobre como conceder permissões, consulte Conceder permissões a um usuário RAM.

Após instalar o componente ack-onepilot, insira o par de AccessKeys de uma conta alibaba cloud com permissões do ARMS no ack-onepilot. Utilize um dos métodos a seguir.

Método 1: Preencher o par de AccessKeys no Helm

  1. Faça login no console do Container Service for Kubernetes. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do cluster de destino. No painel de navegação à esquerda, escolha Applications > Helm e clique em Update ao lado do componente ack-onepilot.

  3. Substitua accessKey e accessKeySecret pelo par de AccessKeys da conta atual e clique em OK.

    Nota

    Para mais informações sobre como obter um par de AccessKeys, consulte Criar um par de AccessKeys.

    Na seção controller do editor YAML, localize accessKey: __ACCESSKEY__ e accessKeySecret: __ACCESSKEY_SECRET__ e substitua os placeholders pelo par de AccessKeys real.

  4. Reinicie o Deployment da aplicação.

Método 2: Referenciar um Secret do Kubernetes

  1. Faça login no console do Container Service for Kubernetes. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do cluster de destino. No painel de navegação à esquerda, escolha Configurations > Secrets.

  3. Selecione o namespace ack-onepilot, crie um Secret e adicione o par de AccessKeys.

    Nota

    Para mais informações sobre como obter um par de AccessKeys, consulte Criar um par de AccessKeys.

    Defina o nome do Secret como ack-onepilot-aksk e selecione Opaque para o tipo. Na seção de dados, adicione duas entradas: defina os nomes como ak e sk e defina os valores como o AccessKey ID e o AccessKey secret correspondentes. Em seguida, clique em OK.

  4. No painel de navegação à esquerda, escolha Workloads > Deployments e clique no componente ack-onepilot. O componente geralmente está no namespace ack-onepilot e é denominado ack-onepilot-ack-onepilot.

  5. No canto superior direito da página ack-onepilot-ack-onepilot, clique em Edit. Na seção Environment Variables, adicione ONE_PILOT_ACCESSKEY e ONE_PILOT_ACCESSKEY_SECRET, referencie os valores armazenados no Secret e clique em OK.

    Para o Secret, selecione ack-onepilot-aksk. Para ONE_PILOT_ACCESSKEY, selecione ak como chave. Para ONE_PILOT_ACCESSKEY_SECRET, selecione sk como chave.

Clusters ASK/ECI

Para monitorar aplicações em clusters ACK Serverless ou clusters conectados ao ECI, conclua a autorização na página Cloud Resource Access Authorization e reinicie todos os pods sob o componente ack-onepilot.

Etapa 3: Ativar o monitoramento de aplicações para uma aplicação Java

Para ativar o monitoramento de aplicações, adicione rótulos de monitoramento ao Deployment da sua aplicação no editor YAML.

  1. Faça login no console do Container Service for Kubernetes. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do cluster de destino. No painel de navegação à esquerda, escolha Workloads > Deployments.

  3. Na página Deployments, localize a aplicação de destino e escolha Edit YAML.

    Para criar uma nova aplicação, clique em Create Resources from YAML.

  4. No arquivo YAML, adicione os seguintes labels abaixo do nível spec.template.metadata.

    labels:
      armsPilotAutoEnable: "on"
      armsPilotCreateAppName: "deployment-name" # Replace deployment-name with the name of your application.
      armsPilotAppWorkspace: "workspace" # Replace with the current Workspace name.
      aliyun.com/app-language: java

    O trecho a seguir mostra a posição dos labels em um Deployment:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: arms-springboot-demo
    spec:
      template:
        metadata:
          labels:
            armsPilotAutoEnable: "on"
            armsPilotCreateAppName: "arms-k8s-demo"
            armsPilotAppWorkspace: "workspace"
  5. Clique em Update.

Integração manual

Utilize a integração manual para instalar o probe Java em ambientes diferentes de clusters ACK ou ACS, como aplicações iniciadas com o comando java -jar, Tomcat ou Jetty.

  1. Após selecionar a linguagem Java na página de integração do AgentScope, localize a seção de integração manual e baixe o probe Java seguindo as instruções na tela. A página já gerou os parâmetros de integração para o AgentSpace atual.

  2. Extraia o probe.

    Acesse o diretório do pacote do probe e execute o comando a seguir para extrair o pacote em um diretório de trabalho de sua escolha.

    unzip AliyunJavaAgent.zip -d /{user.workspace}/
    Nota

    {user.workspace} é um diretório de exemplo. Substitua-o pelo seu diretório real.

  3. Configure os parâmetros AppName e LicenseKey.

    Use a LicenseKey obtida anteriormente no Integration Center do AgentLoop. AppName é o nome exibido para a aplicação no AgentLoop e pode ser personalizado. Em uma arquitetura distribuída, uma aplicação pode conter múltiplas instâncias pares.

    Importante

    Diferentes AgentSpaces usam LicenseKeys diferentes. Após trocar de AgentSpace, obtenha a LicenseKey novamente.

    Forneça AppName e LicenseKey usando um dos métodos a seguir:

    • Método 1 (recomendado): Use parâmetros de inicialização -D. Substitua os placeholders {LicenseKey} e {AppName} no comando de inicialização da Etapa 4 pela LicenseKey obtida no console e pelo AppName da aplicação.

    • Método 2: Modifique o arquivo de configuração do probe. Use este método se quiser reutilizar o script de inicialização em diferentes aplicações. Execute as etapas a seguir:

      1. Verifique a versão do probe Java no arquivo de versão extraído na etapa anterior.

      2. Modifique o arquivo de configuração do probe com base na versão do probe:

        • Para probe 4.0.0 ou posterior, crie um arquivo arms-agent.properties no diretório do probe e adicione a configuração a seguir. Em seguida, adicione -Dotel.javaagent.configuration-file=/path/to/arms-agent.properties ao comando de inicialização ou defina a variável de ambiente OTEL_JAVAAGENT_CONFIGURATION_FILE=/path/to/arms-agent.properties para habilitar o arquivo de configuração.

          arms.licenseKey={LicenseKey}
          arms.appName={AppName}
        • Para um probe anterior à versão 4.0.0, adicione a configuração a seguir ao arquivo arms-agent.config no pacote do probe.

          arms.licenseKey={LicenseKey}
          arms.appName={AppName}
    Nota
    • Para versões de probe anteriores a 4.4.0, este método conecta-se ao default workspace por padrão.

    • Para mais informações sobre outros itens de configuração no arquivo de configuração do probe, consulte Modificar o arquivo de configuração do probe Java e a região de relatório padrão.

  4. Adicione o comando de integração ao comando de inicialização.

    Substitua {user.workspace} pelo diretório real de extração do pacote do probe e substitua demoApp.jar pelo caminho real do pacote JAR.

    Nota
    • Se a versão do probe for anterior a 2.7.3.5, substitua AliyunJavaAgent/aliyun-java-agent.jar neste tópico por ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar. Recomendamos atualizar o probe para a versão mais recente o quanto antes.

    • Em sistemas operacionais Windows, substitua / no script por \ e substitua arquivos .sh por arquivos .bat.

    • A versão 2.7.1.4 e posteriores do probe suporta a ativação do Application Security durante a integração do monitoramento de aplicações. Para ativar o Application Security, adicione -Darms.appsec.enable=true ao script. Para mais informações sobre as regras de faturamento do Application Security, consulte Regras de faturamento.

    Adicione o parâmetro -javaagent com base no seu ambiente de execução:

    Ambiente de execução

    Etapas

    Spring Boot ou outras aplicações Java iniciadas com o comando java -jar

    Anexe o parâmetro -javaagent ao comando de inicialização. Certifique-se de que o parâmetro -javaagent esteja posicionado antes do parâmetro -jar. java -javaagent:/{user.workspace}/AliyunJavaAgent/aliyun-java-agent.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName} -Darms.workspace={workspace} -jar demoApp.jar

    Tomcat

    Adicione a configuração a seguir ao arquivo {TOMCAT_HOME}/bin/setenv.sh. JAVA_OPTS="$JAVA_OPTS -javaagent:/{user.workspace}/AliyunJavaAgent/aliyun-java-agent.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName} -Darms.workspace={workspace} " Se a sua versão do Tomcat não possuir o arquivo de configuração setenv.sh, abra o arquivo {TOMCAT_HOME}/bin/catalina.sh e adicione a configuração acima após JAVA_OPTS. Para um exemplo específico, consulte a linha 256 de catalina.sh.

    Jetty

    Adicione a configuração a seguir ao arquivo de configuração {JETTY_HOME}/start.ini. aliyun-java-agent.jar --exec -javaagent:/{user.workspace}/AliyunJavaAgent/aliyun-java-agent.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName} -Darms.workspace={workspace}

    Para implantar múltiplas instâncias da mesma aplicação em um único servidor, use o parâmetro -Darms.agentId (um número lógico) para distinguir os processos JVM a serem integrados. Por exemplo:

    java -javaagent:/{user.workspace}/AliyunJavaAgent/aliyun-java-agent.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName} -Darms.workspace={workspace} -Darms.agentId=001 -jar demoApp.jar
  5. Reinicie a aplicação Java.

Código de exemplo

O exemplo a seguir usa o AgentScope Java 2.0.1 para construir um agente mínimo executável que contém uma invocação de modelo e uma invocação de ferramenta. Antes de executar o exemplo, certifique-se de que o JDK 17 ou posterior esteja instalado e que DASHSCOPE_API_KEY esteja definido como variável de ambiente.

Adicione as dependências do AgentScope Java 2.0.1 ao pom.xml do seu projeto Maven:

  • Adicione agentscope-core para usar recursos básicos, como ReActAgent.

  • Adicione agentscope-extensions-model-dashscope para chamar modelos via DashScope.

  • Adicione agentscope-harness se os recursos do Harness forem necessários.

<dependencies>
  <dependency>
    <groupId>io.agentscope</groupId>
    <artifactId>agentscope-core</artifactId>
    <version>2.0.1</version>
  </dependency>
  <dependency>
    <groupId>io.agentscope</groupId>
    <artifactId>agentscope-extensions-model-dashscope</artifactId>
    <version>2.0.1</version>
  </dependency>
  <!-- Add this dependency if Harness features are required -->
  <dependency>
    <groupId>io.agentscope</groupId>
    <artifactId>agentscope-harness</artifactId>
    <version>2.0.1</version>
  </dependency>
</dependencies>

Escreva um agente mínimo com chamada de ferramenta: o adaptador de modelo DashScopeChatModel é importado de io.agentscope.extensions.model.dashscope, as mensagens são construídas com Msg, MsgRole e TextBlock, e as ferramentas são registradas com Toolkit.

import io.agentscope.core.agent.ReActAgent;
import io.agentscope.core.message.Msg;
import io.agentscope.core.message.MsgRole;
import io.agentscope.core.message.TextBlock;
import io.agentscope.core.tool.Tool;
import io.agentscope.core.tool.ToolParam;
import io.agentscope.core.tool.Toolkit;
import io.agentscope.extensions.model.dashscope.DashScopeChatModel;

public class QuickStart {
    public static void main(String[] args) {
        Toolkit toolkit = new Toolkit();
        toolkit.registerTool(new SimpleTools());

        DashScopeChatModel model = DashScopeChatModel.builder()
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .modelName("qwen-plus")
                .build();

        ReActAgent agent = ReActAgent.builder()
                .name("TravelAgent")
                .sysPrompt("You are a travel assistant. Use tools when needed.")
                .model(model)
                .toolkit(toolkit)
                .build();

        Msg msg = Msg.builder()
                .role(MsgRole.USER)
                .content(TextBlock.builder()
                        .text("What time is it in Hangzhou? Give me one travel tip.")
                        .build())
                .build();

        Msg response = agent.call(msg).block();
        System.out.println(response.getTextContent());
    }
}

class SimpleTools {
    @Tool(name = "get_time", description = "Get current local time")
    public String getTime(
            @ToolParam(name = "city", description = "City name") String city) {
        return city + ": " + java.time.LocalDateTime.now()
                .format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }
}

Para executar este exemplo com o monitoramento ativado, empacote o exemplo como um arquivo JAR e inicie-o usando o comando de integração na Etapa 4 do procedimento de integração manual. Substitua demoApp.jar pelo caminho do arquivo JAR de exemplo. Se você implantar o exemplo em um cluster ACK ou ACS, adicione os rótulos de monitoramento descritos na Etapa 3 ao Deployment do exemplo.

Visualizar detalhes de monitoramento

  1. Faça login no console do AgentLoop e selecione o AgentSpace de destino. No painel de navegação à esquerda, clique em AI Agent Observability.

  2. Na página AI Application List, localize a aplicação Java AgentScope integrada e clique em Application Name para acessar a página de detalhes.

    Na página de detalhes da aplicação, visualize os rastreamentos de chamadas da aplicação:

  • Visão geral — Inclui Trace ID, hora de início, duração total, Total tokens, entre outros.

  • Linha do tempo de trace — Exibe a cadeia completa de chamadas do agente por nível e a duração de cada span. O span raiz é do tipo AGENT e corresponde a uma execução de agente. Sua duração é a duração total da chamada. Os níveis abaixo são do tipo STEP (cada iteração do loop ReAct), tipo LLM (invocações de modelo, incluindo as contagens de tokens de entrada e saída) e tipo TOOL (chamada de ferramenta, como get_time no exemplo).

  • Filtragem por tipo de span — Filtra spans por AGENT, STEP, LLM ou TOOL para localizar rapidamente o nó de destino.

  • Detalhes do span — Clique em um span e visualize os detalhes no painel de detalhes à direita. Por exemplo, um span LLM mostra Input Messages (o prompt do sistema e a pergunta do usuário) e Output Messages (a resposta do modelo e detalhes da chamada de ferramenta).

Referências