API の概要
class Agent
Pydantic のフィールド:
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonemodel_name:<class 'str'>temperature:<class 'float'>system_message:<class 'str'>tools:list[typing.Any]
method step
state: 環境の現在の状態。action: 実行する action。 戻り値: 更新後の環境の状態。
class AgentState
Pydantic のフィールド:
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonehistory:list[typing.Any]
class AnnotationSpec
Pydantic のフィールド:
name:str | Nonedescription:str | Nonefield_schema:dict[str, typing.Any]unique_among_creators:<class 'bool'>op_scope:list[str] | None
クラスメソッド preprocess_field_schema
クラスメソッド validate_field_schema
method value_is_valid
-
payload: スキーマに基づいて検証するデータ 戻り値: -
bool: 検証に成功した場合は True、それ以外の場合は False
クラス Audio
サポートされる形式 (wav または mp3) のオーディオデータを表すクラスです。
このクラスはオーディオデータの保存を担い、さまざまなソースからの読み込みやファイルへのエクスポートを行うメソッドを提供します。
属性:
format: オーディオ形式 (現在は ‘wav’ または ‘mp3’ をサポート)data: 生のオーディオデータ (バイト列)
-
data: オーディオデータ (バイト列または base64 エンコードされた string) -
format: オーディオ形式 (‘wav’ または ‘mp3’) -
validate_base64: 入力データの base64 デコードを試みるかどうか 送出される例外: -
ValueError: オーディオデータが空の場合、または形式がサポートされていない場合
method __init__
method export
クラスメソッド from_data
-
path: オーディオファイルの書き込み先パス 引数: -
data: bytes または base64 エンコードされた string 形式のオーディオデータ -
format: オーディオ形式 (‘wav’ または ‘mp3’) 戻り値: -
Audio: 新しい Audio インスタンス
ValueError: 形式がサポートされていない場合
クラスメソッド from_path
-
path: オーディオファイルのパス (拡張子は .wav または .mp3 である必要があります) 戻り値: -
Audio: ファイルから読み込まれた新しい Audio インスタンス
ValueError: ファイルが存在しない場合、または拡張子がサポートされていない場合
class ClassifierMonitor
複数の Scorer を 1 つの分類器に統合するモニターです。
分類器モニターは、同じモデルを対象とする複数の LLMAsAJudgeScorer のプロンプトを 1 回のスコアリング Call にまとめます。
Pydantic のフィールド:
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonesampling_rate:<class 'float'>scorers:list[flow.scorer.Scorer]op_names:list[typing.Union[typing.Literal['genai.turn_ended'], str]]query:trace_server.interface.query.Query | Noneis_traced:<class 'bool'>active:<class 'bool'>scorer_debounce_config:flow.monitor.ScorerDebounceConfig | Noneprompt_header:str | Noneprompt_footer:str | None
method activate
method deactivate
クラスメソッド from_obj
method get_prompt_footer
method get_prompt_header
method model_post_init
op_names を正規化します。
パブリッシュにはオブジェクトごとの hook がないため、activate() を呼び出さずに weave.publish(monitor) だけを実行するケースにも対応できるよう、ここで短い名前を展開します。パブリッシュを行うユーザーは通常すでに weave.init を呼び出しているため、モニターの構築時点でクライアントが設定されています。
単体テスト、インスペクション、ワーカー内での保存済みモニターのデシリアライズなど、クライアントなしで構築するユースケースもあります。get_weave_client() のガードにより、クライアントがなくても構築できます。この場合は正規化が行われませんが、保存済みのモニターはすでに完全な ref を保持しているため問題ありません。
なお、SDK でモニターを作成した際に正規化が行われないエッジケースがあります。ユーザーがモニターを構築した後に weave.init を呼び出し、その後モニターをパブリッシュした場合です。このケースでは、activate() または deactivate() を呼び出すことで回避できます。
class Content
さまざまなソースから取得したコンテンツを表すクラスです。コンテンツは、関連するメタデータを含む統一されたバイト指向の表現に変換されます。
このクラスは、次のいずれかのクラスメソッドを使用してインスタンス化する必要があります。
- from_path()
- from_bytes()
- from_text()
- from_url()
- from_base64()
- from_data_url()
method __init__
Content.from_path() などのクラスメソッドを使用してください。
Pydantic のフィールド:
data:<class 'bytes'>size:<class 'int'>mimetype:<class 'str'>digest:<class 'str'>filename:<class 'str'>content_type:typing.Literal['bytes', 'text', 'base64', 'file', 'url', 'data_url', 'data_url:base64', 'data_url:encoding', 'data_url:encoding:base64']input_type:<class 'str'>encoding:<class 'str'>metadata:dict[str, typing.Any] | Noneextension:str | None
property art
property ref
メソッド as_string
encoding 属性を使用してデコードされます。base64 の場合は、データを base64 バイトに再エンコードしてから ASCII string にデコードします。
戻り値:
str.
クラスメソッド from_base64
クラスメソッド from_bytes
クラスメソッド from_data_url
クラスメソッド from_path
クラスメソッド from_text
クラスメソッド from_url
クラスメソッド model_validate
クラスメソッド model_validate_json
method open
bool: ファイルを正常に開けた場合は True、それ以外の場合は False。
method save
method serialize_data
メソッド to_data_url
-
dest: ファイルのコピー先パス (string または pathlib.Path) 。コピー先パスにはファイルまたはディレクトリを指定できます。dest にファイル拡張子 (例: .txt) がない場合、コピー先はディレクトリとして扱われます。 引数: -
use_base64: True の場合、データは base64 でエンコードされます。False の場合は、パーセントエンコードされます。デフォルトは True です。 戻り値: データ URL の string。
class Conversation
会話を表します。ターンを conversation_id ごとにグループ化します (スパンは作成しません) 。
continue_parent_trace は、この会話が作成するターンのトレース分離を制御します。デフォルトの False では、各ターンがそれぞれ独自の OTel トレースを開始します (スタンドアロンの Agents タブビューではこちらが適しています) 。エージェントの invocation を含めるべき外側のトレース (例: fastapi でインストルメントされたリクエスト) がアプリケーションにある場合は、True に設定します。
Pydantic のフィールド:
conversation_id:<class 'str'>conversation_name:<class 'str'>agent_name:<class 'str'>model:<class 'str'>agent_id:<class 'str'>agent_description:<class 'str'>agent_version:<class 'str'>include_content:<class 'bool'>continue_parent_trace:<class 'bool'>attributes:dict[str, typing.Any]
method end
method model_post_init
method start_turn
_current_turn contextvar を設定するため、コンテキストマネージャーを使用するかどうかにかかわらず、get_current_turn() からターンを参照できます。agent_name / model / agent_id / agent_description / agent_version は、いずれも空のままにすると会話のデフォルト値が使用されます。continue_parent_trace は継承されます。これらの値は、後から turn.record(...) でいつでも上書きできます。
system_instructions(エージェントのシステムプロンプト)は、ターンの invoke_agent スパンに保持されます。start_llm と同様に、返された Turn の属性に値を代入して後から設定することもできます。
class Dataset
簡単に保存でき、自動でバージョン管理される Dataset オブジェクトです。
サンプル:
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonerows:trace.table.Table | trace.vals.WeaveTable
method add_rows
rows: データセットに追加する行。 戻り値: 更新されたデータセット。
クラスメソッド convert_to_table
クラスメソッド from_calls
クラスメソッド from_hf
クラスメソッド from_obj
クラスメソッド from_pandas
method select
indices: 選択する行を指定する整数インデックスのイテラブル。 戻り値: 選択した行のみを含む新しい Dataset オブジェクト。
method to_hf
method to_pandas
クラス EasyPrompt
method __init__
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonedata:<class 'list'>config:<class 'dict'>requirements:<class 'dict'>
プロパティ as_str
すべてのメッセージを結合して 1 つの string にします。プロパティ is_bound
property messages
property placeholders
property system_message
すべてのメッセージを結合して、1 つのシステムプロンプトメッセージにします。property system_prompt
すべてのメッセージを結合して、1 つのシステム プロンプト オブジェクトにします。property unbound_placeholders
method append
method as_dict
method as_pydantic_dict
method bind
method bind_rows
method config_table
method configure
method dump
method dump_file
method format
クラスメソッド from_obj
クラスメソッド load
クラスメソッド load_file
method messages_table
method print
method publish
method require
method run
method validate_requirement
method validate_requirements
method values_table
class Evaluation
一連の Scorer とデータセットで構成される評価をセットアップします。
evaluation.evaluate(model) を呼び出すと、データセットの行がモデルに渡されます。その際、データセットの列名が model.predict の引数名と照合されます。
その後、すべての Scorer を呼び出し、結果を Weave に保存します。
データセットの行を前処理する場合は、preprocess_model_input に関数を渡します。
サンプル:
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonedataset:<class 'dataset.dataset.Dataset'>scorers:list[typing.Annotated[trace.op_protocol.Op | flow.scorer.Scorer, BeforeValidator(func=<function cast_to_scorer at 0x7f136d430d60>, json_schema_input_type=PydanticUndefined)]] | Nonepreprocess_model_input:collections.abc.Callable[[dict], dict] | Nonetrials:<class 'int'>metadata:dict[str, typing.Any] | Noneevaluation_name:str | collections.abc.Callable[trace.call.Call, str] | None
method evaluate
クラスメソッド from_obj
method get_eval_results
method get_evaluate_calls
CallsIter: 評価の実行を表す Call オブジェクトのイテレーター。
ValueError: 評価に ref がない場合 (まだ保存または実行されていない場合) 。
method get_score_calls
dict[str, list[Call]]: トレース ID をキー、Scorer Call オブジェクトのリストを値とする辞書。各トレース ID は 1 つの評価 run に対応し、リストにはその run で実行されたすべての Scorer Call が含まれます。
method get_scores
dict[str, dict[str, list[Any]]]: 次の構造を持つネストされた辞書です。- 第 1 階層のキーはトレース ID (評価 run) です
- 第 2 階層のキーは Scorer 名です
- 値は、該当する run と Scorer における Scorer の出力のリストです
method model_post_init
method predict_and_score
method summarize
class EvaluationLogger
このクラスは、評価をログするための命令型インターフェースを提供します。
評価は、log_prediction メソッドで最初の予測をログした時点で自動的に開始され、log_summary メソッドを呼び出した時点で終了します。
予測をログするたびに、ScoreLogger オブジェクトが返されます。このオブジェクトを使用すると、その予測に対するスコアとメタデータをログできます。詳細については、ScoreLogger クラスを参照してください。
基本的な使い方 - 入力と出力を指定して予測を直接ログします:
method __init__
property attributes
property ui_url
method fail
method finish
method log_example
inputs: 予測の入力データoutput: 出力値scores: scorer 名とスコア値を対応付ける辞書 例:
method log_prediction
inputs: 予測の入力データoutput: 出力値。デフォルトは None です。後から pred.output で設定することもできます。 戻り値: スコアをログし、必要に応じて予測を完了するための ScoreLogger。
pred = ev.log_prediction({'q': ’…’}, output=“answer”) pred.log_score(“correctness”, 0.9) pred.finish()
with ev.log_prediction({'q': ’…’}) as pred: response = model(…) pred.output = response pred.log_score(“correctness”, 0.9) # ブロックを抜けると自動的に finish() が呼び出されます
method log_summary
method set_view
weave.views 配下にビューを関連付けます。
指定されたコンテンツを project 内のオブジェクトとして保存し、その参照 URI を評価の evaluate call の summary.weave.views.<name> に書き込みます。string の入力は、指定された拡張子または MIME タイプを使用し、Content.from_text でテキストコンテンツとしてラップされます。
引数:
name: 表示するビュー名。summary.weave.views配下のキーとして使用されます。content: シリアライズするweave.Contentインスタンスまたは string。extension: string のコンテンツ入力に使用するファイル拡張子 (オプション) 。mimetype: string のコンテンツ入力に使用する MIME タイプ (オプション) 。metadata: 新しく作成されるContentに関連付けるメタデータ (オプション) 。encoding: string のコンテンツ入力に使用するテキストエンコーディング。 戻り値: None
import weave
ev = weave.EvaluationLogger() ev.set_view(“report”, ”# Report”, extension=“md”)
class File
パス、MIME タイプ、サイズの情報を持つファイルを表すクラスです。
method __init__
property filename
ファイル名を取得します。-
path: ファイルへのパス (string または pathlib.Path) -
mimetype: ファイルの MIME タイプ (オプション) 。指定しない場合は拡張子から推測されます 戻り値: -
str: ディレクトリパスを除いたファイル名。
method open
bool: ファイルを正常に開けた場合は True、それ以外の場合は False。
method save
class LLM
1 回の LLM API 呼び出しを表します。chat OTel スパンに対応します。
-
dest: ファイルのコピー先パス (string または pathlib.Path) 。コピー先パスには、ファイルまたはディレクトリを指定できます。 Pydantic のフィールド: -
model:<class 'str'> -
provider_name:<class 'str'> -
response_id:<class 'str'> -
response_model:<class 'str'> -
output_type:<class 'str'> -
system_instructions:list[str] -
usage:<class 'conversation.types.Usage'> -
reasoning:<class 'conversation.types.Reasoning'> -
finish_reasons:list[str] -
input_messages:list[conversation.types.Message] -
output_messages:list[conversation.types.Message] -
media_attachments:list[conversation.types.MediaAttachment] -
request_temperature:float | None -
request_max_tokens:int | None -
request_top_p:float | None -
request_frequency_penalty:float | None -
request_presence_penalty:float | None -
request_seed:int | None -
request_stop_sequences:list[str] -
request_choice_count:int | None -
started_at:datetime.datetime | None -
ended_at:datetime.datetime | None
method add_event
set_attributes で記録してください。OpenTelemetry は Span Event API (Span.add_event) を段階的に廃止しています。 add_event は引き続き動作し、既存のスパンイベントデータも引き続き有効です。 詳細については、https://opentelemetry.io/blog/2026/deprecating-span-events/ を参照してください。
Content オブジェクトを作成し、パブリッシュして weave:// ref を取得したうえで、その ref のみを保存します。content、uri、file_id のうち、いずれか 1 つだけを指定する必要があります。
パブリッシュ (メディアのアップロード) は専用のバックグラウンドスレッドで実行されるため、この呼び出しは呼び出し元をブロックせずにすぐに返ります。スレッドは添付ごとに 1 つずつディスパッチされるため、複数のアップロードが並行して実行されます。プレースホルダーの MediaAttachment は同期的に追加され、その ref はアップロードの完了後に設定されます。ref はスパンの送出前に必ず設定されます (ビルド処理は _await_uploads を通じて、進行中のアップロードの完了を待機します) 。
method attach_media_url
attach_media を簡単に使えるようにしたメソッドです。data: URL はバイト列に解析されてからパブリッシュされ、通常の URI は取得されてからパブリッシュされます。空の URL は無視されます。メソッドチェーン用に self を返します。
method end
method model_post_init
method output
method record
input_messages、output_messages、usage、response_id など) を個別に割り当てて chat スパンを構築します。record(...) を使うと、これらを 1 回のキーワード引数付き呼び出しにまとめられるため、記録処理を簡潔に記述できます。
明示的に渡された (None 以外の) フィールドのみが適用され、既存の値は保持されます。reasoning には Reasoning インスタンスまたはプレーンな string のいずれかを指定できます (string は自動的にラップされます) 。メソッドチェーン用に self を返します。
method set_attributes
span.set_attributes({"weave.tag": "value"}) のように呼び出します。OTel の Span.set_attributes と同等です。
スパンの開始から終了までの間、つまり with ブロック内で呼び出す必要があります。この範囲外で呼び出すと no-op となり、警告がログされます。バッチでインジェストする場合は、オブジェクトで宣言されたフィールドに直接値を設定し、log_turn / log_conversation に渡してください。
method think
class LogResult
log_* によるバッチ呼び出しの結果です。
Pydantic のフィールド:
conversation_id:<class 'str'>trace_ids:list[str]root_span_ids:list[str]span_count:<class 'int'>
クラス Markdown
レンダリング可能な Markdown オブジェクトです。
引数:
markup(str): Markdown を含む string。code_theme(str, optional): コードブロックに使用する Pygments テーマ。デフォルトは “monokai” です。コードテーマについては https://pygments.org/styles/ を参照してください。justify(JustifyMethod, optional): 段落の配置 (justify) の値。デフォルトは None です。style(Union[str, Style], optional): Markdown に適用するスタイル (オプション)。hyperlinks(bool, optional): ハイパーリンクを有効にします。デフォルトはTrueです。
method __init__
class MediaAttachment
LLM Call に添付されたメディアです。
常に weave:// 形式の content ref URI を保持します。生のバイト列、data URL、およびプレーンな HTTP URI は、ここに格納される前に LLM.attach_media によってパブリッシュ済みの Content オブジェクトに変換されます。
-
inline_code_lexer: (str, optional): インラインコードのハイライトが有効な場合に使用するレキサー。デフォルトは None です。 -
inline_code_theme: (Optional[str], optional): インラインコードのハイライトに使用する Pygments テーマ。ハイライトしない場合は None を指定します。デフォルトは None です。 Pydantic のフィールド: -
ref:<class 'str'> -
modality:<class 'str'> -
mime_type:<class 'str'>
class Message
会話内の 1 つのメッセージを表します。
次の 2 つの構築方法がサポートされています。
-
フラット形式 (後方互換性があり、プレーンテキストを簡単に扱えます):
Message(role="assistant", content="Hi there") -
明示的なパーツ形式 (より表現力が高く、ツール呼び出し、推論とテキストの混在、インラインメディアをサポートします):
Message(role="assistant", parts=[TextPart(content="Let me check"), ToolCallPart(id="c1", name="get_weather", arguments='{...}')])
parts が空でない場合は、parts が正規の表現となります。空の場合、シリアライザーはフラットフィールドから単一の TextPart (role="tool" の場合は ToolCallResponsePart) を合成します。
Pydantic のフィールド:
role:typing.Literal['user', 'assistant', 'system', 'tool']content:<class 'str'>tool_call_id:<class 'str'>tool_name:<class 'str'>parts:list[typing.Annotated[conversation.types.TextPart | conversation.types.ReasoningPart | conversation.types.ToolCallPart | conversation.types.ToolCallResponsePart | conversation.types.BlobPart | conversation.types.UriPart | conversation.types.FilePart, FieldInfo(annotation=NoneType, required=True, discriminator='type')]]
クラスメソッド assistant
tool_calls を渡します。両方を指定した場合、テキストが先頭の TextPart として出力され、その後に各 ToolCallPart が続きます。これにより、チャット ビューでそれらがインラインでレンダリングされます。
クラスメソッド system
クラスメソッド tool_result
output には string、dict、list、スカラー値、または None を指定できます。内部で使用される ToolCallResponsePart が、string 以外の値を JSON エンコードします。
クラスメソッド user
クラス MessagesPrompt
method __init__
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonemessages:list[dict]
method format
method format_message
クラスメソッド from_obj
class Model
入力に対して処理を行うコードとデータの組み合わせを取得するためのものです。たとえば、プロンプトを指定して LLM を呼び出し、予測を行ったりテキストを生成したりできます。
モデルを定義する属性やコードを変更すると、その変更がログされ、バージョンが更新されます。これにより、モデルの異なるバージョン間で予測を比較できます。プロンプトを繰り返し改善したり、最新の LLM を試して異なる設定間で予測を比較したりする際に使用します。
サンプル:
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | None
method get_infer_method
class Monitor
受信した Call を自動的にスコアリングするモニターを設定します。
op 名は、Weave クライアントの entity と project を使って weave ref に変換される点に注意してください。1 つのクライアントで複数の entity や project を扱う場合は、完全修飾の weave ref を指定する必要があります。詳細は _normalized_op_names を参照してください。
サンプル:
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonesampling_rate:<class 'float'>scorers:list[flow.scorer.Scorer]op_names:list[typing.Union[typing.Literal['genai.turn_ended'], str]]query:trace_server.interface.query.Query | Noneis_traced:<class 'bool'>active:<class 'bool'>scorer_debounce_config:flow.monitor.ScorerDebounceConfig | None
method activate
method deactivate
クラスメソッド from_obj
method model_post_init
op_names を正規化します。
パブリッシュにはオブジェクト単位の hook がありません。そのため、activate() を呼び出さずに weave.publish(monitor) だけを実行した場合にも対応できるよう、ここで短い名前を展開します。パブリッシュを行うユーザーは通常すでに weave.init を呼び出しているため、モニターの構築時にはクライアントが設定されています。
ユニットテスト、検査、ワーカーでの保存済みモニターのデシリアライズなど、クライアントなしで構築するユースケースもいくつかあります。get_weave_client() に対するガードにより、クライアントなしでも構築できます。この場合は正規化が行われませんが、保存済みのモニターはすでに完全な ref を保持しているため問題ありません。
なお、SDK を使用して、正規化されないままモニターが作成されるエッジケースがあります。ユーザーがモニターを構築してから weave.init を呼び出し、その後モニターをパブリッシュした場合です。このケースでは、activate() または deactivate() を呼び出すことで回避できます。
class Object
追跡およびバージョン管理が可能な Weave オブジェクトの基底クラスです。
このクラスは Pydantic の BaseModel を拡張し、オブジェクトの追跡、参照、シリアライズといった Weave 固有の機能を提供します。オブジェクトには名前、説明、参照を持たせることができ、これらを使って Weave システムへの保存や Weave システムからの取得を行えます。
属性:
name(str | None): オブジェクトの、人が読みやすい名前。description(str | None): オブジェクトが表す内容の説明。ref(ObjectRef | None): Weave システム内のオブジェクトへの参照。
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | None
クラスメソッド from_uri
uri(str): オブジェクトを指す Weave URI。objectify(bool): 結果をオブジェクト化するかどうか。デフォルトは True です。
Self: URI から作成されたクラスのインスタンス。
NotImplementedError: クラスがデシリアライズに必要なメソッドを実装していない場合。
クラスメソッド handle_relocatable_object
v(Any): 検証する値。handler(ValidatorFunctionWrapHandler): 標準の pydantic 検証ハンドラ。info(ValidationInfo): 検証のコンテキスト情報。
Any: 検証済みのオブジェクトインスタンス。
ObjectRef が渡された場合
obj = MyObject(some_object_ref)WeaveObject が渡された場合
obj = MyObject(some_weave_object)クラス ObjectRef
ObjectRef(entity: ‘str’, project: ‘str’, name: ‘str’, _digest: ‘str | Future[str]’, _extra: ‘tuple[str | Future[str], …]’ = ())
method __init__
property digest
property extra
property is_digest_resolved
method as_param_dict
method delete
method get
method is_descended_from
method maybe_parse_uri
method parse_uri
method with_attr
method with_extra
method with_index
method with_item
method with_key
class Prompt
Pydantic のフィールド:
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | None
method format
class SavedView
SavedView オブジェクトを操作するための Fluent スタイルのクラスです。
method __init__
property entity
property label
property project
property view_type
method add_column
method add_columns
method add_filter
method add_sort
method column_index
method filter_op
method get_calls
method get_known_columns
method get_table_columns
method hide_column
method insert_column
クラスメソッド load
method page_size
method pin_column_left
method pin_column_right
method remove_column
method remove_columns
method remove_filter
method remove_filters
method rename
method rename_column
method save
method set_columns
method show_column
method sort_by
method to_grid
method to_rich_table_str
method ui_url
method unpin_column
クラス Scorer
Pydantic のフィールド:
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonecolumn_map:dict[str, str] | None
property display_name
クラスメソッド from_obj
method model_post_init
method score
method summarize
class Session
:class:weave.Conversation の非推奨のエイリアスです。
従来の session_id / session_name コンストラクターフィールドを受け入れるほか、これらを conversation_id / conversation_name にプロキシする読み書き可能なプロパティとしても公開します。元の Session ではこれらがモデルフィールドとして定義されていたため、s.session_id の読み取りや代入を行う既存のコードもそのまま動作します。
method __init__
conversation_id:<class 'str'>conversation_name:<class 'str'>agent_name:<class 'str'>model:<class 'str'>agent_id:<class 'str'>agent_description:<class 'str'>agent_version:<class 'str'>include_content:<class 'bool'>continue_parent_trace:<class 'bool'>attributes:dict[str, typing.Any]
property session_id
:attr:conversation_id の非推奨のエイリアスです。
property session_name
:attr:conversation_name の非推奨のエイリアスです。
class StringPrompt
method __init__
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonecontent:<class 'str'>
method format
クラスメソッド from_obj
class SubAgent
ターン内で委譲されたエージェントの invocation です。
同じトレース内でネストされた invoke_agent OTel スパンに対応します。
Pydantic のフィールド:
name:<class 'str'>model:<class 'str'>agent_id:<class 'str'>agent_description:<class 'str'>agent_version:<class 'str'>system_instructions:list[str]started_at:datetime.datetime | Noneended_at:datetime.datetime | None
method add_event
set_attributes で記録してください。OpenTelemetry は Span Event API (Span.add_event) を段階的に廃止しています。 add_event は現在も動作し、既存のスパンイベントデータも引き続き有効です。 詳しくは https://opentelemetry.io/blog/2026/deprecating-span-events/ を参照してください。
method llm
_current_llm contextvar を設定するため、コンテキストマネージャーを使用するかどうかにかかわらず、get_current_llm() から LLM を参照できます。
method record
system_instructions、agent_id など) を行いますが、このメソッドではそれらを 1 回のキーワード引数付き呼び出しにまとめられます。明示的に渡されたフィールド (None 以外) のみが適用され、既存の値は保持されます。メソッドチェーン用に self を返します。Turn.record / LLM.record と同様の動作です。
注: ストリーミング (with) パスでは、サブエージェントのスパン名は __enter__ 時点の name から決まります。そのため、スパン名に name を反映させる必要がある場合は、record ではなく start_subagent / turn.subagent で name を設定してください。なお、record でも gen_ai.agent.name 属性は更新されます。
method set_attributes
span.set_attributes({"weave.tag": "value"}) のように呼び出します。OTel の Span.set_attributes と同じ仕様です。
スパンの開始から終了までの間、つまり with ブロック内で呼び出す必要があります。それ以外のタイミングで呼び出した場合は no-op となり、警告がログされます。バッチ取り込みの場合は、オブジェクトで宣言されたフィールドに直接値を設定し、log_turn / log_conversation に渡してください。
method tool
クラス Table
method __init__
property rows
method append
method pop
class ContextAwareThread
呼び出し元のコンテキストで関数を実行するスレッドです。
これは threading.Thread のドロップイン置換で、スレッド内でも Call が期待どおりに動作するようにします。Weave では特定の contextvar が設定されている必要があります (call_context.py を参照) 。しかし、新しいスレッドは親スレッドのコンテキストを自動的にコピーしないため、Call のコンテキストが失われるおそれがあります。これは望ましくありません。このクラスは contextvar のコピーを自動で行うため、このスレッドを使用すれば、ユーザーが想定するとおりに「そのまま動作」します。
このクラスを使用しなくても、代わりに次のように記述すれば同じ効果が得られます。
method __init__
property daemon
このスレッドがデーモンスレッドかどうかを示す真偽値です。 この値は start() を呼び出す前に設定する必要があります。呼び出し後に設定すると RuntimeError が発生します。初期値は作成元のスレッドから継承されます。メインスレッドはデーモンスレッドではないため、メインスレッドで作成されたスレッドはすべてデフォルトで daemon = False になります。 デーモンスレッドだけが残ると、Python プログラム全体が終了します。property ident
このスレッドのスレッド識別子です。スレッドがまだ開始されていない場合は None です。 これは 0 以外の整数です。get_ident() 関数を参照してください。スレッドが終了した後に別のスレッドが作成されると、スレッド識別子が再利用されることがあります。識別子はスレッドの終了後も引き続き利用できます。property name
識別の目的にのみ使用される string です。 特別な意味は持ちません。複数のスレッドに同じ名前を付けることもできます。初期名はコンストラクターで設定されます。property native_id
このスレッドのネイティブな整数スレッド ID です。スレッドがまだ開始されていない場合は None になります。 この値は非負の整数です。get_native_id() 関数も参照してください。これは、カーネルから報告されるスレッド ID を表します。method run
class ThreadContext
現在のスレッドとターンの情報にアクセスするためのコンテキストオブジェクトです。
method __init__
property thread_id
このコンテキストの thread_id を取得します。thread_id: このコンテキストのスレッド識別子。無効な場合は None。 戻り値: スレッド識別子。スレッドのトラッキングが無効な場合は None。
property turn_id
アクティブなコンテキストから現在の turn_id を取得します。 戻り値: turn_id が設定されている場合は現在の turn_id、設定されていない場合は None。class ContextAwareThreadPoolExecutor
呼び出し元のコンテキストで関数を実行する ThreadPoolExecutor です。
これは concurrent.futures.ThreadPoolExecutor のドロップイン置換であり、executor 内でも Weave の Call が期待どおりに動作するようにします。Weave では特定の contextvar が設定されている必要があります (call_context.py を参照) 。しかし、新しいスレッドは親スレッドのコンテキストを自動的にはコピーしないため、Call のコンテキストが失われてしまうことがあり、望ましくありません。このクラスは contextvar のコピーを自動化するため、この executor を使用すれば、ユーザーが期待するとおりに “そのまま動作” します。
このクラスを使用しなくても、次のように記述すれば同じ効果が得られます。
method __init__
method map
method submit
class Tool
1 回のツール実行を表します。OTel の execute_tool スパンに対応します。
arguments と result には JSONString アノテーションが使用されています。呼び出し側は dict / list / スカラー値を代入でき、SDK が構築時または代入時に JSON エンコードします。格納される値は常に string となり、GenAI semconv で規定されたワイヤーフォーマットと一致します。
Pydantic のフィールド:
name:<class 'str'>arguments:<class 'str'>result:<class 'str'>tool_call_id:<class 'str'>tool_type:<class 'str'>tool_description:<class 'str'>tool_definitions:<class 'str'>duration_ms:<class 'int'>started_at:datetime.datetime | Noneended_at:datetime.datetime | None
method add_event
set_attributes を使用して記録してください。OpenTelemetry は Span Event API (Span.add_event) を段階的に廃止しています。 add_event は引き続き使用でき、既存のスパンイベントデータも引き続き有効です。 詳細については、https://opentelemetry.io/blog/2026/deprecating-span-events/ を参照してください。
method set_attributes
span.set_attributes({"weave.tag": "value"}) のように呼び出します。OTel の Span.set_attributes と同じ仕様です。
スパンの開始から終了までの間、つまり with ブロック内で呼び出す必要があります。この範囲外で呼び出した場合は no-op となり、警告がログされます。バッチ取り込みを行う場合は、オブジェクトの宣言済みフィールドに直接値を設定し、log_turn / log_conversation に渡してください。
class Turn
ユーザーとエージェント間の 1 回のやり取りです。invoke_agent の OTel スパンに対応します。
デフォルトでは、各ターンは独自の OTel トレースを開始します (continue_parent_trace=False) 。そのため、Agents タブにはターンごとに 1 つのトレースが表示されます。外側のトレースがすでに実行中で、エージェントの invocation をその内側にネストしたい場合 (例: fastapi でインストルメントされたリクエスト内) は、Conversation (または Turn に直接) に continue_parent_trace=True を設定します。
Pydantic のフィールド:
agent_name:<class 'str'>model:<class 'str'>agent_id:<class 'str'>agent_description:<class 'str'>agent_version:<class 'str'>system_instructions:list[str]messages:list[conversation.types.Message]spans:list[conversation.conversation.LLM | conversation.conversation.Tool | conversation.conversation.SubAgent]continue_parent_trace:<class 'bool'>started_at:datetime.datetime | Noneended_at:datetime.datetime | None
method add_event
set_attributes を使用してこのデータを記録してください。OpenTelemetry は Span Event API (Span.add_event) を段階的に廃止しています。 add_event は引き続き使用でき、既存のスパンイベントデータも有効なままです。 詳しくは https://opentelemetry.io/blog/2026/deprecating-span-events/ を参照してください。
method llm
_current_llm contextvar を設定します。これにより、コンテキストマネージャーを使用するかどうかにかかわらず、get_current_llm() で LLM を参照できるようになります。
method model_post_init
method record
system_instructions、agent_id など) を行う必要がありますが、このメソッドを使用すると、それらを 1 回のキーワード引数呼び出しにまとめられます。明示的に渡された (None 以外の) フィールドのみが適用され、既存の値は保持されます。messages はターンの既存のメッセージを置き換えます (メッセージを 1 件追加する Turn.user(...) とは異なります) 。メソッドチェーン用に self を返します。LLM.record と同様の動作です。
注: ストリーミング (with) パスでは、ターンのスパン名は __enter__ の時点で agent_name に基づいて決まります。そのため、スパン名に agent_name を反映させる必要がある場合は、record ではなく start_turn で agent_name を設定してください。なお、record を使用した場合も gen_ai.agent.name 属性は更新されます。
method set_attributes
span.set_attributes({"weave.tag": "value"}) のように使用します。OTel の Span.set_attributes に準拠しています。
スパンの開始から終了までの間、つまり with ブロック内で呼び出す必要があります。この範囲外で呼び出すと no-op となり、警告がログされます。バッチ取り込みの場合は、オブジェクトで宣言されたフィールドに直接値を設定し、log_turn / log_conversation に渡してください。
method subagent
method tool
method user
class Usage
LLM Call のトークン使用量です。
Pydantic のフィールド:
input_tokens:<class 'int'>output_tokens:<class 'int'>reasoning_tokens:<class 'int'>cache_creation_input_tokens:<class 'int'>cache_read_input_tokens:<class 'int'>
関数 add_tags
関数 as_op
-
obj_ref: オブジェクトのバージョンへの参照。ObjectRef (weave.publish() の戻り値) または weave /// URI 文字列を指定します。 -
tags: 追加するタグ文字列のリスト。 引数: -
fn: weave.op でデコレートされた関数。 戻り値: 関数の Op。
function attributes
function end_conversation
function end_llm
function end_session
weave.end_conversation の非推奨のエイリアスです。
関数 end_turn
function finish
function get
uri: 完全修飾された weave ref URI。 戻り値: オブジェクト。
関数 get_aliases
obj_ref: オブジェクトのバージョンへの参照。ObjectRef または weave /// URI 文字列のいずれかを指定します。 戻り値: エイリアスの strings のリスト。
function get_client
function get_current_call
返された Call のattributes辞書は、Call の開始後は不変になります。Call のメタデータを設定するには、Op を呼び出す前に :func:weave.attributesを使用してください。summaryフィールドは Op の実行中に更新でき、Call の終了時に、算出されたサマリー情報とマージされます。
function get_current_conversation
function get_current_llm
function get_current_session
weave.get_current_conversation の非推奨のエイリアスです。
function get_current_turn
関数 get_tags
obj_ref: オブジェクトのバージョンへの参照。ObjectRef または weave /// URI 文字列のいずれかを指定します。 戻り値: タグの strings のリスト。
関数 get_tags_and_aliases
obj_ref: オブジェクトのバージョンへの参照。ObjectRef または weave /// URI 文字列を指定します。 戻り値: (tags, aliases) のタプル。いずれも list of strings です。
function init
project_name: ログする先の Weights & Biases のチーム名と project 名です。チームを指定しない場合は、デフォルトの entity が使用されます。デフォルトの entity を確認または変更するには、W&B Models ドキュメントの User Settings を参照してください。settings: Weave クライアント全体の設定です。UserSettings インスタンス、または以下のキーを任意に含む dict (すべてオプション) を指定できます。すべての設定は、接頭辞 WEAVE_ を付けた 環境変数でも設定できます (例: WEAVE_DISABLED=true) 。使用可能な設定: -disabled(bool): すべての関数のトレースを無効にします。デフォルト:False-print_call_link(bool): op の Weave UI へのリンクをターミナルに出力します。デフォルト:True-log_level(str): ログする情報のタイプを設定します (DEBUG、INFO、WARNING、ERROR、CRITICAL) 。デフォルト:INFO-display_viewer(str): Weave がコンソールでオブジェクトを表示する方法を制御します (auto、rich、print) 。デフォルト:auto-capture_code(bool): トレースされた op のコードを取得し、Weave プロジェクトに保存します。 デフォルト:True-implicitly_patch_integrations(bool): サポートされるライブラリに自動でパッチを適用します。デフォルト:True-redact_pii(bool): すべてのトレースデータをスキャンしてメールアドレス、電話 番号、クレジットカード番号などの機密情報を検出し、サーバーに送信する前にプレースホルダー値に置き換えます。presidio-analyzer パッケージと presidio-anonymizer パッケージが必要です。Default:False-redact_pii_fields(list[str]):redact_piiが True の場合にマスクする PII エンティティのタイプを指定します。空の場合は、Presidio のデフォルトのセットを使用します。例: [‘EMAIL’,‘PHONE_NUMBER’,‘CREDIT_CARD’,‘US_SSN’]。一覧については、次を参照してください: https://microsoft.github.io/presidio/supported_entities/Default:[]-redact_pii_exclude_fields(list[str]): 除外する PII エンティティのタイプ。デフォルト:[]-capture_client_info(bool): Python/SDK のバージョン情報を取得します。デフォルト:True-capture_system_info(bool): OS 情報を取得します。デフォルト:True-client_parallelism(int): バックグラウンド Op のワーカー数。デフォルト:auto-use_server_cache(bool): サーバー応答のローカル ディスク キャッシュを有効にします。 -server_cache_size_limit(int): キャッシュ サイズの上限 (バイト単位)。デフォルト:1_000_000_000-server_cache_dir(str): サーバー キャッシュのディレクトリ。デフォルト:temporary-scorers_dir(str): Scorer のモデル チェックポイントを保存するディレクトリ。デフォルト:~/.cache/wandb/weave-scorers-max_calls_queue_size(int): キューの最大サイズ (0 = 無制限)。デフォルト:100_000-retry_max_interval(float): 再試行の最大間隔 (秒)。デフォルト:300-retry_max_attempts(int): 再試行の最大回数。デフォルト:3-enable_disk_fallback(bool): 破棄された 項目をディスクに書き込みます。デフォルト:True-use_parallel_table_upload(bool): 大きな表をチャンク単位で並列アップロードします。False の場合、表はより小さなチャンクに分けて順次アップロードされます。Default:True-http_timeout(float): HTTP リクエストの完了を待機する最大時間 (秒) です。接続時間、データ転送、サーバー側の処理時間が含まれます。ネットワークが低速な場合や、大きなペイロードを扱う場合は、この値を大きくしてください。Default:30.0-use_stainless_server(bool): Stainless で生成された HTTP クライアントを使用します。このクライアントでは、型安全性の向上、自動リトライ、エラー処理の改善が得られます。この機能は実験的なものであり、将来のバージョンでデフォルトになる可能性があります。Default:False-use_calls_complete(bool): 最適化された書き込みパスを使用します。このパスでは、Call の開始と終了のリクエストを別々に送信する代わりに、完了した Call のデータ (開始と終了) を 1 つのリクエストにまとめて送信します。これによりサーバーの負荷が軽減され、特に短時間で終了する Op のパフォーマンスが向上します。Default:True-use_otel_v2: (bool): OTel に対応したインテグレーションを、それぞれの OTel 版経由でルーティングします。Default:Trueautopatch_settings: (非推奨) autopatch インテグレーションの設定です。代わりに明示的なパッチ適用を使用してください。postprocess_inputs: このクライアントがトレースするすべての op の入力に適用される関数です。postprocess_output: このクライアントがトレースするすべての op の出力に適用される関数。attributes: このクライアントが生成するすべてのトレースに適用される属性の辞書。 戻り値: Weave クライアント。
関数 link_prompt_to_registry
-
prompt: パブリッシュ済みのプロンプト、ObjectRef、または完全修飾された weave ///… URI 文字列。 -
target_path: Registry 内のリンク先パス。形式は<registry_project>/<portfolio_name>です (例:wandb-registry-prompts/my-prompt-collection) 。 -
aliases: 作成される Registry のバージョンに付与するエイリアス (オプション) 。 戻り値: -
LinkAssetToRegistryRes: registry-link エンドポイントから返された応答を解析したもの。
関数 list_aliases
関数 list_tags
関数 log_call
op(str): ログする操作の名前。Call の op_name として使用されます。匿名の操作 (パブリッシュ済みの Op を参照しない strings) もサポートされています。inputs(dict[str, Any]): 操作の入力パラメーターを格納する辞書。output(Any): 操作の出力または結果。parent(Call | None): この Call のネスト先となる親 Call (オプション) 。指定しない場合、Call はルートレベルの Call になります (現在の Call コンテキストが存在する場合は、その配下にネストされます) 。デフォルトは None です。attributes(dict[str, Any] | None): Call に付与するメタデータ (オプション) 。Call の作成後は変更できません。デフォルトは None です。display_name(str | Callable[[Call], str] | None): UI に表示する Call の表示名 (オプション) 。string、または Call を受け取って string を返す 呼び出し可能オブジェクト を指定できます。デフォルトは None です。use_stack(bool): Call をランタイムスタックにプッシュするかどうか。True の場合、Call は Call コンテキストで利用可能になり、weave.require_current_call() でアクセスできます。False の場合、Call はログされますが、コールスタックには追加されません。デフォルトは True です。exception(BaseException | None): 操作が失敗した場合にログする例外 (オプション) 。デフォルトは None です。
Call: 完全なトレース情報を含む、作成済みかつ終了済みの Call オブジェクト。
.spans 属性で指定します。conversation_id が空の場合は自動生成されます。デフォルトでは、ターンごとに個別の OTel トレースが作成されます。agent_name / model / agent_id / agent_description / agent_version は会話レベルのデフォルト値です。Turn 自身の値が優先され、Turn で値が空の場合にのみ会話の値で補完されます。会話の continue_parent_trace はすべてのターンに適用されます (ここでは、Turn ごとの continue_parent_trace は意図的に無視されます) 。
attributes は出力されるすべてのスパンに付与されます。semconv 以外のカスタムキーを使用してください。スパン自身の gen_ai.* / weave.* 属性と重複するキーはサポートされていません (どちらの値が優先されるかは処理経路によって異なります) 。
function log_session
weave.log_conversation の非推奨のエイリアスです。
session_id / session_name は、それぞれ conversation_id / conversation_name に対応します。
function log_turn
started_at / ended_at を設定しておく必要があります。出力される OTel スパンのタイムスタンプは、これらのフィールドから取得されます。ターン自体にタイムスタンプが指定されていない場合は、子スパンの最も早い/最も遅いタイムスタンプにフォールバックし、それもない場合は now() を使用します。agent_id / agent_description / agent_version は、ストリーミングパスと同じように動作します。
attributes は、出力されるすべてのスパンに付与されます。ストリーミングパスでは、これらは代わりに実行中の会話から読み取られます。semconv に含まれないカスタムキーを使用してください。スパン自身の gen_ai.* / weave.* 属性と衝突するキーはサポートされていません (どちらの値が優先されるかはパスによって異なります) 。
function op
関数 otel_traces_endpoint
func: デコレートする関数。name: op のカスタム名。デフォルトは関数名です。call_display_name: Call の表示名。string または呼び出し可能オブジェクトを指定できます。postprocess_inputs: ログする前に入力を変換する関数。postprocess_output: ログする前に出力を変換する関数。tracing_sample_rate: トレースする Call の割合 (0.0 から 1.0) 。enable_code_capture: この op のソースコードを取得するかどうか。accumulator: ストリーミング op の結果を蓄積する関数。attributes: この op が作成するすべての Call に、最も低い優先順位でマージされるデフォルトの属性。キーが衝突した場合は、weave.attributes()コンテキストと明示的な Call ごとの属性がこれを上書きします。予約済みの “weave” キーはここでは設定できません。eager_call_start: True の場合、Call の開始はバッチ処理されずに即座に送信されます。評価のように、UI にすぐ表示する必要がある長時間実行の操作に便利です。 引数:
function publish
-
base_url: トレースサーバーのベース URL。デフォルトはweave_trace_server_url()です。 引数: -
obj: 保存してバージョン管理するオブジェクト。 -
name: オブジェクトの保存に使用する名前。 -
tags: パブリッシュされたオブジェクトのバージョンに追加するタグのリスト (オプション)。 -
aliases: パブリッシュされたオブジェクトのバージョンに設定するエイリアスのリスト (オプション)。 戻り値: 保存されたオブジェクトへの Weave Ref。
function ref
location: Weave Ref URI。weave.init()を呼び出し済みの場合は、name:versionまたはnameも指定できます。バージョンを指定しない場合はlatestが使用されます。 戻り値: オブジェクトへの Weave Ref。
function remove_aliases
関数 remove_tags
obj_ref: オブジェクトへの参照。ObjectRef または weave /// URI 文字列を指定します。alias: 削除するエイリアス名、またはエイリアス名のリスト。 引数:
関数 require_current_call
weave.init から返される WeaveClient の get_call メソッドを使用して Call オブジェクトを取得できます。
call メソッドを使用することもできます。例:
obj_ref: オブジェクトのバージョンへの参照。ObjectRef または weave /// URI 文字列を指定します。tags: 削除するタグ (strings) のリスト。 戻り値: 現在実行中の Op の Call オブジェクト
NoCurrentCallError: トラッキングが初期化されていない場合、またはこのメソッドが Op の外部で呼び出された場合。
function set_aliases
関数 set_view
_weave.views.<name> にカスタムビューを添付します。
-
obj_ref: オブジェクトのバージョンへの参照。ObjectRef または weave /// URI 文字列を指定します。 -
alias: 設定するエイリアス名、またはエイリアス名のリスト (例: “production”) 。 引数: -
name: ビュー名 (summary._weave.views配下のキー) 。 -
content:weave.Contentインスタンスまたは生の string。string の場合は、指定された extension または mimetype を使用してContent.from_textでラップされます。 -
extension:contentが string の場合に使用するファイル拡張子 (オプション) 。 -
mimetype:contentが string の場合に使用する MIME タイプ (オプション) 。 -
metadata: テキストからContentを作成する際に添付するメタデータ (オプション) 。 -
encoding: テキストからContentを作成する際に適用するテキストエンコーディング。 戻り値: None
import weave
weave.init(“proj”) @weave.op … def foo(): … weave.set_view(“readme”, ”# Hello”, extension=“md”) … return 1 foo()
関数 start_conversation
attributes は、この会話が出力するすべてのスパンに付与されます (例: weave.integration.* のようなインテグレーションのアイデンティティ) 。セマンティック規約に含まれないカスタムキーを使用してください。セマンティック規約のフィールドは、型付きの params (conversation_name、model など) で設定します。スパン自体の gen_ai.* / weave.* 属性と衝突するキーはサポートされていません。どちらの値が優先されるかは、処理経路 (ストリーミングか log_turn か) によって異なります。
function start_llm
provider_name は明示的に渡してください。SDK はモデル識別子からこの値を推測しません。接頭辞に基づいて推測すると、ユーザーのファインチューン (例: text-... という名前のモデル) のプロバイダーを誤って判定したり、将来のモデル名に関する前提をテレメトリに組み込んでしまったりするおそれがあり、後から修正するには大きなコストがかかります。
function start_session
weave.start_conversation の非推奨のエイリアスです。
session_id / session_name は、それぞれ conversation_id / conversation_name に対応します。
関数 start_subagent
start_tool と同様です。親子関係の伝播は OTel コンテキストが処理するため、明示的な委譲は不要です。
function start_tool
function start_turn
get_current_turn() は None を返します。contextvar を利用してモジュールをまたいでアクセスする必要がある場合は、代わりに conversation.start_turn() を使用してください。
function thread
-
thread_id: このコンテキスト内の Call に関連付けるスレッド識別子。指定しない場合は、UUID v7 が自動生成されます。None を指定した場合、スレッドのトラッキングは無効になります。 生成される値: -
ThreadContext: thread_id と現在の turn_id にアクセスするためのオブジェクト。