forked from agent-lab/smolagents
86 lines
No EOL
6.1 KiB
Markdown
86 lines
No EOL
6.1 KiB
Markdown
# OpenTelemetry рдХреЗ рд╕рд╛рде runs рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг
|
|
|
|
[[open-in-colab]]
|
|
|
|
> [!TIP]
|
|
> рдпрджрд┐ рдЖрдк рдПрдЬреЗрдВрдЯреНрд╕ рдмрдирд╛рдиреЗ рдореЗрдВ рдирдП рд╣реИрдВ, рддреЛ рдкрд╣рд▓реЗ [рдПрдЬреЗрдВрдЯреНрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп](../conceptual_guides/intro_agents) рдФрд░ [smolagents рдХреА рдЧрд╛рдЗрдбреЗрдб рдЯреВрд░](../guided_tour) рдкрдврд╝рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред
|
|
|
|
### Agents runs рдХреЛ рд▓реЙрдЧ рдХреНрдпреЛрдВ рдХрд░реЗрдВ?
|
|
|
|
Agent runs рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рдЬрдЯрд┐рд▓ рд╣реЛрддрд╛ рд╣реИред
|
|
|
|
рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ рдХрд┐ рдПрдХ рд░рди рдареАрдХ рд╕реЗ рдЪрд▓рд╛ рдпрд╛ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрдЬреЗрдВрдЯ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ [рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд](../conceptual_guides/intro_agents) рд╣реЛрддреЗ рд╣реИрдВ (рдпрджрд┐ рд╡реЗ рдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реЛрддреЗ, рддреЛ рдЖрдк рдкреБрд░рд╛рдиреЗ рдЕрдЪреНрдЫреЗ рдХреЛрдб рдХрд╛ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реЛрддреЗ)ред
|
|
|
|
рдФрд░ рд░рди рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рднреА рдХрдард┐рди рд╣реИ: рдорд▓реНрдЯреА-рд╕реНрдЯреЗрдк рдПрдЬреЗрдВрдЯреНрд╕ рдЬрд▓реНрджреА рд╣реА рдХрдВрд╕реЛрд▓ рдХреЛ рд▓реЙрдЧ рд╕реЗ рднрд░ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдХреЗрд╡рд▓ "LLM dumb" рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ, рдЬрд┐рдирд╕реЗ LLM рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ рдмреЗрд╣рддрд░ рдХреЛрдб рдпрд╛ рдЯреВрд▓ рдХреЙрд▓ рд▓рд┐рдЦрдХрд░ рд╕реНрд╡рдпрдВ рдХреЛ рд╕реБрдзрд╛рд░ рд▓реЗрддрд╛ рд╣реИред
|
|
|
|
рдЗрд╕рд▓рд┐рдП рдмрд╛рдж рдХреЗ рдирд┐рд░реАрдХреНрд╖рдг рдФрд░ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ agent runs рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрд╕реНрдЯреНрд░реБрдореЗрдВрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ!
|
|
|
|
рд╣рдордиреЗ agent runs рдХреЛ рдЗрдВрд╕реНрдЯреНрд░реБрдореЗрдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП [OpenTelemetry](https://opentelemetry.io/) рдорд╛рдирдХ рдХреЛ рдЕрдкрдирд╛рдпрд╛ рд╣реИред
|
|
|
|
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдмрд╕ рдХреБрдЫ рдЗрдВрд╕реНрдЯреНрд░реБрдореЗрдВрдЯреЗрд╢рди рдХреЛрдб рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЕрдкрдиреЗ рдПрдЬреЗрдВрдЯреНрд╕ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕рдм рдХреБрдЫ рдЖрдкрдХреЗ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдореЗрдВ рд▓реЙрдЧ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
|
|
|
|
рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИ:
|
|
рдкрд╣рд▓реЗ рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред рдпрд╣рд╛рдВ рд╣рдо [Phoenix by Arize AI](https://github.com/Arize-ai/phoenix) рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд▓реЙрдЧреНрд╕ рдХреЛ рдПрдХрддреНрд░ рдФрд░ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдВрдЧреНрд░рд╣ рдФрд░ рдирд┐рд░реАрдХреНрд╖рдг рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдЖрдк рдЕрдиреНрдп OpenTelemetry-рдХрдореНрдкреИрдЯрд┐рдмрд▓ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдореНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
|
|
|
|
```shell
|
|
pip install smolagents
|
|
pip install arize-phoenix opentelemetry-sdk opentelemetry-exporter-otlp openinference-instrumentation-smolagents
|
|
```
|
|
|
|
рдлрд┐рд░ рдХрд▓реЗрдХреНрдЯрд░ рдХреЛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдЪрд▓рд╛рдПрдВред
|
|
|
|
```shell
|
|
python -m phoenix.server.main serve
|
|
```
|
|
|
|
рдЕрдВрдд рдореЗрдВ, рдЕрдкрдиреЗ рдПрдЬреЗрдВрдЯреНрд╕ рдХреЛ рдЯреНрд░реЗрд╕ рдХрд░рдиреЗ рдФрд░ рдЯреНрд░реЗрд╕ рдХреЛ рдиреАрдЪреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкрд░ Phoenix рдХреЛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП `SmolagentsInstrumentor` рдХреЛ рд╕реЗрдЯ рдХрд░реЗрдВред
|
|
|
|
```python
|
|
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)
|
|
```
|
|
рддрдм рдЖрдк рдЕрдкрдиреЗ рдПрдЬреЗрдВрдЯ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ!
|
|
|
|
```py
|
|
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/` рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ!
|
|
|
|
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/smolagents/inspect_run_phoenix.png">
|
|
|
|
рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ CodeAgent рдиреЗ рдЕрдкрдиреЗ рдореИрдиреЗрдЬреНрдб ToolCallingAgent рдХреЛ (рд╡реИрд╕реЗ, рдореИрдиреЗрдЬреНрдб рдПрдЬреЗрдВрдЯ рдПрдХ CodeAgent рднреА рд╣реЛ рд╕рдХрддрд╛ рдерд╛) U.S. 2024 рдЧреНрд░реЛрде рд░реЗрдЯ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рд╕рд░реНрдЪ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд┐рдпрд╛ред рдлрд┐рд░ рдореИрдиреЗрдЬреНрдб рдПрдЬреЗрдВрдЯ рдиреЗ рдЕрдкрдиреА рд░рд┐рдкреЛрд░реНрдЯ рд▓реМрдЯрд╛рдИ рдФрд░ рдореИрдиреЗрдЬрд░ рдПрдЬреЗрдВрдЯ рдиреЗ рдЕрд░реНрдерд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рджреЛрдЧреБрдирд╛ рд╣реЛрдиреЗ рдХрд╛ рд╕рдордп рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдкрд░ рдХрд╛рд░реНрдп рдХрд┐рдпрд╛! рдЕрдЪреНрдЫрд╛ рд╣реИ, рд╣реИ рдирд╛? |