`transport.rs` の HTTP 送信〜ステータスチェック区間に指数バックオフ + フルジッターのリトライループを追加する。SSE 読み出し開始後 ( `bytes_stream()` 以降) のエラーは従来どおりそのまま流す。 - `is_retryable(&ClientError)`: 408/425/429/500/502/503/504/529 と reqwest の connect/timeout のみ true - `RetryPolicy` (default: base 500ms / cap 10s / max_attempts 4 / total_timeout 30s) - `Retry-After` ヘッダ (秒数) があればバックオフを上書き - リトライ発火ごとに warn! でステータス・attempt・wait を出す ref: tickets/llm-worker-transient-retry.md |
||
|---|---|---|
| .. | ||
| docs | ||
| examples | ||
| src | ||
| tests | ||
| Cargo.toml | ||
| README.md | ||
llm-worker
LLM との対話を管理する低レベル基盤クレート。会話履歴、ツール実行、イベントストリーミング、ライフサイクルフックを統合した Worker 抽象を提供する。
公開型
コア
Worker<C, S>— LLM 対話の中央管理(ターン実行、ツール呼び出し、キャンセル)WorkerConfig/WorkerResult/WorkerError— 設定・実行結果・エラーItem/ContentPart/Role— 会話履歴の構成要素
モジュール
llm_client— プロバイダ抽象(LlmClientトレイト、Request,RequestConfig, Anthropic/OpenAI/Gemini/Ollama 実装)tool— ツール定義・実行(Toolトレイト、ToolDefinition,ToolOutput, サイズ判定による Inline/Stored 切替)tool_server— ツール登録・ルックアップ(ToolServer,ToolServerHandle)hook— 実行フローへの介入ポイント(Hookトレイト、PreToolCall,PostToolCall,OnTurnEndなど)- クロージャベースイベント購読(
Worker::on_text_block(),on_tool_use_block(),on_usage()等) timeline— イベントストリームのディスパッチ(Handlerトレイト、各ブロックコレクター)。パワーユーザー向けにtimeline_mut()も提供event— ストリーミングイベント型(Event,BlockStart,BlockDeltaなど)state— 型状態パターンによるキャッシュ保護(Mutable/CacheLocked) cratesの整理Add READMEsRE to all crates@@