メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://docs.qoder.com/llms.txt

Use this file to discover all available pages before exploring further.

デフォルトでは、モデルの 1 ターンの応答は完全に生成された後に 1 つの完結したメッセージとして送られます。ストリーミング出力を有効にすると、SDK は生成中に細粒度の増分チャンクを継続的に push します。タイプライター効果や、推論過程・ツール呼び出し過程を個別にレンダリングするのに使えます。

有効化

QoderAgentOptionsinclude_partial_messages=True を設定します:
from qoder_agent_sdk import QoderAgentOptions, access_token_from_env, query

options = QoderAgentOptions(
    auth=access_token_from_env(),
    include_partial_messages=True,
)

async for msg in query(prompt="Write a short analysis report", options=options):
    ...

タイプライター効果

モデルが生成するテキストは増分チャンクとして連続的に届きます。届くたびに出力すればタイプライター効果になります:
import sys

from qoder_agent_sdk import StreamEvent


async for msg in query(prompt="...", options=options):
    if isinstance(msg, StreamEvent):
        delta = msg.event.get("delta")
        if delta and delta.get("type") == "text_delta":
            sys.stdout.write(delta["text"])
            sys.stdout.flush()

推論過程

推論モデルは正式な応答の前に「思考」チャンクを産出します:
if isinstance(msg, StreamEvent):
    delta = msg.event.get("delta")
    if delta and delta.get("type") == "thinking_delta":
        sys.stdout.write(delta["thinking"])
        sys.stdout.flush()

ツール呼び出しの引数

ツール呼び出しの引数も段階的に生成されます。例えば、モデルが書き込んでいるファイル内容を UI でリアルタイムにレンダリングするのに使えます:
if isinstance(msg, StreamEvent):
    delta = msg.event.get("delta")
    if delta and delta.get("type") == "input_json_delta":
        sys.stdout.write(delta["partial_json"])
        sys.stdout.flush()
完全なイベント構造は SDK References を参照してください。