Skip to main content

What is a Strategy?

Strategy controls how A1 generates and validates code. It has seven components:
  1. RetryStrategy - Parallel candidates and retries
  2. Generate - How code is created
  3. Verify - What validation criteria code must meet
  4. Cost - How code quality is scored
  5. Compact - Code optimization (future)
  6. Executor - Custom execution (future)
  7. Criteria - LLM-based evaluation (QualitativeCriteria, QuantitativeCriteria)

RetryStrategy

Controls parallel candidates and retry iterations for LLM outputs and code generation.
How it works:
  1. Try initial LLM call
  2. If validation fails, launch parallel candidates
  3. Each candidate retries up to max_iterations times
  4. First successful candidate wins
  5. If all fail, return raw string or raise error

Strategy

Extends RetryStrategy for code generation with verification and cost estimation.
Generation pipeline:

Generate

Controls how code is created from task descriptions. Override example:

Verify

Controls what validation criteria code must meet. Built-in verifiers:
Override example:

Cost

Controls how code quality/efficiency is scored for selection. Default cost: Estimates execution cost based on control flow graph (tool calls, loops, branches). Override example:

Compact

Code optimization strategy (future feature).

Executor

Custom execution environments (future feature).

Criteria

LLM-based evaluation for verify and cost functions.

QualitativeCriteria

Boolean (pass/fail) evaluation using natural language.
Parameters:
  • expression (str): Natural language criteria
  • llm (Tool): LLM for evaluation
  • num_samples (int): Number of parallel evaluations (default: 1)
  • min_pass (int): Required “pass” votes (default: 1)
  • min_samples_for_aggregation (int): Minimum successful responses (default: 1)

QuantitativeCriteria

Numeric scoring using natural language.
Parameters:
  • expression (str): Natural language scoring criteria
  • llm (Tool): LLM for scoring
  • min (float): Minimum valid score (default: 0.0)
  • max (float): Maximum valid score (default: 10.0)
  • agg (str): Aggregation method - "avg", "med", "min", "max" (default: “avg”)
  • num_samples (int): Number of parallel scores (default: 1)
  • min_samples_for_aggregation (int): Minimum valid scores needed (default: 1)
Aggregation methods:
  • "avg" - Mean (balanced estimate)
  • "med" - Median (robust to outliers)
  • "min" - Minimum (conservative)
  • "max" - Maximum (optimistic)

Complete Example

Combining all components:

Configuration Levels

Strategy can be set at multiple levels (higher priority overrides lower):