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

# スパン関数

> 現在の会話、ターン、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` は、この会話が出力するすべてのスパンに付与されます (たとえば
`weave.integration.*` のようなインテグレーションのアイデンティティ) 。semconv 以外の
カスタムキーを使用してください。セマンティック規約のフィールドは、型付きの params
(`conversation_name`、`model` など) で設定します。スパン自身の
`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: ...
```

ターンを作成してアクティブにします。現在の会話がある場合は、その会話を使用します。

スパンを開始し、現在のスパンとして設定します。会話がない場合、ターンに会話 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 を作成してアクティブ化します。現在のターンがある場合はそれを使用します。

実行中のターンがない場合でも、スパンを開始して現在のスパンに設定します。

`provider_name` は明示的に渡してください。SDK はモデル識別子からこの値を推測しません。
接頭辞に基づいて推測すると、ユーザーのファインチューン (たとえば `text-...` という名前のモデル) のプロバイダーを誤って判定してしまいます。また、将来のモデル名に関する想定がテレメトリに組み込まれてしまい、後から修正するには多大なコストがかかります。

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

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

ツール実行スパンを作成して開始します。

Tool の OTel スパンは、OTel コンテキストで現在アクティブなスパン (Turn スパンが実行中であれば、通常はその 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: ...
```

サブエージェントの invocation スパンを作成して開始します。

SubAgent の OTel スパンは、OTel コンテキストで現在アクティブなスパンの子として自動的に設定されます。
通常は、実行中の Turn スパンがあれば、その子になります。
構成は `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 から取得) を終了します。

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

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

現在の LLM Call (contextvar から取得) を終了します。

<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 から現在アクティブなターンを返します。存在しない場合は None を返します。

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

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

contextvar から現在アクティブな LLM Call を返します。存在しない場合は None を返します。
