A observabilidade de Large Language Model (LLM) permite observar as aplicações AgentScope por meio de um probe Python. O probe Python é um probe proprietário de coleta de observabilidade desenvolvido pela Alibaba Cloud que implementa instrumentação automática com base nos padrões OpenTelemetry. Este tópico descreve como integrar aplicações AgentScope ao ARMS Application Monitoring para monitorar o status operacional em tempo real das suas aplicações de IA.
Introdução ao framework
AgentScope é um framework de código aberto da Alibaba Cloud para o desenvolvimento de aplicações multiagentes. Ele oferece diversos tipos de agentes, como o ReActAgent, além de adaptadores de modelo integrados para serviços como DashScope e OpenAI. Ele também suporta chamadas de ferramentas, gerenciamento de memória e colaboração entre múltiplos agentes.
Após a integração, os seguintes recursos são monitorados automaticamente:
Rastros de execução de agentes
Chamadas de LLM, incluindo o uso de tokens e o conteúdo de entrada e saída das chamadas de modelo
Rastros de chamadas de ferramentas, incluindo os detalhes das chamadas de cada ferramenta no toolkit
Etapas do ReAct, incluindo a observação das ações em cada iteração do loop
Métodos de integração
ACK e ACS
Se a sua aplicação estiver em execução em um cluster do Container Service for Kubernetes (ACK) ou do Container Compute Service (ACS), instale o componente ack-onepilot e adicione rótulos à sua carga de trabalho para ativar o monitoramento. Não é preciso alterar o código.
Etapa 1: Instale o ack-onepilot
Acesse o . Na página Clusters, clique no nome do cluster.
No painel de navegação à esquerda, clique em Add-ons e pesquise ack-onepilot no canto superior direito.
-
No cartão do ack-onepilot, clique em Install. Configure os parâmetros (recomendamos usar os valores padrão) e, em seguida, clique em OK.
NotaCertifique-se de que a versão do componente ack-onepilot seja 5.1.1 ou posterior. A versão é exibida no cartão do componente antes da instalação. Caso tenha uma versão anterior instalada, clique em Upgrade em vez de Install.
Etapa 2: Modifique as configurações para observabilidade de IA
Acesse o console do Container Service for Kubernetes (ACK). No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster de destino. No painel de navegação à esquerda, escolha . O mesmo procedimento aplica-se a StatefulSets e DaemonSets.
Navegue até o namespace da carga de trabalho de destino. Localize a carga de trabalho, clique no ícone de Mais
na coluna Actions e selecione Edit YAML.-
Adicione as seguintes
labelsao nível spec > template > metadata no seu arquivo YAML. Em seguida, clique em Update.labels: aliyun.com/app-language: python # Required for Python applications. Specifies that this is a Python application. armsPilotAutoEnable: 'on' armsPilotCreateAppName: "deployment-name" # The display name of the application in ARMS.
Integração manual
Etapa 1: Baixe o instalador do probe aliyun-bootstrap
Baixe o instalador do probe no PyPI.
pip3 install aliyun-bootstrap
Etapa 2: Configure as variáveis de ambiente
Adicione manualmente as seguintes variáveis de ambiente à sua aplicação Python:
# Method 1: Add environment variables for all processes in the current shell.
export ARMS_APP_NAME=xxx # The application name.
export ARMS_REGION_ID=xxx # The region ID of your Alibaba Cloud account.
export ARMS_LICENSE_KEY=xxx # Your Alibaba Cloud license key.
# Method 2: Set environment variables for a single process
ARMS_APP_NAME=xxx ARMS_REGION_ID=xxx ARMS_LICENSE_KEY=xxx aliyun-instrument xxx.py
Para obter a chave de licença, consulte o campo authToken na resposta da operação da API GetApplicationObservability.
Opcional: Instalação em Docker
Para ambientes Docker, modifique o seu Dockerfile com base no exemplo a seguir.
# Add environment variables
ENV ARMS_APP_NAME={AppName}
ENV ARMS_REGION_ID={regionId}
ENV ARMS_LICENSE_KEY={licenseKey}
## Original environment
Etapa 3: Instale o agente Python
-
Para acelerar a instalação, defina o repositório espelho executando o seguinte comando:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ && pip config set install.trusted-host mirrors.aliyun.com -
Instale o agente.
aliyun-bootstrap -a install
Etapa 4: Inicie a aplicação
Inicie com o agente Python do ARMS
aliyun-instrument python app.py
Código de exemplo
import asyncio
import os
from agentscope.agent import ReActAgent
from agentscope.formatter import DashScopeChatFormatter
from agentscope.message import Msg, TextBlock
from agentscope.model import DashScopeChatModel
from agentscope.tool import Toolkit, ToolResponse
def get_weather(city: str) -> ToolResponse:
weather_data = {
"Beijing": "Sunny 25°C",
"Shanghai": "Cloudy 22°C",
"Hangzhou": "Light rain 20°C",
}
result = weather_data.get(city, f"{city}: No weather data available")
return ToolResponse(content=[TextBlock(type="text", text=result)])
def search_info(keyword: str) -> ToolResponse:
info = {
"West Lake": "West Lake in Hangzhou is a famous freshwater lake, UNESCO World Heritage",
"Great Wall": "Ancient Chinese defensive structure, UNESCO World Heritage",
}
result = info.get(keyword, f"No information found for '{keyword}'")
return ToolResponse(content=[TextBlock(type="text", text=result)])
async def main():
model = DashScopeChatModel(
model_name=os.environ.get("MODEL_NAME", "qwen-plus"),
api_key=os.environ.get("DASHSCOPE_API_KEY"),
)
toolkit = Toolkit()
toolkit.register_tool_function(get_weather)
toolkit.register_tool_function(search_info)
agent = ReActAgent(
name="TravelAgent",
sys_prompt="You are a travel assistant. Use tools to query weather and travel info.",
model=model,
formatter=DashScopeChatFormatter(),
toolkit=toolkit,
max_iters=5,
)
msg = Msg(
name="user",
content="What's the weather in Hangzhou today? Is West Lake worth visiting?",
role="user",
)
result = await agent(msg)
print(result.content)
asyncio.run(main())
Visualize os detalhes do monitoramento
No console do Cloud Monitor 2.0, acesse a página LLM Application Monitoring > Application List. Clique no nome de uma aplicação de IA de destino para ver os dados de monitoramento detalhados.
