openclaw - 💡(How to fix) Fix Feature request: per-agent skill pinning (agents.list[].skills.always) [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#56829Fetched 2026-04-08 01:47:18
View on GitHub
Comments
1
Participants
2
Timeline
1
Reactions
0
Author
Participants
Timeline (top)
commented ×1

Fix Action

Fix / Workaround

Current Workaround

Code Example

{
  "agents": {
    "list": [
      {
        "id": "kiss",
        "skills": {
          "always": ["kiss-isa"]
        }
      }
    ]
  }
}
RAW_BUFFERClick to expand / collapse

Feature Request

Per-agent skill pinning — allow agents.list[].skills.always (array of skill names) so spawned sub-agents automatically load specified skills without relying on description-keyword matching.

Use Case

Specialized agents like a processor architecture assistant that always needs its domain skill loaded regardless of how the task is worded.

Currently, the only way to trigger skill loading is via keyword matching in the skill's description field against the task text. This means the caller must remember to include magic words in every spawn, and subtle task phrasing can cause the skill to not load — silently degrading the agent's effectiveness.

Proposed Config

{
  "agents": {
    "list": [
      {
        "id": "kiss",
        "skills": {
          "always": ["kiss-isa"]
        }
      }
    ]
  }
}

Expected Behavior

When a session is started for agent kiss, the kiss-isa skill is loaded unconditionally — before description matching runs. Other skills can still load via the normal matching path.

Current Workaround

Include trigger keywords (e.g. the skill name or key terms from its description) in the task text when spawning the agent. This is fragile and unintuitive.

extent analysis

Fix Plan

To implement per-agent skill pinning, we need to modify the agent spawning logic to load specified skills unconditionally. Here are the steps:

  • Update the agent configuration parser to handle the new always field in the skills object.
  • Modify the skill loading mechanism to check for the always field and load the specified skills before performing description matching.

Example Code

# Updated agent configuration parser
def parse_agent_config(config):
    agents = config.get('agents', {}).get('list', [])
    for agent in agents:
        skills = agent.get('skills', {})
        always_load = skills.get('always', [])
        # Store the always_load skills for later use
        agent['always_load_skills'] = always_load
    return agents

# Modified skill loading mechanism
def load_skills(agent, task_text):
    always_load_skills = agent.get('always_load_skills', [])
    for skill in always_load_skills:
        # Load the skill unconditionally
        load_skill(skill)
    # Perform description matching as before
    load_skills_via_description_matching(agent, task_text)

Verification

To verify that the fix worked, you can test the following scenarios:

  • Spawn an agent with the always field specified in its configuration and verify that the specified skills are loaded.
  • Spawn an agent without the always field and verify that skills are loaded only via description matching.
  • Test with different task texts and verify that the always field takes precedence over description matching.

Extra Tips

  • Make sure to update the documentation to reflect the new always field in the agent configuration.
  • Consider adding validation to ensure that the always field only contains valid skill names.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING