# GEPA v0.3.0 - Table of Contents Elixir implementation of the GEPA (Genetic-Pareto) optimizer that combines LLM-powered reflection with Pareto search to evolve text-based system components. ## Pages - [LICENSE](license.md) - Overview - [Overview](readme-1.md) - [Changelog](changelog.md) - Guides - [Guides](index.md) - [Getting Started](getting_started.md) - [Adapters](adapters.md) - [Core API](core_api.md) - [Optimization Workflow](optimization_workflow.md) - [Candidate Selection](candidate_selection.md) - [Component Selection](component_selection.md) - [Batch Sampling](batch_sampling.md) - [Acceptance Criteria](acceptance_criteria.md) - [Merge](merge.md) - [Stop Conditions](stop_conditions.md) - [Callbacks](callbacks.md) - [Observability](observability.md) - [Cost Tracking](cost_tracking.md) - [Experiment Tracking](experiment_tracking.md) - [LLM and Adapters](llm_and_adapters.md) - [Optimize Anything](optimize_anything.md) - [Confidence Adapter](confidence_adapter.md) - [Generic RAG and Vector Stores](generic_rag.md) - [Examples and Livebooks](examples_and_livebooks.md) - [Upstream API Parity](upstream_api_parity.md) - [FAQ](faq.md) - [Contributing](contributing.md) - Examples - [Examples](readme-2.md) - [Livebooks](readme-3.md) ## Modules - [GEPA.Adapter.Dispatch](GEPA.Adapter.Dispatch.md): Adapter dispatch helpers used by the Elixir GEPA engine. - [GEPA.Adapters.Confidence.Scoring.LinearBlendScoring](GEPA.Adapters.Confidence.Scoring.LinearBlendScoring.md): Compatibility alias for `GEPA.Adapters.Confidence.Scoring.LinearBlend`. - [GEPA.Adapters.Confidence.Scoring.SigmoidScoring](GEPA.Adapters.Confidence.Scoring.SigmoidScoring.md): Compatibility alias for `GEPA.Adapters.Confidence.Scoring.Sigmoid`. - [GEPA.Adapters.Confidence.Scoring.ThresholdScoring](GEPA.Adapters.Confidence.Scoring.ThresholdScoring.md): Compatibility alias for `GEPA.Adapters.Confidence.Scoring.Threshold`. - [GEPA.Adapters.ConfidenceAdapter](GEPA.Adapters.ConfidenceAdapter.md): Compatibility alias for `GEPA.Adapters.Confidence`. - [GEPA.Adapters.GenericRAG.RAGEvaluationMetrics](GEPA.Adapters.GenericRAG.RAGEvaluationMetrics.md): Compatibility facade for `GEPA.Adapters.GenericRAG.Metrics`. - [GEPA.Adapters.GenericRAG.VectorStoreInterface](GEPA.Adapters.GenericRAG.VectorStoreInterface.md): Compatibility facade for `GEPA.Adapters.GenericRAG.VectorStore`. - [GEPA.Adapters.GenericRAGAdapter](GEPA.Adapters.GenericRAGAdapter.md): Compatibility alias for `GEPA.Adapters.GenericRAG`. - [GEPA.Adapters.MCP](GEPA.Adapters.MCP.md): MCP tool-use adapter. - [GEPA.Adapters.MCP.Client](GEPA.Adapters.MCP.Client.md): Minimal MCP client behaviour for GEPA's Elixir adapter layer. - [GEPA.Adapters.MCP.Client.SSE](GEPA.Adapters.MCP.Client.SSE.md): Placeholder SSE MCP transport config. - [GEPA.Adapters.MCP.Client.Static](GEPA.Adapters.MCP.Client.Static.md): In-memory MCP client for tests. Tools are supplied as a map of name to `%{description:, input_schema:, run:}` or as `{name, fun}` pairs. - [GEPA.Adapters.MCP.Client.Stdio](GEPA.Adapters.MCP.Client.Stdio.md): Placeholder stdio MCP transport config. - [GEPA.Adapters.MCP.Client.StreamableHTTP](GEPA.Adapters.MCP.Client.StreamableHTTP.md): Placeholder Streamable HTTP MCP transport config. - [GEPA.Adapters.MCP.DataInst](GEPA.Adapters.MCP.DataInst.md): Task instance for `GEPA.Adapters.MCP`. - [GEPA.Adapters.MCP.Output](GEPA.Adapters.MCP.Output.md): Output emitted by `GEPA.Adapters.MCP`. - [GEPA.Adapters.MCP.Trajectory](GEPA.Adapters.MCP.Trajectory.md): Trace emitted by `GEPA.Adapters.MCP` when `capture_traces` is true. - [GEPA.Adapters.MCPAdapter](GEPA.Adapters.MCPAdapter.md): Compatibility alias for `GEPA.Adapters.MCP`. - [GEPA.Callbacks.Composite](GEPA.Callbacks.Composite.md): Callback container that forwards events to each registered callback. - [GEPA.CandidateProposal.SubsampleEvaluation](GEPA.CandidateProposal.SubsampleEvaluation.md): Rich evaluation data captured for a proposal minibatch. - [GEPA.CodeExecution.Result](GEPA.CodeExecution.Result.md): Structured result returned by `GEPA.CodeExecution.execute_code/2`. - [GEPA.DataLoader.List](GEPA.DataLoader.List.md): In-memory loader using zero-based integer IDs. - [GEPA.EvaluationCache.Entry](GEPA.EvaluationCache.Entry.md): Cached result for one candidate/example pair. - [GEPA.Image](GEPA.Image.md): Image data wrapper for visual side-information in `GEPA.OptimizeAnything`. - [GEPA.LLM.Tracking](GEPA.LLM.Tracking.md): Wraps arbitrary callable LLMs with lightweight token/cost accounting. - [GEPA.LM](GEPA.LM.md): Upstream-compatible LM wrapper for reflection models. - [GEPA.LM.Tracking](GEPA.LM.Tracking.md): Compatibility alias for tracking arbitrary callable LMs. - [GEPA.OptimizeAnything.LogContext.Context](GEPA.OptimizeAnything.LogContext.Context.md): Propagatable optimize-anything evaluator log context. - [GEPA.Seed](GEPA.Seed.md): Helpers for upstream-compatible LLM seed candidate generation. - [GEPA.Strategies.Acceptance](GEPA.Strategies.Acceptance.md): Acceptance criteria for proposed GEPA candidates. - [GEPA.Strategies.Acceptance.ImprovementOrEqual](GEPA.Strategies.Acceptance.ImprovementOrEqual.md): Accept if the new subsample score sum is greater than or equal to the old sum. - [GEPA.Strategies.Acceptance.StrictImprovement](GEPA.Strategies.Acceptance.StrictImprovement.md): Accept only if the new subsample score sum is strictly greater than the old sum. - [GEPA.Tracking.ExperimentTracker](GEPA.Tracking.ExperimentTracker.md): Dependency-free experiment tracker compatible with the upstream tracker API. - [GEPA.Visualization](GEPA.Visualization.md): Candidate-lineage visualization helpers. - Core API - [GEPA](GEPA.md): GEPA: Genetic-Pareto optimizer for text-based system components. - [GEPA.Adapter](GEPA.Adapter.md): Defines the contract for integrating GEPA with external systems. - [GEPA.DataLoader](GEPA.DataLoader.md): Protocol-style data access abstraction. - [GEPA.OptimizeAnything](GEPA.OptimizeAnything.md): Optimize an arbitrary candidate with a user-supplied evaluator. - [GEPA.OptimizeAnything.Config](GEPA.OptimizeAnything.Config.md): Complete configuration for `GEPA.OptimizeAnything.optimize_anything/1`. - [GEPA.OptimizeAnything.EngineConfig](GEPA.OptimizeAnything.EngineConfig.md): Engine options for `GEPA.OptimizeAnything`. - [GEPA.OptimizeAnything.MergeConfig](GEPA.OptimizeAnything.MergeConfig.md): Merge options for `GEPA.OptimizeAnything`. - [GEPA.OptimizeAnything.OptimizationState](GEPA.OptimizeAnything.OptimizationState.md): Historical per-example context injected into optimize-anything evaluators. - [GEPA.OptimizeAnything.RefinerConfig](GEPA.OptimizeAnything.RefinerConfig.md): Candidate-refinement options for `GEPA.OptimizeAnything`. - [GEPA.OptimizeAnything.ReflectionConfig](GEPA.OptimizeAnything.ReflectionConfig.md): Reflection options for `GEPA.OptimizeAnything`. - [GEPA.OptimizeAnything.TrackingConfig](GEPA.OptimizeAnything.TrackingConfig.md): Tracking options for `GEPA.OptimizeAnything`. - [GEPA.Result](GEPA.Result.md): Immutable result container for GEPA optimization. - Optimization Engine - [GEPA.CandidateProposal](GEPA.CandidateProposal.md): A proposed new candidate program with metadata for acceptance testing. - [GEPA.Engine](GEPA.Engine.md): Main optimization engine for GEPA. - [GEPA.EvaluationBatch](GEPA.EvaluationBatch.md): Container for per-example evaluation results returned by an adapter. - [GEPA.EvaluationCache](GEPA.EvaluationCache.md): Cache for validation evaluations keyed by candidate content and example id. - [GEPA.OptimizeAnything.Adapter](GEPA.OptimizeAnything.Adapter.md): Internal adapter that lets `optimize_anything` use the normal GEPA engine. - [GEPA.OptimizeAnything.EvaluatorWrapper](GEPA.OptimizeAnything.EvaluatorWrapper.md): Normalizes user evaluator signatures and return values. - [GEPA.OptimizeAnything.LogContext](GEPA.OptimizeAnything.LogContext.md): Process-local diagnostic log context used by optimize-anything evaluators. - [GEPA.Progress](GEPA.Progress.md): Simple progress display for GEPA optimization. - [GEPA.Proposer](GEPA.Proposer.md): Behavior for candidate proposal strategies. - [GEPA.Proposer.InstructionProposal](GEPA.Proposer.InstructionProposal.md): LLM-based instruction proposal with configurable templates. - [GEPA.Proposer.Merge](GEPA.Proposer.Merge.md): Official-compatible merge proposer. - [GEPA.Proposer.MergeUtils](GEPA.Proposer.MergeUtils.md): Genealogy and triplet-selection helpers for the merge proposer. - [GEPA.Proposer.Reflective](GEPA.Proposer.Reflective.md): Reflective mutation proposer. - [GEPA.State](GEPA.State.md): Persistent state tracking the complete optimization history. - Strategies - [GEPA.Strategies.BatchSampler](GEPA.Strategies.BatchSampler.md): Behaviour for sampling training data into minibatches. - [GEPA.Strategies.BatchSampler.EpochShuffled](GEPA.Strategies.BatchSampler.EpochShuffled.md): Epoch-shuffled sampler matching the Python reference semantics. - [GEPA.Strategies.BatchSampler.Simple](GEPA.Strategies.BatchSampler.Simple.md): Simple deterministic circular sampler. - [GEPA.Strategies.CandidateSelector](GEPA.Strategies.CandidateSelector.md): Behavior for selecting which program candidate to mutate. - [GEPA.Strategies.CandidateSelector.CurrentBest](GEPA.Strategies.CandidateSelector.CurrentBest.md): Greedy selector - always picks the highest-scoring program. - [GEPA.Strategies.CandidateSelector.EpsilonGreedy](GEPA.Strategies.CandidateSelector.EpsilonGreedy.md): Epsilon-greedy candidate selector with optional decay. - [GEPA.Strategies.CandidateSelector.Pareto](GEPA.Strategies.CandidateSelector.Pareto.md): Selects candidates from Pareto front using frequency-weighted sampling. - [GEPA.Strategies.CandidateSelector.TopKPareto](GEPA.Strategies.CandidateSelector.TopKPareto.md): Selects randomly from the top-k scoring candidates on the Pareto frontier. - [GEPA.Strategies.ComponentSelector](GEPA.Strategies.ComponentSelector.md): Behaviour for selecting which named candidate components should be updated. - [GEPA.Strategies.ComponentSelector.All](GEPA.Strategies.ComponentSelector.All.md): Update all candidate components together. - [GEPA.Strategies.ComponentSelector.RoundRobin](GEPA.Strategies.ComponentSelector.RoundRobin.md): Official-style round-robin component selector. - [GEPA.Strategies.EvaluationPolicy](GEPA.Strategies.EvaluationPolicy.md): Behavior for validation evaluation policies. - [GEPA.Strategies.EvaluationPolicy.Full](GEPA.Strategies.EvaluationPolicy.Full.md): Always evaluates all validation examples. - [GEPA.Strategies.EvaluationPolicy.Incremental](GEPA.Strategies.EvaluationPolicy.Incremental.md): Incremental evaluation policy - progressively evaluates validation set. - Control and Observability - [GEPA.Callbacks](GEPA.Callbacks.md): Synchronous observational callbacks for GEPA optimization runs. - [GEPA.StopCondition](GEPA.StopCondition.md): Behavior for stop conditions that control when optimization terminates. - [GEPA.StopCondition.Composite](GEPA.StopCondition.Composite.md): Combines multiple stop conditions with AND/OR logic. - [GEPA.StopCondition.FileStopper](GEPA.StopCondition.FileStopper.md): Stops optimization when a configured file exists. - [GEPA.StopCondition.MaxCalls](GEPA.StopCondition.MaxCalls.md): Stops after a maximum number of metric evaluations. - [GEPA.StopCondition.MaxCandidateProposals](GEPA.StopCondition.MaxCandidateProposals.md): Stops after a maximum number of proposal iterations. - [GEPA.StopCondition.MaxReflectionCost](GEPA.StopCondition.MaxReflectionCost.md): Stops when a reflection LLM's reported cumulative cost reaches a budget. - [GEPA.StopCondition.MaxTrackedCandidates](GEPA.StopCondition.MaxTrackedCandidates.md): Stops after a maximum number of tracked candidate programs. - [GEPA.StopCondition.NoImprovement](GEPA.StopCondition.NoImprovement.md): Stops when no improvement observed for patience iterations. - [GEPA.StopCondition.ScoreThreshold](GEPA.StopCondition.ScoreThreshold.md): Stops once the best aggregate validation score reaches a threshold. - [GEPA.StopCondition.SignalStopper](GEPA.StopCondition.SignalStopper.md): BEAM-friendly signal/interrupt stopper. - [GEPA.StopCondition.Timeout](GEPA.StopCondition.Timeout.md): Time-based stop condition. - [GEPA.Telemetry](GEPA.Telemetry.md): Telemetry helpers for GEPA. - [GEPA.Tracking](GEPA.Tracking.md): Experiment tracking behavior and built-in trackers. - [GEPA.Tracking.InMemory](GEPA.Tracking.InMemory.md): In-memory tracker backed by an Agent. - [GEPA.Tracking.MLflow](GEPA.Tracking.MLflow.md): MLflow tracker placeholder behind `GEPA.Tracking`. - [GEPA.Tracking.NoOp](GEPA.Tracking.NoOp.md): Tracker that discards all metrics. - [GEPA.Tracking.WandB](GEPA.Tracking.WandB.md): W&B tracker placeholder behind `GEPA.Tracking`. - LLM & Adapters - [GEPA.Adapters.Basic](GEPA.Adapters.Basic.md): Basic adapter for simple Q&A tasks. - [GEPA.Adapters.Confidence](GEPA.Adapters.Confidence.md): Logprob-aware classification adapter. - [GEPA.Adapters.Confidence.Scoring](GEPA.Adapters.Confidence.Scoring.md): Confidence-aware scoring strategies for `GEPA.Adapters.Confidence`. - [GEPA.Adapters.Confidence.Scoring.LinearBlend](GEPA.Adapters.Confidence.Scoring.LinearBlend.md): Scores correct answers as 1.0 above a probability threshold, otherwise blends linearly from `min_score_on_correct` to 1.0. Incorrect answers always score 0. - [GEPA.Adapters.Confidence.Scoring.Sigmoid](GEPA.Adapters.Confidence.Scoring.Sigmoid.md): Scores a correct answer with a sigmoid over confidence probability: `1 / (1 + exp(-steepness * (probability - midpoint)))`. - [GEPA.Adapters.Confidence.Scoring.Threshold](GEPA.Adapters.Confidence.Scoring.Threshold.md): Scores a correct answer as 1.0 only when confidence probability is greater than or equal to `threshold`; otherwise 0.0. - [GEPA.Adapters.Default](GEPA.Adapters.Default.md): Official-style default adapter for simple text-in/text-out tasks. - [GEPA.Adapters.GenericRAG](GEPA.Adapters.GenericRAG.md): Vector-store-agnostic RAG adapter. - [GEPA.Adapters.GenericRAG.DataInst](GEPA.Adapters.GenericRAG.DataInst.md): Task instance for the Generic RAG adapter. - [GEPA.Adapters.GenericRAG.Metrics](GEPA.Adapters.GenericRAG.Metrics.md): Deterministic retrieval and generation metrics for the Generic RAG adapter. - [GEPA.Adapters.GenericRAG.Pipeline](GEPA.Adapters.GenericRAG.Pipeline.md): A small, adapter-local RAG pipeline used by `GEPA.Adapters.GenericRAG`. - [GEPA.Adapters.GenericRAG.VectorStore](GEPA.Adapters.GenericRAG.VectorStore.md): Behaviour for vector-store backends used by `GEPA.Adapters.GenericRAG`. - [GEPA.Adapters.GenericRAG.VectorStore.InMemory](GEPA.Adapters.GenericRAG.VectorStore.InMemory.md): Deterministic in-memory vector-store implementation for tests, examples, and local development. Similarity is simple token overlap. - [GEPA.Adapters.GenericRAG.VectorStores.Chroma](GEPA.Adapters.GenericRAG.VectorStores.Chroma.md): Chroma vector-store placeholder behind the Generic RAG behaviour. - [GEPA.Adapters.GenericRAG.VectorStores.LanceDB](GEPA.Adapters.GenericRAG.VectorStores.LanceDB.md): LanceDB vector-store placeholder behind the Generic RAG behaviour. - [GEPA.Adapters.GenericRAG.VectorStores.Milvus](GEPA.Adapters.GenericRAG.VectorStores.Milvus.md): Milvus vector-store placeholder behind the Generic RAG behaviour. - [GEPA.Adapters.GenericRAG.VectorStores.Pgvector](GEPA.Adapters.GenericRAG.VectorStores.Pgvector.md): Pgvector adapter placeholder behind the Generic RAG vector-store behaviour. - [GEPA.Adapters.GenericRAG.VectorStores.Qdrant](GEPA.Adapters.GenericRAG.VectorStores.Qdrant.md): Qdrant HTTP vector-store adapter for Generic RAG. - [GEPA.Adapters.GenericRAG.VectorStores.Weaviate](GEPA.Adapters.GenericRAG.VectorStores.Weaviate.md): Weaviate vector-store placeholder behind the Generic RAG behaviour. - [GEPA.Embeddings](GEPA.Embeddings.md): Behaviour and facade for embedding providers. - [GEPA.Embeddings.ReqLLM](GEPA.Embeddings.ReqLLM.md): ReqLLM-backed embedding provider. - [GEPA.LLM](GEPA.LLM.md): Behavior and facade for Language Model integrations. - [GEPA.LLM.Adapters.AgentSessionManager](GEPA.LLM.Adapters.AgentSessionManager.md): GEPA LLM adapter backed by Agent Session Manager. - [GEPA.LLM.Adapters.ReqLLM](GEPA.LLM.Adapters.ReqLLM.md): GEPA LLM adapter backed by ReqLLM. - [GEPA.LLM.Capabilities](GEPA.LLM.Capabilities.md): Capability helpers for GEPA LLM adapters. - [GEPA.LLM.Client](GEPA.LLM.Client.md): Normalized LLM client used by the GEPA LLM facade. - [GEPA.LLM.Mock](GEPA.LLM.Mock.md): Mock LLM implementation for testing. - [GEPA.LLM.ReqLLM](GEPA.LLM.ReqLLM.md): Backward-compatible ReqLLM implementation. - [GEPA.LLM.Request](GEPA.LLM.Request.md): Normalized request passed from GEPA to LLM adapters. - [GEPA.LLM.Response](GEPA.LLM.Response.md): Normalized LLM adapter response. - [GEPA.LLM.Tool](GEPA.LLM.Tool.md): GEPA-facing portable tool specification. - Utilities - [GEPA.CodeExecution](GEPA.CodeExecution.md): Utilities for evaluating Elixir code snippets with captured outputs. - [GEPA.Types](GEPA.Types.md): Shared type specifications for GEPA. - [GEPA.Utils](GEPA.Utils.md): Compatibility facade for GEPA utility functions. - [GEPA.Utils.Pareto](GEPA.Utils.Pareto.md): Pareto-front utilities used for candidate selection and merge parent choice.