MoreRSS

site iconEin Verne修改

软件工程师,开源爱好者,Linux用户和vimer开发者。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

Ein Verne的 RSS 预览

screen.garden:让 Obsidian 拥有 Google Docs 般的实时协作体验

2026-02-04 14:00:00

之前我介绍过 Fast Note Sync,这是一款开源的 Obsidian 笔记同步方案,可以实现多设备之间的笔记同步和实时协作。Fast Note Sync 的优势在于完全开源、数据自主可控,但它有一个门槛——你需要自己搭建和维护服务器。对于有技术背景并且享受折腾的朋友来说这不是问题,但如果你不想操心服务器的事情,或者团队里有非技术背景的成员,那么一个开箱即用的托管服务可能是更好的选择。这就是我今天要介绍的 screen.garden,一个为 Obsidian 设计的付费实时协作服务。

用 Obsidian 做笔记这么多年,我一直有一个小遗憾:它的协作能力实在太弱了。每次需要和朋友或同事一起编辑文档时,我都得打开 Google Docs 或者 Notion,然后在心里默默叹气——为什么我不能在自己熟悉的 Obsidian 里完成这件事呢?Obsidian Sync 虽然好用,但它只是同步,不是协作,你没办法看到别人正在编辑什么,更别提像 Google Docs 那样看到对方的光标在屏幕上移动了。screen.garden 的出现,让这个问题终于有了一个让我满意的解决方案。

Obsidian 协作的困境

如果你也是 Obsidian 的重度用户,应该能理解这种感受。Obsidian 最吸引人的地方在于它把所有笔记都存成本地的 Markdown 文件,你拥有完整的数据控制权,不用担心哪天服务商跑路导致数据丢失。但这种设计也带来了一个天然的问题:本地文件和实时协作之间存在着难以调和的矛盾。传统的同步服务,无论是 iCloud、OneDrive 还是官方的 Obsidian Sync,都是基于文件级别的同步,当两个人同时编辑同一个文件时,冲突几乎是不可避免的,最后你可能会看到一堆叫做「笔记-冲突副本」的文件散落在文件夹里,这种体验实在是太糟糕了。

我之前尝试过各种变通方案,比如用 Git 来管理笔记,但这对非技术背景的协作者来说门槛太高;也试过把需要协作的内容单独放到 Notion 里,但这样就破坏了我在 Obsidian 里建立的知识网络,那些双向链接变得毫无意义。我甚至想过用 HackMD 或者 HedgeDoc 这样的在线 Markdown 编辑器作为中间层,但来回复制粘贴实在太麻烦,而且格式兼容性也是个问题。这些方案要么太复杂,要么体验太割裂,都不是我想要的答案。

screen.garden 是什么

screen.garden 的出现让我眼前一亮。简单来说,它是一个「Web 服务 + Obsidian 插件」的组合,通过特殊的同步算法实现了在本地 Markdown 文件上进行实时协作编辑,你可以看到协作者的光标位置,看到他们正在输入什么,就像在 Google Docs 里一样,但所有的文件仍然以 Markdown 格式保存在你的本地磁盘上。这种设计既保留了 Obsidian 的核心优势——数据本地化和 Markdown 格式,又补齐了它最大的短板——实时协作能力。

screen.garden 的基本共享单位叫做 Collection,你可以把它理解为一个可以共享的文件夹。在你的 Obsidian vault 里创建一个 Collection 之后,就可以邀请其他人一起编辑里面的笔记了。这种设计很巧妙,因为你可以在同一个 vault 里同时拥有私人笔记和共享笔记,私人笔记可以通过双向链接引用共享笔记里的内容,而不用担心隐私泄露。比如我自己有一个「项目文档」的 Collection 和团队共享,同时还有一个「个人日记」的文件夹完全私密,两者可以相互引用但互不干扰,这正是我一直想要的工作方式。

核心功能体验

实际使用下来,screen.garden 给我印象最深的是它的实时协作体验。当你和别人同时编辑一篇笔记时,你能看到对方光标的位置,光标旁边会显示协作者的名字,而且对方输入的内容会实时出现在你的屏幕上,完全没有延迟感。更贴心的是,插件会在侧边栏显示当前有哪些团队成员在线,以及他们正在编辑哪篇笔记,你可以一键跳转到他们正在编辑的位置,这在讨论文档的时候特别有用,省去了「你在哪一行」「我说的是第三段」这种低效的沟通。

最让我惊喜的是 Canvas 协作功能。Obsidian 的 Canvas 是一个无限画布,可以用来做思维导图、流程图或者把笔记卡片可视化排列,但在 screen.garden 之前,这个功能完全无法协作。现在你可以和团队成员一起在同一个 Canvas 上移动卡片、画连接线、添加注释,每个人的光标都是可见的,这种体验用来做头脑风暴或者项目规划简直太棒了。我和朋友试着用它来规划一个小项目的架构,两个人在 Canvas 上同时操作,实时看到对方的想法,比传统的「你画完发给我看看」的方式高效了不知道多少倍。

screen.garden 还有一个 Web 编辑器,让你可以在没有安装 Obsidian 的设备上通过浏览器访问和编辑笔记。这个 Web 编辑器的设计很克制,官方说法是「故意保持简单」,因为它不是要取代 Obsidian,而是提供一个轻量级的访问入口。实际体验下来,用来快速查看笔记或者做一些简单的修改完全够用,但如果要深度编辑,还是回到 Obsidian 里更舒服。另外值得一提的是分享功能,你可以生成一个只读链接把笔记分享给没有 screen.garden 账号的人,还可以设置密码保护,这在需要把文档发给外部合作方查看的时候很方便。

技术实现与使用注意

从技术角度来说,screen.garden 应该是使用了类似 CRDT(Conflict-free Replicated Data Type)的算法来实现无冲突同步。这种算法的核心思想是把每个编辑操作都设计成可以自动合并的形式,无论操作以什么顺序到达,最终都能得到一致的结果。Yjs 是这个领域最流行的开源实现,很多实时协作应用都基于它来构建,虽然 screen.garden 没有明确说明技术细节,但从使用体验来看应该是采用了类似的方案。这也解释了为什么它能做到真正的「无冲突」——这不是靠锁定或者覆盖,而是从算法层面就避免了冲突的产生。

安全性方面,screen.garden 表示所有连接都使用加密传输,数据在服务器上也是加密存储的。不过他们在 FAQ 里特别强调了一点:screen.garden 不是备份服务,你仍然需要自己做好 vault 的备份。这个态度我很欣赏,因为太多服务喜欢把自己包装成「全能方案」,最后反而让用户放松警惕。另外一个重要的注意事项是,如果你已经在用 iCloud、OneDrive 或者 Obsidian Sync 来同步你的 vault,千万不要把同一个文件夹同时交给两个同步服务管理,这几乎必然会导致数据损坏。正确的做法是把 screen.garden 管理的 Collection 文件夹排除在其他同步服务之外。

定价与适用场景

screen.garden 的定价相当简单:基础套餐 4 美元一个月,包含最多 3 个人使用,之后每增加一个人每月加 2 美元,年付的话可以免费多用一个月。和 Obsidian Sync 对比一下,后者是每人每月 4 美元(按年付是每月约 8 美元),如果团队有 3 个人,用 Obsidian Sync 需要 12 美元/月,而 screen.garden 只要 4 美元/月,而且 screen.garden 还提供了 Obsidian Sync 没有的实时协作功能。当然这个比较不完全公平,因为 Obsidian Sync 可以同步整个 vault 的所有内容,而 screen.garden 的同步是以 Collection 为单位的,但对于「需要协作」这个特定场景来说,screen.garden 的性价比显然更高。

至于适用场景,我觉得 screen.garden 特别适合这几类人:第一是小型团队,需要一起维护项目文档或者知识库,但又不想放弃 Obsidian 和 Markdown 的优势;第二是远程协作者,比如分布在不同地方的写作搭档或者研究小组,需要实时看到对方在写什么;第三是自由职业者或者独立开发者,需要和客户共享某些文档但又想保持对数据的控制权。对于纯个人用户来说,如果你只是需要多设备同步,官方的 Obsidian Sync 或者 Syncthing 这样的免费方案可能是更经济的选择;但如果你有任何协作需求,screen.garden 目前几乎是唯一的选择。

最后

体验了一段时间之后,我觉得 screen.garden 填补了 Obsidian 生态里一个很重要的空白。它没有试图把 Obsidian 变成另一个 Notion 或者 Google Docs,而是在保持 Obsidian 核心优势的前提下,巧妙地加入了实时协作能力。这种设计思路我很认可——不是什么都要自己做,而是把擅长的部分做到极致,然后和其他工具良好配合。官方在 FAQ 里提到未来计划支持 Roam Research 和 Logseq 等其他 PKM 工具,如果真能实现,那就太有意思了,意味着你和使用不同笔记工具的朋友也能一起协作。

当然,screen.garden 也不是没有缺点。作为一个相对年轻的服务,它的插件下载量目前只有 6000 多,社区生态还在建设中,遇到问题时能找到的参考资料比较有限。另外它的 Web 编辑器功能还比较基础,如果你期待一个功能完整的 Web 版 Obsidian,可能会有些失望。但总体来说,对于有实时协作需求的 Obsidian 用户,我觉得它绝对值得一试。毕竟每月 4 美元的价格不算高,还有一周的免费试用期,试试看它能不能解决你的痛点,总比继续在 Obsidian 和其他协作工具之间来回切换要强。

Clawdbot 深度调研:打造完全属于自己的全平台 AI 助手

2026-01-25 14:00:00

最近在折腾各种 AI 工具的时候,发现了一个有意思的现象:市面上大部分 AI 助手要么被牢牢绑定在某个特定平台上(比如只能在 Discord 里用的机器人),要么就是完全依赖某家公司的 SaaS 服务,你的对话数据都在别人的服务器上。作为一个对隐私比较在意的人,我一直在想,能不能有一个完全由自己掌控、可以在所有常用聊天软件里使用的 AI 助手呢?直到我在 GitHub 上发现了 [[Clawdbot]] 这个项目,才发现原来真的有人在认真解决这个问题。

这个项目最吸引我的地方在于它的定位:不是一个简单的聊天机器人,而是一个运行在你自己设备上的”个人 AI 助理”。它通过统一的网关连接多种服务和 AI 模型,让你真正拥有对数据和功能的完全控制权。这种设计理念和我之前用过的那些中心化服务完全不同,让我产生了深入研究的兴趣。

为什么需要 Clawdbot

在深入了解 Clawdbot 之前,我先说说自己遇到的实际问题。我平时工作中会用到 [[Slack]]、[[Discord]],和朋友家人联系用 [[Telegram]]、微信,每个平台都有各自的 AI 机器人,但它们互相独立,上下文无法共享。比如我在 Telegram 上和 AI 讨论了一个技术问题,到了 Discord 上想继续这个话题,就得重新解释一遍,非常低效。

更重要的是数据隐私问题。大部分第三方 AI 服务都会存储你的对话记录,虽然它们声称会保护隐私,但你永远不知道这些数据会不会被用于训练模型或者其他目的。对于一些敏感的工作讨论或私人对话,我总是不太放心。而 Clawdbot 采用的”本地优先”设计,让所有数据都流经你自己的设备,从根本上解决了这个顾虑。这种掌控感是使用任何 SaaS 服务都无法获得的。

核心特性体验

Clawdbot 的设计哲学可以用两个词概括:Local-first 和 Own your data。这不是空洞的口号,而是实实在在体现在架构设计中的理念。经过几天的深度使用,我发现它确实做到了这两点,而且在易用性上也没有因为开源和自托管而打折扣。

全渠道集成的实际体验

Clawdbot 支持的平台列表让我眼前一亮:[[WhatsApp]]、[[Telegram]]、[[Slack]]、[[Discord]]、[[Signal]]、iMessage、Microsoft Teams,甚至还有 WebChat。我实际测试了 Telegram 和 Discord 两个平台,配置过程比想象中简单很多。最让我惊喜的是,在这些不同平台上的对话可以共享上下文,这意味着我可以在 Telegram 上开始一个讨论,然后在 Discord 上无缝继续,AI 依然记得之前的对话内容。这种跨平台的连续性体验,是我在其他任何 AI 助手上都没有遇到过的。

不仅如此,Clawdbot 还支持多模态交互。除了常规的文字对话,它还能处理语音输入(支持 Voice Wake 和 Talk Mode),可以识别图像内容。更酷的是它内置了一个叫做 Live Canvas 的功能,类似于 [[Claude]] 的 Artifacts,但完全由你控制。当 AI 生成代码或者创建可视化内容时,可以实时在这个 Canvas 上展示,你可以直接交互和修改。这种即时反馈的体验让 AI 助手不再只是一个”回答问题的工具”,而真正成为了协作伙伴。

模型选择的灵活性

虽然项目名字致敬了 Claude(名字中的 Clawd 就是 Claude 的变体),但 Clawdbot 实际上是模型无关的。它通过 OAuth 支持 [[Anthropic]](Claude Pro/Max)和 [[OpenAI]](ChatGPT/Codex)等多种模型。官方文档中强烈推荐使用 Anthropic Pro 或 Max 配合 Opus 4.5,理由是需要长上下文能力来处理跨平台的连续对话。我实际使用下来,确实感觉 Claude 的表现更稳定,特别是在处理复杂的多轮对话时,它能更好地理解上下文的细微变化。

不过这里有个小细节让我印象深刻:Clawdbot 并不强制你使用某个模型,你完全可以根据不同的任务场景切换模型。比如需要代码生成时用 GPT-4,需要深度分析时用 Claude Opus,这种灵活性是很多封闭平台做不到的。这也体现了开源项目的一个优势——你可以根据自己的需求和预算来优化配置。

Lobster 工作流的威力

Clawdbot 内置的 Lobster 工作流系统是我用过最有意思的功能之一。它本质上是一个工作流 Shell,可以将各种工具和技能组合成自动化的流水线。和传统的聊天机器人不同,Lobster 不仅能回答问题,还能真正执行任务。举个例子,我配置了一个工作流:每天早上从 RSS 源抓取科技新闻,让 AI 总结要点,然后发送到我的 Telegram。整个过程完全自动化,而且因为是本地运行,响应速度非常快。

更进一步,你还可以把多个工作流串联起来。比如我还配置了一个工作流,当在 Discord 上有人提到某个关键词时,自动触发一个研究任务,AI 会去搜索相关资料,整理成文档,然后发送到 Slack 的特定频道。这种能力已经超越了”助手”的范畴,更像是一个可以自主执行任务的 Agent。这让我想起了之前研究的 [[AutoGPT]] 和 [[LangChain]],但 Clawdbot 的优势在于它和聊天平台的深度集成,让自动化任务的触发和结果分发都变得更自然。

架构设计的精妙之处

深入了解 Clawdbot 的架构后,我发现它的设计真的很用心。整个系统分为三个核心组件:Gateway、Nodes 和 Channels,这种模块化的设计不仅让系统更灵活,也大大降低了部署和维护的复杂度。

Gateway 是整个系统的控制平面,通常运行在你的服务器或本地电脑上。它负责处理所有的逻辑路由、会话管理和事件调度。我把它部署在一台家里的 NAS 上,24 小时运行,响应速度非常快。Gateway 使用 WebSocket 协议来管理会话,这意味着所有的数据流都经过你的设备,而不是第三方服务器。这种设计让我在使用过程中非常放心,因为我知道所有的对话内容都在我的掌控之中。

Nodes 是一个很有创意的设计。你可以在 iOS、Android 或 macOS 设备上安装 Node 应用,它们可以作为”传感器”或”执行器”来工作。比如我在手机上安装了 Node 应用后,AI 就可以调用手机的摄像头拍照、使用麦克风录音,甚至执行一些本地命令。这种设计让 AI 助手不再局限于云端,而是可以真正和你的物理设备交互。我试过让 AI 用手机摄像头识别桌上的物品,然后在 Telegram 上告诉我是什么,整个过程非常流畅。

Channels 是连接各种聊天平台的适配器层。每个 Channel 负责对接一个特定的平台,处理消息的接收和发送、格式转换等细节。这种设计的好处是你可以很容易地扩展支持新的平台,只需要实现一个新的 Channel 适配器就行。我注意到项目的 GitHub 仓库里已经有人贡献了一些额外的 Channel,比如对 Matrix 协议的支持,这就是开源社区的力量。

这种三层架构的另一个优势是部署灵活。你可以把 Gateway 部署在云端的 Docker 容器中,同时在手机上运行 Node 应用,实现云端处理逻辑、本地处理感知的混合部署模式。这对于既想要云端的稳定性,又想要本地设备的即时响应能力的用户来说,是一个完美的方案。

部署体验记录

Clawdbot 的部署过程是我体验过的开源项目中最友好的之一。项目提供了一个非常人性化的 CLI 向导工具,大大降低了技术门槛。即使你不是很熟悉 Node.js 或者系统服务配置,也能比较轻松地把它跑起来。

安装过程

整个安装过程只需要两个命令。首先确保你的系统上安装了 Node.js 22 或更高版本(官方推荐使用 pnpm 作为包管理器),然后运行:

npm install -g clawdbot@latest
clawdbot onboard --install-daemon

onboard 命令会启动一个交互式向导,引导你完成所有必要的配置。它会问你一些问题,比如想把工作区设置在哪个目录、使用哪个 AI 模型、需要连接哪些聊天平台等。整个过程非常流畅,每一步都有清晰的说明。我特别喜欢的一点是,向导会自动检测你的系统类型(macOS、Linux 等),然后帮你注册为系统服务。在 macOS 上它会创建 launchd 配置,在 Linux 上则是 systemd 服务,确保 Clawdbot 可以开机自启,常驻后台运行。

连接聊天平台

连接不同的聊天平台有不同的配置方式。以 Telegram 为例,你只需要先在 Telegram 上通过 BotFather 创建一个 bot,获取 Bot Token,然后在配置文件中添加:

{
  "channels": {
    "telegram": {
      "botToken": "123456:ABCDEF......"
    }
  }
}

对于 WhatsApp、Signal 这类需要扫码登录的服务,Clawdbot 提供了专门的 CLI 命令来处理认证流程:

clawdbot channels login

运行这个命令后,终端会显示一个二维码,你用手机扫码就能完成登录。整个过程和你平时在网页版 WhatsApp 上登录是一样的,非常直观。我在配置 WhatsApp 时遇到了一个小问题:第一次扫码后没有成功,后来发现是因为我的手机和运行 Clawdbot 的服务器不在同一个网络环境下。调整网络配置后,第二次就顺利连接上了。

实际运行体验

部署完成后,Clawdbot 会在后台安静地运行。你可以通过 CLI 命令查看运行状态、查看日志、管理会话等。我发现它的资源占用非常低,即使在一台配置不高的 NAS 上运行,CPU 使用率通常都在 5% 以下,内存占用也就几百 MB。这对于需要 24 小时运行的服务来说,是非常理想的。

有一点需要注意的是,如果你选择使用 Claude API,需要自己准备 API Key。虽然 Claude Pro 的订阅包含了网页版的无限使用,但 API 是单独收费的。不过好消息是,Clawdbot 支持通过 OAuth 直接使用你的 Claude Pro 账号,这样就不需要额外付费了。我目前用的就是这种方式,体验和直接用 Claude 网页版几乎一样,只是多了跨平台的便利性。

安全性考量

作为一个可以连接真实聊天软件并且能执行本地命令的工具,安全性是我非常关心的问题。Clawdbot 在这方面做了很多细致的设计,让我在使用过程中比较放心。

首先是配对模式(Pairing Mode)。默认情况下,任何陌生人都无法直接和你的 Clawdbot 对话。只有经过你手动批准(Approve)或者通过 Pairing Code 授权的用户,才能使用这个 AI 助手。这个设计很像家用路由器的 WPS 配对,既保证了安全性,又不会让授权过程过于繁琐。我在 Telegram 上第一次尝试和 bot 对话时,它会提示我需要先完成配对,然后给我一个配对码,我在服务端确认这个配对码后,才能正常使用。

对于群组聊天或者非主会话(non-main sessions),Clawdbot 提供了一个很有意思的沙箱机制。你可以配置让这些会话运行在 Docker 容器中,限制 AI 可以执行的 Shell 命令范围。这样即使有人在群组里尝试通过提示词注入来让 AI 执行恶意命令,也会被沙箱拦截。我自己的配置是,只有我个人的私聊会话才允许执行系统命令,群组中的会话都运行在沙箱模式下。这种分层的安全策略在实际使用中非常实用。

另一个值得一提的安全特性是日志和审计。Clawdbot 会记录所有的交互日志,包括谁发送了什么消息、AI 执行了什么操作等。这些日志都存储在本地,你可以随时查看和分析。如果发现异常行为,可以很容易地追溯到源头。这种透明度是使用封闭平台的 AI 服务无法获得的,你永远知道自己的助手在做什么。

最后

使用 Clawdbot 几周下来,我觉得它真正实现了”个人 AI 助理”这个概念。它不是一个简单的聊天机器人,而是一个可以深度集成到你日常工作流中的智能系统。跨平台的连续对话体验、本地优先的数据控制、强大的自动化能力,这些特性组合在一起,让它在众多 AI 工具中显得很特别。

对我来说,Clawdbot 最大的价值在于它给了我完全的控制权。我不需要担心数据隐私问题,不需要受限于某个特定平台,可以根据自己的需求自由定制功能。这种感觉就像是从租房搬到了自己的房子——虽然需要自己维护,但那种掌控感和安全感是无可替代的。

当然,Clawdbot 也不是完美的。它的学习曲线相比于直接使用 ChatGPT 网页版还是要陡一些,需要一定的技术基础来完成部署和配置。而且作为一个相对年轻的开源项目,文档的完整性和社区规模还有提升空间。但这些都是开源项目成长过程中必经的阶段,从项目的活跃度来看,开发团队还是很用心在维护和改进的。

如果你和我一样,对现有的封闭 AI 生态不太满意,想要动手打造一个真正属于自己的智能助手,那 Clawdbot 绝对值得你花时间去研究和尝试。这不仅是一个工具,更是一种理念——在 AI 时代,我们依然可以保持对自己数据和隐私的完全掌控。

更多详情可以访问 Clawdbot 的 GitHub 仓库或查看官方文档。项目还在活跃开发中,如果你在使用过程中发现问题或者有好的想法,也欢迎参与到社区讨论中来。

推荐我使用的 Agent Skills

2026-01-19 14:00:00

随着 AI 编程助手的快速发展,[[Claude Code]]、[[Codex]]、[[Gemini CLI]] 等工具已经成为开发者日常工作中不可或缺的伙伴。然而,这些工具的默认功能往往只是冰山一角。通过安装和配置 Agent Skills,我们可以大幅扩展这些 AI 助手的能力,让它们更加智能、更加专业。

在使用 AI 编程助手的过程中,我发现 Anthropic 官方的 Skills 仓库提供了一个很好的学习起点。通过安装 skill-creator,我们可以学习如何创建自定义的 Skill,进而根据自己的需求定制专属的 AI 助手能力。

本文将分享我在日常开发中常用的 Agent Skills,并详细介绍它们的安装和使用方法。

superpowers

superpowers 是我最常使用的 Agent Skills 集合,也是功能最全面的专业开发工作流增强套件。这个仓库的设计理念是将软件开发中的最佳实践融入到 AI 助手的行为模式中,让 AI 不仅能写代码,更能以专业开发者的思维方式工作。

该仓库包含了多个核心开发技能,涵盖了从代码编写、调试、测试到审查的完整开发生命周期。每个技能都经过精心设计,遵循行业标准和最佳实践。比如 systematic-debugging 技能实现了结构化的调试流程,test-driven-development 技能则引导 AI 助手先写测试再写实现代码。这些技能不是简单的提示词模板,而是完整的工作流程,能够确保代码质量和开发效率。

安装方法

在 [[Claude Code]] 中,使用插件市场安装:

/plugin marketplace add obra/superpowers

安装完成后,所有的 superpowers 技能都会自动加载。

使用说明

superpowers 提供了多个专业技能,每个技能都针对特定的开发场景:

  • systematic-debugging:系统化调试流程,帮助你快速定位和解决问题
  • test-driven-development:测试驱动开发工作流,确保代码质量
  • code-review-ai:AI 驱动的代码审查,发现潜在问题
  • using-superpowers:入门指南,介绍如何使用这些技能

使用时,只需在对话中提到相关场景,Claude Code 会自动激活对应的技能。例如,当你说”帮我调试这个问题”时,systematic-debugging 技能会自动启用。

agents

agents 是一个功能全面的 Agent Skills 插件集合,采用了模块化的架构设计,涵盖了从前端到后端、从基础设施到安全的各个开发领域。这个仓库的特点是将不同技术栈和开发场景的专业知识封装成独立的插件,让开发者可以按需加载。

与 superpowers 注重开发流程不同,agents 更侧重于技术栈的深度。每个插件都包含了该领域的专业知识、最佳实践和常见问题的解决方案。比如 python-development 插件包含了 Python 的类型提示、异步编程、包管理等专业技能;kubernetes-operations 插件则涵盖了 K8s 的部署、配置、监控和故障排查。这种设计让 AI 助手能够在特定技术领域表现得像一个资深专家。

安装方法

首先添加插件市场:

/plugin marketplace add wshobson/agents

然后根据需要安装特定领域的插件:

# 基础开发插件
/plugin install python-development          # Python 开发,包含 5 个专业技能
/plugin install javascript-typescript       # JS/TS 开发,包含 4 个专业技能
/plugin install backend-development         # 后端 API 开发,包含 3 个架构技能

# 基础设施和运维
/plugin install kubernetes-operations       # K8s 部署,包含 4 个部署技能
/plugin install cloud-infrastructure        # AWS/Azure/GCP 云服务,包含 4 个云技能

# 安全和质量
/plugin install security-scanning           # SAST 安全扫描技能
/plugin install code-review-ai             # AI 代码审查

# 全栈编排
/plugin install full-stack-orchestration   # 多 Agent 工作流

使用说明

agents 采用模块化设计,你可以只安装需要的插件,避免加载不必要的功能。每个插件都是独立的,互不干扰。

建议根据你的技术栈选择相应的插件。例如,如果你主要做 Python 后端开发,可以安装 python-development 和 backend-development;如果涉及 DevOps 工作,则加装 kubernetes-operations 和 cloud-infrastructure。

Obsidian Agent Skills

如果你和我一样使用 [[Obsidian]] 来管理知识库,那么 Obsidian Agent Skills 将是一个非常实用的扩展。这个技能集专门为 Obsidian 生态设计,让 AI 助手能够深度理解和操作 Obsidian 的特有语法和功能。

Obsidian 有自己独特的 Markdown 方言,包括双向链接(wikilinks)、可折叠的 callouts、YAML frontmatter properties、JSON Canvas 画布文件、Obsidian Bases 数据库等特性。这些功能虽然强大,但语法复杂,手动编辑容易出错。Obsidian Agent Skills 通过系统化的语法规则和示例,让 AI 助手能够正确生成和修改这些内容,相当于为 AI 配备了 Obsidian 专家的知识。无论是创建符合规范的笔记、建立知识网络,还是维护数据库视图,AI 都能准确完成。

安装方法

npx skills i kepano/obsidian-skills

使用说明

安装后,AI 助手将能够:

  • 创建和编辑 Obsidian Flavored Markdown 文件
  • 正确处理 wikilinks 双链语法
  • 生成符合 Obsidian 规范的 frontmatter 属性
  • 使用 callouts 语法创建漂亮的提示框
  • 操作 JSON Canvas 文件和 Obsidian Bases 数据库

这对于维护 Obsidian 知识库的开发者来说非常方便,AI 助手能够直接帮你创建和编辑笔记,而不需要手动调整格式。

Vercel Agent Skills

Vercel Agent Skills 专为使用 [[Vercel]] 平台的开发者设计,提供了部署、配置和优化 Vercel 项目的能力。作为目前最流行的前端应用部署平台之一,Vercel 有着丰富的配置选项和最佳实践。

这个技能集整合了 Vercel 官方文档中的关键知识点,包括 vercel.json 配置文件的各种选项、环境变量的管理、自定义域名的设置、边缘函数(Edge Functions)的使用、性能优化建议等。它特别针对 Next.js 应用进行了优化,因为 Vercel 是 Next.js 的母公司,两者的集成度最高。有了这个技能,AI 助手能够帮你快速解决部署问题,优化构建配置,甚至预测可能出现的部署错误。

安装方法

npx add-skill vercel-labs/agent-skills

使用说明

该技能集成了 Vercel 的最佳实践,能够帮助你:

  • 快速配置 vercel.json 部署文件
  • 优化 [[Next.js]] 项目的部署设置
  • 处理环境变量和域名配置
  • 解决常见的部署问题

特别适合使用 Next.js 和 Vercel 部署的项目。

UI UX

UI UX skill 是前端开发的利器,专门用于创建美观、可访问、符合现代设计标准的用户界面。这个技能将 UI/UX 设计的专业知识和前端开发的最佳实践结合在一起,让 AI 助手能够生成生产级别的界面代码。

该技能涵盖了现代 Web 开发中的多个关键领域:设计系统的实现、组件库的构建、响应式设计的最佳实践、无障碍访问(WCAG)标准的遵循、性能优化策略等。它不仅关注代码的功能性,更注重用户体验的细节,比如动画的流畅性、交互的反馈、布局的和谐等。对于需要频繁开发 UI 组件的前端工程师来说,这个技能能显著提升开发效率和代码质量。

安装方法

/plugin marketplace add nextlevelbuilder/ui-ux-pro-max-skill

使用说明

这个技能非常适合前端开发,能够:

  • 生成符合设计系统的 UI 组件
  • 确保无障碍访问(a11y)最佳实践
  • 创建响应式布局
  • 实现现代化的交互效果

当你需要实现复杂的 UI 组件时,这个技能能够提供专业的指导和代码生成。它理解现代前端框架([[React]]、[[Vue]]、[[Angular]])的设计模式,并能生成高质量的组件代码。

Manim Skills

Manim Skills 是专门为数学动画创作而设计的技能集,基于著名 YouTube 频道 3Blue1Brown 创始人 Grant Sanderson 开发的 [[Manim]] 框架。如果你需要创建数学可视化、教育视频或科学演示动画,这个技能将是你的得力助手。

Manim(Mathematical Animation Engine)是一个用 Python 编写的动画引擎,专门用于创建精确、优雅的数学演示动画。这个技能集包含了两个版本的最佳实践指南:Manim Community Edition(社区维护的稳定版本)和 ManimGL(支持 OpenGL 渲染的交互式版本)。通过整合经过实战验证的代码示例、场景构建模式、动画技巧和最佳实践,这个技能让 AI 助手能够理解 Manim 的独特语法和动画概念,帮助你快速生成符合规范的动画代码,而不需要从头学习复杂的 API 和动画原理。

安装方法

# 安装 Manim Community Edition 最佳实践
npx skills add adithya-s-k/manim_skill/skills/manimce-best-practices

# 或安装 ManimGL 最佳实践
npx skills add adithya-s-k/manim_skill/skills/manimgl-best-practices

使用说明

安装后,AI 助手将能够:

  • 生成符合 Manim 规范的数学动画代码
  • 创建各种数学对象的可视化(函数图像、几何图形、代数结构等)
  • 实现流畅的场景转换和动画效果
  • 提供文本渲染和 LaTeX 数学公式的最佳实践
  • 优化渲染性能和动画质量

这个技能特别适合:

  • 教育工作者制作教学视频
  • 科研人员创建论文演示
  • 内容创作者制作科普视频
  • 学习数学可视化编程的开发者

Remotion Skills

Remotion Skills 是为 [[Remotion]] 框架量身打造的 Agent Skills,Remotion 是一个使用 [[React]] 以编程方式创建视频的革命性框架。如果你需要批量生成视频、创建动态视频内容或构建视频生成应用,这个技能将为你的 AI 助手注入 Remotion 的专业知识。

[[Remotion]] 的核心理念是”用代码创建视频”,它让你可以使用熟悉的 React 组件来构建视频内容,所有的动画、过渡效果都通过 JavaScript 代码精确控制。这个技能集包含了 30 多个详细指南,涵盖了从基础的视频合成、动画制作,到高级的 3D 内容集成、数据可视化、字幕处理等各个方面。通过这个技能,AI 助手能够理解 Remotion 的独特开发模式、时间轴系统、插值曲线等核心概念,帮助你快速生成符合 Remotion 最佳实践的视频项目代码。

安装方法

# 使用 npx 安装
npx skills add remotion-dev/skills

# 或在创建新项目时自动安装
bun create video

使用说明

安装后,AI 助手将能够:

  • 创建 Remotion 视频合成和动画项目
  • 处理各种资源(图片、视频、音频、字体)的导入和使用
  • 实现文本渲染、字幕显示和排版效果
  • 集成 3D 内容(Three.js 和 React Three Fiber)
  • 处理 Lottie 动画和 GIF 同步
  • 实现数据可视化和图表动画
  • 优化视频元数据和性能
  • 集成 Mapbox 地图和 TailwindCSS 样式

这个技能特别适合:

  • 需要批量生成视频的营销团队
  • 创建动态视频内容的开发者
  • 构建视频生成 SaaS 应用的创业者
  • 自动化视频制作流程的内容创作者
  • 需要程序化视频编辑的技术团队

值得一提的是,Remotion 的创始人 Jonny Burger 曾展示了一个完全通过 AI 助手和这个技能创建的视频项目,证明了这个技能在实际应用中的强大能力。

SEO

这是我自己维护的 SEO 相关技能集合,专注于帮助开发者优化网站的搜索引擎表现。作为一个技术型内容创作者,我深知 SEO 对于网站流量的重要性,因此整理了这套技能来自动化 SEO 优化工作。

这个技能集整合了搜索引擎优化的核心知识,包括语义化 HTML 的使用、meta 标签的优化、Open Graph 和 Twitter Card 的配置、结构化数据(JSON-LD)的生成、sitemap 的创建、robots.txt 的配置等。它还包含了针对不同类型网站(博客、电商、企业站)的 SEO 策略建议。通过这个技能,AI 助手能够在你开发网站时自动考虑 SEO 因素,从技术层面提升网站的搜索可见性。

安装方法

/plugin marketplace add einverne/agent-skills

使用说明

该技能能够:

  • 分析网站的 SEO 问题
  • 生成结构化数据(Schema.org)
  • 优化网页的 meta 标签
  • 提供 SEO 最佳实践建议

特别适合开发营销型网站或需要注重 SEO 的项目。

Claude Code Templates

Claude Code Templates 提供了一系列实用的项目模板和工作流模板,是学习如何构建自定义 Agent Skills 的优秀范例集。这个仓库收集了各种场景下的最佳实践模板,展示了如何将具体的工作流程转化为可复用的技能。

仓库中的模板涵盖了软件开发的多个环节,从项目初始化、代码规范设置,到文档生成、代码审查流程。每个模板都经过实战检验,包含了详细的步骤说明和示例。特别值得一提的是 content-creator 模板,它展示了如何为内容创作这种非传统开发场景定制 AI 助手,包括文章结构规划、SEO 优化建议、多语言支持等功能。通过研究这些模板,你可以学会如何针对自己的工作流程创建专属技能。

使用说明

这个仓库中的 content-creator 模板特别值得参考,它展示了如何为内容创作工作流定制 AI 助手的能力。你可以基于这些模板创建自己的工作流。

模板涵盖了多种场景:

  • 项目初始化模板
  • 文档生成工作流
  • 代码审查清单
  • 测试用例生成

通过学习这些模板,你可以更好地理解如何定制 Agent Skills。

Planning with Files

Planning with Files 是一个独特的技能,它的核心理念是”文档驱动开发”,即为每个任务生成相应的规划文档,让开发过程更加透明和可追溯。与传统的敏捷开发方法不同,这个技能强调将计划以文件形式持久化保存。

这种方法特别适合复杂项目和团队协作场景。AI 助手在接到任务后,会首先创建一个详细的规划文档,包括任务背景、技术方案、实施步骤、风险评估等内容。随着项目推进,这些文档会不断更新,记录决策过程、遇到的问题和解决方案。这样不仅确保了开发的系统性,还为项目留下了完整的历史记录,方便日后回顾和知识传承。对于需要严格文档管理的项目(如企业应用、开源项目),这个技能尤为有价值。

安装方法

/plugin marketplace add OthmanAdi/planning-with-files

使用说明

使用这个技能后,AI 助手会:

  • 在开始工作前创建详细的规划文档
  • 将任务分解为可执行的步骤
  • 跟踪任务进度和变更
  • 生成项目文档

这种方法特别适合复杂的项目,能够确保开发过程有条不紊。规划文档也成为了项目的宝贵资料,方便日后回顾和维护。

Prompt Generator

Prompt Generator 是一个元技能(meta-skill),它的作用不是直接解决开发问题,而是帮助你更好地与 AI 助手交流,生成更高质量的提示词。可以把它理解为”教你如何提问的技能”。

提示词工程(Prompt Engineering)是使用 AI 工具的关键能力。一个好的提示词应该清晰、具体、包含必要的上下文,并能引导 AI 产生期望的输出。Prompt Generator 集成了提示词工程的最佳实践,包括如何构建清晰的指令、如何提供有效的示例、如何设置合适的约束条件等。它还能分析你的需求,识别模糊或不完整的地方,并建议如何改进。对于想要深入学习 AI 助手使用技巧的开发者来说,这个技能是一个很好的学习伙伴,能够帮助你逐步掌握与 AI 高效协作的艺术。

安装方法

/plugin marketplace add huangserva/skill-prompt-generator

使用说明

这个技能能够:

  • 分析你的需求并生成优化的提示词
  • 提供提示词工程的最佳实践
  • 帮助你创建自定义的 Agent Skills
  • 优化与 AI 助手的交互效果

对于想要深入学习如何更好地使用 AI 编程助手的开发者来说,这是一个很好的学习工具。

最后

Agent Skills 极大地扩展了 AI 编程助手的能力边界。通过合理选择和配置这些技能,我们可以将 AI 助手打造成真正的开发伙伴。

在选择 Agent Skills 时,我的建议是:

  1. 从核心技能开始:superpowers 提供了最基础和最通用的能力增强
  2. 根据技术栈选择:安装与你日常工作相关的技能(agents 系列)
  3. 注重工具集成:如果使用特定工具(Obsidian、Vercel 等),相应的技能能显著提升效率
  4. 学习和定制:通过 skill-creator 和 prompt-generator 学习如何创建自己的技能

最后,记住 Agent Skills 是一个不断发展的生态。关注这些仓库的更新,尝试新的技能,找到最适合自己工作流的组合。

如果你有其他好用的 Agent Skills 推荐,欢迎在评论区告诉我。

Antigravity Agent Skills 功能介绍与实战指南

2026-01-15 14:00:00

2026 年 1 月 14 日,[[Google]] 为其 AI 驱动的开发工具 [[Antigravity]] 推出了 Agent Skills 功能。这个开放标准的技能系统让开发者可以将专业知识打包成可复用的技能包,极大地扩展了 AI 智能体的能力边界。

什么是 Agent Skills

核心概念

Agent Skills 是一套开放标准,用于将 AI 指令打包成可复用的技能包。你可以把它理解为给 AI 智能体安装的专业插件或知识模块。

每个 Skill 本质上是一个包含定义文件和可选资源的目录结构,其中核心是 SKILL.md 文件,它使用 YAML 前置元数据和自然语言指令告诉 AI 如何执行特定任务。

设计理念

Agent Skills 采用渐进式披露设计:

  1. Agent 接收所有可用技能的列表,但只看到名称和描述
  2. Agent 根据当前任务评估相关性
  3. 匹配成功后才加载完整的 SKILL.md 内容
  4. Agent 严格按照技能指令执行任务

这种设计保持了上下文窗口的高效利用,避免无关信息干扰 AI 的判断。

最早,Skills 是由 Anthropic 在 Claude 中推出,现在 Skills 已经称为了 CLI 的标准,Codex 率先支持,现在 Gemini CLI,Antigravity 都跟进了。[[Cursor]] 有类似的规则系统,但格式不同。

技能存储位置

项目级技能

存储路径:.agent/skills/<skill-name>/SKILL.md

特点:

  • 仅适用于当前工作空间
  • 优先级最高,会覆盖全局设置
  • 适合团队特定的约定和规范
  • 可以通过 [[Git]] 版本控制与团队共享

使用场景:

  • 项目特定的代码风格规范
  • 特定技术栈的最佳实践
  • 团队协作流程
  • 项目架构约束

全局技能

存储路径:~/.gemini/antigravity/skills/<skill-name>/SKILL.md

特点:

  • 在所有工作空间中可用
  • 优先级较低
  • 适合个人通用工具和习惯

使用场景:

  • 个人编码习惯
  • 通用工具集成
  • 跨项目的最佳实践
  • 常用命令快捷方式

优先级规则

当项目级和全局技能同名时:

  1. 项目级技能优先生效
  2. 全局技能被忽略
  3. 可以通过重命名避免冲突

SKILL.md 文件格式

基本结构

一个标准的 SKILL.md 文件包含两部分:

---
name: skill-name
description: 简短描述,Agent 用它判断是否需要激活此技能
---

# 技能标题

详细的执行指令,使用自然语言、代码片段或分步指南。

YAML 前置元数据

必需字段:

---
name: deploy-staging
description: 将当前分支部署到测试环境。当用户要求部署或在测试环境测试时使用
---

可选字段:

---
name: skill-name
description: 技能描述
version: 1.0.0
author: your-name
tags: [deployment, automation]
dependencies: [git, docker]
---

指令编写规范

使用强制性语言确保 Agent 严格执行:

## 执行清单

审查代码时,必须按顺序遵循此检查清单,明确覆盖每个要点:

1. 验证所有变量命名遵循 camelCase 规范
2. 检查是否存在未处理的异常
3. 确认所有函数都有 JSDoc 注释
4. 验证单元测试覆盖率达到 80% 以上

关键原则:

  • 使用命令式语言(做什么,而不是可以做什么)
  • 提供明确的步骤顺序
  • 包含验证标准
  • 说明错误处理方式

技能激活机制

自动激活流程

  1. 用户发出请求
  2. Agent 扫描所有可用技能的描述
  3. Agent 评估每个技能与任务的相关性
  4. 匹配成功的技能被完整加载
  5. Agent 按照技能指令执行任务

触发关键词优化

在 description 中使用明确的触发词:

# 好的示例
description: 生成符合 Conventional Commits 规范的提交信息。当用户要求生成提交、创建 commit 或写提交信息时使用

# 不好的示例
description: 帮助处理 Git 相关操作

技巧:

  • 包含具体的动词(生成、部署、审查、测试)
  • 说明使用场景(当用户要求…时)
  • 使用领域特定术语
  • 避免过于通用的描述

多技能协作

Agent 可以同时激活多个相关技能:

# 技能 A:Git 提交
name: git-commit-formatter
description: 格式化 Git 提交信息

# 技能 B:代码审查
name: code-reviewer
description: 审查代码质量

# 工作流:审查通过后自动生成提交

实战示例

为了让你快速上手,我整理了四个常用的 Agent Skills 示例:

  1. git-commit-formatter: Git 提交信息格式化器,自动生成符合 Conventional Commits 规范的提交信息
  2. code-reviewer: 代码审查助手,进行系统化的代码质量、安全性和性能检查
  3. deploy-staging: 部署助手,将代码部署到测试环境并执行完整的验证流程
  4. react-component-generator: React 组件生成器,自动创建符合项目规范的组件文件结构

这些示例都已经保存在我的 dotfiles 仓库中,你可以直接查看完整的 SKILL.md 定义:

查看完整示例:einverne/dotfiles/skills

如何使用这些示例

你可以直接克隆或复制这些技能到你的项目中:

# 克隆整个 skills 目录
git clone https://github.com/einverne/dotfiles.git
cp -r dotfiles/skills/* .agent/skills/

# 或者只复制特定技能
cp -r dotfiles/skills/git-commit-formatter .agent/skills/

也可以将这些技能安装为全局技能:

# 安装到全局
cp -r dotfiles/skills/* ~/.gemini/antigravity/skills/

然后在 [[Antigravity]] 中直接使用:

# 使用 git 提交格式化器
"帮我生成一个提交信息"

# 使用代码审查助手
"审查这个文件的代码质量"

# 使用部署助手
"部署到 staging 环境"

# 使用组件生成器
"创建一个 Button 组件"

最佳实践

技能设计原则

单一职责原则

每个技能专注一个明确的任务:

# 好的示例
name: git-commit-formatter
description: 格式化 Git 提交信息

name: code-reviewer
description: 审查代码质量

# 不好的示例
name: git-helper
description: 帮助处理各种 Git 操作(过于宽泛)

清晰的触发描述

描述应该包含明确的使用场景:

# 好的示例
description: 将当前分支部署到测试环境。当用户要求部署、发布到测试或在 staging 环境测试时使用

# 不好的示例
description: 部署功能

脚本作为黑盒

鼓励 Agent 通过 --help 了解脚本用法,而不是直接读取源代码:

## 使用部署脚本

运行 `./scripts/deploy.sh --help` 查看可用选项

常用命令:

- `./scripts/deploy.sh --env staging` - 部署到测试环境
- `./scripts/deploy.sh --env production` - 部署到生产环境

迭代改进

根据实际使用情况不断完善技能:

  1. 记录常见问题
  2. 添加缺失的说明
  3. 优化触发关键词
  4. 补充边界情况处理

技能测试策略

创建测试场景验证技能效果:

## 测试场景

### 场景一:标准流程

输入:生成提交信息
前置条件:暂存区有变更
预期:生成符合规范的提交信息

### 场景二:边界情况

输入:生成提交信息
前置条件:暂存区为空
预期:提示用户先添加文件

### 场景三:错误处理

输入:生成提交信息
前置条件:不在 Git 仓库中
预期:友好的错误提示

版本控制

使用 [[Git]] 管理技能:

# 项目技能
cd .agent/skills
git add .
git commit -m "feat(skills): 添加代码审查技能"

# 全局技能
cd ~/.gemini/antigravity/skills
git init
git remote add origin https://github.com/username/my-skills.git

好处:

  • 追踪变更历史
  • 团队协作共享
  • 版本回滚能力
  • 跨项目复用

团队协作

技能共享

通过 Git 仓库共享团队技能:

# 克隆团队技能库
git clone https://github.com/team/antigravity-skills.git

# 链接到项目
cd your-project
mkdir -p .agent/skills
cp -r ../antigravity-skills/* .agent/skills/

技能标准化

团队应制定统一规范:

# 技能命名规范

- 使用 kebab-case
- 动词-名词结构
- 例如:deploy-staging, review-code, format-commit

# 文件组织规范

skill-name/
├── SKILL.md # 必需
├── README.md # 可选,详细说明
├── scripts/ # 可选,脚本文件
└── templates/ # 可选,模板文件

# 文档规范

- 每个技能必须有清晰的描述
- 必须说明使用场景和触发条件
- 必须提供示例输出
- 必须说明错误处理方式

进阶技巧

技能组合

创建工作流技能,组合多个基础技能:

---
name: pr-workflow
description: 完整的 Pull Request 工作流。当用户要求创建 PR、提交审查或准备合并时使用
---

# Pull Request 完整工作流

## 工作流程

执行以下步骤,按顺序完成 PR 准备:

1. 代码审查(使用 code-reviewer 技能)

   - 如发现严重问题,停止流程并要求修复

2. 运行测试套件

   - `npm test`
   - 如测试失败,停止流程

3. 生成提交信息(使用 git-commit-formatter 技能)

   - 格式化最终的提交

4. 推送到远程

   - `git push origin HEAD`

5. 创建 Pull Request

   - 运行 `gh pr create`
   - 填充审查清单
   - 添加相关标签

6. 通知团队
   - 在团队频道发送 PR 链接

条件执行

在技能中实现条件逻辑:

## 部署决策树

根据目标环境执行不同流程:

如果目标是测试环境:

1. 运行快速测试:`npm run test:unit`
2. 构建:`npm run build:staging`
3. 部署:`./scripts/deploy-staging.sh`

如果目标是生产环境:

1. 确认用户意图:询问"确认要部署到生产环境吗?"
2. 运行完整测试:`npm run test:all`
3. 检查代码覆盖率:必须 ≥80%
4. 构建:`npm run build:production`
5. 创建备份:`./scripts/backup-production.sh`
6. 部署:`./scripts/deploy-production.sh`
7. 验证:运行健康检查
8. 通知:发送部署通知

动态参数

处理用户提供的参数:

## 参数处理

支持以下占位符:

- `{filename}`: 用户指定的文件名
- `{directory}`: 用户指定的目录
- `{branch}`: 目标分支名称
- `{environment}`: 部署环境(staging/production)

示例:
用户输入:"审查 src/api/user.ts"
解析为:filename = "src/api/user.ts"

用户输入:"部署到 staging"
解析为:environment = "staging"

外部工具集成

调用命令行工具:

## 工具集成

### 代码格式化

运行 Prettier:

```bash
prettier --write {files}
```

静态分析

运行 ESLint:

eslint {files} --fix

类型检查

运行 TypeScript:

tsc --noEmit

测试覆盖率

生成覆盖率报告:

npm test -- --coverage

每个工具调用后检查退出码:

  • 0:成功,继续下一步
  • 非 0:失败,显示错误并停止流程

## 常见问题

### 技能不生效

可能原因和解决方案:

1. 路径配置错误
   - 确认技能位于正确的目录
   - 项目级:`.agent/skills/`
   - 全局:`~/.gemini/antigravity/skills/`

2. YAML 格式错误
   - 验证前置元数据格式
   - 使用 YAML 验证工具检查语法
   - 确保 name 和 description 字段存在

3. 描述不够明确
   - 添加更多触发关键词
   - 说明具体使用场景
   - 使用用户可能输入的自然语言

4. 技能名称冲突
   - 检查是否存在同名技能
   - 项目级技能会覆盖全局技能
   - 重命名技能避免冲突

### 调试技能

启用详细日志查看执行过程:

```bash
# 查看 Antigravity 日志
antigravity --verbose

# 检查哪些技能被加载
antigravity skills list

# 验证技能格式
antigravity skills validate

分析 Agent 行为:

  • Agent 考虑了哪些技能
  • 每个技能的匹配分数
  • 为什么选择或忽略某个技能
  • 技能执行的详细步骤

性能优化

  1. 精简技能描述

    • 描述尽量简洁
    • 只在必要时加载完整内容
  2. 避免冗余指令

    • 删除重复说明
    • 引用而不是复制
  3. 使用缓存

    • 对重复操作使用缓存
    • 避免重复的文件读取
  4. 并行执行

    • 独立任务并行运行
    • 使用异步操作

社区资源

社区技能库

推荐的社区技能仓库:

  1. Antigravity Awesome Skills

    • 62+ 高质量技能
    • 覆盖六大领域
    • 包含官方和社区贡献
  2. 领域分类:

    • 创意与设计:UI/UX 设计、可视化
    • 开发:TDD、调试、React 模式
    • 网络安全:渗透测试、安全检查
    • 自动化:启动引擎、CI/CD
    • 策略:产品管理、内容创作
    • 基础设施:Linux 脚本、[[Git]] 工作流

总结

Agent Skills 为 [[Antigravity]] 带来了强大的可扩展性,让开发者可以:

  1. 封装领域专业知识为可复用技能
  2. 标准化团队开发流程和规范
  3. 自动化重复性工作流程
  4. 提升 AI 助手的专业能力

关键要点:

  • Skills 使用简单的 Markdown 格式,易于创建和维护
  • 渐进式披露设计保持了上下文效率
  • 项目级和全局技能支持灵活的组织方式
  • 开放标准保证了跨平台兼容性
  • 社区生态提供了丰富的技能资源

开始创建你的第一个 Agent Skill,让 AI 成为真正理解你项目和团队的智能助手。

reference

Gemini CLI Agent Skills 功能介绍与上手指南

2026-01-14 14:00:00

[[Gemini CLI]] 最近推出了一个非常强大的新功能,名为 [[Agent Skills]]。这个功能极大地扩展了命令行 AI 助手的边界,允许用户根据自己的需求定制专业的技能包。

什么是 Agent Skills

Agent Skills 是 [[Gemini CLI]] 的一个强大扩展机制,它允许用户为 AI 助手定制专门的能力和工作流程。可以将 Skills 理解为给 AI 安装的专用插件或知识包。

核心概念

默认情况下,通用大语言模型虽然知识广博,但在处理特定领域的复杂任务时,往往缺乏:

  • 领域专属的上下文知识
  • 标准化的执行步骤
  • 特定工具链的集成
  • 项目特定的最佳实践

Agent Skills 通过以下方式解决这些问题:

  1. 定义专业领域的规则和指令
  2. 封装可重复使用的工作流程
  3. 集成自定义脚本和工具
  4. 提供领域特定的上下文信息

工作原理

当你在对话中提出需求时,[[Gemini CLI]] 会:

  1. 分析你的请求内容和上下文
  2. 匹配已安装的 Skills 描述
  3. 自动激活最相关的技能
  4. 按照 Skill 中定义的流程执行任务

这种机制让 AI 助手从通用工具进化为领域专家,能够深入理解你的工作场景并提供专业化的支持。

如何在 Gemini CLI 中使用 Agent Skills

使用 Agent Skills 功能主要涉及安装配置、创建自定义技能和日常使用三个环节。

第一步:安装和配置

检查版本支持

首先确认你的 [[Gemini CLI]] 版本支持 Agent Skills 功能。你可以通过以下命令检查:

gemini --version

配置 Skills 目录

[[Gemini CLI]] 会在特定目录中查找 Skills 定义。通常位于:

  • macOS/Linux: ~/.config/gemini/skills/
  • Windows: %APPDATA%\gemini\skills\

你也可以在配置文件中自定义 Skills 目录位置。

第二步:创建自定义技能

Skill 的目录结构

一个标准的 Skill 由一个目录组成,基本结构如下:

skill-name/
├── SKILL.md          # 必需:技能定义文件
├── script.py         # 可选:Python 脚本
├── script.sh         # 可选:Shell 脚本
├── config.yaml       # 可选:配置文件
└── resources/        # 可选:资源文件夹
    └── template.txt

SKILL.md 文件格式

SKILL.md 是技能的核心,使用 YAML 前置元数据定义技能属性:

---
name: skill-name
description: 简短描述这个技能的用途
triggers:
  - 触发关键词1
  - 触发关键词2
version: 1.0.0
author: your-name
---

# Skill 名称

## 功能描述
详细说明这个 skill 要解决什么问题。

## 执行流程
1. 第一步操作说明
2. 第二步操作说明
3. 第三步操作说明

## 输出格式
说明期望的输出格式和内容。

## 注意事项
- 特殊情况处理
- 错误处理方式

集成脚本和工具

如果 Skill 需要执行复杂操作,可以编写配套脚本:

# script.py 示例
import sys

def process_data(input_data):
    # 处理逻辑
    return result

if __name__ == "__main__":
    input_data = sys.argv[1]
    result = process_data(input_data)
    print(result)

在 SKILL.md 中引用脚本:

## 执行步骤
1. 读取用户输入
2. 执行脚本:`python script.py {input}`
3. 返回处理结果

第三步:使用技能

查看已安装的技能

使用以下命令查看当前可用的技能列表:

/skills list

或查看特定技能的详细信息:

/skills info skill-name

自动激活机制

在日常对话中,你不需要显式调用技能。[[Gemini CLI]] 会根据以下因素自动激活相关技能:

  1. 关键词匹配:识别对话中的触发关键词
  2. 上下文分析:理解任务的领域和类型
  3. 历史记录:参考之前使用过的技能
  4. 相似度评分:计算请求与技能描述的匹配度

当技能被激活时,AI 会:

  • 通知你哪个技能被启用
  • 按照技能中定义的流程执行任务
  • 遵守技能中的规则和约束
  • 使用技能提供的工具和资源

手动激活技能

如果需要强制使用特定技能,可以在对话中明确指定:

使用 git-commit-helper 技能帮我生成提交信息

或使用命令:

/skills use skill-name

实用示例

示例一:Git 提交信息生成助手

这个技能可以根据代码变动自动生成符合 [[Conventional Commits]] 规范的提交信息。

创建技能目录

在 Skills 目录下创建 git-commit-helper 文件夹:

mkdir -p ~/.config/gemini/skills/git-commit-helper
cd ~/.config/gemini/skills/git-commit-helper

编写 SKILL.md

创建 SKILL.md 文件,内容如下:

---
name: git-commit-helper
description: 根据 git diff 生成符合 Conventional Commits 规范的提交信息
triggers:
  - 提交信息
  - commit message
  - git commit
  - 生成提交
version: 1.0.0
author: einverne
---

# Git 提交信息生成助手

## 功能说明

分析 git 暂存区的代码变动,生成符合 Conventional Commits 规范的提交信息。

## Conventional Commits 规范

提交信息格式:`<type>(<scope>): <subject>`

类型(type):
- feat: 新功能
- fix: 修复 bug
- docs: 文档更新
- style: 代码格式调整
- refactor: 重构代码
- perf: 性能优化
- test: 测试相关
- chore: 构建工具或辅助工具的变动

## 执行流程

1. 执行 `git diff --cached` 查看暂存区变更
2. 分析变更内容,识别修改类型和影响范围
3. 确定合适的 type 和 scope
4. 生成简洁明了的 subject
5. 如有必要,添加详细的 body 和 footer

## 输出格式

(): [可选的详细说明] [可选的 footer,如 BREAKING CHANGE、关闭的 issue] ``` ## 质量标准 - subject 使用动词开头,不超过 50 个字符 - subject 不以句号结尾 - body 每行不超过 72 个字符 - 使用中文或英文,保持一致 ``` #### 使用示例 配置完成后,在 [[Git]] 仓库中进行以下操作: ```bash # 添加文件到暂存区 git add . # 在 Gemini CLI 中输入 帮我生成一个提交信息 ``` [[Gemini CLI]] 会自动: 1. 检测到这是提交相关的请求 2. 激活 git-commit-helper 技能 3. 执行 `git diff --cached` 分析变更 4. 生成符合规范的提交信息 输出示例: ``` feat(auth): 添加用户登录功能 - 实现 JWT token 认证 - 添加登录表单验证 - 完善错误处理逻辑 ``` ### 示例二:代码审查助手 创建一个帮助进行代码审查的技能。 #### 创建 code-review-helper 目录结构: ``` code-review-helper/ ├── SKILL.md └── checklist.yaml ``` #### SKILL.md 内容 ```markdown --- name: code-review-helper description: 系统化地进行代码审查,检查代码质量和潜在问题 triggers: - 代码审查 - code review - 审查代码 - review version: 1.0.0 author: einverne --- # 代码审查助手 ## 审查维度 ### 代码质量 - 命名规范:变量、函数、类名是否清晰 - 代码复杂度:是否存在过度复杂的逻辑 - 重复代码:是否有可以提取的重复逻辑 - 注释质量:关键逻辑是否有适当注释 ### 功能正确性 - 逻辑完整性:功能实现是否完整 - 边界条件:是否处理了边界情况 - 错误处理:异常处理是否充分 ### 性能考虑 - 算法效率:时间和空间复杂度 - 资源使用:内存、网络、文件操作 - 并发安全:多线程场景下的安全性 ### 安全性 - 输入验证:用户输入是否经过验证 - SQL 注入:数据库操作是否安全 - XSS 防护:前端输出是否转义 - 敏感信息:是否暴露敏感数据 ### 可维护性 - 模块化:代码组织是否合理 - 测试覆盖:是否有足够的测试 - 文档完整:API 文档是否完善 ## 输出格式 按优先级分类输出问题: 严重(Critical):必须修复的问题 重要(Major):强烈建议修复 次要(Minor):可以考虑改进 建议(Suggestion):优化建议 每个问题包含: - 位置:文件名和行号 - 问题描述 - 建议方案 ``` #### 使用场景 ```bash # 审查特定文件 审查这个文件的代码质量 src/auth/login.ts # 审查 Pull Request 审查这个 PR 中的所有变更 ``` ### 示例三:文档生成助手 为项目自动生成 README 或 API 文档。 ```markdown --- name: readme-generator description: 分析项目结构,生成完整的 README 文档 triggers: - 生成 README - generate readme - 创建文档 version: 1.0.0 --- # README 生成助手 ## 分析内容 1. 项目元信息 - package.json 或 requirements.txt - 项目名称、版本、描述 2. 技术栈 - 依赖包分析 - 框架识别 3. 项目结构 - 目录组织 - 核心文件 4. 使用方式 - 安装步骤 - 配置说明 - 运行命令 ## README 模板 # {项目名称} {项目描述} ## 特性 - 特性 1 - 特性 2 ## 技术栈 - 技术 1 - 技术 2 ## 快速开始 ### 安装 {安装命令} ### 使用 {使用说明} ## 项目结构 {目录说明} ## 贡献 {贡献指南} ## 许可证 {许可证信息} ``` ## 最佳实践 ### 技能设计原则 #### 单一职责 每个 Skill 应该专注于解决一个特定问题,避免功能过于复杂。这样可以: - 提高技能的复用性 - 便于维护和更新 - 降低冲突和误触发的可能性 #### 清晰的触发词 选择准确且不易混淆的触发关键词: - 使用领域特定的术语 - 避免过于通用的词汇 - 考虑用户的自然语言习惯 - 支持中英文双语触发 #### 结构化的输出 定义明确的输出格式,包括: - 固定的信息层次结构 - 一致的格式约定 - 清晰的错误提示 - 必要的使用说明 #### 完善的文档 在 SKILL.md 中详细记录: - 技能的使用场景 - 预期的输入和输出 - 限制和注意事项 - 示例和最佳实践 ### 技能管理策略 #### 版本控制 使用 [[Git]] 管理你的 Skills 目录: ```bash cd ~/.config/gemini/skills git init git add . git commit -m "feat: 初始化 skills 仓库" ``` 这样可以: - 追踪技能的变更历史 - 在团队间共享技能 - 回滚到之前的版本 - 维护多个技能分支 #### 技能测试 创建测试用例验证技能的效果: ```markdown ## 测试用例 ### 场景一:正常情况 输入:帮我生成提交信息 预期:生成符合规范的 commit message ### 场景二:边界情况 输入:没有暂存任何文件 预期:提示用户先添加文件到暂存区 ### 场景三:错误处理 输入:当前目录不是 git 仓库 预期:友好的错误提示 ``` #### 性能优化 对于需要执行脚本的技能: - 使用缓存避免重复计算 - 并行处理独立任务 - 设置合理的超时时间 - 优化脚本的执行效率 ### 团队协作 #### 共享技能库 创建团队共享的 Skills 仓库: ```bash # 克隆团队的技能库 git clone https://github.com/your-team/gemini-skills.git cd gemini-skills # 链接到本地 skills 目录 ln -s $(pwd)/* ~/.config/gemini/skills/ ``` #### 技能标准化 团队内部应该制定技能开发规范: - 统一的命名约定 - 标准的文件结构 - 一致的文档格式 - Code Review 流程 ## 进阶技巧 ### 技能组合使用 多个技能可以协同工作,形成工作流: ```markdown --- name: full-stack-workflow description: 全栈开发工作流,组合多个技能 dependencies: - git-commit-helper - code-review-helper - readme-generator --- # 全栈开发工作流 ## 工作流程 1. 代码开发完成后,使用 code-review-helper 自检 2. 通过审查后,使用 git-commit-helper 生成提交信息 3. 提交代码到仓库 4. 如果是新项目,使用 readme-generator 生成文档 ``` ### 条件执行逻辑 在 SKILL.md 中定义条件判断: ```markdown ## 执行逻辑 ### 前置检查 1. 检查是否在 git 仓库中 - 是:继续执行 - 否:提示用户初始化 git 仓库 2. 检查是否有暂存的文件 - 是:继续执行 - 否:提示用户添加文件到暂存区 ### 主流程 根据文件类型采取不同策略: - 前端文件(.js, .ts, .vue):关注 UI 和交互 - 后端文件(.go, .py, .java):关注性能和安全 - 配置文件(.json, .yaml):关注格式和有效性 ``` ### 与外部工具集成 Skills 可以调用各种命令行工具: ```markdown ## 工具集成示例 ### 代码格式化 执行 `prettier --write {files}` 格式化代码 ### 静态分析 执行 `eslint {files}` 检查代码质量 ### 单元测试 执行 `npm test` 运行测试套件 ### 部署检查 执行 `npm run build` 验证构建成功 ``` ### 动态参数处理 使用占位符处理用户输入: ```markdown ## 参数说明 支持的占位符: - {filename}: 当前操作的文件名 - {directory}: 当前目录路径 - {branch}: 当前 git 分支 - {user_input}: 用户提供的参数 示例: 用户输入:"审查 src/auth/login.ts" 解析为:filename = "src/auth/login.ts" ``` ## 常见问题 ### 技能不生效 可能原因和解决方案: 1. 技能目录配置错误 - 检查 Skills 目录位置是否正确 - 确认目录权限是否可读 2. SKILL.md 格式错误 - 验证 YAML 前置元数据格式 - 检查是否有语法错误 3. 触发词不匹配 - 调整触发关键词 - 使用更具体的描述 4. 技能冲突 - 检查是否有多个技能的触发词重叠 - 调整技能的优先级 ### 如何调试技能 启用调试模式查看技能执行过程: ```bash # 启用详细日志 gemini --debug # 查看技能匹配过程 /skills debug ``` 分析日志输出: - 哪些技能被考虑 - 匹配分数是多少 - 为什么某个技能被选中或忽略 ### 性能优化建议 1. 减少不必要的命令执行 2. 使用缓存机制 3. 异步处理耗时操作 4. 设置合理的超时限制 ## 扩展资源 ### 官方资源 - [[Gemini CLI]] 官方文档 - Skills 开发指南 - 社区分享的技能库 ### 社区技能 浏览和使用社区贡献的技能: - GitHub 上的 gemini-skills 主题 - 官方技能市场 - 技术博客中的分享 ### 相关工具 - [[Claude Code]]: Anthropic 的命令行 AI 助手,也支持 Skills 机制 - [[GitHub Copilot]]: 代码补全和建议 - [[Cursor]]: AI 辅助的代码编辑器 ## 总结 [[Agent Skills]] 将 [[Gemini CLI]] 从通用助手转变为可深度定制的专业工具。通过编写 Markdown 配置文件,你可以: 1. 封装领域知识和最佳实践 2. 自动化重复性工作流程 3. 标准化团队协作规范 4. 提升日常开发效率 关键要点: - 保持技能的单一职责和清晰边界 - 编写详细的文档和测试用例 - 使用版本控制管理技能库 - 与团队分享和复用技能 - 持续优化和改进技能质量 开始创建你的第一个 Skill,让 AI 成为真正理解你工作方式的智能助手。

我购买了一个 DJI Mic Mini

2026-01-05 14:00:00

最近为了提升移动拍摄时的收音质量,我入手了 DJI Mic Mini。虽然大疆提供了带充电盒的套装,但我只购买了单机版本(发射器+接收器,2 TX 1 RX 版本),因为对于我日常的拍摄需求来说,本体的续航已经完全足够了。

之前我在室内录音主要使用 Blue Yeti,它的音质非常出色,但缺点也很明显——只能固定在室内使用,无法带出门。而当我尝试在户外使用手机直接录音时,往往会收录进大量周围的环境噪音,风声、车流声让素材的可用性大打折扣。为了解决这个痛点,轻便小巧且音质有保障的 DJI Mic Mini 就成了我的首选。

DJI Mic Mini 简介

DJI Mic Mini 是一款主打轻量化的无线麦克风系统。它的发射器重量极轻,佩戴在领口几乎感觉不到重量,非常适合长时间的 Vlog 拍摄或采访。

虽然体积小巧,但它的续航能力却非常惊人。发射器单次充电可以工作约 11.5 小时,接收器也能支持约 10.5 小时。这也是我没有购买充电盒的原因——对于一天的拍摄任务来说,这个续航完全绰绰有余。而且它支持快充,充电 5 分钟就能录制 1 小时,即使偶尔忘记充电也能快速回血。

另外需要注意的是,DJI Mic Mini 有一个重要的限制:和它的姐妹产品 DJI Mic 2 不同,DJI Mic Mini 发射器没有内置存储,所以无法完全脱离接收设备独立运行。

但这并不意味着它无法独立使用,你只需要某种接收设备作为中介即可。

DJI Mic 2 内配置了存储容量,大约可以录制 14 小时 32 位浮点音频,可以完全作为独立的录制设备工作。Mic Mini 则被设计为轻量级传输设备。

让 Mic Mini 直连电脑是最佳的使用方法,可以使用 USB-C 线缆或者直接将接收器连接到电脑,在电脑中选择输入音频,选择 DJI Mic Mini 即可将电脑变成录音设备。任何支持麦克风输入的应用都可以使用,Audacity,OBS Studio,Adobe Audition,GarageBand 或 QuickTime 等等。非常适合作为播客录制,YouTube 配音,在线会议录制等等。

DJI Mic Mini 虽然可以通过蓝牙连接到手机,但是只能录制 16 bit 音频,比特深度减少意味着动态范围和音色细节显著下降。iPhone 的默认相机完全不支持蓝牙麦克风输入。必须借助第三方相机比如 Blackmagic Camera,Filmic Pro,DJI Mino 等。另外如果通过蓝牙连接那么实际传输范围缩小到 3 ~ 4 米,超过 4 米音质就会出现明显下降,需要借助接收器 2.4 GHz 无线连接才能做到 100 米收音。

使用技巧

如何开机

DJI Mic Mini 的操作逻辑非常直观。

  • 开机/关机:长按侧边的电源按钮即可。

如何连接与匹配

匹配手机(蓝牙直连)

DJI Mic Mini 的发射器支持直接通过蓝牙连接手机,这对于手机摄影用户来说非常方便。

  1. 长按发射器上的对频按键(Link 按钮)约 2 秒,直到状态指示灯呈现蓝绿交替闪烁
  2. 打开手机的蓝牙设置界面。
  3. 在设备列表中找到 DJI Mic Mini-XXXXXX 并点击连接。
  4. 连接成功后,指示灯会变为蓝色常亮

注意:部分手机的原生相机 App 可能不支持蓝牙麦克风收音,此时可以使用第三方 App(如 Blackmagic Camera)或配合接收器使用。

匹配相机

如果你使用相机进行拍摄,需要配合接收器使用。

  1. 开启发射器和接收器。
  2. 通常出厂时发射器和接收器已经配对好了。如果需要重新配对,同时长按发射器和接收器的对频按键约 2 秒。
  3. 配对成功后,指示灯会变为绿色常亮
  4. 使用随机附带的 3.5mm 音频线,一头连接接收器的 OUT 接口,另一头连接相机的麦克风输入接口(MIC)。

配合 DJI 设备(如 Osmo Pocket 3 / Action 4)

如果你手持的是 DJI 的其他拍摄设备,Mic Mini 的体验会更加无缝。

  1. 在 Osmo Pocket 3 或 Action 4 的设置菜单中找到“无线麦克风”选项。
  2. 将 Mic Mini 发射器置于对频模式(蓝绿闪烁)。
  3. 在屏幕上点击连接即可直接配对,无需接收器。

DJI Mic Mini 以其极简的设计和可靠的性能,完美补足了我户外拍摄收音的短板。如果你也在寻找一款轻便的无线麦克风,它绝对值得考虑。