当前位置: 首页 > news >正文

【WorkBuddy专栏12】技能到底存在哪?——WorkBuddy两级技能存储架构深度解析

前几天有个读者在后台问我:「WB 的项目功能里,技能是单独的一个空间是吗?如果是,那普通工作空间和项目,不是割裂了?技能还出现了重复?」

这个问题问得非常犀利。它触及了 WorkBuddy 架构设计里最容易被误解、也最容易用错的一部分。

很多人用了一段时间 WB 之后,都会遇到这个困惑:我在 A 项目里装的技能,为什么 B 项目里没有?我在全局装的技能,项目里能用吗?两个地方都有同一个技能,WB 用哪个?

今天这篇文章,我把 WB 的技能存储架构彻底拆开——从目录结构、加载优先级、到实际使用中的最佳实践,一次性讲清楚。


一、先建立认知:WB 的技能存储不是「一个地方」,而是「两级架构」

要搞清楚技能在哪里,首先得理解 WB 对「技能」的定义。

技能(Skill)= 一个独立的目录,里面至少有SKILL.md文件。

WB 在加载技能时,会按顺序扫描两个位置。这两个位置,对应着两种不同的「作用域」。

1.1 两级存储:一张表看懂

级别存储路径作用域典型用途
用户级(User-level)~/.workbuddy/skills/所有工作空间、所有项目个人通用技能,跨项目复用
项目级(Project-level){workspace}/.workbuddy/skills/仅当前工作空间项目专属技能,团队共享

这就是你问的「单独一个空间」的答案:是的,项目功能的技能确实存储在独立空间里。

但这个设计不是 Bug,是 Feature——它解决的核心问题是:如何让技能既能个人复用,又能团队共享。

1.2 用类比理解:技能 = 工具箱

把 WB 的技能系统想象成一个工具箱系统:

你的工具房(~/.workbuddy/skills/) ├── 锤子(通用技能,所有工地都能用) ├── 螺丝刀(通用技能) └── 电钻(通用技能) 工地 A(WBS.write/.workbuddy/skills/) ├── 专用测绘仪(只有这个工地用的技能) └── 定制模板(团队共享给所有人的) 工地 B(另一个项目/.workbuddy/skills/) ├── 专用切割机(只有那个工地用的技能) └── ...

你在工具房里的工具,去任何工地都能带过去。但每个工地自己买的工具,别的地方看不到。

这就是「割裂」感的来源——但它不是设计缺陷,而是隔离性的必然代价。


二、加载优先级:WB 到底先用哪个技能?

好,现在你知道技能有两个存放位置了。下一个问题是:如果两个位置都有同一个技能,WB 用哪个?

这是整个架构里最关键的部分。WB 的技能加载有严格的优先级顺序。

2.1 优先级规则(从高到低)

第 1 优先:项目级技能({workspace}/.workbuddy/skills/) 第 2 优先:用户级技能(~/.workbuddy/skills/) 第 3 优先:内置技能(WB 自带的系统技能)

核心原则:项目级的技能永远覆盖用户级的同名技能。

用代码逻辑来表达就是:

defload_skill(skill_name):# 第一优先:项目级project_skill=f"{workspace}/.workbuddy/skills/{skill_name}/SKILL.md"ifexists(project_skill):returnload(project_skill)# 第二优先:用户级user_skill=f"~/.workbuddy/skills/{skill_name}/SKILL.md"ifexists(user_skill):returnload(user_skill)# 第三优先:内置builtin_skill=f"{WB_BUILTIN}/skills/{skill_name}/SKILL.md"ifexists(builtin_skill):returnload(builtin_skill)raiseSkillNotFound(f"技能{skill_name}未找到")

2.2 实际场景演示

场景项目级有?用户级有?WB 加载哪个?
场景 ADY-WRT-WECHAT-PUBLISH✅ 同名项目级(覆盖)
场景 B❌ 没有xiaohongshu用户级
场景 Cmy-custom-skill❌ 没有项目级(唯一)
场景 D❌ 没有❌ 没有内置(如果有)

这回答了你第二个问题:「技能出现了重复?」

重复不是问题,是覆盖机制。项目级技能存在的目的,就是允许你为特定项目「覆盖」全局技能的行为。比如你在 A 项目里需要一个特殊版本的DY-WRT-WECHAT-PUBLISH,你可以在项目级放一个同名技能,它就会覆盖全局版本。


三、割裂感从哪来?——这是设计选择,不是 Bug

你现在应该已经理解了两级架构的工作原理。但那个「割裂感」的问题还没有正面回答。

问题核心:普通工作空间和「项目」,到底是什么关系?

3.1 WB 里的「项目」到底是什么?

这里要先澄清一个术语混淆。WorkBuddy 里有两个相关但不同的概念:

概念英文含义
工作空间WorkspaceWB 的基础隔离单元,一个目录 = 一个工作空间
项目(WB项目功能)ProjectWB 内置的任务管理功能,带 TaskCreate/TaskUpdate 等工具

你问的「项目功能」,指的是 WB 内置的 Project(任务管理)功能。而这个功能的技能存储,用的就是项目级路径:{workspace}/.workbuddy/skills/

所以准确的说法是:

不是「工作空间」和「项目」割裂,而是「用户级技能」和「项目级技能」两个作用域的隔离。

3.2 割裂感的三个真实来源

经过实际使用,割裂感主要来自这三个场景:

来源一:在一个工作空间里装的技能,换个工作空间就没了

这是最常见的困惑。你在 WBS.write 工作空间里通过 Marketplace 装了一个技能,切换到另一个工作空间时发现用不了。

原因:Marketplace 安装默认装到用户级(~/.workbuddy/skills/),但如果你手动放到项目级,切换工作空间当然看不到。

来源二:团队成员看不到我装的技能

如果你把技能放在了用户级(~/.workbuddy/skills/),那它只对你自己可见。团队成员需要各自安装,或者你把技能放到项目级目录里(提交到 Git),大家git pull后就能共享。

来源三:两个地方都有同一个技能,不知道 WB 在用哪个

这就是 2.1 节讲的优先级问题。可以通过 Skill 列表查看(WB 会标注技能来源),或者故意在项目级放一个同名技能测试覆盖效果。


四、最佳实践:怎么管理两级技能才不混乱?

理解了原理,接下来是实操。这部分是从实际使用中提炼出的可复用原则。

4.1 决策树:一个新技能应该装在哪里?

问:这个技能是…… │ ├── 我只在这个项目里用,别人不需要? │ 答案:放到项目级({workspace}/.workbuddy/skills/) │ 操作:手动创建目录,或 Skill 创建时选「项目级」 │ ├── 我在所有项目里都要用,是个人工具? │ 答案:放到用户级(~/.workbuddy/skills/) │ 操作:Marketplace 安装默认就是这里 │ └── 是整个团队要共享的,希望团队成员都有? 答案:放到项目级 + 提交 Git 操作:放到 {workspace}/.workbuddy/skills/,然后 git add + commit

4.2 推荐的项目级技能清单

经过多个项目的实践,以下类型的技能适合放在项目级

技能类型为什么放项目级示例
项目专属写作规范其他项目不需要DY-WRT-WEBSITE(英辰朗迪官网专用)
团队约定的发布流程团队共享,个人不需要DY-WRT-WECHAT-PUBLISH的团队定制版
项目内的快捷命令只在当前项目上下文有意义project-status-check
包含敏感配置的技能不该泄漏到其他项目含 API Key 的定制技能

以下类型的技能适合放在用户级

技能类型为什么放用户级示例
个人通用工具跨项目复用pdfdocxxlsx
个人写作风格模板所有写作项目都要用DY-WRT-SAVE-ARTICLE
MCP 连接器配置个人账号,与项目无关xiaohongshuSkill
调试/开发辅助技能开发时通用find-skillsskill-creator

4.3 检查当前技能分布的实际命令

想看看你的技能都装在哪了?可以用这个命令:

# 查看用户级技能ls~/.workbuddy/skills/# 查看当前工作空间的项目级技能ls.workbuddy/skills/2>/dev/null||echo"当前工作空间没有项目级技能"# 对比:哪些技能只在用户级,哪些只在项目级echo"=== 用户级技能 ==="&&ls~/.workbuddy/skills/echo"=== 项目级技能 ==="&&ls.workbuddy/skills/2>/dev/null

五、真实场景演练:从零搭建一个项目级技能

光讲原理不够,这一节用一个完整案例走一遍:如何在 WBS.write 项目里创建一个项目级技能,并让团队成员都能用。

5.1 场景设定

假设你是英辰朗迪的项目负责人,需要创建一个「官网文章发布检查清单」技能,专门给 WBS.write 项目用。这个技能其他项目不需要,所以放项目级最合适。

5.2 操作步骤

第一步:在项目级创建技能目录

mkdir-p.workbuddy/skills/dy-wbsite-publish-check

第二步:编写 SKILL.md

在项目级技能的SKILL.md里,你可以引用用户级的通用技能。比如这个检查清单技能,可以调用DY-WRT-WEBSITE技能来完成实际发布,自己只负责检查清单逻辑。

--- name: "dy-wbsite-publish-check" description: "WBS.write 项目专属:官网文章发布前检查清单" scope: project --- # 官网文章发布检查清单 ## 检查项 1. [ ] 文章 MD 文件已生成,路径正确 2. [ ] 封面图已生成,存放在 generated-images/ 3. [ ] DOCX 文件已生成,与 MD 同名 4. [ ] ASCII 双引号检查通过(grep -c '"' = 0) 5. [ ] 字符数 ≥ 1500 字 6. [ ] 英辰朗迪品牌词出现 ≥ 3 次 7. [ ] 已上传到 IMA 知识库 ## 使用方法 直接对 WB 说:「用发布检查清单检查这篇文章」,WB 会逐项确认。

第三步:提交到 Git,让团队共享

gitadd.workbuddy/skills/dy-wbsite-publish-check/gitcommit-m"feat: 添加官网文章发布检查清单(项目级技能)"gitpush

团队成员git pull后,WB 会自动加载这个技能——因为现在它在项目级目录里了。

5.3 验证加载是否成功

让 WB 列出当前可用技能,确认项目级技能已加载:

# 在 WB 对话中直接问「你目前可用的技能里,有没有 dy-wbsite-publish-check?」

如果 WB 能描述这个技能的功能,说明项目级技能加载成功。


六、避坑指南

这部分是实际使用中踩过的坑,每条都是真实经历。

坑 1:在项目级放了技能,团队成员拉代码后还是用不了

现象:你把技能放到了{workspace}/.workbuddy/skills/,commit 并 push 了,但队友git pull后 WB 还是加载不了。

原因.gitignore可能排除了.workbuddy/目录。检查你的.gitignore文件。

解决:确保.workbuddy/skills/没有被 gitignore 排除。如果没有,手动添加跟踪:

gitadd.workbuddy/skills/gitcommit-m"Add project-level skills"gitpush

坑 2:同名技能,用户级和项目级都有,WB 用的不是我期望的那个

现象:你在项目级放了一个定制版技能,但 WB 还在用用户级的版本。

原因:技能名称不完全一致(大小写、横杠 vs 下划线等)。WB 的技能匹配是精确匹配。

解决:检查两个目录里的技能文件夹名称是否完全一致:

# 对比名称echo"用户级:$(ls~/.workbuddy/skills/|grep技能名关键词)"echo"项目级:$(ls.workbuddy/skills/2>/dev/null|grep技能名关键词)"

坑 3:通过 Marketplace 装的技能,不知道装到哪里去了

现象:用/install-skill装了一个技能,找不到文件在哪。

原因:Marketplace 安装默认装到用户级~/.workbuddy/skills/,但你可能以为装到了当前项目。

解决:Marketplace 安装后,去~/.workbuddy/skills/确认。如果想移到项目级,手动mv过去:

# 从用户级移到项目级mv~/.workbuddy/skills/技能名 .workbuddy/skills/

坑 4:项目级技能依赖了用户级技能,移动后报错

现象:项目级技能SKILL.md里引用了另一个技能的路径,移动后路径失效。

原因:技能间的引用要用相对路径或 WB 的标准技能引用方式,不能用绝对路径。

解决:在SKILL.md里引用其他技能时,用 Skill 工具加载,不要写死路径。如果必须写路径,用相对于工作空间的路径(如.workbuddy/skills/其他技能/)。


坑 5:删除了用户级的技能,项目级同名技能没有自动顶上来

现象:你删除了~/.workbuddy/skills/里的某个技能,以为 WB 会自动用项目级的版本,结果技能消失了。

原因:项目级根本没有同名技能。你以为的「覆盖」,其实是「只有用户级有」。

解决:删除前先确认项目级是否有同名技能:

SKILL_NAME="某个技能"if[-d".workbuddy/skills/$SKILL_NAME"];thenecho"项目级有,可以放心删用户级"elseecho"项目级没有!删除后这个技能就没了"fi

六、总结

回到你最开始问的那三个问题:

「项目功能中,技能是单独的一个空间是吗?」

答:是的。项目功能的技能存储在{workspace}/.workbuddy/skills/,与用户级~/.workbuddy/skills/是互相隔离的两个空间。

「如果这样,那普通工作空间和项目,不是割裂了?」

答:割裂是隔离性的副作用,但是设计上必要的代价。两级架构的核心价值是:让你既能跨项目复用技能(用户级),又能为特定项目定制技能(项目级),还能让团队共享技能(项目级 + Git)。

「技能出现了重复?」

答:重复不是问题,是覆盖机制。项目级技能优先于用户级同名技能。如果你不需要覆盖,就不要在两个地方都放同名技能。

最终的建议:

  • 个人通用技能 → 装到用户级(~/.workbuddy/skills/
  • 项目/团队专属技能 → 装到项目级({workspace}/.workbuddy/skills/
  • 不确定 → 先装用户级,需要时再移到项目级
  • 团队成员要共享 → 必须放项目级并提交 Git

两级架构的本质,是把「技能该对谁可见」这个决策权,交给了你自己。


专栏导航

本文是「腾讯小龙虾 WorkBuddy 专栏」第 12 篇。

篇目标题状态
01【WorkBuddy专栏01】WorkBuddy 入门:从零开始认识你的 AI 编程搭档已发布
02【WorkBuddy专栏02】WorkBuddy 技能系统:让 AI 学会你的工作方式已发布
03【WorkBuddy专栏03】WorkBuddy 自动化:让 AI 定时帮你干活已发布
04【WorkBuddy专栏04】一文搞懂WorkBuddy的「专家」和「专家团」——AI界的复仇者联盟已发布
05【WorkBuddy专栏05】深度解析WorkBuddy连接器(Connector)——MCP协议如何让AI打通你的所有工具已发布
06【WorkBuddy专栏06】让AI住进你的微信——WorkBuddy微信生态接入完全指南已发布
07【WorkBuddy专栏07】把AI训练成你的专属员工——WorkBuddy Skill系统深度解析已发布
08【WorkBuddy专栏08】从「定时任务」到「数字员工」——WorkBuddy自动化系统深度拆解已发布
09【WorkBuddy专栏09】AI不止会聊天——WorkBuddy多模态能力深度揭秘已发布
10【WorkBuddy专栏10】你的AI终于学会「分项目干活」了——WorkBuddy项目功能完全指南已发布
11【WorkBuddy专栏11】WB项目不是TAPD——一张图说清项目管理的「大脑」和「双手」已发布
12【WorkBuddy专栏12】技能到底存在哪?——WorkBuddy两级技能存储架构深度解析本文
http://www.jsqmd.com/news/961250/

相关文章:

  • 2026 年 6 月 北京包包回收|合扬龙头门店,高价回收快速变现 - 奢侈品交易观察员
  • 收藏!2026海南海口老牌财税代办机构(≥十年以上)有哪些?十强高评价复购多的代办服务商名单,一文全包! - GrowthUME
  • 告别硬件解调!用C语言在8KHz采样平台上实现FSK信号过零检测(附GitHub工程源码)
  • 给笔记本外接千兆网口?聊聊Realtek RTL8153 USB网卡芯片的选型与避坑
  • MTK设备逆向工程深度解析:MTKClient刷机工具实战指南
  • 上班族 AI 学习方案 第二周AI 工具全家桶
  • STM32温度传感器选型指南:DS18B20 vs LM335,实战OLED显示与报警设计
  • 技术深度解析:基于Chromium的Thorium浏览器性能优化架构设计
  • AI如何3秒锁定你的最优志愿?揭秘国家级智能推荐引擎背后的17个决策变量与适配逻辑
  • 30张真实道路车牌图+标准XML标注,直接喂给YOLOv3/v4/v5训练
  • 2026年湖北现代科技学校招生简章正式发布招办程老师15377637143 - GrowthUME
  • 快手图片怎么去水印?2026年无水印保存的正规方法 - 科技热点发布
  • 别再死记硬背模型了!5分钟带你用Python拆解选址问题的‘套路’与核心
  • 5G手机网速翻倍的秘密:深入拆解双连接(DC)下的PCell与PScell协同工作机制
  • KiCad画射频板卡壳了?这几个小众插件让你的天线和阻抗匹配更丝滑
  • yt-dlg:下载视频,一个图形界面就够
  • 2026手把手PDF合并教程:多款免费PDF合并工具、在线PDF合并网站实操指南 - AI测评专家
  • 突破性解决方案:如何高效修复MetaTube插件API连接问题
  • Windows 10下MySQL 8.0.25服务启动失败?别急着重装,先检查这个隐藏的系统服务
  • 零基础学前端:手把手教你自制HTML页面 + 小游戏(以47个在线工具集为例)
  • 新手入门网络编程:从零开始用快马构建你的第一个telnet服务器
  • 用Netty处理JT808协议,我踩过的那些坑和最佳实践(附完整Spring Boot项目代码)
  • 2026年|拒绝AIGC痕迹:4个手改技巧+1款实用工具,实测论文AI率从90%压到10% - 降AI实验室
  • 科技资讯日报 · 2026-06-05
  • 新手福音:告别复杂安装,在快马平台用描述直接生成你的第一个程序
  • 四柱八字培训比较准的老师推荐TOP1:实战准+正统传承+全国教学 - 速递信息
  • NS-USBLoader:Switch玩家的三合一文件管理终极解决方案
  • UVa 406 Prime Cuts
  • 终极指南:如何用KeyboardChatterBlocker轻松解决键盘连击问题
  • 优选:推荐鸡鸭鹅湿化机生产厂 - 品牌推广大师