Skip to content

Clarification on how the Skill Deduplication feature runs #135

Description

@webberzxy

I am currently trying out the ACE framework and exploring the built-in skill deduplication feature. According to the v0.60 release notes, the deduplication feature is introduced with capabilities to modify the skillbook (such as merging or deleting redundant skills).

However, during my testing, I noticed that the deduplication process only generates a similarity report in the logs but does not execute any actual mutations on the skillbook. I looked into the codebase to see if I missed any configuration, but it seems the functions designed to apply these changes are never invoked.

I would appreciate it if you could help clarify if I am misunderstanding the intended workflow, or if there is an option I missed to enable the actual execution.

Here is what I observed from the code:

  1. The Similarity Report asks for a specific JSON format:
    In generate_similarity_report(), the text explicitly guides the model to return a consolidation_operations JSON block containing MERGE, DELETE, KEEP, or UPDATE actions. However, in DeduplicateStep, this report is only printed via logger.info() and does not seem to be passed down to the SkillManager prompt during the run.

  2. The modification functions exist but seem uncalled:
    I did find the exact functions designed to parse and apply these operations, such as parse_consolidation_operations() and apply_operations_from_response(). However, searching through the codebase, I couldn't find any place where these methods are actually invoked to modify the Skillbook.

My Question:
Is the current deduplication feature designed strictly as a diagnostic tool for human inspection via logs, or is there a specific way to wire these consolidation functions into the SkillManager loop so that the agent can execute the clean-up automatically?

Thank you for your guidance!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions