> ## Documentation Index
> Fetch the complete documentation index at: https://crewai.burt.pe.kr/llms.txt
> Use this file to discover all available pages before exploring further.

# OpenLIT로 에이전트 모니터링 시작하기

> OpenTelemetry를 사용해 단 한 줄의 코드로 에이전트 모니터링을 빠르게 시작해 보세요.

# OpenLIT 개요

[OpenLIT](https://github.com/openlit/openlit?src=crewai-docs)은 **한 줄의 코드**로 AI 에이전트, LLM, VectorDB, GPU의 성능을 쉽게 모니터링할 수 있는 오픈소스 도구다.

OpenTelemetry 기반의 트레이싱과 메트릭을 제공해 비용, 지연 시간, 상호작용, 작업 순서 같은 중요한 파라미터를 추적할 수 있다. 이를 통해 하이퍼파라미터를 추적하고 성능 문제를 모니터링하며, 시간이 지남에 따라 에이전트를 개선하고 파인튜닝할 방법을 찾을 수 있다.

<Frame caption="OpenLIT 대시보드">
  <img src="https://mintcdn.com/burtk/rNQc_sgW_NZiUz5g/images/openlit1.png?fit=max&auto=format&n=rNQc_sgW_NZiUz5g&q=85&s=d4ff711217aec6b938f75b1973e80db7" alt="비용과 토큰을 포함한 에이전트 사용량 개요" width="3024" height="1720" data-path="images/openlit1.png" />

  <img src="https://mintcdn.com/burtk/rNQc_sgW_NZiUz5g/images/openlit2.png?fit=max&auto=format&n=rNQc_sgW_NZiUz5g&q=85&s=bb8274e1f3715aca0db73cfa54f6c770" alt="에이전트의 OpenTelemetry 트레이스와 메트릭 개요" width="3024" height="1728" data-path="images/openlit2.png" />

  <img src="https://mintcdn.com/burtk/rNQc_sgW_NZiUz5g/images/openlit3.png?fit=max&auto=format&n=rNQc_sgW_NZiUz5g&q=85&s=84c77f96e5f5e0a90c92b1d3fa181892" alt="에이전트 트레이스 상세 정보" width="3024" height="1720" data-path="images/openlit3.png" />
</Frame>

### 주요 기능

* **분석 대시보드**: 어시스턴트의 상태와 성능을 상세히 모니터링한다. 메트릭, 비용, 사용자 상호작용을 추적하는 대시보드를 제공한다.
* **OpenTelemetry 기반 관측 가능성 SDK**: 벤더 중립적인 SDK를 활용해 Grafana, DataDog 등 기존 관측 가능성 도구로 트레이스와 메트릭을 전송한다.
* **커스텀 및 파인튜닝 모델 비용 추적**: 특정 모델에 맞춘 비용 추정을 위해 커스텀 가격 파일을 사용해 정확한 예산 계획을 세운다.
* **예외 모니터링 대시보드**: 일반적인 예외와 오류를 추적하는 모니터링 대시보드를 통해 문제를 빠르게 발견하고 해결한다.
* **규정 준수 및 보안**: 욕설이나 개인정보 유출과 같은 잠재적 위협을 감지한다.
* **프롬프트 주입 탐지**: 코드 주입과 비밀 정보 유출 가능성을 식별한다.
* **API 키와 비밀 정보 관리**: LLM API 키와 비밀 정보를 안전하게 중앙에서 관리해 불안전한 관행을 방지한다.
* **프롬프트 관리**: PromptHub를 사용해 어시스턴트 프롬프트를 관리하고 버전을 유지한다. 이를 통해 모든 어시스턴트에서 일관되고 쉽게 접근할 수 있다.
* **모델 플레이그라운드**: CrewAI 어시스턴트를 배포하기 전에 다양한 모델을 테스트하고 비교한다.

## 설정 안내

<Steps>
  <Step title="OpenLIT 배포">
    <Steps>
      <Step title="OpenLIT 저장소 Git Clone">
        ```shell theme={null}
        git clone git@github.com:openlit/openlit.git
        ```
      </Step>

      <Step title="Docker Compose 실행">
        [OpenLIT 저장소](https://github.com/openlit/openlit)의 루트 디렉토리에서 아래 명령어를 실행한다:

        ```shell theme={null}
        docker compose up -d
        ```
      </Step>
    </Steps>
  </Step>

  <Step title="OpenLIT SDK 설치">
    ```shell theme={null}
    pip install openlit
    ```
  </Step>

  <Step title="애플리케이션에서 OpenLIT 초기화">
    애플리케이션 코드에 다음 두 줄을 추가한다:

    <Tabs>
      <Tab title="함수 인자로 설정">
        ```python theme={null}
        import openlit
        openlit.init(otlp_endpoint="http://127.0.0.1:4318")
        ```

        CrewAI 에이전트 모니터링 예제:

        ```python theme={null}
        from crewai import Agent, Task, Crew, Process
        import openlit

        openlit.init(disable_metrics=True)
        # 에이전트 정의
        researcher = Agent(
            role="Researcher",
            goal="AI와 AI 에이전트에 대해 철저한 연구와 분석 수행",
            backstory="기술, 소프트웨어 엔지니어링, AI, 스타트업 전문 연구원. 프리랜서로 활동 중이며 현재 새로운 클라이언트를 위해 연구 중.",
            allow_delegation=False,
            llm='command-r'
        )


        # 태스크 정의
        task = Task(
            description="기사 주제로 흥미로운 아이디어 5개를 생성하고, 각 아이디어에 대해 전체 기사의 잠재력을 보여주는 매력적인 단락 작성. 아이디어 목록과 단락, 노트를 반환.",
            expected_output="5개의 불릿 포인트, 각각 단락과 노트 포함.",
        )

        # 매니저 에이전트 정의
        manager = Agent(
            role="Project Manager",
            goal="크루를 효율적으로 관리하고 고품질 태스크 완수 보장",
            backstory="복잡한 프로젝트를 감독하고 팀을 성공으로 이끄는 경험 많은 프로젝트 매니저. 크루 멤버의 노력을 조율해 각 태스크가 시간 내에 최고 수준으로 완료되도록 한다.",
            allow_delegation=True,
            llm='command-r'
        )

        # 커스텀 매니저로 크루 인스턴스 생성
        crew = Crew(
            agents=[researcher],
            tasks=[task],
            manager_agent=manager,
            process=Process.hierarchical,
        )

        # 크루 작업 시작
        result = crew.kickoff()

        print(result)
        ```
      </Tab>

      <Tab title="환경 변수로 설정">
        애플리케이션 코드에 다음 두 줄을 추가한다:

        ```python theme={null}
        import openlit

        openlit.init()
        ```

        OTEL 익스포터 엔드포인트를 설정하려면 다음 명령어를 실행한다:

        ```shell theme={null}
        export OTEL_EXPORTER_OTLP_ENDPOINT = "http://127.0.0.1:4318"
        ```

        CrewAI 비동기 에이전트 모니터링 예제:

        ```python theme={null}
        import asyncio
        from crewai import Crew, Agent, Task
        import openlit

        openlit.init(otlp_endpoint="http://127.0.0.1:4318")

        # 코드 실행이 가능한 에이전트 생성
        coding_agent = Agent(
          role="Python Data Analyst",
          goal="Python을 사용해 데이터를 분석하고 인사이트 제공",
          backstory="강력한 Python 스킬을 가진 경험 많은 데이터 분석가.",
          allow_code_execution=True,
          llm="command-r"
        )

        # 코드 실행이 필요한 태스크 생성
        data_analysis_task = Task(
          description="주어진 데이터셋을 분석하고 참가자의 평균 나이 계산. 나이: {ages}",
          agent=coding_agent,
          expected_output="5개의 불릿 포인트, 각각 단락과 노트 포함.",
        )

        # 크루 생성 및 태스크 추가
        analysis_crew = Crew(
          agents=[coding_agent],
          tasks=[data_analysis_task]
        )

        # 비동기 함수로 크루 실행
        async def async_crew_execution():
            result = await analysis_crew.kickoff_async(inputs={"ages": [25, 30, 35, 40, 45]})
            print("Crew Result:", result)

        # 비동기 함수 실행
        asyncio.run(async_crew_execution())
        ```
      </Tab>
    </Tabs>

    더 고급 설정과 사용 사례는 OpenLIT [Python SDK 저장소](https://github.com/openlit/openlit/tree/main/sdk/python)를 참조한다.
  </Step>

  <Step title="시각화 및 분석">
    에이전트 관측 데이터가 OpenLIT로 수집되고 전송되면, 다음 단계는 이 데이터를 시각화하고 분석해 에이전트의 성능과 동작을 파악하고 개선할 부분을 식별하는 것이다.

    브라우저에서 `127.0.0.1:3000`으로 OpenLIT에 접속해 탐색을 시작한다. 기본 자격 증명으로 로그인할 수 있다:

    * **이메일**: `user@openlit.io`
    * **비밀번호**: `openlituser`

    <Frame caption="OpenLIT 대시보드">
      <img src="https://mintcdn.com/burtk/rNQc_sgW_NZiUz5g/images/openlit1.png?fit=max&auto=format&n=rNQc_sgW_NZiUz5g&q=85&s=d4ff711217aec6b938f75b1973e80db7" alt="에이전트 사용량 개요(비용 및 토큰 포함)" width="3024" height="1720" data-path="images/openlit1.png" />

      <img src="https://mintcdn.com/burtk/rNQc_sgW_NZiUz5g/images/openlit2.png?fit=max&auto=format&n=rNQc_sgW_NZiUz5g&q=85&s=bb8274e1f3715aca0db73cfa54f6c770" alt="에이전트 OTEL 트레이스 및 메트릭 개요" width="3024" height="1728" data-path="images/openlit2.png" />
    </Frame>
  </Step>
</Steps>
