openclaw - 💡(How to fix) Fix Feature Request: Runtime Skill Discovery for Better Agent-Skill Matching [1 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#61740Fetched 2026-04-08 02:55:09
View on GitHub
Comments
0
Participants
1
Timeline
0
Reactions
0
Participants

Fix Action

Fix / Workaround

Short-term Mitigation (Already Applied)

As a temporary workaround, we've enhanced skill descriptions with trigger keywords:

Code Example

User: "Check this tweet: https://x.com/..."
Agent: Attempts web_fetch → fails (Twitter requires login)
User: "Search for a skill that handles this"
Agent: Manually searches → finds fxtwitter → retries

---

skill_search(query: "fetch tweet content")
Returns matching skills with:
    - name
    - description  
    - capabilities/tags
    - confidence score

---

---
name: "fxtwitter"
description: "..."
tags:
  - content-fetch
  - social-media
  - twitter
  - no-auth
capabilities:
  - task: "fetch tweet content"
    contexts: ["user shared Twitter/X link", "user wants tweet data"]
  - task: "get user profile"
    contexts: ["user asks about Twitter user"]
---

---

Base tier (all agents)
  - web_search, web_fetch, exec, read/write...

Domain tier (per agent identity)
  - local-manager: himalaya, cli-anything-*
  - financial-agent: tushare, feishu_bitable
  - research-agent: clibrowser, fxtwitter

Custom tier (AGENTS.md configured)
  - specific workflows, preferences

---

description: "Fetch Twitter/X tweet content. Triggers: twitter.com, x.com, 推文, tweet, 获取推文"
RAW_BUFFERClick to expand / collapse

Proposal: Runtime Skill Discovery for OpenClaw

Date: 2026-04-06 From: OpenClaw User (local-manager agent workspace) To: OpenClaw Team


Problem Statement

OpenClaw's current skill system is static at session startup:

  1. Skills are loaded once when a session starts
  2. Agent sees only <available_skills> XML with name, description, location
  3. No runtime search/discovery capability exists
  4. If a skill exists but agent doesn't know to use it, user must explicitly ask

Real-world example:

User: "Check this tweet: https://x.com/..."
Agent: Attempts web_fetch → fails (Twitter requires login)
User: "Search for a skill that handles this"
Agent: Manually searches → finds fxtwitter → retries

The friction is clear: skills exist but aren't automatically matched to user intent.


Current Architecture

LayerStatus
Skill storage✅ ClawHub + local skills
Skill loading✅ Static at session start
Skill visibility⚠️ Only name/description/location in <available_skills>
Runtime discovery❌ Not available
Intent matching⚠️ Depends on description text matching quality

Proposed Solution

1. Runtime Skill Search Tool

Add a skill_search tool, similar to memory_recall:

skill_search(query: "fetch tweet content")
  → Returns matching skills with:
    - name
    - description  
    - capabilities/tags
    - confidence score

This enables intent → skill semantic routing instead of hardcoded triggers.

2. Extended Skill Metadata

Expand SKILL.md frontmatter to include structured capabilities:

---
name: "fxtwitter"
description: "..."
tags:
  - content-fetch
  - social-media
  - twitter
  - no-auth
capabilities:
  - task: "fetch tweet content"
    contexts: ["user shared Twitter/X link", "user wants tweet data"]
  - task: "get user profile"
    contexts: ["user asks about Twitter user"]
---

3. Tiered Skill Architecture

To avoid homogenization across agents, skills could be organized by tier:

Base tier (all agents)
  - web_search, web_fetch, exec, read/write...

Domain tier (per agent identity)
  - local-manager: himalaya, cli-anything-*
  - financial-agent: tushare, feishu_bitable
  - research-agent: clibrowser, fxtwitter

Custom tier (AGENTS.md configured)
  - specific workflows, preferences

Each agent only loads skills relevant to its tier, reducing startup overhead while enabling cross-tier discovery when needed.


Benefits

CurrentProposed
User must know skill existsAgent discovers skills automatically
Static skill list at startupDynamic search when needed
Description-based matchingSemantic capability matching
Same skills for all agentsTiered, specialized skill sets
Manual skill invocationIntent-driven skill routing

Implementation Notes

  1. Skill registry service/file - centralized index of all available skills with metadata
  2. Hybrid search - vector similarity (embeddings) + keyword matching
  3. Lazy loading - SKILL.md loaded only when skill is selected, not at startup
  4. Backward compatible - existing skills work unchanged, new metadata is optional

Short-term Mitigation (Already Applied)

As a temporary workaround, we've enhanced skill descriptions with trigger keywords:

description: "Fetch Twitter/X tweet content. Triggers: twitter.com, x.com, 推文, tweet, 获取推文"

This improves static matching but doesn't solve the fundamental discovery problem.


Questions for Discussion

  1. Is runtime skill discovery aligned with OpenClaw's architecture vision?
  2. Would a skill_search tool be feasible within the current tool framework?
  3. Are there existing plans for semantic skill matching we should align with?
  4. How should tiered skill loading interact with ClawHub and local skills?

Contact

This proposal emerged from a user discussion about skill auto-discovery. The user doesn't have direct contact with the OpenClaw team, so this document is prepared for submission via whatever communication channel is appropriate (GitHub issue, Discord, email, etc.).


References:

extent analysis

TL;DR

Implement a runtime skill discovery mechanism, such as a skill_search tool, to enable automatic matching of skills to user intent.

Guidance

  • Introduce a skill registry service/file to centralize skill metadata, enabling efficient search and discovery.
  • Develop a hybrid search algorithm combining vector similarity and keyword matching to improve skill matching accuracy.
  • Implement lazy loading for SKILL.md files to reduce startup overhead and enhance performance.
  • Consider adopting a tiered skill architecture to organize skills by relevance and reduce unnecessary loading.

Example

---
name: "fxtwitter"
description: "Fetch Twitter/X tweet content"
tags:
  - content-fetch
  - social-media
  - twitter
  - no-auth
capabilities:
  - task: "fetch tweet content"
    contexts: ["user shared Twitter/X link", "user wants tweet data"]
---

Notes

The proposed solution requires careful consideration of the existing architecture and potential interactions with ClawHub and local skills. The implementation should prioritize backward compatibility to ensure seamless integration with existing skills.

Recommendation

Apply the proposed runtime skill discovery mechanism, including the skill_search tool and tiered skill architecture, to enhance the overall user experience and skill utilization efficiency. This approach aligns with the goal of enabling automatic skill matching and discovery, addressing the current limitations of the static skill system.

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

openclaw - 💡(How to fix) Fix Feature Request: Runtime Skill Discovery for Better Agent-Skill Matching [1 participants]