openclaw - 💡(How to fix) Fix [Bug]: 控制界面技能列表显示不稳定,点击后消失 [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#53643Fetched 2026-04-08 01:25:28
View on GitHub
Comments
0
Participants
1
Timeline
2
Reactions
0
Participants
Timeline (top)
labeled ×2

OpenClaw控制界面的技能列表显示不稳定:点击技能按钮后列表不显示或部分显示,刷新后正常显示,点击其他内容后又消失。baidu-search技能显示为"missing"但实际功能正常。

Root Cause

OpenClaw控制界面的技能列表显示不稳定:点击技能按钮后列表不显示或部分显示,刷新后正常显示,点击其他内容后又消失。baidu-search技能显示为"missing"但实际功能正常。

RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Summary

OpenClaw控制界面的技能列表显示不稳定:点击技能按钮后列表不显示或部分显示,刷新后正常显示,点击其他内容后又消失。baidu-search技能显示为"missing"但实际功能正常。

Steps to reproduce

  1. 安装baidu-search技能: clawhub install baidu-search
  2. 打开OpenClaw控制界面: http://127.0.0.1:18789/
  3. 点击左侧边栏"代理"->"技能"按钮
  4. 观察技能列表显示情况(可能不显示或部分显示)
  5. 按F5刷新页面,技能列表正常显示
  6. 点击其他界面内容,返回技能页面,技能列表又消失
  7. baidu-search技能始终显示为"missing",但实际功能正常

Expected behavior

技能列表应该稳定显示所有已安装技能,点击后技能项保持可见,刷新后状态一致。baidu-search技能应该显示为"ready"状态,与实际功能状态一致。

Actual behavior

  1. 点击技能按钮后,技能列表不显示或部分显示
  2. 刷新页面后技能列表正常显示
  3. 点击任意界面内容后,技能列表又消失
  4. baidu-search技能始终显示为"missing",但实际功能正常(脚本可执行,API调用成功)
  5. 技能显示状态不稳定,影响用户体验

OpenClaw version

2026.3.23-2 (7ffe7e4)

Operating system

Windows 10 (x64)

Install method

npm install -g openclaw@latest

Model

deepseekkk/deepseek-chat

Provider / routing chain

OpenClaw本地部署

Additional provider/model setup details

本地OpenClaw部署,使用默认配置。已安装ClawHub CLI并登录账号hanbing1117。已安装baidu-search和feishu-messaging技能。

Logs, screenshots, and evidence

Impact and severity

Affected: 所有使用OpenClaw控制界面的用户 Severity: 中等(影响用户体验,但不影响核心功能) Frequency: 总是重现(100%复现率) Consequence: 用户无法稳定查看和管理已安装技能,技能状态显示不准确

Additional information

调试信息:

  • baidu-search技能目录完整,文件齐全
  • 技能实际功能正常(可通过命令行执行)
  • Python环境: 3.13.12, requests库已安装
  • ClawHub状态: 已登录账号hanbing1117
  • 临时解决方案尝试: 清除缓存、硬刷新、重启网关、重新安装技能均无效

可能原因:

  1. 前端缓存问题: 技能状态缓存未正确更新
  2. WebSocket同步: 实时数据更新可能有问题
  3. 技能检测逻辑: openclaw-workspace来源的技能检测可能有问题
  4. 组件状态管理: 前端组件状态未正确更新

建议修复方向:

  1. 检查技能状态检测逻辑,特别是openclaw-workspace来源的技能
  2. 修复前端组件状态管理,确保技能列表稳定显示
  3. 改进技能缓存机制,避免状态不一致
  4. 添加技能状态强制刷新功能

extent analysis

Fix Plan

To address the unstable skill list display in the OpenClaw control interface, we will focus on fixing the front-end component state management and improving the skill cache mechanism.

  1. Update Skill Detection Logic: Review and update the skill detection logic, especially for skills sourced from openclaw-workspace, to ensure accurate and consistent state reporting.
  2. Fix Front-end Component State Management: Modify the front-end code to correctly manage component states, ensuring that the skill list remains visible and consistent after user interactions.
  3. Improve Skill Cache Mechanism: Enhance the caching mechanism for skill states to prevent inconsistencies and ensure that the displayed state reflects the actual skill status.
  4. Add Skill State Refresh Functionality: Introduce a feature to manually refresh the skill state, allowing users to update the skill list if it becomes outdated.

Example Code Snippets

For the front-end component state management, consider using a state management library like React Query or Redux to handle state updates and caching. Here's a simplified example using React Hooks:

import { useState, useEffect } from 'react';

function SkillList() {
  const [skills, setSkills] = useState([]);
  const [loading, setLoading] = useState(true);

  useEffect(() => {
    fetchSkills().then(data => {
      setSkills(data);
      setLoading(false);
    });
  }, []);

  const fetchSkills = async () => {
    // Implement logic to fetch skills from openclaw-workspace or other sources
    // For demonstration purposes, assume skills are fetched from an API
    const response = await fetch('/api/skills');
    return response.json();
  };

  const handleRefresh = () => {
    setLoading(true);
    fetchSkills().then(data => {
      setSkills(data);
      setLoading(false);
    });
  };

  return (
    <div>
      {loading ? (
        <p>Loading...</p>
      ) : (
        <ul>
          {skills.map(skill => (
            <li key={skill.id}>{skill.name}</li>
          ))}
        </ul>
      )}
      <button onClick={handleRefresh}>Refresh</button>
    </div>
  );
}

Verification

To verify that the fix worked:

  • Install the updated OpenClaw version.
  • Follow the steps to reproduce the issue.
  • Confirm that the skill list displays correctly and remains stable after clicking on skills or other content.
  • Verify that the baidu-search skill shows as "ready" instead of "missing".
  • Test the manual refresh feature to ensure it updates the skill list correctly.

Extra Tips

  • Regularly review and update the skill detection logic to ensure compatibility with new skills and sources.
  • Consider implementing automated tests for the skill list display and state management to catch regressions early.
  • Monitor user feedback and logs to identify any recurring issues related to skill list display and state consistency.

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…

FAQ

Expected behavior

技能列表应该稳定显示所有已安装技能,点击后技能项保持可见,刷新后状态一致。baidu-search技能应该显示为"ready"状态,与实际功能状态一致。

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]: 控制界面技能列表显示不稳定,点击后消失 [1 participants]