About utility
utility is an agent-orchestration skill that scores candidate actions by expected gain minus weighted costs. It is for deciding whether to respond, retrieve information, call tools, verify, delegate, or stop, with explicit termination and logging rules.
Key features
- 01Score six orchestration actions
- 02Account for cost, uncertainty, and redundancy
- 03Apply step budgets and stopping thresholds
- 04Record scores and decisions
Use cases
- 01Gate expensive tool calls
- 02Choose whether to delegate a subtask
- 03Decide whether partial results need follow-up
- 04Check whether output should be verified
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ athola/ claude-night-market --skill utilityAfter installing, type/utilityin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
modules/action-selector.mdgain.mdintegration.mdredundancy.mdstate-builder.mdstep-cost.mduncertainty.mdDetails
From the project READMEUtility Skill
Overview
A decision framework for agent orchestration based on Liu et al., "Utility-Guided Agent Orchestration for Efficient LLM Tool Use" (arXiv:2603.19896). Each candidate action is scored by subtracting weighted costs from expected gain, producing a single utility value that guides action selection. The framework prevents over-calling tools and premature stopping by making both errors costly. Utility range is [-2.3, 1.0].
When To Use
- Deciding whether to dispatch another agent or tool call
- Gating expensive tool calls (search, code execution, delegation)
- Selecting the right model tier for a sub-task
- Continuation decisions after receiving partial results
- Verification gating before writing or committing output
When NOT to Use
- Single-step operations with one obvious action
- Trivial tasks where cost of scoring exceeds benefit
- Already-committed actions that cannot be undone
Action Space
A = {respond, retrieve, tool_call, verify, delegate, stop}
| Action | Description |
|---|---|
| respond | Emit a final answer from current context |
| retrieve | Fetch additional information (search, read, lookup) |
| tool_call | Execute a tool (code runner, API, file write) |
| verify | Check a prior result for correctness or completeness |
| delegate | Spawn a sub-agent or hand off to a specialist |
| stop | Terminate the loop and return current state |
Utility Function
U(a | s_t) = Gain(a | s_t)
- λ₁ · StepCost(a | s_t)
- λ₂ · Uncertainty(a | s_t)
- λ₃ · Redundancy(a | s_t)
| Parameter | Default | Rationale |
|---|---|---|
| λ₁ | 1.0 | Cost baseline; all other weights relative to this |
| λ₂ | 0.5 | Weak empirical correlation with outcome (r=0.0131) |
| λ₃ | 0.8 | Redundancy pruning yields ~10% token savings |
Utility range: [-2.3, 1.0]. Positive values indicate the action is worth taking. Values below the floor (-0.5 default) indicate the action should be skipped.
Termination Conditions
Stop the loop when any of the following is true:
- (a) Selected action is
stop - (b) Step budget exhausted (default: 10 steps)
- (c) All non-
stopactions score below the floor (default: -0.5)
High-gain override: If Gain >= 0.7 for any action, condition
(c) may be overridden.
Document the override and the gain value in your reasoning trace.
Quick Start
Minimal 4-step advisory pattern:
- Construct state: gather task context per
modules/state-builder.md - Score candidates: evaluate each action in
Apermodules/action-selector.md - Prefer highest utility: select the action with the
maximum
U(a | s_t), subject to termination conditions - Log score and decision: record the winning action, its utility value, and step count before executing
Detailed Resources
- State Builder:
modules/state-builder.md, how to populates_tfrom task context - Gain:
modules/gain.md, estimating expected information or progress gain - Step Cost:
modules/step-cost.md, token, latency, and monetary cost tables - Uncertainty:
modules/uncertainty.md, confidence estimation and calibration - Redundancy:
modules/redundancy.md, detecting duplicate or low-delta actions - Action Selector:
modules/action-selector.md, scoring loop and tie-breaking rules - Integration:
modules/integration.md, wiring utility scoring into existing orchestration loops
Exit Criteria
- State constructed with task goal and prior steps
- All six actions scored before selecting one
- Termination condition checked after each step
- Score and decision logged for each step taken
- High-gain overrides documented with gain value