Skip to the content.
04 LLM Adapter 進捗レビュー(2025-10-04)
概要
projects/04-llm-adapter 本体で Provider SPI・Runner・メトリクス・週次サマリまで一貫実装され、直列/並列の実行制御と影計測を含む SRS 要件を満たしている。【F:projects/04-llm-adapter/adapter/core/provider_spi.py†L8-L101】【F:projects/04-llm-adapter/adapter/core/runner_execution.py†L68-L230】【F:projects/04-llm-adapter/adapter/core/metrics/models.py†L33-L102】【F:justfile†L51-L71】【F:projects/04-llm-adapter/tools/report/metrics/weekly_summary.py†L1-L40】
- Simulated/OpenAI/Gemini/Ollama/OpenRouter の主要プロバイダが本体リポジトリに統合され、Shadow ブランチへ依存せず回帰テストで検証されている。【F:projects/04-llm-adapter/adapter/core/providers/init.py†L132-L184】【F:projects/04-llm-adapter/adapter/core/providers/openrouter.py†L120-L221】【F:projects/04-llm-adapter/tests/providers/openrouter/test_base_url.py†L19-L62】【F:projects/04-llm-adapter/tests/providers/openrouter/test_errors.py†L20-L88】
検証詳細
M1 — Core SPI & Runner
ProviderRequest が model 必須・メッセージ正規化・停止語の整形を行い、ProviderResponse と SPI プロトコルで戻り値/トークン利用を統一している。【F:projects/04-llm-adapter/adapter/core/provider_spi.py†L8-L101】
RunnerExecution はトークンバケット・RateLimit/Retryable 例外判定・影セッション管理を備え、直列フォールバックを再試行付きで処理する。再試行の挙動とフォールバック結果は専用テストで検証済み。【F:projects/04-llm-adapter/adapter/core/runner_execution.py†L68-L230】【F:projects/04-llm-adapter/tests/runner_retry/test_rate_limit_failover.py†L79-L153】
M2 — Shadow & Metrics
RunMetrics は影プロバイダ識別子やトークン使用量、JSONL 互換のフィールドを保持し、影セッション結果を格納できる構造になっている。【F:projects/04-llm-adapter/adapter/core/metrics/models.py†L33-L102】
RunnerExecution の finalize_run_metrics 呼び出しでアクティブプロバイダ一覧・影計測・再試行数が更新され、テストで影結果を含むメトリクスの整合性が確認されている。【F:projects/04-llm-adapter/adapter/core/runner_execution.py†L216-L230】【F:projects/04-llm-adapter/tests/runner_retry/test_shadow_metrics.py†L78-L129】
M3 — Providers
ProviderFactory には Simulated/OpenAI/Gemini/Ollama/OpenRouter が登録され、ProviderConfig から動的に生成できる。【F:projects/04-llm-adapter/adapter/core/providers/init.py†L132-L184】
- OpenRouter プロバイダは API キー/ベース URL 設定、ストリーミング制御、HTTP 例外の正規化と
ProviderResponse 生成を実装し、成功・429・5xx・API キー欠如の挙動がテストで網羅されている。【F:projects/04-llm-adapter/adapter/core/providers/openrouter.py†L120-L221】【F:projects/04-llm-adapter/tests/providers/openrouter/test_base_url.py†L19-L214】【F:projects/04-llm-adapter/tests/providers/openrouter/test_streaming.py†L19-L62】【F:projects/04-llm-adapter/tests/providers/openrouter/test_errors.py†L20-L157】【F:projects/04-llm-adapter/tests/providers/openrouter/test_auth.py†L204-L371】
M4 — Parallel & Consensus
- CompareRunner の合議モードは多数決勝者決定と Judge フォールバックを備え、勝者メトリクスに戦略メタ情報を残すことを回帰テストで確認している。【F:projects/04-llm-adapter/tests/compare_runner_parallel/test_consensus.py†L157-L227】
- クォーラム不足時の失敗マーキングと Judge フォールバックの復帰判定、票割れケースの挙動も専用テストで検証済み。【F:projects/04-llm-adapter/tests/compare_runner_parallel/test_consensus_quorum.py†L40-L148】
M5 — Telemetry & QA Integration
just weekly-summary は JSONL メトリクスを読み込み、週次サマリ Markdown を生成するスクリプトをラップしており、CI/ローカルで同じ整形手順を共有できる。【F:justfile†L51-L71】【F:projects/04-llm-adapter/tools/report/metrics/weekly_summary.py†L1-L40】
- 週次サマリ用のレンダラは失敗サマリのテーブル作成と既存エントリの追記を自動化し、テレメトリ集計の Evidence を保守できる。【F:projects/04-llm-adapter/tools/report/metrics/weekly_summary.py†L8-L37】
M6 — CLI/Docs/Release 0.1.0
pyproject.toml でパッケージ版数を 0.1.0 に更新済みで、OpenRouter を含む CLI 手順が README にまとまっている。【F:projects/04-llm-adapter/pyproject.toml†L1-L24】【F:projects/04-llm-adapter/README.md†L172-L194】
CHANGELOG.md には v0.1.0 リリースノートが記載されており、次のステップはタグ発行と Evidence 付与のみとなっている。【F:CHANGELOG.md†L16-L21】
アクションアイテム
pyproject.toml と CHANGELOG.md をベースに v0.1.0 Git タグと Evidence(週次サマリ更新ログ等)を公開する。【F:projects/04-llm-adapter/pyproject.toml†L1-L24】【F:CHANGELOG.md†L16-L21】
- OpenRouter プロバイダで取得したレート制限/サーバーエラー情報を集計し、並列実行時のバックオフ調整を検討する。【F:projects/04-llm-adapter/adapter/core/providers/openrouter.py†L120-L221】【F:projects/04-llm-adapter/tests/providers/openrouter/test_errors.py†L20-L88】
- 合議モードの Judge フォールバック実行ログを週次サマリに取り込み、意思決定の証跡を明文化する。【F:projects/04-llm-adapter/tests/compare_runner_parallel/test_consensus.py†L157-L224】【F:justfile†L51-L71】