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

# Ops、Calls、トレース を理解する

> Ops、Calls、トレース が W&B Weave のトレースシステムの基盤となる仕組みを学びます。

<div id="ops">
  ## Ops
</div>

**Op** は、バージョン管理され、トラッキングされる関数です。関数を `@weave.op()` (Python) でデコレートするか、`weave.op()` (TypeScript) でラップすると、Weave はそのコード、入力、出力、実行メタデータを自動的に記録します。Ops は、トレース、評価スコアラー、およびトラッキング対象のあらゆる計算の基本構成要素です。

<CodeGroup>
  ```python Python theme={null}
      @weave.op
      async def my_function(){
        ...  }
  ```

  ```typescript Typescript theme={null}
  function myFunction() {
      ...
  }

  const myFunctionOp = weave.op(myFunction)
  ```
</CodeGroup>

<div id="calls">
  ## Calls
</div>

**Call** は、Op の実行をログしたものです。Op が実行されるたびに、Weave は次の情報を記録する Call を作成します。

* 入力引数
* 出力値
* 実行タイミングとレイテンシ
* 親子関係 (ネストされた Call の場合)
* 発生したエラー

Calls は Weave UI では **トレース** として表示され、デバッグ、分析、評価のためのデータを提供します。Call オブジェクトの完全な構造とプロパティについては、[Call スキーマリファレンス](/ja/weave/guides/tracking/call-schema-reference)を参照してください。

Calls は、[OpenTelemetry](https://opentelemetry.io) のデータモデルにおけるスパンに似ています。Call には次の特徴があります。

* Trace に属する (同じ実行コンテキスト内にある複数の Call の collection)
* 親 Call と子 Call を持ち、ツリー構造を形成する

<div id="traces">
  ## トレース
</div>

トレースは、同じ実行コンテキストを共有する Call の完全なツリー構造です。各トレースには ID (`trace_id`) が含まれており、これを使用して Call ツリー全体を取得できます。Call の情報をその id のみを使って取得した場合、返されるのは指定した Call に関するデータだけであり、その子 Call のデータは含まれません。

<div id="threads">
  ## スレッド
</div>

スレッドは、単一のセッションまたは会話に関連するトレースの集合です。スレッドを使用すると、個々の Call ではなく、\[会話全体]をひとまとまりとして分析またはスコアリングできます。

次の図は、スレッド、トレース、Call の関係を示しています。

```
Thread: "session-abc"
  ├── Turn 1 (trace_id: aaa) → user says "Hi"
  │     ├── LLM call
  │     └── format response
  ├── Turn 2 (trace_id: bbb) → user says "What is the capitol of Paris?"
  │     ├── RAG retrieval
  │     ├── LLM call
  │     └── format response
  └── Turn 3 (trace_id: ccc) → user says "Thanks"
        └── LLM call
```
