Browse Source

Merge pull request #75 from nanobrowser/bugfix

add maxValidatorFailures with default value 3 to avoid occasionally i…
Ashu 4 months ago
parent
commit
799086f762

+ 5 - 0
chrome-extension/src/background/agent/executor.ts

@@ -177,6 +177,11 @@ export class Executor {
             break;
           }
           validatorFailed = true;
+          context.consecutiveValidatorFailures++;
+          if (context.consecutiveValidatorFailures >= context.options.maxValidatorFailures) {
+            logger.error(`Stopping due to ${context.options.maxValidatorFailures} consecutive validator failures`);
+            throw new Error('Too many failures of validation');
+          }
         }
       }
 

+ 4 - 0
chrome-extension/src/background/agent/types.ts

@@ -8,6 +8,7 @@ export interface AgentOptions {
   maxSteps: number;
   maxActionsPerStep: number;
   maxFailures: number;
+  maxValidatorFailures: number;
   retryDelay: number;
   maxInputTokens: number;
   maxErrorLength: number;
@@ -22,6 +23,7 @@ export const DEFAULT_AGENT_OPTIONS: AgentOptions = {
   maxSteps: 100,
   maxActionsPerStep: 10,
   maxFailures: 3,
+  maxValidatorFailures: 3,
   retryDelay: 10,
   maxInputTokens: 128000,
   maxErrorLength: 400,
@@ -52,6 +54,7 @@ export class AgentContext {
   paused: boolean;
   stopped: boolean;
   consecutiveFailures: number;
+  consecutiveValidatorFailures: number;
   nSteps: number;
   stepInfo: AgentStepInfo | null;
   actionResults: ActionResult[];
@@ -73,6 +76,7 @@ export class AgentContext {
     this.stopped = false;
     this.nSteps = 0;
     this.consecutiveFailures = 0;
+    this.consecutiveValidatorFailures = 0;
     this.stepInfo = null;
     this.actionResults = [];
     this.stateMessageAdded = false;