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 |