应检查manifest.json版本及入口函数签名,启用兼容模式,迁移旧技能包元数据并封装为async execute(),改用context安全API替代系统调用。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

如果您在升级WorkBuddy后发现原有Skills技能包无法正常加载或执行,则可能是由于版本兼容性配置未同步更新。以下是解决此问题的步骤:
一、确认OpenClaw技能包规范一致性
WorkBuddy官方明确声明完全兼容OpenClaw技能体系,但实际运行依赖技能包是否遵循MCP协议v1.2及以上标准。旧版Skills若基于早期非标准化结构(如无manifest.json定义、缺少version字段或使用已弃用的hook接口),将无法被新版本识别。
1、打开技能包所在文件夹,检查是否存在manifest.json文件。
2、用文本编辑器打开该文件,确认其中包含"mcp_version": "1.2"或更高版本声明。
3、检查"entry_point"字段指向的Python文件是否使用async def execute()而非def run()等旧式同步函数签名。
二、启用向后兼容模式
WorkBuddy v1.0+内置兼容桥接层,可在启动时强制启用对OpenClaw v0.9.x技能包的支持,该模式通过环境变量触发,不影响主线程安全机制。
1、关闭正在运行的WorkBuddy进程。
2、在终端中执行:set WORKBUDDY_LEGACY_SKILLS=1(Windows)或export WORKBUDDY_LEGACY_SKILLS=1(macOS/Linux)。
3、重新运行WorkBuddySetup.exe或应用程序图标。
4、启动后进入设置页 → 高级 → 查看“兼容模式”状态栏是否显示已激活(Legacy Skills Bridge)。
三、手动迁移旧技能包
对于无法通过兼容模式加载的关键技能,可采用结构映射方式完成轻量级升级,无需重写全部逻辑。迁移过程仅修改元数据与入口封装,保留原始业务代码。
1、复制原技能包文件夹至~/.workbuddy/skills/legacy_backup/作为归档。
2、在原路径下新建manifest.json,内容至少包含:{"name":"your-skill","version":"0.1.0","mcp_version":"1.2","entry_point":"main.py"}。
3、将原主逻辑文件重命名为main.py,并在文件顶部添加:import asyncio及async def execute(context):包裹原run()调用。
4、保存后,在WorkBuddy界面执行技能刷新指令:/reload_skills。
四、验证技能运行环境隔离性
新版WorkBuddy默认启用沙箱化Python解释器实例,旧技能若直接调用os.system()或硬编码绝对路径,可能因权限限制失败。需改用上下文提供的安全API进行系统交互。
1、在技能代码中定位所有os.popen、subprocess.call等系统调用语句。
2、替换为context.run_command("ls -l")或context.read_file("/path/to/data.xlsx")等上下文方法。
3、检查所有文件路径引用,统一改为相对路径或通过context.get_resource_path("template.docx")获取。
4、保存修改后,在WorkBuddy控制台输入:/test_skill your-skill-name进行单点验证。










