Description:
Instrument the sampling loop to track each iteration attempt, providing visibility into retry behavior.
Detailed Requirements:
- Add spans for sampling operations:
sampler.sample - Overall sampling operation
sampler.iterate - Single sampling iteration
sampler.repair - Repair attempt
sampler.select - Selection from candidates
- Add attributes:
strategy - Sampling strategy name
iteration - Current iteration number
max_iterations - Maximum allowed iterations
status - success/failure/repair
- Track iteration outcomes:
- Add span events for validation pass/fail
- Record reason for rejection
Files to Modify:
mellea/stdlib/sampling/base.py - Instrument BaseSamplingStrategy
mellea/stdlib/sampling/rejection.py - Instrument RejectionSamplingStrategy
mellea/stdlib/sampling/sofai.py - Instrument SoFAISamplingStrategy
mellea/stdlib/sampling/majority_voting.py - Instrument MajorityVotingStrategy
Span Hierarchy Example:
sampler.sample
├── sampler.iterate (attempt 1)
│ ├── backend.request
│ └── validator.check (FAIL)
├── sampler.iterate (attempt 2)
│ ├── backend.request
│ └── validator.check (PASS)
└── [success]
Acceptance Criteria:
Description:
Instrument the sampling loop to track each iteration attempt, providing visibility into retry behavior.
Detailed Requirements:
sampler.sample- Overall sampling operationsampler.iterate- Single sampling iterationsampler.repair- Repair attemptsampler.select- Selection from candidatesstrategy- Sampling strategy nameiteration- Current iteration numbermax_iterations- Maximum allowed iterationsstatus- success/failure/repairFiles to Modify:
mellea/stdlib/sampling/base.py- Instrument BaseSamplingStrategymellea/stdlib/sampling/rejection.py- Instrument RejectionSamplingStrategymellea/stdlib/sampling/sofai.py- Instrument SoFAISamplingStrategymellea/stdlib/sampling/majority_voting.py- Instrument MajorityVotingStrategySpan Hierarchy Example:
Acceptance Criteria: