INNER CODE UNIT · TypeScript
executeRetryUntil
Kong/volcano-agent-sdk · src/patterns.ts:100
export async function executeRetryUntil(
body: (agent: AgentBuilder) => AgentBuilder,
successCondition: (result: StepResult) => boolean,
createSubAgent: () => AgentBuilder,
opts?: { maxAttempts?: number; backoff?: number }
): Promise<StepResult[]> {
const maxAttempts = opts?.maxAttempts || 5;
const backoff = opts?.backoff || 1.5;
const allResults: StepResult[] = [];
for (let attempt = 0; attempt < maxAttempts; attempt++) {
const subAgent = body(createSubAgent());
const attemptResults = await subAgent.run();
allResults.push(...attemptResults);
const lastResult = attemptResults[attemptResults.length - 1];
if (successCondition(lastResult)) {
return allResults;