ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Claude Code 工程化实践:用 Skills 和 MCP 构建稳定 AI 工作流

Claude Code 工程化实践:用 Skills 和 MCP 构建稳定 AI 工作流 如果你已经“裸用”Claude Code 超过两周大概率会有和我一样的感觉它确实能写代码、能修 bug、能跑测试可一旦被丢进一个中等规模的项目它就像个记性不大好但态度极好的实习生——刚对齐的架构约束转头就忘同一个问题每次给的口径都不统一甚至连“上次已经写好的工具函数”都会被重新发明一遍。这个阶段Claude Code 对你来说是“能用”但离“靠得住”还差得远。我真正完成从“裸用”到“工程化”的转变靠的是两套机制Claude Code Skills 和 MCP。Skills 把高频任务固化成 agent 的技能包MCP 用标准协议把外部系统和工具链接进来。这篇文章会完整记录我的转型过程包括 Skills 的组织方式、MCP 的接入细节、一套可以直接抄走的工作流目录结构以及大量踩坑记录。刚接触 Claude Code 的新手可以靠它绕过弯路已经在用但总觉得“差点意思”的开发者也能借这套思路做一次系统性升级。1. 为什么“裸用”撑不起真实项目1.1 四个让我崩溃的瞬间先说说“裸用”是什么意思不做任何工程化配置装好 Claude Code 就直接在终端里开聊靠每一轮 prompt 临时描述需求。说实话在个人小项目和一两个文件的场景里这种方式完全够用我甚至觉得体验很惊艳。但一旦项目规模上来崩溃就是早晚的事。第一个崩溃瞬间是上下文失忆。我在重构一个组件库时前半段明确告诉它“不要修改公共 API”要求它只用内部实现做兼容。结果在第十轮左右的对话里它非常自然地给一个公开函数改了签名还附了一句“这样更合理”。那一刻我意识到一个问题模型不是听不懂而是把早期约束“忘了”。上下文窗口再大也扛不住长对话里的信息衰减。第二个崩溃瞬间是行为漂移。同一天同样的重构任务我起了两个独立会话。第一个会话生成的代码风格非常克制第二个会话却引入了大量无关的抽象层。不是某一个写错而是“同一个人”在不同对话里的行为模式完全不一致。对于需要稳定产出、可交接的团队开发来说这是很致命的。第三个崩溃瞬间是外部系统靠“现场描述”。我想让 agent 根据设计稿的 design token 同步 CSS 变量它每隔几次对话就反问一遍“token 的命名规则是什么取值映射关系是怎样的”明明我上一条消息已经解释过。这不是模型的错而是我根本没有给它一个可以随时查阅、不会遗忘的知识入口。第四个崩溃瞬间是权限边界全靠人肉把控。裸用状态下Claude Code 拿到的是一个完整可操作的 shell它可以读文件、装依赖、跑命令。我有两次差点被它执行了不该执行的清理命令虽然最后都及时终止了但那种“危险操作靠人肉盯着”的状态实在谈不上工程化。这四个瞬间凑在一起我逐渐得出一个结论项目一旦复杂瓶颈不在模型本身而在模型周围那层“工作流基础设施”。我需要的不是更强的模型版本而是稳定的上下文注入机制、标准化的工具接口以及一套让 agent 行为可预测、可测试、可复用的框架。1.2 从“裸用”到工程化缺的两块拼图很多人以为工程化就是写更长的 prompt。我试过效果很一般。prompt 写得再长它仍然是一次性的不能被复用不能被测试不能在不同项目间迁移。真正改变局面的是两套机制Skills 和 MCP。如果用一句话概括Skills 是给 agent 装的“岗位说明书 操作手册”MCP 是给 agent 装的标准“外部系统插头”。这句话后面我会展开。先看一张对比表说明裸用和工程化到底差在哪。维度裸用状态Skills MCP 工程化状态上下文注入靠每轮 prompt 手写易遗忘按需加载技能包规则、清单、示例自动注入外部工具接入靠对话描述接口细节易出错通过 MCP 标准协议调用实时读写数据行为一致性同任务不同结果风格漂移固定技能定义行为边界输出稳定复用与交接经验留在个人对话里无法传递技能和配置入库团队可共享、可审查、可回滚权限控制依赖人肉提醒在配置层定义命令白名单和资源访问范围我自己把这次升级类比成“从游牧到定居”以前是走到哪睡到哪每次重新搭帐篷现在是先建好房子再考虑装修和水电。前者灵活但没法谈工程质量。1.3 第一性原理Claude Code 的工作循环到底长什么样要理解工程化为什么有效得先理解 Claude Code 的本质。它本质上是一个循环系统提示词加对话历史模型推理后产生“下一步行动”这个行动可能是回复文本也可能是调用工具工具执行结果再作为观测值回到上下文模型继续推理。整个循环不断推进直到任务完成。这个循环里有一个关键点模型“看到什么”直接决定它“做什么”。裸用状态下模型每一轮看到的除了系统提示和聊天历史就是临时拼凑的指令。它没有任何外部记忆也没有稳定的任务手册。所以行为漂移、上下文失忆都是必然的。Skills 和 MCP 做的就是“提前准备好模型看到的内容”。Skill 在任务被触发时自动把一套完整的指令、检查清单、示例代码注入上下文相当于给模型发了一本针对当前任务的操作手册MCP 则让模型通过标准化协议去实时查询外部系统而不是靠对话里的片段信息去猜。工程化的本质就是不再依赖“单次对话的运气”而是把每一次任务执行变成“确定性流程的一部分”。我后面会从这两个方向分别拆解。2. Skill 到底怎么组织Agent 才稳定2.1 SKILL.md 的三段式结构先看一个我实际在用的前端代码审查 Skill。它放在项目的.claude/skills/frontend-code-review/目录下核心文件是SKILL.md--- name: frontend-code-review description: 对前端组件代码进行可维护性、可访问性与样式一致性审查。当用户要求 review 组件、处理合并请求、检查代码质量时使用。仅在代码审查场景触发。 version: 1.0.0 --- # 行为准则 - 只输出审查意见不直接修改代码。 - 每条意见必须包含文件路径、行号和严重级别。 - 如果发现安全风险提升为最高优先级。 # 工作流程 1. 先通读组件目录结构理解组件职责。 2. 逐个检查 props 设计、状态管理、样式方案。 3. 按检查清单逐项打勾最后输出摘要。 # 检查清单 - [ ] 组件命名是否遵守项目命名规范 - [ ] props 是否都有默认值或类型说明 - [ ] 是否有重复渲染或无效依赖 - [ ] 样式是否使用设计系统中的 token而非硬编码颜色 - [ ] 可访问性是否缺少 aria 属性、键盘操作是否完整 # 示例 ## Bad const Button ({ color }) div style{{ color: #f00 }}{children}/div ## Good const Button ({ tone primary, children }) ( button className{styles[tone]}{children}/button )这个结构背后有三个设计点。第一frontmatter 里的description是“触发条件”Claude Code 会读取这段描述判断当前任务要不要加载这个 Skill。所以 description 必须写清楚“什么时候用”而不是写概要。我见过很多人把 description 写成“这个技能用于提高代码质量”模型根本不知道怎么触发等于白写。第二正文里的行为准则要短、要硬。把“不允许做什么”放在最前面能显著减少模型自由发挥的空间。我甚至会在高风险技能里写“如果你不确定是否应该执行某步操作停下来问用户不要自行推断”这样的禁令式表述。第三检查清单和示例的作用是减少模型“临场发挥”。清单让模型按固定路径检查示例让模型有模仿的样板。对模型来说一个好的 few-shot 示例比十句抽象描述都管用。2.2 我踩过的坑把 Skill 写成论文我只直观分享一个教训初期写 Skill很容易写成一篇“设计文档”。我在给一个数据迁移任务写 Skill 时洋洋洒洒写了 600 多行包含背景、架构图、历史原因、边界情况……结果模型加载这个 Skill 后光是读它就要消耗大量上下文真正干活时反而频繁出错因为重点被大量背景信息稀释了。后来我总结出一个更适合实际操作的规律单个 Skill 的正文控制在 150 到 400 行之间超过就要拆分子 Skill 或把资料放到resources/目录按需加载。内容结构上最好的 Skill 应该是“任务定义 步骤 清单 样例”不要有太多散文式描述。模型不是人它不需要你铺垫心路历程它需要的是清晰可执行的指令。另外还有一个容易踩的坑Skill 描述里的关键词要和用户真实表达“对齐”。Claude Code 的 Skill 触发很大程度依赖 description 的语义匹配而不是严格的字符串匹配。但实际测试下来如果你把“合并请求”写成“MR review”而用户习惯说“看一下这个 PR”触发率就会下降。稳妥做法是 description 里把常见等价说法都带上比如“当用户要求 review 合并请求、PR、MR 或代码质量时使用”。2.3 开发和测试自己的第一个 Skill开发 Skill 的流程其实很像写测试用例。我的做法是这样。先在.claude/skills/下建好目录和SKILL.md然后准备一个“故意带坑”的样例。以代码审查 Skill 为例我会专门构造一个包含命名混乱、硬编码颜色、缺少可访问性标注的组件文件再让 Claude Code 启动一个会话用一句自然语言触发“帮我看一下这个组件要不要改”。如果 Skill 加载成功且输出符合预期说明触发和流程是对的。第一次跑通后再用真实代码测试。这里有个重要建议别拿生产仓库直接测先复制一个分支或只读副本。我早期因为贪方便直接在主干分支上测试一个自动重构 Skill结果它真的动手改了代码虽然没出大事但吓出一身冷汗。迭代循环也很简单跑样例看输出不满意就改SKILL.md再跑。每次改动都顺手更新 frontmatter 里的version字段。等到输出连续三次稳定我才会把这个 Skill 正式纳入工作流。我还发现一个技巧在 Skill 的流程中加入“前置动作”可以显著提高稳定性。比如“在开始修改前先用不超过十行的篇幅向用户复述你的理解和迁移计划”。这个动作强制模型在做之前对齐认知相当于给它的冲动决策加了一道保险。2.4 上哪找现成的 Skills推荐与甄别原则自己写 Skill 有门槛好在社区已经积累了大量现成的。最直接的渠道是 Claude Code 官方界面里的find skills入口我理解它和官方技能市场不同但都能用来检索GitHub 上也有不少聚合仓库搜“awesome-claude-skills”能找到一批社区维护的技能合集。我实际装过几个有代表性的合集比如 superpower skills、nature skills还有 codex skills 生态里的一些移植版。我的建议是先别贪多。很多合集装完以后你会发现大部分技能你根本用不上而且过多的候选技能会增加模型“选错技能”的概率。我踩过这个坑一次性装了 40 多个 Skill结果模型经常在简单任务上选一个花哨的技能出来处理得反而更复杂。甄别一个 Skill 值不值得装我只看三件事作者的维护频率有没有人持续更新、description 是否写得具体触发条件是否清晰、有没有配套的示例或脚本。只看一眼这三点就能过滤掉 80% 的劣质 Skill。另外前端开发 skills 这类垂直领域的技能包社区里质量参差一定要拿到自己的项目里跑一遍再决定去留。3. MCP 协议怎么接入才算“工程化”3.1 MCP 是什么给模型装上标准“USB-C 口”MCP 的全称是 Model Context Protocol一个专门给 AI 客户端和外部工具通信的标准化协议。很多资料把它解释得很玄我的理解很朴素以前模型每接一个新工具都要开发者写一套定制集成有了 MCP工具方只需要实现一个 MCP Server任何支持 MCP 的客户端都能用类似给硬件行业定了一个统一的 “USB-C 口”标准。这套协议的核心是三类原语Tools 是可执行操作比如“查询数据库”“创建文件”“获取 GitLab MR 信息”Resources 是可读取的数据比如一个文档、一个 API 响应Prompts 是可复用的提示模板。三者组合起来就构成模型与外部世界交互的完整能力面。我最初学协议细节时被概念绕晕过直到我把它想象成两台电脑之间的远程调用MCP Server 就是“被调用的服务端”Claude Code 是“发起调用的客户端”中间走 JSON-RPC 格式的消息。模型发出一个“请求”Server 返回一个“结果”就这么简单。真正需要注意的反而是生态里的 Server 种类和配置细节。3.2 配置 MCP Server 的实际操作Claude Code 接 MCP 有两种常见方式命令行添加或写配置文件。命令行方式适合快速测试执行claude mcp add filesystem -e npx -y modelcontextprotocol/server-filesystem ~/projects claude mcp listadd后面的参数分别是服务器名称、启动方式、所用包和参数。执行完list能看到当前会话可用的 MCP 服务器列表。这种方式胜在即时生效问题是配置散落在本地环境不适合团队复用。更适合工程化的是写mcp.json配置文件。我一般放在项目根目录的.mcp.json或根据 IDE 要求放在.vscode/mcp.json结构长这样{ mcpServers: { gitlab: { command: npx, args: [-y, modelcontextprotocol/server-gitlab], env: { GITLAB_TOKEN: ${GITLAB_TOKEN} } }, figma: { command: npx, args: [-y, figma-mcp-server], env: { FIGMA_API_KEY: ${FIGMA_API_KEY} } } } }走配置文件的好处是整个 MCP 服务器清单入库团队成员 clone 下来就知道项目接了哪些外部系统。环境变量我建议一律用${VAR}引用不要把真实密钥写进 JSON。密钥一旦提交进 Git 仓库就算后来删掉历史记录里也永远留着风险太大。配置完以后建议立刻做一次连通性测试。开一个 Claude Code 会话直接问它“现在能用哪些外部工具”看着它列出已注册的 MCP 工具再让它调一个只读接口验证一下。我遇到过服务器配置看起来没问题但实际因为网络策略或认证过期工具迟迟加载不出来的情况早测早安心。3.3 行业里的 MCP 生态从开发到工业软件MCP 最火的地方是开发工具链但它的适用面比很多人想得广。我整理了一份我实际接触或调研过的生态清单领域代表性 MCP Server典型用途开发协作GitLab / GitHub MCP拉取 MR 信息、写 Issue、触发流水线设计协作Figma MCP、蓝湖 MCP读取设计稿、组件树和 design tokenEDA 设计Altium Designer MCP读电路图、核对元器件封装、辅助生成设计文档工业自动化TIA MCP 交付包连接 PLC 工程环境读取和生成配置3D 引擎Unreal Engine MCP如 ue5-mcp操作场景对象、批处理资源逆向调试IDA MCP、x32dbg MCP 插件查询反汇编、符号信息辅助漏洞分析浏览器自动化Dify Browser MCP网页抓取、表单操作、流程自动化这张表说明一个趋势MCP 正在把原来只有 GUI 或专属脚本的系统变成模型也能按标准方式操作的对象。以前要让 Claude Code 读 PCB 工程文件你得写一堆定制脚本现在只要有一个 Altium 的 MCP Server它就能通过标准接口拿到数据。当然工具生态越多越要克制。我给团队定的原则是每个项目接入的 MCP Server 不超过 5 个。MCP 的本质是“外部数据入口”入口太多反而会分散模型的注意力增加调错工具的概率。宁可精不要多。3.4 Skill 和 MCP 的分工别把两者对立起来我见过不少讨论把 Skills 和 MCP 放在对立位置好像二选一。实际用下来它们是互补的。我给自己定了一个简单的选型判断表场景推荐方案选型理由代码风格统一、审查规范Skill本质是对模型行为的约束不需要外部数据读取最新设计 token、组件信息MCP数据实时变化靠 Skill 写死会过期批量生成测试数据Skill 本地脚本规则固定在技能里数据生成是本地逻辑查询数据库、调用内部 APIMCP需要鉴权和动态响应适合标准协议接入长任务流程编排Skill 主导 MCP 取数Skill 定义步骤MCP 在执行过程中按需取数一句话Skill 解决“怎么做好这件事”MCP 解决“怎么拿到这件事需要的数据”。大部分成熟工作流都是 Skill 写流程和组织知识MCP 负责在执行过程中实时取数据。两者合在一起才有完整的工程化形态。4. 把一个真实任务从“裸用”升级为工程化流程4.1 目标场景前端组件库迁移 文档更新我用一个真实的项目经历来演示完整流程把旧组件库迁移到新设计系统同时更新组件文档和快照测试。裸用状态下我大概会开一个会话把迁移规则打字发给它让它一个个组件处理。结果往往是处理到第五个组件时它已经忘了第三条规则文档更新更是全凭心情。工程化以后同一件事的处理方式完全不同先接好数据源再把迁移规则固化成技能最后用标准流程批量执行。下面是我实际用的目录结构。4.2 项目目录怎么摆my-project/ .claude/ skills/ component-migration/ SKILL.md scripts/ generate_tokens.py resources/ migration-checklist.md mcp.json src/ tests/这个结构的核心思想是把“一个人的记忆”变成“团队的基础设施”.claude/skills/是仓库级技能跟着项目走mcp.json声明外部系统连接方式。任何人 clone 这个仓库都能立刻复用同一套工程化配置不需要私传配置。我特别想把resources/目录单独说一句。技能里的大段参考资料比如满满两页的迁移规则不应该全部塞进SKILL.md而应该放进resources/让模型在需要时按需读取。这样做既能让主文件保持精炼又不会让模型在无关任务里背着巨大上下文。4.3 五个步骤完整跑通第一步配置 MCP。在这个场景里我接入的是设计系统 APIFigma 或蓝湖和 GitLab MR API。前者用来读取最新的 design token后者用于最终创建合并请求。这一步让“外部数据”变成模型可实时查询的资源而不是靠我复制粘贴截图和 JSON。第二步写迁移 Skill。把业务规则全部固化进去新旧类名映射关系、不允许修改公共 API、必须保持导出的函数签名不变、每个组件迁移后必须运行快照测试。这些规则如果靠每轮对话强调一定会被遗忘写进 Skill 后模型每次处理组件都会重新读到它们。第三步启动会话用一句自然语言触发。我会输入“把这个组件迁移到新设计系统”然后观察 Skill 是否正确加载。一个有用的检查方法让模型先说出它在使用的 Skill 名称和版本号。如果它说“我没有使用任何特定技能”说明触发失败了需要回头改 description。第四步让 Agent 先输出计划再动手。我要求它列出“这个组件涉及哪些文件、有哪些依赖、迁移时要改哪些位置”然后才允许执行修改。这个前置动作救了我不止一次——有次它计划里写的是把整个目录结构推倒重来和我的预期差距巨大幸好先看了计划。第五步跑测试 创建 MR。迁移完以后让 Agent 用 MCP 调用 GitLab 接口创建 MR并把快照测试报告附上去。整个流程从“人监督每一步”变成“人检查起点和终点”中间过程由技能和工具约束出错概率明显下降。4.4 把流程固化成“一键启动”跑通一次还不够工程化的标准是“下次直接用”。我会把所有相关命令封装成一个终端脚本比如alias cc-migrateclaude --skill component-migration实际执行时直接输入cc-migrate加上目标组件路径就能触发新会话并加载指定技能。VSCode 场景也一样装好 Claude Code for VSCode 集成后在.vscode/tasks.json里加一个任务把上面这个命令注册成快捷键敲一下就能启动。这种“一键启动”的经验我在 codex skills 生态里也看到过说明整个行业正在往同一个方向走把复杂的任务知识固化成交互单元用户只需要提供最少的上下文剩下的由 agent 按既定流程完成。这也是我理解的“可迁移工程化能力”——以后换工具、换模型只要技能和配置还在流程就不会断。5. 模型、版本管理与团队共享5.1 不一定只能用默认模型接入本地与第三方 API默认模型体验最好但有些场景下团队或个人会希望接第三方模型或本地模型。我实际用过 CC Switch 这类配置切换工具它可以管理多个模型提供方比如 DeepSeek、Qwen、GLM 等。思路很简单通过切换 API 的 base URL 和 key让 Claude Code 客户端去访问不同后端。如果希望完全本地部署也可以考虑用 LM Studio 这类工具在本地启动兼容接口。配置方式同样是把客户端的接口入口指到本地的服务地址然后配一个本地的访问凭证。需要注意换模型不等于无缝迁移。不同模型的指令跟随能力差别很大在一个模型上表现良好的 Skill换到另一个模型上可能会有明显的行为漂移。我的实操建议是换模型之前先跑一遍自己的回归测试集。我给自己维护了 8 个固定验收任务分别覆盖代码生成、代码审查、数据迁移等场景。切换模型后逐个跑用输出结果判断这个模型是否适配团队现有的 Skill 体系。别为了省一点 API 费用牺牲整体的输出质量。5.2 把 Skills 和 MCP 配置纳入版本管理Skills 和 MCP 配置本质上就是代码就应该用 Git 管理。我见过很多团队people 在个人目录里攒了大量 Skill团队成员之间靠聊天窗口互发配置最后每个开发者的 agent 行为都各不相同这其实已经违背了工程化的初衷。正确的做法是项目相关的 Skill 放仓库的.claude/skills/MCP 配置放.mcp.json两者都参与代码评审。每次修改 Skill 就是一次新的 commitreviewer 要检查“描述是否准确、清单是否完整、示例是否会误导模型”。这种约束很反直觉因为大家习惯把 Skill 当成个人配置。但实际跑下来团队里每个开发者行为一致交接成本会大幅下降。有些开源项目已经把这种做法做成了样板比如我在调研中看到 ruoyi-vue-pro 这样的大型项目直接在仓库里合入了 MCP 功能模块统一入口、统一配置。虽然这是特定业务场景的决策但这种“把 AI 工作流配置当作一等公民纳入项目”的思路值得借鉴。5.3 质量门槛给 Skill 建立回归测试集Skill 不是写完就一劳永逸。模型版本更新、依赖升级、团队规范变化都可能让一个之前稳定的 Skill 开始表现异常。这时候就需要回归测试集。我的做法是为每个关键 Skill 建一个测试任务清单5 到 10 个固定验收任务配好对应的输入文件和期望输出标准。每次修改 Skill就用这批任务跑一遍看输出是否稳定。不达标就回滚并用git tag给稳定版本打标。这听起来有点重但对于高频使用的核心 Skill非常值得。我有一个组件审查 Skill曾经因为一次改动引入了一个过于严格的规则导致所有代码审查都被卡在“命名风格”这一条上。如果没有回归测试集我根本意识不到是 Skill 的问题还会误以为是模型变笨了。6. 常见问题与排查实操6.1 MCP 连不上 / 工具找不到遇到最多的问题就是“配置了 MCP 但工具找不到”。排查顺序我建议从简单到复杂先执行claude mcp list确认服务器是否成功注册再看启动日志里有没有报错最后手动执行一次 MCP Server 对应的启动命令验证能不能跑起来。常见原因就那么几类本机 Node.js 版本不兼容、服务器包名写错、认证 token 过期、环境变量没有正确注入。我遇到最隐蔽的一个坑是某个 MCP Server 依赖的 CLI 工具没有全局安装导致服务启动即崩溃但日志又不够明显。排查半天才发现是依赖缺失补装以后就正常了。6.2 Skill 没被触发 / 每次行为不一致Skill 没有被触发大概率是 description 的“触发条件”没有匹配上用户的表达。我建议先重启会话再用一句同义替换的话测试比如把“审查代码”换成“看一下这个组件好不好”看它是否加载同一个 Skill。Claude Code 在加载 Skill 时详细日志里通常会有记录可以借此确认加载是否成功。如果是“触发了但行为不一致”多半是 Skill 里面写得太宽泛给了模型太多自由裁量空间。我的经验是把工作流程压缩成编号步骤把“不允许做什么”写进行为准则并在开头加入“先复述计划再执行”的前置动作。这三板斧下来行为一致性会显著改善。6.3 输出内容没写进文件 / 终端命令执行失败你可能会遇到模型声称生成了内容但文件里没有对应更改的情况。这通常不是模型“说谎”而是它在回复里生成了文本并没有实际执行写文件的操作。解决方式有两个方向一是在 Skill 里明确规定“必须使用写文件工具落盘然后列出文件路径”二是通过 MCP 文件服务器或预置脚本完成写入而不是依赖一句抽象指令。终端命令执行失败又是另一类问题。裸用状态下它可能随手构造出错误的 shell 命令。工程化以后我会在 Skill 里定义命令白名单明确哪些操作允许执行、哪些必须经过确认。这既提升了准确性也降低了误操作风险。6.4 VSCode 集成时的问题VSCode 里接入 Claude Code 时最常见的坑是终端里能正常使用但 IDE 插件里连不上。原因通常在于 IDE 里的环境变量和终端不一致导致认证信息没有读到。解决方法是保证PATH和关键环境变量在 IDE 启动时保持一致必要时在用户设置里显式指定配置路径。另一个容易被忽略的问题是版本缓存。Claude Code 在线升级后IDE 插件可能还在用旧的客户端缓存。遇到功能表现异常先彻底重启 IDE再检查版本号。我甚至遇到过一次“重启后一切正常但第二天又复现”的诡异情况最后发现是机器上有多个旧版本并存清理干净后问题才消失。最后再说几句实在话攒了一堆技能和服务以后我最想提醒你的是工程化的初衷是降低认知负担而不是增加配置负担。我见过同事一口气装了 40 个 Skill 和 10 个 MCP Server结果每次任务的开启成本反而变高了模型在错误技能之间反复横跳。我的习惯是先在备忘录里记下自己最近重复了三遍以上的手动任务挑最痛的那个把它变成第一个 Skill。对我个人来说真正让工作流发生质变的不是某个模型版本有多强而是我反复打磨出了十来个属于自己的技能并在仓库里沉淀了一套团队可复用的配置。那些经常重复的活儿现在都变成了稳定、可验证的自动化流程。如果你也卡在“AI 能用但不好管”的阶段别急着追新模型先动手把最常做的那件事写成一个 Skill。等它稳定跑通你自然会知道下一个该做什么。
返回列表