> ## 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.

# span 함수

> 현재 대화, turn, LLM Call을 시작, 종료, 조회하는 모듈 수준 함수입니다.

`tracing` 모듈을 통해 다음 항목에 액세스할 수 있습니다.

```python theme={"system"}
from coreweave.forge.agentlens import tracing
```

<h2 id="start_conversation">
  start\_conversation
</h2>

```python theme={"system"}
def start_conversation(
    *,
    agent_name: str = '',
    model: str = '',
    conversation_id: str = '',
    conversation_name: str = '',
    include_content: bool = True,
    continue_parent_trace: bool = False,
    attributes: Attributes = None,
) -> Conversation: ...
```

대화를 생성하고 활성화합니다. 모듈 간 액세스를 위해 contextvar를 설정합니다.

`attributes`는 이 대화가 내보내는 모든 span에 기록됩니다(예:
`weave.integration.*`와 같은 인테그레이션 ID). 시맨틱 규칙(semconv)에 속하지 않는
맞춤형 키를 사용하세요. 시맨틱 규칙 필드는 유형이 지정된 매개변수
(`conversation_name`, `model`, ...)로 설정하세요. span 자체의
`gen_ai.*` / `weave.*` 속성과 충돌하는 키는 지원되지 않으며, 어느 값이
우선 적용될지는 경로(스트리밍 또는 `log_turn`)에 따라 달라집니다.

<h2 id="start_turn">
  start\_turn
</h2>

```python theme={"system"}
def start_turn(
    *,
    user_message: str = '',
    model: str = '',
    agent_name: str = '',
    system_instructions: Union[list[str], None] = None,
) -> Turn: ...
```

turn을 생성하고 활성화합니다. 현재 대화가 있으면 해당 대화를 사용합니다.

span을 시작하고 현재 span으로 설정합니다. 대화가 없으면 turn에
대화 ID가 지정되지 않습니다. `end_turn()`, `end()` 또는 `with`로 종료하세요.

<h2 id="start_llm">
  start\_llm
</h2>

```python theme={"system"}
def start_llm(
    *,
    model: str = '',
    provider_name: str = '',
    system_instructions: Union[list[str], None] = None,
) -> LLM: ...
```

LLM Call을 생성하고 활성화합니다. 현재 turn이 있으면 해당 turn을 사용합니다.

활성 turn이 없더라도 span을 시작하고 현재 span으로 설정합니다.

`provider_name`을 명시적으로 전달하세요. SDK는 모델 식별자에서 이 값을
추론하지 않습니다. 접두사 기반으로 추측하면 사용자가 파인튜닝한 모델(예: `text-...`라는 이름의 모델)의
공급자를 잘못 판별하게 되고, 향후 모델 이름에 대한 가정이 telemetry에 그대로 반영되어
사후에 바로잡으려면 많은 비용이 듭니다.

<h2 id="start_tool">
  start\_tool
</h2>

```python theme={"system"}
def start_tool(*, name: str, arguments: str = '', tool_call_id: str = '') -> Tool: ...
```

도구 실행 span을 생성하고 시작합니다.

Tool의 OTel span은 OTel 컨텍스트에서 현재 활성 상태인 span의 하위 span이 자동으로
됩니다. 일반적으로는 활성 상태인 Turn span이 있으면 해당 Turn span의 하위가 됩니다.
turn을 명시적으로 위임할 필요는 없습니다. 부모-자식 관계는 Conversation SDK contextvar가 아니라
OTel 컨텍스트를 통해 전파됩니다.

<h2 id="start_subagent">
  start\_subagent
</h2>

```python theme={"system"}
def start_subagent(
    *,
    name: str,
    model: str = '',
    system_instructions: Union[list[str], None] = None,
    set_current: bool = True,
) -> SubAgent: ...
```

하위 에이전트 호출 span을 생성하고 시작합니다.

SubAgent의 OTel span은 OTel 컨텍스트의 현재 span이 무엇이든 자동으로 그 자식 span이
됩니다. 일반적으로 활성 상태인 Turn span이 있으면 해당 span이 부모가 됩니다.
구조는 `start_tool`과 동일합니다. 부모-자식 관계 전파는 OTel 컨텍스트가 처리하므로
명시적으로 위임할 필요가 없습니다.

<h2 id="end_conversation">
  end\_conversation
</h2>

```python theme={"system"}
def end_conversation() -> None: ...
```

contextvar에 저장된 현재 대화를 종료합니다.

<h2 id="end_turn">
  end\_turn
</h2>

```python theme={"system"}
def end_turn() -> None: ...
```

contextvar에서 가져온 현재 turn을 종료합니다.

<h2 id="end_llm">
  end\_llm
</h2>

```python theme={"system"}
def end_llm() -> None: ...
```

contextvar에서 현재 LLM Call을 가져와 종료합니다.

<h2 id="get_current_conversation">
  get\_current\_conversation
</h2>

```python theme={"system"}
def get_current_conversation() -> Union[Conversation, None]: ...
```

contextvar에서 현재 활성 대화를 반환하며, 없으면 None을 반환합니다.

<h2 id="get_current_turn">
  get\_current\_turn
</h2>

```python theme={"system"}
def get_current_turn() -> Union[Turn, None]: ...
```

contextvar에서 현재 활성 turn을 반환하고, 없으면 None을 반환합니다.

<h2 id="get_current_llm">
  get\_current\_llm
</h2>

```python theme={"system"}
def get_current_llm() -> Union[LLM, None]: ...
```

contextvar에서 활성 LLM Call을 반환하며, 없으면 None을 반환합니다.
