FullStackDev c92ca4a2b8 feat: async/parallel execution with configurable concurrency
Parallelize LLM calls across minibatches to reduce wall-clock time.
All domain ports (LLMPort, JudgePort, ProposerPort) are now async.
Adapter implementations wrap synchronous DSPy calls with asyncio.to_thread.
Judge calls run in parallel within a batch using asyncio.gather + semaphore.
Evaluator parallelizes minibatch execution with configurable concurrency.
Evolution loop and use case are fully async. Proposer stays sequential.
Added --max-concurrency CLI flag and max_concurrency YAML config field.
Added async_retry_with_backoff for async error handling.
All 139 unit tests pass.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-29 13:15:34 +00:00

Prometheus

Prompt evolution without reference data.

Quick Start

uv sync
uv run prometheus optimize -i examples/sample_config.yaml -o result.yaml -v

Architecture

Clean hexagonal architecture with four layers:

  • Domain — entities, ports, scoring (zero external dependencies)
  • Application — use cases, bootstrap, evaluator, evolution loop
  • Infrastructure — DSPy signatures, modules, adapters, file I/O
  • CLI — Typer app with optimize command

Testing

uv run pytest
uv run ruff check .
uv run mypy src/
Description
No description provided
Readme 351 KiB
Languages
Python 99.9%
Shell 0.1%