6.1 KiB
OpenTelemetry рдХреЗ рд╕рд╛рде runs рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг
Tip
рдпрджрд┐ рдЖрдк рдПрдЬреЗрдВрдЯреНрд╕ рдмрдирд╛рдиреЗ рдореЗрдВ рдирдП рд╣реИрдВ, рддреЛ рдкрд╣рд▓реЗ рдПрдЬреЗрдВрдЯреНрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп рдФрд░ smolagents рдХреА рдЧрд╛рдЗрдбреЗрдб рдЯреВрд░ рдкрдврд╝рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред
Agents runs рдХреЛ рд▓реЙрдЧ рдХреНрдпреЛрдВ рдХрд░реЗрдВ?
Agent runs рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рдЬрдЯрд┐рд▓ рд╣реЛрддрд╛ рд╣реИред
рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ рдХрд┐ рдПрдХ рд░рди рдареАрдХ рд╕реЗ рдЪрд▓рд╛ рдпрд╛ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрдЬреЗрдВрдЯ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ (рдпрджрд┐ рд╡реЗ рдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реЛрддреЗ, рддреЛ рдЖрдк рдкреБрд░рд╛рдиреЗ рдЕрдЪреНрдЫреЗ рдХреЛрдб рдХрд╛ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реЛрддреЗ)ред
рдФрд░ рд░рди рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рднреА рдХрдард┐рди рд╣реИ: рдорд▓реНрдЯреА-рд╕реНрдЯреЗрдк рдПрдЬреЗрдВрдЯреНрд╕ рдЬрд▓реНрджреА рд╣реА рдХрдВрд╕реЛрд▓ рдХреЛ рд▓реЙрдЧ рд╕реЗ рднрд░ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдХреЗрд╡рд▓ "LLM dumb" рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ, рдЬрд┐рдирд╕реЗ LLM рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ рдмреЗрд╣рддрд░ рдХреЛрдб рдпрд╛ рдЯреВрд▓ рдХреЙрд▓ рд▓рд┐рдЦрдХрд░ рд╕реНрд╡рдпрдВ рдХреЛ рд╕реБрдзрд╛рд░ рд▓реЗрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП рдмрд╛рдж рдХреЗ рдирд┐рд░реАрдХреНрд╖рдг рдФрд░ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ agent runs рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрд╕реНрдЯреНрд░реБрдореЗрдВрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ!
рд╣рдордиреЗ agent runs рдХреЛ рдЗрдВрд╕реНрдЯреНрд░реБрдореЗрдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП OpenTelemetry рдорд╛рдирдХ рдХреЛ рдЕрдкрдирд╛рдпрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдмрд╕ рдХреБрдЫ рдЗрдВрд╕реНрдЯреНрд░реБрдореЗрдВрдЯреЗрд╢рди рдХреЛрдб рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЕрдкрдиреЗ рдПрдЬреЗрдВрдЯреНрд╕ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕рдм рдХреБрдЫ рдЖрдкрдХреЗ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдореЗрдВ рд▓реЙрдЧ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИ: рдкрд╣рд▓реЗ рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред рдпрд╣рд╛рдВ рд╣рдо Phoenix by Arize AI рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд▓реЙрдЧреНрд╕ рдХреЛ рдПрдХрддреНрд░ рдФрд░ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдВрдЧреНрд░рд╣ рдФрд░ рдирд┐рд░реАрдХреНрд╖рдг рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдЖрдк рдЕрдиреНрдп OpenTelemetry-рдХрдореНрдкреИрдЯрд┐рдмрд▓ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдореНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
pip install smolagents
pip install arize-phoenix opentelemetry-sdk opentelemetry-exporter-otlp openinference-instrumentation-smolagents
рдлрд┐рд░ рдХрд▓реЗрдХреНрдЯрд░ рдХреЛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдЪрд▓рд╛рдПрдВред
python -m phoenix.server.main serve
рдЕрдВрдд рдореЗрдВ, рдЕрдкрдиреЗ рдПрдЬреЗрдВрдЯреНрд╕ рдХреЛ рдЯреНрд░реЗрд╕ рдХрд░рдиреЗ рдФрд░ рдЯреНрд░реЗрд╕ рдХреЛ рдиреАрдЪреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкрд░ Phoenix рдХреЛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП SmolagentsInstrumentor рдХреЛ рд╕реЗрдЯ рдХрд░реЗрдВред
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from openinference.instrumentation.smolagents import SmolagentsInstrumentor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.trace.export import ConsoleSpanExporter, SimpleSpanProcessor
endpoint = "http://0.0.0.0:6006/v1/traces"
trace_provider = TracerProvider()
trace_provider.add_span_processor(SimpleSpanProcessor(OTLPSpanExporter(endpoint)))
SmolagentsInstrumentor().instrument(tracer_provider=trace_provider)
рддрдм рдЖрдк рдЕрдкрдиреЗ рдПрдЬреЗрдВрдЯ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ!
from smolagents import (
CodeAgent,
ToolCallingAgent,
WebSearchTool,
VisitWebpageTool,
InferenceClientModel,
)
model = InferenceClientModel()
managed_agent = ToolCallingAgent(
tools=[WebSearchTool(), VisitWebpageTool()],
model=model,
name="managed_agent",
description="This is an agent that can do web search.",
)
manager_agent = CodeAgent(
tools=[],
model=model,
managed_agents=[managed_agent],
)
manager_agent.run(
"If the US keeps its 2024 growth rate, how many years will it take for the GDP to double?"
)
рдФрд░ рдлрд┐рд░ рдЖрдк рдЕрдкрдиреЗ рд░рди рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП http://0.0.0.0:6006/projects/ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ!
рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ CodeAgent рдиреЗ рдЕрдкрдиреЗ рдореИрдиреЗрдЬреНрдб ToolCallingAgent рдХреЛ (рд╡реИрд╕реЗ, рдореИрдиреЗрдЬреНрдб рдПрдЬреЗрдВрдЯ рдПрдХ CodeAgent рднреА рд╣реЛ рд╕рдХрддрд╛ рдерд╛) U.S. 2024 рдЧреНрд░реЛрде рд░реЗрдЯ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рд╕рд░реНрдЪ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд┐рдпрд╛ред рдлрд┐рд░ рдореИрдиреЗрдЬреНрдб рдПрдЬреЗрдВрдЯ рдиреЗ рдЕрдкрдиреА рд░рд┐рдкреЛрд░реНрдЯ рд▓реМрдЯрд╛рдИ рдФрд░ рдореИрдиреЗрдЬрд░ рдПрдЬреЗрдВрдЯ рдиреЗ рдЕрд░реНрдерд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рджреЛрдЧреБрдирд╛ рд╣реЛрдиреЗ рдХрд╛ рд╕рдордп рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдкрд░ рдХрд╛рд░реНрдп рдХрд┐рдпрд╛! рдЕрдЪреНрдЫрд╛ рд╣реИ, рд╣реИ рдирд╛?