跳转到主要内容

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.

默认情况下,模型一轮回复要等完整产出后才作为整段消息送达。启用流式输出后,SDK 在生成过程中持续推送细粒度增量片段,可以做打字机效果,或单独渲染推理过程、工具调用过程。

启用

QoderAgentOptions 里设置 include_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