utility について
utilityは、期待される利得から加重コストを差し引いて行動を評価する、エージェント編成用スキルです。情報取得、ツール実行、検証、委任、停止などの選択を支援し、終了条件と記録方法も定めています。
主な機能
- 016種類の編成アクションを評価
- 02コスト、不確実性、重複を考慮
- 03ステップ予算と停止基準を適用
- 04スコアと判断を記録
活用シーン
- 01高コストなツール実行の制御
- 02サブタスクを委任するかの判断
- 03部分的な結果への追加対応の判断
- 04出力を検証する必要性の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ athola/ claude-night-market --skill utilityインストール後、Claude Code で/utilityを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
modules/action-selector.mdgain.mdintegration.mdredundancy.mdstate-builder.mdstep-cost.mduncertainty.md詳細
Utility Skill
概要
Liu et al. の論文「Utility-Guided Agent Orchestration for Efficient LLM Tool Use」 (arXiv:2603.19896)に基づく、エージェントのオーケストレーションのための意思決定フレームワークです。 各候補アクションについて、期待される利得から重み付けされたコストを差し引いてスコアを算出し、アクション選択を導く単一の効用値を求めます。 このフレームワークでは、過剰なツール呼び出しと早すぎる停止の両方にコストを課すことで、これらの誤りを防ぎます。 効用の範囲は [-2.3, 1.0] です。
使用する場面
- 別のエージェントを呼び出すか、ツールをもう一度呼び出すかを決めるとき
- 高コストなツール呼び出し(検索、コード実行、委任)を制御するとき
- サブタスクに適切なモデルのティアを選ぶとき
- 部分的な結果を受け取った後、処理を続けるか判断するとき
- 出力の書き込みやコミット前に検証を行うか判断するとき
使用しない場面
- 明らかなアクションが1つだけの単一ステップの操作
- スコアリングのコストが利点を上回る単純なタスク
- すでにコミットされており、取り消せないアクション
アクション空間
A = {respond, retrieve, tool_call, verify, delegate, stop}
| アクション | 説明 |
|---|---|
| respond | 現在のコンテキストから最終回答を出力する |
| retrieve | 追加情報を取得する(検索、読み取り、参照) |
| tool_call | ツールを実行する(コードランナー、API、ファイル書き込み) |
| verify | 以前の結果の正確性または完全性を確認する |
| delegate | サブエージェントを起動するか、専門家に引き継ぐ |
| stop | ループを終了し、現在の状態を返す |
効用関数
U(a | s_t) = Gain(a | s_t)
- λ₁ · StepCost(a | s_t)
- λ₂ · Uncertainty(a | s_t)
- λ₃ · Redundancy(a | s_t)
| パラメーター | デフォルト値 | 根拠 |
|---|---|---|
| λ₁ | 1.0 | コストの基準値。他のすべての重みはこれを基準とする |
| λ₂ | 0.5 | 結果との経験的な相関が弱い(r=0.0131) |
| λ₃ | 0.8 | 冗長性の排除によりトークンを約10%節約できる |
効用の範囲:[-2.3, 1.0]。 値が正の場合、そのアクションを実行する価値があります。 しきい値(デフォルト:-0.5)を下回る値の場合、そのアクションは スキップする必要があります。
終了条件
以下のいずれかに該当したら、ループを停止します。
- (a) 選択されたアクションが
stop - (b) ステップ予算を使い切った(デフォルト:10ステップ)
- (c)
stop以外のすべてのアクションのスコアがしきい値(デフォルト:-0.5)を下回る
高利得による上書き: いずれかのアクションで Gain >= 0.7 の場合、
条件 (c) を上書きできます。
推論トレースに、上書きしたことと利得の値を記録してください。
クイックスタート
最小限の4ステップの助言パターン:
- 状態を構築する:
modules/state-builder.mdに従って タスクのコンテキストを収集します - 候補をスコアリングする:
modules/action-selector.mdに従って、Aの各アクションを評価します - 効用が最も高いものを優先する:終了条件を考慮したうえで、
最大の
U(a | s_t)を持つアクションを選択します - スコアと判断を記録する:実行前に、採用したアクション、 その効用値、ステップ数を記録します
詳細なリソース
- State Builder:
modules/state-builder.md。タスクのコンテキストからs_tを構築する方法 - Gain:
modules/gain.md。期待される情報利得または進捗の利得を推定する方法 - Step Cost:
modules/step-cost.md。トークン、レイテンシ、金銭的コストの表 - Uncertainty:
modules/uncertainty.md。確信度の推定とキャリブレーション - Redundancy:
modules/redundancy.md。重複するアクションや 効果の小さいアクションを検出する方法 - Action Selector:
modules/action-selector.md。スコアリングの ループと同点時の選択ルール - Integration:
modules/integration.md。既存のオーケストレーションループに 効用スコアリングを組み込む方法
終了条件
- タスクの目標とこれまでのステップを含む状態を構築した
- 選択前に6つのアクションすべてをスコアリングした
- 各ステップの後に終了条件を確認した
- 実行した各ステップのスコアと判断を記録した
- 高利得による上書きを利得の値とともに記録した