W&B Weave 수출업체

·3분 읽기

원문: Koog Documentation — opentelemetry-weave-exporter 이 글은 Koog 공식 문서의 opentelemetry-weave-exporter 페이지를 한국어로 옮긴 번역본입니다. 문서 구조와 링크 의미를 유지하되, MkDocs 전용 UI 문법은 블로그에서 읽기 좋도록 정리했습니다.

W&B Weave 수출업체

Koog는 관측 가능성 데이터에 대한 공개 표준인 OpenTelemetry을 사용하여 에이전트 추적을 내보냅니다. 이러한 추적을 W&B Weave로 보내기 위해 Koog에는 내장된 OpenTelemetry 내보내기 기능이 포함되어 있습니다. 수동 계측이 필요하지 않습니다.

일단 연결되면 Weave의 OpenTelemetry support을 통해 시각화할 수 있습니다. 에이전트가 LLM, 도구 및 외부 API와 상호 작용하는 방식을 분석하고 디버깅합니다.


설정 지침

  1. https://wandb.ai에서 W&B 계정을 생성하세요.
  2. https://wandb.ai/authorize에서 API 키를 받으세요.
  3. W&B Dashboard에서 법인 이름을 찾으세요. 개인 계정의 사용자 이름이나 공유 작업 공간의 팀/조직 이름과 일치합니다.
  4. 프로젝트 이름을 선택하세요. 프로젝트가 아직 존재하지 않으면 첫 번째 추적이 전송될 때 자동으로 생성됩니다.
  5. addWeaveExporter()에 대한 매개변수로 또는 환경 변수를 통해 엔터티, 프로젝트 이름 및 API 키를 제공합니다.
1export WEAVE_API_KEY="<your-api-key>"2export WEAVE_ENTITY="<your-entity>"3export WEAVE_PROJECT_NAME="koog-tracing"

구성

OpenTelemetry 기능을 설치하고 addWeaveExporter()을 호출하여 Weave 내보내기를 활성화합니다.

기본 예

코틀린

1fun main() = runBlocking {2    val entity = System.getenv()["WEAVE_ENTITY"] 3        ?: throw IllegalArgumentException("WEAVE_ENTITY is not set")4    5    val projectName = System.getenv()["WEAVE_PROJECT_NAME"] 6        ?: "koog-tracing"7    8    val agent = AIAgent(9        promptExecutor = promptExecutor,10        llmModel = OpenAIModels.Chat.GPT4oMini,11        systemPrompt = "You are a code assistant. Provide concise code examples."12    ) {13        install(OpenTelemetry) {14            addWeaveExporter()15        }16    }1718    println("Running agent with Weave tracing")1920    val result = agent.run("Tell me a joke about programming")21    println("Result: $result\nSee traces on https://wandb.ai/$entity/$projectName/weave/traces")22}

자바

1public static void main(String[] args) {2    var entity = Optional.ofNullable(System.getenv("WEAVE_ENTITY"))3        .filter(env -> !env.isBlank())4        .orElseThrow(() -> new IllegalArgumentException("WEAVE_ENTITY is not set"));56    var projectName = Optional.ofNullable(System.getenv("WEAVE_PROJECT_NAME"))7        .filter(env -> !env.isBlank())8        .orElse("koog-tracing");910    var agent = AIAgent.builder()11        .promptExecutor(promptExecutor)12        .llmModel(OpenAIModels.Chat.GPT4oMini)13        .systemPrompt("You are a helpful assistant.")14        .install(OpenTelemetry.Feature, config ->15            config.addWeaveExporter(16                null,   // OTel endpoint URL (falls back to WEAVE_URL, defaults to https://trace.wandb.ai)17                entity,18                projectName19            )20        )21        .build();2223    System.out.println("Running agent with Weave tracing");2425    var result = agent.run("Tell me a joke about programming");26    System.out.println("Result: " + result + "\nSee traces on https://wandb.ai/" + entity + "/" + projectName + "/weave/traces");27}

추적되는 내용

Weave 내보내기는 Koog의 일반 OpenTelemetry 통합과 동일한 활동을 캡처합니다. 캡처된 범위의 전체 목록과 LLM 프롬프트 및 응답 콘텐츠를 포함하는 방법은 What gets traced을 참조하세요.

W&B Weave에서 시각화하면 추적이 다음과 같이 나타납니다. W&B Weave traces W&B Weave traces

자세한 내용은 공식 Weave OpenTelemetry Docs을 참조하세요.


문제 해결

  • 추적 없음: WEAVE_API_KEY, WEAVE_ENTITYWEAVE_PROJECT_NAME가 설정되어 있는지 확인하고 W&B 계정에 지정된 엔터티 및 프로젝트에 대한 액세스 권한이 있는지 확인하세요.
  • 인증 오류: WEAVE_API_KEY이 유효하고 선택한 엔터티에 대한 쓰기 권한이 있는지 확인하세요.
  • 연결 문제: 환경이 W&B의 OpenTelemetry 수집 엔드포인트에 도달할 수 있는지 확인하세요.

일반적인 문제 해결은 Troubleshooting을 참조하세요.