
1. 为什么你的 Agent 总在重复造轮子Stitch Skills 技能库到底解决什么问题如果你同时用过 Claude Code、Cursor 和 Codex CLI大概率经历过这种崩溃在 Claude Code 里调教好一套「从设计稿生成 React 组件」的流程换到 Cursor 又得把 Prompt 重写一遍新开一个项目之前攒的「提取设计系统」「批量生成多页面」的经验全部归零。Agent 越来越强但你的工作流知识却没法沉淀每次都在重复造轮子。Stitch Skills 就是冲着这个痛点来的。它是 Google Labs 开源的一套 Agent Skills 标准化方案核心价值一句话把「你怎么教 AI 做某件事」固化成一个可复用、可分发、可跨平台运行的技能包。装一次所有兼容 Agent Skills 标准的 Agent 都能直接调用。它基于 GitHub Trending 上的google-labs-code/stitch-skills项目Apache-2.0 协议目前 v1.0 版本已经内置了 12 个技能分成设计、构建、工具三大类。适合谁前端开发者、产品设计师、以及正在探索 AI 辅助开发边界的工程师。你不需要懂 Agent 底层协议只要会用npx就能在本地把技能库跑起来。这篇教程聚焦用npx在本地完成 Stitch Skills 的安装、注册与调用给出可复制的命令、目录结构和配置片段并演示一次真实的技能加载与调用验证。跟着做你能在十分钟内跑通整条 Agent Skills 流程。先说清楚一个容易误解的点SKILL.md 文件本身不会占用你的 Token 配额。Agent 框架采用渐进式加载——只在 Agent 启动时读取name description大约每个技能 100 tokens只有当你真正触发某个技能时才加载完整指令。所以装 12 个技能日常开销几乎可以忽略。这也是为什么我建议新手直接装全套而不是纠结「装多了会不会拖慢 Agent」。2. 前置准备Node.js、Agent CLI 与 TaoToken 接入配置在动手装技能之前先把地基打好。Stitch Skills 依赖 Node.js 运行npx命令同时需要一个兼容 Agent Skills 标准的 Agent 来承载技能调用。我实测下来Claude Code 的体验最顺Cursor 和 Codex CLI 也都能跑。依赖清单如下依赖版本要求说明Node.js≥ 18.0运行 npm/npx 命令Claude Code / Cursor / Codex CLI最新版任意兼容 Agent Skills 标准的 AgentStitch MCP Server已配置并运行需要 Google Stitch 账号Node.js 版本用node -v确认一下低于 18 的话npx plugins子命令可能不识别。Agent CLI 这边如果你还没配好模型接入可以用 TaoToken 统一管理 API Key 和模型路由省得每个 Agent 单独填一遍。TaoToken 的接入方式很简单它提供 OpenAI 兼容的 API 端点你只需要在 Agent 的配置里填三样东西Base URL、API Key、Model ID。以 Claude Code 为例配置文件通常放在~/.claude/settings.json写入以下片段{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-your-taotoken-key, ANTHROPIC_MODEL: claude-sonnet-4-20250514 } }如果你用的是 Codex CLI配置写在~/.codex/auth.json{ OPENAI_BASE_URL: https://taotoken.net/api, OPENAI_API_KEY: sk-your-taotoken-key, model: gpt-4o }Cursor 则在设置里找到 Models 面板把 OpenAI Base URL 改成https://taotoken.net/api填入 Key 和模型名即可。三件套Base URL Key Model ID缺一不可尤其是 Model ID 要和你实际调用的模型对齐否则会出现model not found报错。API Key 在 TaoToken 控制台的 API Keys 页面创建建议按项目分 Key方便后续排查用量。创建好之后先别急着装技能用一条 curl 验证接入是否通curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-your-taotoken-key \ -H Content-Type: application/json \ -d {model:claude-sonnet-4-20250514,messages:[{role:user,content:ping}]}返回里有choices字段就说明接入正常。这一步很关键因为后面技能调用最终还是要走模型如果模型接入本身有问题技能装得再对也跑不起来。踩过的坑是有人把 Base URL 写成带/v1的完整路径结果 Agent 内部又拼了一次/v1变成/v1/v1/chat/completions直接 404。记住 TaoToken 的 Base URL 就是https://taotoken.net/api不要自己加后缀。3. 可复制配置npx 安装 Stitch Skills 与目录结构地基打好开始装技能。打开终端执行以下命令一键安装全套技能插件npx plugins add google-labs-code/stitch-skills --scope project --target claude-code运行结果大致如下✔ Resolving plugin: google-labs-code/stitch-skillsmain ✔ Downloading plugin archive (1.2 MB)... ✔ Extracting to .claude/skills/ ✔ Registered 12 skills across 3 plugins: • stitch-design (6 skills): code-to-design, generate-design, manage-design-system, extract-design-md, extract-static-html, upload-to-stitch • stitch-build (4 skills): react-components, react-native, remotion, shadcn-ui • stitch-utilities (4 skills): design-md, enhance-prompt, stitch-loop, taste-design ✔ Plugin installed successfully!如果你用的是 Cursor把--target换成cursor--scope换成workspacenpx plugins add google-labs-code/stitch-skills --scope workspace --target cursor安装完成后项目根目录会多出一个.claude/skills/目录Cursor 是.cursor/skills/结构如下.claude/ └── skills/ ├── stitch-design/ │ ├── code-to-design/ │ │ └── SKILL.md │ ├── generate-design/ │ │ └── SKILL.md │ └── ... ├── stitch-build/ │ ├── react-components/ │ │ └── SKILL.md │ └── ... └── stitch-utilities/ ├── enhance-prompt/ │ └── SKILL.md └── ...每个SKILL.md就是一个技能的完整定义包含name、description和具体指令。你可以直接打开看了解每个技能能做什么。比如enhance-prompt/SKILL.md里就写明了它会把模糊需求补全成带布局、间距、交互状态、无障碍要求的专业 Prompt。三种安装策略对比一下按需选择策略命令适用场景全套安装npx plugins add ... --target claude-code新项目需要完整设计→代码工作流按需安装npx skills add ... --skill stitch-loop已有成熟流程只缺某个环节全局安装npx skills add ... --skill enhance-prompt --global跨项目通用的工具型技能注意技能之间可能存在依赖关系比如react-components依赖code-to-design。按需安装时留意依赖提示或者直接装全套省心。我一般新项目直接全套老项目按需补。如果你还没配好 TaoToken 的 Key先去控制台创建一个然后回到 Agent 配置里填好三件套。技能装好但模型没通等于买了工具箱没通电。4. 验证请求技能列表、加载与一次真实调用装完先确认技能列表已正确注册npx skills list输出会按类别列出当前项目所有已注册技能Skills in this project (12): DESIGN ──────────────────────────────────────── stitch::code-to-design Convert frontend code to Stitch Design stitch::generate-design Generate UI screens from text prompts stitch::manage-design-system Upload apply DESIGN.md themes stitch::extract-design-md Extract DESIGN.md from source code stitch::extract-static-html Snapshot running web apps to static HTML stitch::upload-to-stitch Push local assets to Stitch project BUILD ───────────────────────────────────────── stitch::react-components Stitch → React component system stitch::react-native Stitch → React Native components stitch::remotion Generate walkthrough videos stitch::shadcn-ui shadcn/ui integration expert UTILITIES ───────────────────────────────────── stitch::design-md Analyze project → generate DESIGN.md stitch::enhance-prompt Polish vague prompts for Stitch stitch::loop Multi-page website batch generator stitch::taste-design Premium anti-generic DESIGN.md generator看到 12 个技能就说明注册成功。接下来做一次真实调用验证。最快感受到「技能库价值」的入口是enhance-prompt——假设你脑子里只有一个模糊想法「做一个设置页面」直接丢给 AI 效果往往很通用。在 Agent 对话框里输入stitch::enhance-prompt 增强这个需求做一个设置页面包含个人信息修改、通知开关、深色模式切换Agent 处理日志大致如下→ Activating skill: stitch::enhance-prompt → Loading SKILL.md (3.2 KB)... → Applying prompt enhancement checklist: ✓ Added layout context (mobile-first, single-column) ✓ Injected spacing token references (--space-xs → --space-xl) ✓ Specified interaction states (hover, active, disabled) ✓ Added accessibility requirements (WCAG AA contrast) → Enhanced prompt generated: Design a mobile-first settings page with a single-column scrollable layout. Include three sections with clear headers: 1. Personal Info: Avatar upload (circular, 96px, with edit badge), name field, email field (read-only with verified badge), bio textarea. Use --space-md vertical spacing between fields. 2. Notifications: Toggle switches with animated transitions (200ms ease). Each toggle has a descriptive label supporting text in --color-text-secondary. Group toggles with --space-xs gap. 3. Appearance: Dark mode toggle at top, followed by 6 accent color radio chips displayed in a 3×2 grid with --space-sm gap. Apply the active DESIGN.md theme tokens. Ensure all interactive elements have visible focus rings (2px, --color-primary).这一步验证了三件事技能能被正确加载、SKILL.md 指令被完整执行、输出结果符合预期。你可以直接把增强后的 Prompt 作为下一步stitch::generate-design的输入跑通「想法→专业 Prompt→UI 设计稿」的链路。再试一个进阶技能extract-design-md从现有项目提取设计系统stitch::extract-design-md 扫描 /src 目录提取设计系统到 .stitch/DESIGN.mdAgent 会扫描 Tailwind 配置、CSS 变量、组件模式生成一份可跨项目复用的 DESIGN.md。换新项目时直接stitch::manage-design-system上传所有 Stitch 生成的设计稿自动继承这套视觉规范。这就是技能库的复利效应——知识沉淀一次处处可用。5. 常见报错排查401、local proxy failed、reading choices 与 OAuth技能装好不代表万事大吉实际跑起来会遇到几类典型报错。我整理了一份对照表按报错信息定位问题。401 Unauthorized最常见基本是 API Key 问题。检查三处TaoToken 控制台里 Key 是否被禁用或删除、Agent 配置里 Key 是否有多余空格、Base URL 是否写成了https://taotoken.net/api而不是带/v1的完整路径。如果 Key 没问题用第 2 节的 curl 命令单独验证一次能通说明是 Agent 配置问题不能通说明是 Key 或账户问题。local proxy failed / connection refusedAgent 尝试连接本地代理但失败。先确认没有残留的代理进程占用端口再检查 Agent 配置里是否误填了http://localhost:xxxx之类的地址。TaoToken 是直连 API不需要本地代理把 Base URL 改回https://taotoken.net/api即可。reading choices of undefined这个报错说明模型返回体里没有choices字段通常是模型名写错了或者请求根本没到达模型服务。检查 Model ID 是否和 TaoToken 支持的模型列表一致比如claude-sonnet-4-20250514不能写成claude-sonnet-4。另外确认请求体是标准的 OpenAI 格式messages数组不能为空。OAuth 相关报错如果你用的是 Claude Code 且配置了 OAuth 登录可能会和 API Key 模式冲突。解决办法是在settings.json里显式指定ANTHROPIC_API_KEY并确保没有同时启用 OAuth token。两者只能选一个混用会导致鉴权失败。技能加载了但没生效检查npx skills list是否能看到该技能看不到说明安装时--target选错了。另外确认 Agent 版本支持 Agent Skills 标准老版本可能不识别stitch::语法。排查顺序建议先 curl 验证模型接入 → 再npx skills list验证技能注册 → 最后在 Agent 里触发技能看日志。三步定位基本能覆盖 90% 的问题。如果卡在模型接入这一步去 TaoToken 接入文档对照配置如果技能本身报错去模型对话页面单独测试一下模型响应是否正常。6. 把技能库用起来从单次调用到长期编码工作流跑通验证之后真正的价值在于把技能库嵌入日常开发流。我自己的用法是新项目初始化时全套安装然后用stitch::loop批量生成多页面骨架再用extract-design-md把设计系统固化下来。后续每个新页面都基于这套 DESIGN.md 生成视觉一致性不用靠人肉 review。stitch::loop的机制是「接力棒」模式读取.stitch/next-prompt.md里的当前页面 Prompt调用 Stitch MCP 生成页面把 HTML 写入site/public/更新导航和 sitemap再写入下一个页面的 Prompt循环直到所有页面完成。初始化项目结构mkdir my-portfolio cd my-portfolio mkdir -p .stitch/designs site/public创建站点配置文件.stitch/SITE.md# My Portfolio Site ## Vision A 5-page developer portfolio showcasing projects, skills, and contact info. ## Sitemap 1. Home (/) — Hero featured projects 2. About (/about) — Bio, skills, timeline 3. Projects (/projects) — Grid of project cards 4. Blog (/blog) — Article list with tags 5. Contact (/contact) — Form social links ## Design System Uses .stitch/DESIGN.md for theme tokens.创建接力棒文件.stitch/next-prompt.mdPage: Home Route: / Prompt: Design a developer portfolio hero section with a full-width gradient background (dark theme, #0a0a1a → #1a1a3e), centered avatar (rounded, 128px), name Alex Chen in H1 (font: Inter, 48px, weight 700), subtitle Full-Stack Developer in muted color, and 3 CTA buttons (View Projects, Download CV, Get in Touch) with primary/secondary/ghost variants. Include a subtle particle animation in the background.然后在 Agent 里触发stitch::loop 开始构建我的5页面作品集网站循环执行过程⚡ stitch-loop iteration 1/5 Reading baton: .stitch/next-prompt.md Generating Home page via Stitch MCP... ✓ Screen created: scr_abc123 HTML saved to site/public/index.html Navigation updated: Home ✓ Next baton: About page ──────────────────────────────────── ⚡ stitch-loop iteration 2/5 Reading baton: .stitch/next-prompt.md Generating About page via Stitch MCP... ✓ Screen created: scr_def456 HTML saved to site/public/about.html Navigation updated: Home → About ✓ Next baton: Projects page ──────────────────────────────────── ... (iterations 3-5) ──────────────────────────────────── ⚡ stitch-loop iteration 5/5 Reading baton: .stitch/next-prompt.md Generating Contact page via Stitch MCP... ✓ Screen created: scr_jkl012 HTML saved to site/public/contact.html Navigation updated: full site ✓ ✔ All 5 pages built successfully! site/public/ ├── index.html (Home) ├── about.html (About) ├── projects.html (Projects) ├── blog.html (Blog) └── contact.html (Contact)五个页面一次跑完导航和 sitemap 自动串联。这套流程跑顺之后你只需要维护.stitch/目录下的 Prompt 和 DESIGN.md页面生成交给技能库。长期编码场景下配合 TaoToken 的 Coding Plan 可以进一步降低模型调用成本适合需要频繁触发技能的重度用户。最后给一个实用建议把.stitch/目录纳入版本控制团队里每个人拉下来都能复用同一套设计系统和页面 Prompt。技能库的真正威力不在于单次调用而在于它让「工作流知识」变成了可提交、可 review、可继承的代码资产。装一次所有兼容 Agent 都能调用这才是 Agent Skills 标准化的意义。