SmolAgents는 에이전트 실행 검사를 위해 OpenTelemetry를 채택했습니다.
나는 몇 줄의 코드로 AI 에이전트를 구축하기 위해 Hugging Face의 SmolAgents를 탐색해 왔고 그것은 나에게 완벽하게 작동했습니다. 연구 에이전트 구축부터 Agentic Rag까지 모든 과정이 원활하게 진행되었습니다. Hugging Face의 SmolAgents는 연구 지원, 질문 답변 등과 같은 다양한 작업을 위한 AI 에이전트를 생성하는 가볍고 효율적인 방법을 제공합니다. 프레임워크의 단순성 덕분에 개발자는 복잡한 구성으로 인해 어려움을 겪지 않고 AI 에이전트의 논리와 기능에 집중할 수 있습니다. 그러나 다중 에이전트 실행 디버깅은 예측할 수 없는 워크플로와 광범위한 로그로 인해 어렵고 대부분의 오류는 모델이 후속 단계에서 자체 수정하는 “LLM 바보” 유형의 문제인 경우가 많습니다. 이러한 실행을 검증하고 검사하는 효과적인 방법을 찾는 것은 여전히 중요한 과제로 남아 있습니다. 이곳은 오픈텔레메트리 유용합니다. 그것이 어떻게 작동하는지 봅시다!
디버깅 에이전트 실행이 어려운 이유는 무엇입니까?
디버깅 에이전트 실행이 어려운 이유는 다음과 같습니다.
- 예측 불가능성: AI 에이전트는 유연하고 창의적으로 설계되었습니다. 즉, 항상 고정된 경로를 따르지는 않습니다. 이로 인해 정확히 무엇을 할지 예측하기 어렵고, 따라서 문제가 발생했을 때 디버깅하기가 어렵습니다.
- 복잡성: AI 에이전트는 단일 실행으로 여러 단계를 수행하는 경우가 많으며, 각 단계에서 많은 로그(현재 상황에 대한 메시지 또는 데이터)가 생성될 수 있습니다. 무엇이 잘못되었는지 알아내려고 하면 금방 당황스러울 수 있습니다.
- 오류는 사소한 경우가 많습니다.: 에이전트 실행 시 발생하는 많은 오류는 작은 실수(예: LLM이 잘못된 코드를 작성하거나 잘못된 결정을 내리는 경우)이며 에이전트가 다음 단계에서 자체적으로 수정합니다. 이러한 오류가 항상 중요한 것은 아니지만 여전히 무슨 일이 일어나고 있는지 추적하기가 더 어렵습니다.
에이전트 실행 로그인의 중요성은 무엇입니까?
로그는 에이전트 실행 중에 발생한 일을 기록하는 것을 의미합니다. 이는 다음과 같은 이유로 중요합니다.
- 디버깅: 문제가 발생하면 로그를 보고 무슨 일이 일어났는지 파악할 수 있습니다.
- 모니터링: 프로덕션(실제 사용자가 에이전트를 사용하는 경우)에서는 에이전트의 성능을 계속 주시해야 합니다. 로그는 그렇게 하는 데 도움이 됩니다.
- 개선: 로그를 검토하면 패턴이나 반복되는 문제를 식별하고 시간이 지남에 따라 에이전트를 개선할 수 있습니다.
OpenTelemetry란 무엇입니까?
OpenTelemetry는 다음의 표준입니다. 수단이는 소프트웨어에서 일어나는 일을 자동으로 기록(또는 “로그”)하는 도구를 제공한다는 의미입니다. 이 경우 에이전트 실행을 기록하는 데 사용됩니다.
어떻게 작동하나요?
- 너는 좀 더해 계측 코드 당신의 대리인에게. 이 코드는 에이전트 작동 방식을 변경하지 않습니다. 단지 무슨 일이 일어나고 있는지 기록할 뿐입니다.
- 에이전트가 실행되면 OpenTelemetry는 모든 단계, 오류 및 기타 중요한 세부 정보를 자동으로 기록합니다.
- 이러한 로그는 나중에 검토할 수 있는 플랫폼(예: 대시보드 또는 모니터링 도구)으로 전송됩니다.
이것이 왜 도움이 됩니까?
- 사용의 용이성: 모든 곳에 로깅 코드를 수동으로 추가할 필요가 없습니다. OpenTelemetry가 대신해 드립니다.
- 표준화: OpenTelemetry는 널리 사용되는 표준이므로 다양한 도구 및 플랫폼에서 작동합니다.
- 명쾌함: 로그가 구조화되어 구성되어 있어 에이전트 실행 중에 발생한 일을 더 쉽게 이해할 수 있습니다.
AI 에이전트는 복잡하고 예측할 수 없기 때문에 에이전트 실행 로깅이 필수적입니다. OpenTelemetry를 사용하면 자동으로 현재 상황을 기록하고 모니터링할 수 있으므로 문제를 디버깅하고 성능을 향상시키며 프로덕션에서 모든 것이 원활하게 실행되도록 할 수 있습니다.
OpenTelemetry를 사용하는 방법?
이 스크립트는 특정 라이브러리를 사용하여 Python 환경을 설정하고 추적을 위해 OpenTelemetry를 구성합니다. 단계별 설명은 다음과 같습니다.
여기에서는 종속성을 설치하고 필수 모듈을 가져오고 터미널에서 OpenTelemetry를 설정했습니다.
종속성 설치
!pip install smolagents
!pip install arize-phoenix opentelemetry-sdk opentelemetry-exporter-otlp openinference-instrumentation-smolagents
- 연기발생제: 경량 에이전트(AI 또는 자동화 작업용)를 구축하기 위한 라이브러리입니다.
- 아리제-피닉스: 기계 학습 모델을 모니터링하고 디버깅하기 위한 도구입니다.
- 개방형 원격 측정 SDK: 원격 측정 데이터(추적, 측정항목, 로그)를 계측, 생성 및 내보내기 위한 OpenTelemetry SDK입니다.
- 개방형 원격 측정-수출자-otlp: OTLP(OpenTelemetry Protocol) 형식으로 원격 측정 데이터를 보내기 위한 내보내기입니다.
- openinference-계측-smolagents: OpenTelemetry 추적을 자동으로 생성하기 위해 smolagent를 계측하는 라이브러리입니다.
필수 모듈 가져오기
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
- 추적하다: OpenTelemetry 추적 API입니다.
- 추적자 제공자: 추적을 생성하고 관리하는 핵심 구성 요소입니다.
- BatchSpan프로세서: 효율적인 내보내기를 위해 스팬을 일괄 처리합니다.
- Smolagents악기: 연기발생제를 자동으로 계측하여 흔적을 생성합니다.
- OTLPSpanExporter: HTTP를 통해 OTLP 프로토콜을 사용하여 추적을 내보냅니다.
- ConsoleSpanExporter: 디버깅을 위해 추적을 콘솔로 내보냅니다.
- SimpleSpan프로세서: 프로세스는 한 번에 하나씩 진행됩니다(디버깅 또는 소량 추적에 유용함).
OpenTelemetry 추적 설정
endpoint = "
trace_provider = TracerProvider()
trace_provider.add_span_processor(SimpleSpanProcessor(OTLPSpanExporter(endpoint)))
- 끝점: 추적이 전송될 URL(이 경우
- 추적_공급자: 새 TracerProvider 인스턴스를 만듭니다.
- add_span_processor: 공급자에 범위 프로세서를 추가합니다. 여기서는 SimpleSpanProcessor를 사용하여 OTLPSpanExporter를 통해 지정된 엔드포인트로 추적을 보냅니다.
기구 연기발생제
SmolagentsInstrumentor().instrument(tracer_provider=trace_provider)
이 줄은 smolagents 라이브러리를 계측하여 구성된 Trace_provider를 사용하여 추적을 자동으로 생성합니다.

- 필요한 Python 라이브러리를 설치합니다.
- 연기 발생 물질로부터 추적을 수집하도록 OpenTelemetry를 구성합니다.
- OTLP 프로토콜을 사용하여 지정된 엔드포인트로 추적을 보냅니다.
- 디버깅하려면 ConsoleSpanExporter를 추가하여 터미널에 추적을 인쇄할 수 있습니다.
여기에서 에이전트 실행을 검사하기 위한 모든 세부 정보를 확인할 수 있습니다.
에이전트 실행
from smolagents import (
CodeAgent,
ToolCallingAgent,
ManagedAgent,
DuckDuckGoSearchTool,
VisitWebpageTool,
HfApiModel,
)
model = HfApiModel()
agent = ToolCallingAgent(
tools=[DuckDuckGoSearchTool(), VisitWebpageTool()],
model=model,
)
managed_agent = ManagedAgent(
agent=agent,
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?"
)
로그는 다음과 같이 표시됩니다.


결론
결론적으로 AI 에이전트 실행 디버깅은 예측할 수 없는 워크플로, 광범위한 로깅, 사소한 오류 자체 수정으로 인해 복잡할 수 있습니다. 이러한 과제는 디버깅을 간소화하고 성능을 개선하며 에이전트가 원활하게 작동하도록 보장하는 데 필요한 가시성과 구조를 제공하는 OpenTelemetry와 같은 효과적인 모니터링 도구의 중요한 역할을 강조합니다. 직접 사용해 보고 OpenTelemetry가 어떻게 AI 에이전트 개발 및 디버깅 프로세스를 단순화하여 원활하고 안정적인 작업을 더 쉽게 달성할 수 있는지 알아보세요.
Agentic AI 개척자 프로그램을 탐색하여 Agent AI에 대한 이해를 심화하고 잠재력을 최대한 활용하세요. 혁신적인 통찰력과 적용 사례를 발견하기 위한 이 여정에 동참하세요!
Post Comment