Skip to content

[Feature] Consider opt-in canonical frontier dedup for behavioral-frontier #331

Description

@EdwardIrby

Summary

Add an optional canonical deduplication mode to behavioral-frontier for larger explorations, while keeping the current trace-first behavior as the default.

Problem or proposal

behavioral-frontier currently deduplicates by full snapshot trace. That is useful for agent debugging because it preserves exactly how a generated behavioral spec reached a frontier or finding.

For larger generated skill/spec exploration, equivalent runtime frontiers may be reached through multiple event histories. An opt-in canonical dedup mode could reduce exploration size when the agent needs coverage or scale more than complete explanatory traces.

Use case

An agent iteratively generates skills, behavioral specs, and tool-call trigger sequences. During debugging and repair, trace-first output should remain the default because the selected-event history explains the failure. During broad search, the agent may want to collapse equivalent frontiers to keep exploration tractable.

Affected areas/files (if known)

  • src/behavioral-frontier/explore-frontiers.ts
  • src/behavioral-frontier/behavioral-frontier.schemas.ts
  • src/behavioral-frontier/tests/*

Expected behavior

  • Keep current trace-prefix deduplication as the default behavior.
  • Add an explicit option such as dedupe: "trace" | "frontier" or similar.
  • trace preserves current behavior and full replay evidence.
  • frontier canonicalizes equivalent pending/frontier states and avoids exploring duplicate states.
  • Output should remain useful for agent repair, ideally retaining at least one representative trace for each canonical frontier.

Acceptance criteria

  • Existing trace-first behavior remains unchanged by default.
  • New opt-in canonical mode has focused tests showing duplicate frontier collapse.
  • Reports clearly identify the dedupe mode used.
  • Representative traces are still available for findings.

Notes

This is intentionally a maybe-later enhancement. Current trace-based behavior is preferred for agent debugging and iterative spec repair.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions