Skip to content

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

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

    area:coreCore MemOS logic | MemOS 核心逻辑status:in-progressSomeone or AI is working on it | 人工或 AI 正在处理types:enhancementNew feature or improvement | 新功能或改进

    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