研究ai怎么用、怎么赚

本地多Agent工作流:Codex、WorkBuddy、TraeWork 怎么共用一套 Skill 和脚本

「本地多Agent工作流 如何共享 Skill 和脚本 ?Codex、WorkBuddy、TraeWork」

吐槽解读这篇稿子讲的是本地多 Agent 环境里最容易被忽略的一件事——几个 Agent 之间真正该共享的不是”大脑”,而是工具箱。作者给出的核心判断只有一句:共享存储,不等于共享上下文。换句话说,把 Skill 和脚本集中放到一个公共库里只是第一步,真正决定省不省 Token 的是加载方式——先读索引、命中任务才读正文、能跑脚本就别再写 Prompt。作者还借开源项目 OpenStarter 的 Monorepo 结构做了类比:六个平台共用一份认证、支付、UI,而不是各写一遍;Agent 的 Skill 与脚本同理,应用可以很多,公共能力只该有一份

现在很多人的电脑里同时装着 Codex、WorkBuddy、TraeWork,甚至 Claude Code、Cursor。用久了会出现一个很典型的浪费:同一个”图片重命名、生成索引、最后打 ZIP”的流程,每个 Agent 各写一套,最后电脑里躺着五六个版本。本文整理一套本地公共能力库的搭法——shared 放公共 Skill 与脚本,projects 放各自独立项目,并给出从文件夹共享到 Git、再到 MCP 的分阶段升级路径。

现在电脑里同时装 Codex、WorkBuddy、TraeWork,甚至 Claude Code、Cursor 的人越来越多。一开始感觉很好用:这个适合写代码,那个适合操作电脑,另一个适合长任务。但真正长期使用以后,很快会碰到一个问题:每个 Agent 都在自己的项目里沉淀 Skill、Prompt、脚本和工作经验。于是 Codex 写一套图片处理脚本,WorkBuddy 又写一套,TraeWork 换个项目时可能再重新写一次。同样一个“图片重命名、生成索引、最后打 ZIP”的流程,电脑里最后可能出现五六个版本

这其实已经不是“哪个 Agent 更聪明”的问题,而是本地 AI 工作环境开始出现传统开发里很常见的问题:重复造轮子

共用工具箱,不共用大脑

现在 Codex、WorkBuddy、TRAE 都已经逐渐支持 Skill、Rules、MCP、Agent 工作流等机制。方向其实越来越接近:模型负责判断和推理,Skill 负责告诉它工作方法,Script 负责执行重复动作,MCP 则负责连接外部工具和数据

本地多 Agent 共享 Skill 与脚本速览
维度 核心结论
核心痛点 每个 Agent 各自沉淀 Skill 和脚本,同一个流程可能写出五六个版本
解决思路 不让几个 Agent 共用“大脑”,而是共用一套公共能力库
共享内容 Skill、Script、模板与索引共享;记忆和运行配置各 Agent 独立
目录结构 D:\AI_WORKSPACE\shared 放公共能力,projects 下各项目独立
加载方式 先读 SKILLS_INDEX.md,命中任务才读对应的 SKILL.md
省钱关键 共享存储不等于共享上下文;能脚本化的动作不要停在 Prompt 里
版本管理 公共库建成 Git 仓库,改动可 git diff、可回退
升级路径 文件夹共享 → Git → skills-lock.json → 需要时再上 MCP
现实参照 OpenStarter 用 Turborepo + pnpm 把通用能力抽成共享 package,六个平台各取所需
多 Agent 共用一套 Skill 与脚本的公共能力库结构图:shared 目录与两个索引文件被 Codex、WorkBuddy、TraeWork 共用,右侧标出共享与各 Agent 独立的部分,下方是四阶段升级路径

所以我的思路不是让三个 Agent 互相同步聊天记录,也不是建立一个复杂的“大脑中心”,而是在电脑里建立一个统一的公共能力库

例如:

D:\AI_WORKSPACE\
├─ shared\
│  ├─ SKILLS_INDEX.md
│  ├─ SCRIPTS_INDEX.md
│  ├─ skills\
│  ├─ scripts\
│  └─ templates\
│
└─ projects\
   ├─ project-a\
   ├─ project-b\
   └─ project-c\

逻辑很简单:shared 是所有 Agent 共用的工具箱projects 下面则继续保留各自独立项目。Codex、WorkBuddy、TraeWork 都可以做自己的项目,但遇到已经解决过的问题时,优先去 shared 里面找现成能力。

OpenStarter 启示:公共能力只留一份

最近看到的 OpenStarter 其实可以作为一个很好的参考。它本身不是多 Agent 调度平台,而是一个开源的全栈 SaaS Starter,目标是把认证、支付、国际化、SEO、后台、多端客户端等大量通用能力预先搭好,让开发者不要反复从零写基础设施。它采用 Turborepo + pnpm workspace 的 Monorepo 结构,把 Web、桌面端、移动端、浏览器扩展、CLI 和微信小程序放在同一个代码库中,同时把 API、认证、数据库、UI、Billing、AI、Analytics 等通用能力抽到 packages/ 中共享。

这个结构和本地 Agent 的问题其实很像。OpenStarter 不会让 Web 写一套认证、Desktop 再写一套、Mobile 又复制一份,而是尽量把公共能力放到共享 Package,各个平台只使用自己需要的部分。换成 Codex、WorkBuddy、TraeWork,同样可以理解为:

体系 多个入口 公共层
OpenStarter Web / Desktop / Mobile / 浏览器扩展 / CLI / 微信小程序 共享 packages/
本地 Agent Codex / WorkBuddy / TraeWork / Claude Code / Cursor 共享 skills + scripts

OpenStarter 的项目根目录里还同时存在 AGENTS.mdCLAUDE.mdskills-lock.json。它的 Agent 说明文件会告诉 AI 项目的架构、目录、常用命令、编码规范、测试方法等,也就是让 AI 进入项目以后先理解“这个项目应该怎么工作”,而不是每次重新猜

这一点非常值得借鉴。我们前面设计的 AI_PROJECT.md,本质上就是做类似的事情:项目只保存项目规则,公共能力则放在共享层。以后如果主要使用 Codex,也可以直接采用 AGENTS.md;其他 Agent 则通过自己的规则文件读取相同的项目原则,没有必要为每个 Agent 维护完全不同的一套项目知识。

OpenStarter 还有一个更值得注意的小细节:仓库里的 skills-lock.json 会记录 Skill 的来源、路径和计算后的哈希。当前文件中就记录了一个来自 vercel-labs/skillsfind-skills Skill,并保存对应的 SKILL.md 路径和 computedHash

这个设计对个人用户很有启发。我们现在没必要照搬完整 Skill Lock 系统,但以后公共 Skill 多起来以后,可以从最简单的 SKILLS_INDEX.md 逐步升级到 skills-lock.json——多记五个字段:

字段 记录什么 用来判断什么
Skill 名称 这个能力叫什么 索引与检索
来源 自己写的、GitHub 下载的,还是某个项目沉淀出来的 判断可信度
版本 1.2 之类的版本号 判断有没有升级过
路径 skills/xxx/ 知道去哪里调用
Hash computedHash 计算值 有没有被某个 Agent 悄悄改过

这样就能知道:这个 Skill 是自己写的、GitHub 下载的,还是某个项目沉淀出来的;有没有被某个 Agent 悄悄修改;现在使用的是不是原来验证过的版本。

所以 OpenStarter 真正值得参考的不是它具体用了什么前端框架,而是它背后的一个思想:

应用可以很多,公共能力应该尽量只有一份。Agent 也可以很多,成熟 Skill 和 Script 同样不应该反复复制

Skill 不属于 Agent,属于工作流程

很多人会自然地形成这种结构:

Codex/skills/
WorkBuddy/skills/
Trae/skills/

这种结构隐含的意思其实是:Skill 属于 Agent

但长期使用以后会发现并不是这样。比如有一个 Skill 是“扫描图片目录、统一命名、生成索引并打包”,这件事情跟 Codex 本身没有关系,也不属于 WorkBuddy,更不属于 TRAE。它真正属于的是你的工作流程

所以关系应该改成:

                Shared Skills
                     │
        ┌────────────┼────────────┐
        │            │            │
      Codex      WorkBuddy     TraeWork

Agent 可以换,模型可以升级,但以前积累的工具和方法不应该因为换 Agent 就作废

Skill 只分两类:项目专用与公共库

没有必要一开始就搞很复杂的状态系统。个人或者小团队阶段,Skill 只分两类就够了

第一类是项目专用 Skill。例如某个品牌有特殊视觉规范、某个网站有特殊部署方式、某个项目有独有目录规则,这些能力就留在项目自己的 .ai/skills/ 里面。

第二类是公共 Skill。例如图片索引、文件批量重命名、ZIP 打包、网页截图、HTML 检查、网站 QA、文件去重等。这些能力与具体项目关系不大,就可以放到 shared/skills/

判断标准可以非常简单:只有当前项目能用,就留项目;两个以上项目都可能复用,就考虑进入 shared

共享存储,不等于共享上下文

这是必须注意的问题。如果以后公共库里有 100 个 Skill,而每次 Agent 一启动就把 100 个 Skill 全部读取,那么一定是在浪费 Token

所以核心规则是:

共享存储,不等于共享上下文

正确方式应该是:

  1. 先读索引
  2. 知道有哪些 Skill
  3. 判断当前任务需要什么
  4. 只读取相关 Skill
  5. 执行

而不是一进入项目就扫描整个共享库

因此我会在 shared 里面固定放两个很小的文件:

SKILLS_INDEX.mdSCRIPTS_INDEX.md

例如 SKILLS_INDEX.md 只需要写:

## image-index
用途:为图片目录生成索引。
路径:skills/image-index/
什么时候使用:整理、盘点、交接图片时。
## website-qa
用途:检查网页基础问题。
路径:skills/website-qa/
什么时候使用:页面修改完成后。

Agent 每次只需要花很少上下文知道“这里有什么”,真正命中任务以后才去读取对应的 SKILL.md

如果以后 Skill 数量越来越多,可以继续借鉴 OpenStarter 的 skills-lock.json 思路:索引负责让 AI 找能力,Lock 文件负责记录来源、版本和完整性。两者用途不同,不需要一开始就搞得很复杂。

省 Token 的是 Script,不是 Prompt

例如一个任务是:扫描 400 张图片,生成文件名、尺寸、目录和索引。如果没有现成脚本,每个 Agent 都可能重新理解需求、重新写 Python、重新调试、再重新执行

如果已经有:

shared/scripts/images/make_index.py

以后 Agent 只需要知道:

用途:生成图片索引。
调用:python make_index.py <目录>

直接执行即可。甚至都不需要重新读取整段源码,只有脚本报错或需要修改时才打开源码

所以长期使用 Agent 时,一个很重要的变化是:

能脚本化的重复动作,不要永远停留在 Prompt 里

Prompt 每一次都需要模型重新理解,而一个稳定 Script 可以重复执行几十次、几百次

三个 Agent 怎么接入这套结构

其实不需要一开始就开发中央 MCP。现阶段,三个 Agent 只要都能够找到同一个 D:\AI_WORKSPACE\shared 就够了。

每个项目只需要放一个很小的规则文件,例如:

公共 Skill 和 Script 位于:
D:\AI_WORKSPACE\shared
开始任务前先读取:
SKILLS_INDEX.md
SCRIPTS_INDEX.md
只读取当前任务需要的 Skill。
禁止默认扫描整个 shared。
公共库已有能力时,不要重复创建。

这里也可以直接借鉴 OpenStarter 的做法:项目根目录维护 Agent 说明文件,让 AI 一进入仓库就知道项目结构、命令、规范和公共能力入口。OpenStarter 当前的 Agent 文档甚至直接列出了 Monorepo 结构、开发命令、测试、部署和代码规范。

如果某个 Agent 只能访问项目目录,还可以在 Windows 里通过 Junction 或 Symlink,让项目里的 .ai/shared 实际指向真正的公共目录。这样看起来 Agent 仍然在项目内部工作,但硬盘里实际上只有一套共享 Skill 和 Script

只从大厂与 3A 流程拿两个思想

如果只是个人使用,没有必要照搬大公司的完整流程。真正值得借鉴的其实只有两个。

第一个是“公共工具不要重复制作”。这既是大型游戏开发的常见思路,也是 OpenStarter 这类 Monorepo 项目的核心逻辑之一:真正通用的能力抽出来,共同使用,不在每个应用中重复维护。OpenStarter 当前就把认证、Billing、Database、UI、国际化、Analytics 等拆成共享 Package,而不是分别塞进六个平台。

第二个是“先做一个完整样板,再批量生产”。比如要让 Agent 做 20 个页面,不要一开始直接做 20 个。先完成第一个,检查逻辑、视觉、目录、脚本和输出都没问题以后,再把方法固定下来,最后批量执行剩余页面

这个规则对图片、页面、商品、数据整理、文件处理都适用,而且比搞一个复杂的多 Agent 调度平台更实用。

公共 Skill 什么时候才该产生

不建议任何新 Prompt 一出现就立刻进入 shared

更合理的流程是:先在项目自己的 .ai/skills/ 里面使用,真正执行过几次,确认有效,而且发现其他项目也能复用,再去掉项目特有内容,整理成公共 Skill,最后更新 SKILLS_INDEX.md

这样 shared 才不会慢慢变成一个什么都有、但没人敢用的垃圾场

以后再进一步,可以给公共 Skill 增加很轻量的来源记录:

字段 示例
名称 image-index
来源 STRATA_HIMALAYA
状态 已验证
版本 1.2

再往后 Skill 数量真的变多了,才有必要升级为类似 OpenStarter skills-lock.json 的机器可读记录方式。

公共库用 Git 管起来

这个成本很低,但很有用。

只需要给 D:\AI_WORKSPACE\shared 建立一个 Git 仓库即可,甚至只保留 main 分支就够。

这样某个 Agent 把已经稳定使用半年的 Skill “优化”坏了,可以先用 git diff 看它到底改了什么,必要的时候直接恢复

如果未来再配合 Skill Hash,就可以进一步知道一个 Skill 是否和原来的验证版本一致。OpenStarter 的 skills-lock.json 已经采用了记录来源和计算哈希的方式,这也是为什么我认为它对多 Agent 本地工作区有参考价值。

随着 Agent 越来越自主,“可回退”和“知道它改过什么”反而会越来越重要

什么时候才升级 MCP

我现在不建议为了看起来更 Agent 化,就立刻把所有 Skill 做成 MCP。

如果现在只有几十个 Skill、几十个脚本、三个 Agent 和几个项目,那么文件夹共享已经足够简单可靠

等以后真正出现这些情况再考虑 MCP:Skill 和 Script 数量已经非常多,Agent 经常找不到正确工具,需要统一搜索,需要权限控制,需要调用数据库或远程服务,或者单纯文件目录已经明显影响效率。

到那时候,可以再把共享库封装成类似:

skill.search
skill.get
script.run

这样的统一接口。

所以整个系统其实可以逐步升级,而不是一次做到顶:

阶段 内容 解决什么
阶段 1 shared 文件夹 + SKILLS_INDEX + SCRIPTS_INDEX 多个 Agent 找到同一套能力,不再各写一套
阶段 2 Git + Skill 来源 + 版本记录 改动可追溯,坏了能回退
阶段 3 skills-lock.json + Hash + 自动检查 确认用的是不是验证过的版本
阶段 4 真的有需要时再做 MCP Skill 多到找不到工具时,再上统一接口

OpenStarter 对我最大的启发也正是在这里:先把公共能力组织好,再谈更复杂的系统,而不是反过来。

给本地 Agent 的 16 条规则

  1. 先理解当前项目。
  2. 读取 AI_PROJECT.md / AGENTS.md。
  3. 查看公共 SKILLS_INDEX.md 和 SCRIPTS_INDEX.md。
  4. 优先复用已有 Skill 和 Script。
  5. 不默认扫描整个公共库。
  6. 只读取当前任务相关 Skill。
  7. Script 能执行时,不重新编写。
  8. 除非修改或排错,否则不要读取全部 Script 源码。
  9. 公共 Skill 不复制进项目。
  10. 项目特殊规则留在项目内部。
  11. 两个以上项目可能复用的能力,再考虑进入 shared。
  12. 批量任务先完成一个完整样板。
  13. 样板确认以后再批量执行。
  14. 不为了未来可能有用而提前建立复杂系统。
  15. 优先减少重复工作、重复上下文和重复 Token。
  16. 公共能力修改后必须可以通过 Git 回退。

换 Agent 不用从零开始

真正值得几个 Agent 共同继承的,并不是彼此的聊天记录,而是已经验证过的方法、脚本、工具、规范和经验

OpenStarter 这种项目也说明了一件事:当代码规模开始扩大以后,真正提高效率的往往不是让每个入口都越来越强,而是把重复能力抽到公共层。对于 AI Agent 也是一样。

以后即使把 Codex 换掉,把 WorkBuddy 换掉,或者又增加新的 Agent,都不用重新从零开始。新 Agent 只要先读项目规则,再看公共能力索引,就知道:

这台电脑以前已经解决过哪些问题,以及这些能力应该去哪里调用

这才是本地多 Agent 长期使用以后最有价值的积累。

文|神吐槽

文中 OpenStarter 相关的结构描述(Turborepo + pnpm Monorepo、AGENTS.md / CLAUDE.md / skills-lock.json 等文件)来自其开源仓库说明;目录结构与规则清单为本站整理版本,可按需替换成自己的路径。


  • Codex、WorkBuddy、TraeWork 各自沉淀 Skill 和脚本,同一个”图片重命名、生成索引、打 ZIP”的流程会出现五六个版本,本质是本地 AI 环境里的重复造轮子。
  • 作者提出的核心判断是”共享存储不等于共享上下文”:把 Skill 集中放进公共库只是第一步,真正省 Token 的是加载方式——先读索引,命中任务才读对应 SKILL.md。
  • 建议在电脑里建一个 D:\AI_WORKSPACE 工作区,shared 目录放公共的 SKILLS_INDEX.md、SCRIPTS_INDEX.md、skills、scripts 和 templates,projects 下面继续保留各自独立项目。
  • 开源全栈 SaaS Starter 项目 OpenStarter 是很好的现实参照:它用 Turborepo + pnpm workspace 把认证、支付、国际化、SEO、后台等能力抽到 packages/ 共享,而不是六个平台各写一遍。
  • OpenStarter 仓库里同时存在 AGENTS.md、CLAUDE.md 和 skills-lock.json,前者让 AI 一进项目就知道架构与规范,后者记录 Skill 的来源、路径和 computedHash,用来判断有没有被改动过。
  • Skill 只分两类:只有当前项目能用的留在项目自己的 .ai/skills/ 里,两个以上项目都可能复用的才考虑进入 shared/skills/,避免公共库变成没人敢用的垃圾场。
  • 作者反复强调 Skill 不属于 Codex 也不属于 WorkBuddy,而属于你的工作流程:Agent 可以换、模型可以升级,但积累下来的工具和方法不应该因为换 Agent 就作废。
  • 公共库最容易被忽略的成本是上下文:如果库里有 100 个 Skill 而每次启动全部读取,就是纯粹的 Token 浪费。正确做法是索引先行、按需加载,只读当前任务需要的部分。
  • 真正省 Token 的是 Script 而不是 Prompt:Prompt 每次都要模型重新理解,而一个稳定脚本可以重复执行几十次、几百次,只有报错或需要修改时才打开源码。
  • 整套方案可以分四阶段升级:文件夹共享加两个索引文件、再用 Git 加来源与版本记录、然后上 skills-lock.json 加 Hash 校验,最后等 Skill 数量多到找不到工具时再做 MCP。
赞(0) 群聊
文章链接:https://www.tucaod.com/14307.html

讨论群终身200元

永远不解散,不涨价。不荐股、不带单。
ai学习安装,美股分析交流,不构成任何投资建议。终身免费指导。
AI产业链资料库

联系我们

觉得文章有用就可以进群

研究ai怎么用、怎么赚

支付宝扫一扫打赏