openclaw - 💡(How to fix) Fix Bug: Description-based skill matching silently fails on semantically valid queries

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…

OpenClaw's current skill discovery relies on LLM semantic matching against description frontmatter. In practice, this fails reliably even when user intent clearly aligns with a skill's purpose.

Root Cause

The matching mechanism is soft/suggestive, not deterministic:

  1. Skill descriptions are injected into system prompt as <available_skills> XML
  2. LLM decides whether to read the SKILL.md based on its own interpretation
  3. LLM can decide "I already know how to handle this" → skips skill entirely (see #52473)
  4. No hard keyword/trigger matching exists as fallback
RAW_BUFFERClick to expand / collapse

Bug Report: Description-based skill matching silently fails on semantically valid user queries

Description

OpenClaw's current skill discovery relies on LLM semantic matching against description frontmatter. In practice, this fails reliably even when user intent clearly aligns with a skill's purpose.

Reproduction

Skill: aihot (AI HOT daily briefing) Skill description: "AI 热点 / AI 日报 / AI 资讯查询...当用户询问中文 AI 圈动态、OpenAI/Google/Anthropic 新发布..."

User query: "今天AI领域有没有什么新闻消息?" Expected: Skill auto-loads → queries aihot.virxact.com API → returns fresh briefing. Actual: Skill did NOT auto-load. Agent fell back to generic web search (tavily_search) instead.

Same skill was manually confirmed working when agent explicitly read SKILL.md and followed curl-based workflow.

Root cause analysis

The matching mechanism is soft/suggestive, not deterministic:

  1. Skill descriptions are injected into system prompt as <available_skills> XML
  2. LLM decides whether to read the SKILL.md based on its own interpretation
  3. LLM can decide "I already know how to handle this" → skips skill entirely (see #52473)
  4. No hard keyword/trigger matching exists as fallback

Impact

  • Users cannot rely on skills being discovered by natural language
  • Skill authors resort to bloated descriptions listing every possible user phrasing (see aihot SKILL.md before refactor)
  • Agent silently uses less-optimal tools (generic search vs specialized API)

Related

  • #23676 (Feature Request: Auto-invoke skills based on intent matching) — was closed as not planned/stale. This bug report provides real-world evidence that the current soft-matching approach is insufficient.
  • #52473 (Auto-inject SKILL.md when skill is invoked via slash command) — describes the same "LLM decides it knows better" failure mode.

Environment

  • OpenClaw version: latest (2026-05-19)
  • Model: kimi/kimi-for-coding
  • Skill: aihot v0.2.0 (from ClawHub)

Possible fix directions

  1. Hard keyword matching as fallback: If user message contains any skill-defined triggers array, force-load that skill (proposal from #23676)
  2. Guaranteed SKILL.md injection: When skill appears in <available_skills>, always inject its instructions into context (proposal from #52473)
  3. Hybrid scoring: Combine soft semantic match + hard keyword match with threshold

Screenshot / Logs

Agent transcript showing:

  • User: "今天AI领域有没有什么新闻消息?"
  • Agent response: Used tavily_search (generic web search) instead of aihot skill
  • Subsequent manual skill read: Skill executed correctly with curl API workflow

Submitted by: @NickY4ng (user experiencing this in daily OpenClaw usage)

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 Bug: Description-based skill matching silently fails on semantically valid queries