55from datetime import datetime , timezone
66from typing import Annotated
77
8- from agent_framework import ChatAgent
8+ from agent_framework import Agent , tool
99from agent_framework .observability import configure_otel_providers
1010from agent_framework .openai import OpenAIChatClient
1111from azure .identity .aio import DefaultAzureCredential , get_bearer_token_provider
2020logger = logging .getLogger (__name__ )
2121logger .setLevel (logging .INFO )
2222
23- # Configura la exportación de OpenTelemetry al Aspire Dashboard (si el endpoint está configurado)
24- otlp_endpoint = os .getenv ("OTEL_EXPORTER_OTLP_ENDPOINT" )
25- if otlp_endpoint :
26- os .environ .setdefault ("OTEL_EXPORTER_OTLP_PROTOCOL" , "grpc" )
27- os .environ .setdefault ("OTEL_SERVICE_NAME" , "agent-framework-demo" )
28- configure_otel_providers (enable_sensitive_data = True )
29- logger .info (f"Exportación OpenTelemetry habilitada — enviando a { otlp_endpoint } " )
30- else :
31- logger .info (
32- "Configura OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317 en .env"
33- " para exportar telemetría al Aspire Dashboard"
34- )
23+ # Configura OpenTelemetry (lee OTEL_EXPORTER_OTLP_* y ENABLE_CONSOLE_EXPORTERS del entorno)
24+ configure_otel_providers (enable_sensitive_data = True )
3525
3626# Configura el cliente para usar Azure OpenAI, GitHub Models u OpenAI
3727load_dotenv (override = True )
5848 )
5949
6050
51+ @tool
6152def get_weather (
6253 city : Annotated [str , Field (description = "City name, spelled out fully" )],
6354) -> dict :
@@ -72,6 +63,7 @@ def get_weather(
7263 return random .choice (weather_options )
7364
7465
66+ @tool
7567def get_current_time (
7668 timezone_name : Annotated [
7769 str , Field (description = "Timezone name, e.g. 'US/Eastern', 'America/Mexico_City', 'UTC'" )
@@ -83,9 +75,9 @@ def get_current_time(
8375 return f"La hora actual en { timezone_name } es aproximadamente { now .strftime ('%Y-%m-%d %H:%M:%S' )} UTC"
8476
8577
86- agent = ChatAgent (
78+ agent = Agent (
8779 name = "weather-time-agent" ,
88- chat_client = client ,
80+ client = client ,
8981 instructions = "Eres un asistente útil que puede consultar información del clima y la hora." ,
9082 tools = [get_weather , get_current_time ],
9183)
0 commit comments