> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-mintlify-8476678c.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# OpenAI Agents SDK

> Weave를 사용해 OpenAI Agents SDK로 구축한 에이전트를 트레이스하세요.

<Note>
  Weave for Agents는 공개 프리뷰 상태입니다. 정식 출시 전에 특성, API 및 Agents 뷰 UI가 변경될 수 있습니다.
</Note>

[OpenAI Agents SDK](https://github.com/openai/openai-agents-python)는 OpenAI API를 기반으로 에이전트와 멀티 에이전트 워크플로를 구축할 수 있는 경량 프레임워크입니다. Weave는 OpenAI Agents SDK로 구축된 에이전트를 자동으로 트레이스하며, 각 에이전트 호출, 하위 에이전트 핸드오프, 모델 Call, 도구 Call을 포함해 추적합니다. Weave는 캡처한 데이터를 프로젝트의 **Agents** 뷰에 표시합니다.

<Note>
  Weave TypeScript SDK는 OpenAI Agents SDK의 자동 패칭을 지원하지 않습니다.
</Note>

<div id="trace-openai-agents-sdk-agents-with-weave">
  ## Weave로 OpenAI Agents SDK 에이전트 트레이스하기
</div>

Weave SDK는 OpenAI Agents SDK와 자동으로 패치되어, 최소한의 설정만으로 에이전트의 트레이스를 캡처할 수 있습니다. 이 가이드에서는 Weave를 초기화한 다음 OpenAI Agents SDK로 구축한 멀티턴 리서치 에이전트를 실행하여, Weave가 Session 전반에서 모든 에이전트 호출, 모델 Call, 도구 Call을 캡처하도록 설정하는 방법을 설명합니다.

<div id="prerequisites">
  ### 사전 요구 사항
</div>

시작하기 전에 다음 사항이 준비되어 있는지 확인하세요:

* W\&B 계정과 `WANDB_API_KEY` 환경 변수로 설정된 [API 키](https://wandb.ai/authorize).
* [OpenAI API 키](https://platform.openai.com/api-keys).
* Python 3.10+.

<div id="install-packages">
  ### 패키지 설치
</div>

스크립트에서 Weave 및 OpenAI Agents SDK를 사용할 수 있도록 개발 환경에 다음 패키지를 설치하세요:

```bash theme={null}
pip install weave openai-agents requests
```

<div id="initialize-weave-in-your-code">
  ### 코드에서 Weave 초기화하기
</div>

프로젝트에 `weave.init`를 추가하고 W\&B 팀 및 프로젝트 이름을 지정한 다음, 평소와 같은 방식으로 에이전트를 구축하세요. 다음 코드는 `wikipedia_search` 함수 도구와 `Research assistant` 에이전트를 정의한 뒤, Weave가 트레이스를 캡처하는 동안 OpenAI Agents SDK `Runner`를 통해 세 개의 질문을 실행합니다.

```python lines theme={null}
import asyncio
import requests
import weave
from agents import Agent, Runner, function_tool

weave.init("<your-team>/<your-project-name>")

@function_tool
def wikipedia_search(query: str) -> str:
    """Search Wikipedia for a topic and return its title and intro paragraph."""
    r = requests.get(
        "https://en.wikipedia.org/w/api.php",
        params={
            "action": "query", "generator": "search", "gsrsearch": query, "gsrlimit": 1,
            "prop": "extracts", "exintro": True, "explaintext": True, "format": "json",
        },
        headers={"User-Agent": "weave-demo"},
    ).json()
    page = next(iter(r["query"]["pages"].values()))
    return f"{page['title']}: {page['extract']}"

agent = Agent(
    name="Research assistant",
    instructions=(
        "You are a research assistant. Use the wikipedia_search tool to look up "
        "topics when needed, and cite the article titles you used."
    ),
    tools=[wikipedia_search],
)

async def main():
    history = []
    for question in [
        "Who founded Anthropic?",
        "What is Claude (the AI assistant)?",
        "Summarize what we discussed in one sentence.",
    ]:
        history.append({"role": "user", "content": question})
        print(f"USER: {question}")
        result = await Runner.run(agent, input=history)
        print(f"AGENT: {result.final_output}\n")
        history = result.to_input_list()

asyncio.run(main())
```

이 예시에서는 하나의 대화에서 세 번의 turn을 실행합니다. 처음 두 turn은 Wikipedia 조회를 트리거하고, 세 번째 turn은 앞선 대화 컨텍스트를 사용해 도구 Call 없이 요약을 생성합니다. 각 `Runner.run` 호출은 이전 결과의 입력 목록을 다음 요청으로 다시 전달해 대화를 이어갑니다.

<div id="see-your-agent-traces-in-the-agents-view">
  ### Agents 뷰에서 에이전트 트레이스 확인하기
</div>

스크립트가 실행된 후 Weave에서 캡처된 활동을 검토할 수 있습니다. `weave.init()`가 실행되면 프로젝트 링크가 출력됩니다. **Agents** 뷰를 열어 다음 항목을 확인하세요.

* `Research assistant`에 해당하는 **Agents** 탭의 행
* 세 개의 turn이 포함된 Session
* 중첩된 모델 Calls 및 도구 Calls와 함께 `invoke_agent` span으로 렌더링된 각 turn
* 각 step의 전체 입력, 모델, 출력, token 사용량, 그리고 Wikipedia 결과

Weave에서 Agents 데이터를 보는 방법에 대한 자세한 내용은 [에이전트 활동 보기](/ko/weave/guides/tracking/view-agent-activity)를 참조하세요.
