Skip to content

feat: auto-promote non-repair candidate skills without trial #1941

@a844810597

Description

@a844810597

Problem

MemOS crystallizes candidate skills from policies, but the agent is expected to call memos_skill_get to trigger skill trials. In practice (especially Hermes adapters) this call never happens. Result: candidate skills with 0 trials, 0 active.

Root cause: the trial loop requires agent participation (memos_skill_get + reward.updated), creating a deadlock when the agent ignores candidate skills.

Solution

Non-repair candidate skills already carry a quality signal — eta encodes the gain/support of source policies. Skip the trial loop and promote directly when eta >= minEtaForRetrieval (default 0.1).

Repair-origin skills still require a trial pass.

Changes (3 files, ~30 lines)

  • core/skill/lifecycle.ts — add shouldPromoteCandidate()
  • core/skill/subscriber.ts — add lifecycleTick()
  • core/pipeline/orchestrator.ts — call lifecycleTick() after skills.flush()

Each flush() (per episode close) scans candidates and promotes eligible ones. No DB schema changes, no config changes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or improvement | 新功能或改进memosCore MemOS logic (memory, MCP, scheduler, API, database) | 核心模块

    Type

    No type
    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