> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wandb.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# エージェントのトレースをバッチでログする

> すでに LLM 呼び出しが完了しており、その記録が必要なフレームワーク向けに、エージェントのトレースを手動でログします。

LLM 呼び出しがすでに完了していて、その記録だけが必要なフレームワークでは、`weave.log_turn` と `weave.log_session` を使用します。すべてのスパンは作成後すぐに終了し、コンテキストマネージャーを開いたままにしておく必要はありません。

この方法でログしたデータは過去の履歴データでも問題ありません。ライブ会話は不要です。会話を一意に識別できる安定した任意の文字列を `conversation_id` に設定してください。同じ `conversation_id` を共有するターンは、**Agents** ビューで 1 つの会話としてグループ化されます。

独自のエージェントループを構築している場合は、代わりに [Trace your agents](/ja/weave/guides/tracking/trace-agents) で説明されているリアルタイムのインストルメンテーション API を使用してください。

<div id="log-a-turn">
  ## ターンをログする
</div>

完了した単一のターンを発生後に記録するには、`weave.log_turn` を使用します。`weave.log_turn` は、すべての LLM スパンとツールスパンを含む、完全に構成されたターンを受け入れます。

<Tabs>
  <Tab title="Python">
    ```python lines highlight="1,3,28" theme={null}
    weave.init("[YOUR-TEAM]/[YOUR-PROJECT]")

    from weave.conversation import LLM, Message, Tool, Usage

    llm_span = LLM(
        model="gpt-4o",
        provider_name="openai",
        input_messages=[Message(role="user", content="What is the weather?")],
        output_messages=[Message(role="assistant", content="Let me check.")],
        usage=Usage(input_tokens=100, output_tokens=20),
    )

    tool_span = Tool(
        name="get_weather",
        arguments='{"city": "Tokyo"}',
        result='"24°C, sunny"',
    )

    llm_span2 = LLM(
        model="gpt-4o",
        provider_name="openai",
        input_messages=[Message(role="user", content="What is the weather?")],
        output_messages=[Message(role="assistant", content="It is 24°C and sunny.")],
        usage=Usage(input_tokens=150, output_tokens=30),
    )

    # すべてのスパンを含むターンをログします。
    weave.log_turn(
        conversation_id="my-conversation-abc",
        agent_name="weather-bot",
        messages=[
            Message(role="user", content="What is the weather in Tokyo?"),
            Message(role="assistant", content="It is 24°C and sunny in Tokyo."),
        ],
        spans=[llm_span, tool_span, llm_span2],
    )
    ```
  </Tab>

  <Tab title="TypeScript">
    ```plaintext theme={null}
    この機能は、まだ TypeScript SDK では利用できません。
    ```
  </Tab>
</Tabs>

`log_turn` は、出力されたスパンのトレース ID を含む `LogResult` を返します。

`log_turn` のオプションの `model` パラメーターは、子 LLM スパンではなく、そのターン自体のスパンにモデルを設定します。各 `LLM` スパンは、それぞれ独立して独自の `model` を持ちます。ターンで複数のモデルを使用する場合は、そのターンの主要なモデルと見なすものを `log_turn` の `model` に設定してください。

<div id="log-a-conversation">
  ## 会話をログする
</div>

複数ターンの会話全体をまとめてインポートするには、`weave.log_conversation` を使用します。`turns` パラメーターは `Turn` オブジェクトのリストを受け取り、各オブジェクトは前の `log_turn` の例と同じ方法で作成します。

<Tabs>
  <Tab title="Python">
    ```python lines theme={null}
    weave.log_conversation(
        conversation_id="my-conversation-abc",
        agent_name="weather-bot",
        turns=[turn_1, turn_2],
    )
    ```
  </Tab>

  <Tab title="TypeScript">
    ```plaintext theme={null}
    この機能は、TypeScript SDK ではまだ利用できません。
    ```
  </Tab>
</Tabs>
