Skip to content

v2.41.0 - tier-routing 学習シグナルを role 別・per-gate 記録に再設計

Choose a tag to compare

@satoh-y-0323 satoh-y-0323 released this 02 Jul 21:40

変更

tier-routing の学習シグナルを全面再設計しました。従来の学習記録には「記録される tier が推奨値であり実使用値ではない(帰属ズレ)」「記録がフェーズ E-2 の 1 箇所のみ(1 ワークフロー = 最大 1 記録)」という構造的欠陥があり、tier の優劣を測れていませんでした。

  • 新テーブル(migration 004・自動適用): agent_tier_bandit(role × complexity × tier の Thompson Sampling)/ agent_outcomes(per-gate イベントログ)
  • 新記録 CLI record_agent_outcome.py: tier は agents/{role}.md frontmatter から自己解決(LLM 申告に依存しない)。--execution subagent のみ bandit 更新・persona はイベントログのみ。dedupe(--task 対応)・note の秘密情報マスク+切り詰め対応
  • 記録ポイント: dev-workflow の全承認ゲート(A-4〜E-2)+ parallel-agents のタスク単位(2-D/2-E)。学習機会が 1 WF 最大 1 回 → 5〜15 回に増加。E 差し戻しは指摘の最上流起因(developer/architect/planner)に帰属。レビュワーは recall 測定不能のため学習対象外
  • select_tier.py: 「frontmatter 指定が優先される」という誤り文言を修正(Agent 呼び出し時の model: 明示指定で上書き可能・fork を除く)。推奨は developer セル基準に
  • c3 tier stats: role 別グループ表示・--role フィルタ追加

破壊的変更

  • 旧学習テーブル tier_bandit / tier_recent_outcomes を DROP(学習データはリセットされます。旧データは帰属ズレのため移行しません)
  • record_tier_outcome.py を削除し record_agent_outcome.py に置換(deletions.txt 記載。利用先は c3 update 後に旧ファイルの手動削除を推奨)
  • c3 tier stats --json の出力形状変更(互換キーなし)
  • db.py の旧 tier API を削除または deprecated シム化(シムは次リリースで削除予定)

後方互換

  • 環境変数・LEARNING_THRESHOLD=30・cost-aware tie-break のロジックは不変
  • pip のみ更新済みで .claude/ 未更新の環境でも deprecated シムにより旧 hook はクラッシュしません(uniform 表示に自然フォールバック)

詳細は CHANGELOG.md を参照してください。