> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# W&B Weave

> W&B Weave로 언어 모델 앱을 추적, 테스트, 개선하세요

W\&B Weave는 에이전트와 LLM 애플리케이션을 추적하고 평가하며 개선할 수 있도록 지원하는 관측성 및 평가 플랫폼입니다. Weave로 다음 작업을 할 수 있습니다.

* Weave OTel 호환 SDK를 사용하여 널리 쓰이는 SDK와 하니스로 구축한 [에이전트를 트레이스하고 메트릭을 수집](/ko/products/wandb/weave/agent-integration-quickstart)합니다.
* [애플리케이션의 LLM Call과 임의의 함수를 수동으로 계측](/ko/products/wandb/weave/quickstart)하여 애플리케이션을 트레이스하고, 버전을 관리하고, 피드백을 수집합니다.
* LLM 평가자와 맞춤형 Scorer를 사용하여 에이전트나 애플리케이션의 응답을 [평가](/ko/products/wandb/weave/tutorial-eval)합니다.

<h2 id="get-started">
  시작하기
</h2>

워크로드 유형을 선택한 다음, 아래 문서를 참고하여 Weave 도구 모음의 기본 사용법을 익히세요. 워크로드별 차이점에 대한 자세한 내용은 [Weave란 무엇인가요?](/ko/products/wandb/weave/concepts/what-is-weave)를 참조하세요.

<Tabs>
  <Tab title="에이전트 트레이스하기">
    <Note>
      Weave's agent tracing workflows are also available in [CoreWeave Agent Lens](/products/agent-lens), the successor to Weights & Biases Weave. Both services already receive your agent tracing data, so there is nothing to migrate. See [What is Agent Lens](/products/agent-lens) for more information.
    </Note>

    <CardGroup cols={3}>
      <Card title="Weave를 에이전트와 통합하기" icon="plug" href="/ko/products/wandb/weave/agent-integration-quickstart">
        사용 중인 에이전트 SDK 또는 하니스에 맞는 기본 제공 인테그레이션을 선택하고, Agents view에서 세션, 턴, LLM Call, 도구 Call의 트레이싱을 시작하세요.
      </Card>

      <Card title="OpenTelemetry span을 Agents view로 전송하기" icon="code" href="/ko/products/wandb/weave/guides/tracking/trace-agents-otel">
        OTel로 계측된 에이전트가 Weave의 OTLP 엔드포인트로 트레이스를 전송하도록 간단히 설정하세요. Weave SDK를 설치하지 않아도 됩니다.
      </Card>

      <Card title="Weights & Biases UI에서 에이전트 메트릭 보기" icon="chart-line" href="/ko/products/wandb/weave/guides/tracking/view-agent-activity">
        LLM에 대한 기본 Call을 트레이스하고 CoreWeave Forge 계정에서 입력, 출력, 코드를 확인하세요.
      </Card>
    </CardGroup>
  </Tab>

  <Tab title="Op과 Call로 함수 트레이스하기">
    <CardGroup cols={3}>
      <Card title="퀵스타트: 함수 계측 및 트레이스" icon="chart-line" href="/ko/products/wandb/weave/quickstart">
        먼저 LLM에 대한 기본 Call을 트레이스하고 CoreWeave Forge 계정에서 데이터를 확인해 보세요.
      </Card>

      <Card title="앱 평가 시작하기" icon="clipboard-check" href="/ko/products/wandb/weave/tutorial-eval">
        Weave Scorer로 애플리케이션의 성능을 테스트하고 추적하는 평가 파이프라인을 구축하는 방법을 알아보세요.
      </Card>

      <Card title="RAG 애플리케이션 평가하기" icon="search" href="/ko/products/wandb/weave/tutorial-rag">
        Weave로 RAG 애플리케이션을 구축 및 평가하고, LLM 평가자로 검색 품질을 측정하세요.
      </Card>
    </CardGroup>
  </Tab>
</Tabs>

<h2 id="install-weave">
  Weave 설치
</h2>

W\&B Weave는 Python 및 TypeScript 라이브러리를 제공합니다. Weave 라이브러리를 설치하려면 다음 명령을 실행하세요.

<Tabs>
  <Tab title="Python">
    ```bash theme={"system"}
    pip install weave
    ```
  </Tab>

  <Tab title="TypeScript">
    ```bash theme={"system"}
    npm install weave
    ```
  </Tab>
</Tabs>

Weave 라이브러리를 사용하려면 먼저 [CoreWeave Forge 계정](https://id.coreweave.com/signup)을 만들고 [User Settings에서 API 키](https://forge.coreweave.com/settings)를 생성하세요. API 키로 CoreWeave Forge 계정에 인증하면 계정으로 데이터를 전송할 수 있습니다.

<h2 id="limits-and-expected-behaviors">
  제한 사항 및 예상 동작
</h2>

Weave에는 다음과 같은 제한 사항, 알려진 문제 및 예상 동작이 있습니다. 예상치 못한 결과가 나타나거나 Weave가 엣지 케이스를 어떻게 처리하는지 알고 싶을 때 이 목록을 레퍼런스로 활용하세요.

* 재시도 가능한 요청의 경우, Weave는 첫 번째 오류를 받고 1초 뒤부터 요청을 재시도하며, 이후 시도 간격을 최대 5분까지 두 배씩 늘립니다. 요청은 36시간이 지나면 timeout됩니다.

* [`.call()`](/ko/products/wandb/weave/guides/tracking/tracing#creating-calls)은 예외를 발생시키지 않고, 예외를 캡처하여 `call.exception`에 저장합니다. 실행 중에 예외를 발생시켜야 한다면 다음과 같이 [`__should_raise` 매개변수](/ko/products/wandb/weave/reference/python-sdk/trace/op#function-call)를 설정하세요.

  ```python showLineNumbers theme={"system"}
  # 예외를 발생시킵니다
  result, call = foo.call(__should_raise=True)
  ```

* Dedicated Weave 인스턴스는 별도의 OpenTelemetry ingress URL을 사용합니다. 공식 엔드포인트에 대한 자세한 내용은 [OpenTelemetry 트레이스 보내기](/ko/products/wandb/weave/guides/tracking/otel)를 참조하세요.

* Weave는 대용량 트레이스 데이터 객체를 잘라낼 때가 있습니다. 기본 트레이스 출력이 Weave가 자동으로 직렬화할 수 없는 원시(raw) 맞춤형 Python 객체이기 때문입니다. 트레이스 데이터 전체를 반환하려면 다음과 같이 문자열 딕셔너리를 정의하세요.

  ```python theme={"system"}
  import weave

  class MyObj:
      """An object with a large string attribute."""
      def __init__(self, x: int):
          self.x = x

      def __repr__(self):
          return f"MyObj(x={self.x})"

      def to_dict(self):
          return {"x": self.x}

  @weave.op()
  def make_my_obj():
      x = "a" * 10_000
      return MyObj(x)

  def main():
      weave.init("<entity/project>")

      # MyObj를 처리하는 트레이스 가능한 오퍼레이션을 정의합니다
      @weave.op()
      def process_obj(obj: MyObj) -> int:
          return len(obj.x)

      # 대용량 MyObj 인스턴스를 생성하고 처리합니다
      large_obj = make_my_obj()
      length = process_obj(large_obj)
      print(f"Length of x in MyObj: {length}")
      print("dict:", large_obj.to_dict())

  if __name__ == "__main__":
      main()
  ```
