diff --git a/src/ax/dsp/optimizers/ace.ts b/src/ax/dsp/optimizers/ace.ts index 87c6f756b..d0d2d3941 100644 --- a/src/ax/dsp/optimizers/ace.ts +++ b/src/ax/dsp/optimizers/ace.ts @@ -974,8 +974,20 @@ export class AxACE extends AxBaseOptimizer { severity: (example as { severity?: string })?.severity, policyHint: (example as { policyHint?: string })?.policyHint, }; + const signature = this.program?.getSignature(); + const inputFields = signature?.getInputFields() ?? []; + const questionContext = inputFields.reduce( + (acc, field) => { + if (field.name in example) { + acc[field.name] = example[field.name as keyof typeof example]; + } + return acc; + }, + {} as Record + ); + const reflectionRaw = await reflector.forward(reflectorAI, { - question: JSON.stringify(example), + question: JSON.stringify(questionContext), generator_answer: JSON.stringify(generatorOutput.answer), generator_reasoning: generatorOutput.reasoning, playbook: JSON.stringify({