Skip to content

Resolution Strategies

resolve

Resolution strategies for competitive and adversarial edges.

Resolution strategies determine how conflicting outputs are reconciled when multiple agents produce competing results. They are used primarily with Competition and Coopetition edge types.

Example::

from claw import Agent, Competition
from claw.resolve import JudgePicks

judge = Agent("judge", role="evaluator", model="claude-sonnet")
Competition(
    resolve=JudgePicks(
        judge=judge,
        criteria=["correctness", "readability"],
    ),
)

ResolveStrategy

Bases: Protocol

Protocol for resolution strategies.

A resolve strategy determines how competing outputs from multiple agents are reconciled into a single result.

JudgePicks

Bases: BaseModel

A judge agent evaluates all submissions and picks a winner.

The judge receives all competing submissions as a batch and selects the best one based on the specified criteria.

Parameters:

Name Type Description Default
judge

The agent that evaluates submissions.

required
criteria

List of evaluation criteria (e.g. ["correctness", "performance"]).

required
output_schema

JSON Schema for the judge's structured output.

required
on_neither

Policy when no submission meets criteria ("escalate", "retry", "best_effort").

required

MajorityVote

Bases: BaseModel

Multiple voter agents each cast a vote; majority wins.

Parameters:

Name Type Description Default
voters

List of agents that participate in voting.

required

Escalate

Bases: BaseModel

Escalate to a designated agent for resolution.

Used as a fallback when automated resolution fails (deadlock, all submissions rejected, etc.).

Parameters:

Name Type Description Default
to

Name of the agent to escalate to.

required
summary

Whether to include a summary of the situation.

required