ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Claudeception:让Claude Code持续学习技能,沉淀可复用工作流

Claudeception:让Claude Code持续学习技能,沉淀可复用工作流 Claudeception这个词我第一次看到的时候第一反应是“套娃”——把Claude Code扔给Claude Code去优化听起来确实像盗梦空间里的梦中梦。但这个概念真落到项目里解决的是一个特别朴素的问题Claude Code每次对话结束之后经验就丢了下一次遇到同样的问题它还会再问一遍、再错一遍。所谓持续学习技能就是给它装上一套“复盘—提炼—固化”的机制让每次干活沉淀成可复用的技能文件下次直接调用。这篇文章我打算从机制讲到实操再到CLI和VSCode里的实际用法分四块先拆解Claudeception背后的学习闭环然后说环境怎么准备接着手把手把“技能工坊”这个学习技能建出来跑一遍最后是我踩过的坑和常见问题速查表。适合两类人已经在用Claude Code但觉得它“每次像新朋友”的人以及想把个人工作流沉淀成技能包、跨项目复用的人。先说清楚这不是某个官方按钮而是基于Claude Code现有机制组合出来的一套工作方法。但只要照着做技能确实是能长出来的。1. 先说清楚Claudeception的持续学习闭环1.1 为什么Claude Code需要“持续学习”这个技能Claude Code本质上是一个跑在终端里的AI编程助手能力和背后的模型推理强相关。它最大的短板也在这里会话之间是彼此孤立的。你今天让它修好了一个诡异的构建报错明天换个新会话它大概率还是会先踩一遍同样的坑再慢慢试出来。时间一长你会觉得这家伙怎么不长记性。很多人靠CLAUDE.md来补这个缺口也就是项目根目录下的长期记忆文件每次会话自动加载。这个方案有用但它是静态的规则需要人手动维护而且写进去的通常只是“规范”不是“操作路径”。真正让技能长出来的是Claude Code的Agent Skills机制。技能文件是带结构化描述的Markdown文档放在指定目录之后Claude Code会根据当前任务的语义自动把匹配的技能加载进上下文。Claudeception做的事就是把“写技能”这个动作本身也变成一个技能。让Claude Code定期复盘自己的会话记录找出高频任务和成功路径然后自己生成或更新技能文件。这就是持续学习的闭环干活、记录、提炼、固化再回到干活。类比一下相当于你雇了一个永远不离职的助理每天晚上帮你写工作复盘再把复盘结论变成第二天的工作手册。1.2 核心机制技能目录、SKILL.md与自举循环要理解Claudeception得先把技能目录结构摸清楚。个人级技能放在~/.claude/skills/下Windows是%USERPROFILE%\.claude\skills\所有项目都能用。项目级技能放在当前仓库的.claude/skills/下只对本项目生效。每个技能是一个独立目录里面核心文件是SKILL.md。SKILL.md的格式不复杂大致长这样--- name: skill-workshop description: 复盘Claude Code会话日志提炼高频任务并生成或更新技能文件。当用户说“复盘”“技能工坊”“生成技能”时使用。 --- # 技能目标 在这里面写具体的工作流程、操作步骤、示例和注意事项。关键在于frontmatter里的name和description。Claude Code不是按目录名去找技能的而是靠description做语义检索。任务描述和技能描述的匹配度越高技能被加载的可能性就越大。所以description要写清楚“什么条件下触发”“解决什么问题”而不是吹嘘这个技能多厉害。自举循环是我一直在用的一个模型四步走执行正常用Claude Code干活比如修Bug、写功能、优化构建。记录Claude Code每次会话都会在~/.claude/projects/下留下JSONL格式的会话日志。提炼让技能工坊去读这些日志提取“用户确认过的操作”“成功修复问题的路径”“高频出现的任务类型”。固化把提炼结果写成新的SKILL.md或者更新已有的技能文件下一轮会话就能用上。注意技能文件不是越详细越好而是越“可执行”越好。写过一堆空话的技能比如“请谨慎思考、仔细检查”这种内容既浪费上下文也不会真正改变模型行为。1.3 适用范围与实际预期Claudeception这套玩法在几种场景下特别值钱。第一种是长期维护的代码仓库项目规范多、历史包袱重技能可以帮你沉淀“这个项目里什么东西不能动、什么地方最容易踩雷”。第二种是重复性操作密集的日常工作比如频繁发布版本、处理固定格式的日志、做代码审查技能能把多步操作压缩成一句指令。第三种是技术栈相对固定的开发环境技能会慢慢积累成你的个人知识库换个项目也能带走一部分。但也要泼点冷水它不适合用来解决实时性极强的任务比如秒级响应的问题排查也不适合替代外部数据源查询这类需求更适合用MCP挂外部工具。技能解决的是“怎么做事”的方法论不是“能力从哪来”的源头。而且技能的迭代质量取决于复盘频率和数据质量一周不复盘、不清理垃圾会话技能库就会长歪。2. 环境准备与基础配置2.1 装好Claude Code CLI并验证Claude Code的主形态是一个命令行工具安装方式取决于你的包管理环境。最通用的方式是用npm全局安装npm install -g anthropic-ai/claude-code装完先验证一下claude --version能输出版本号就说明装好了。如果npm下载慢可以先把registry切到国内镜像再装npm config set registry https://registry.npmmirror.com装完注意Node版本建议用Node 20 LTS以上太老的版本容易遇到兼容问题。不想用npm的话macOS可以用HomebrewWindows可以用Scoop本质都一样。卸载也顺手提一句npm uninstall -g anthropic-ai/claude-code就能清掉CLI本体但用户目录下的技能和配置不会自动删注意备份。2.2 配置API密钥与项目记忆文件安装完成之后第一件事是配置API密钥。Claude Code读取的是ANTHROPIC_API_KEY这个环境变量。macOS和Linux在shell配置文件里加一行export ANTHROPIC_API_KEYsk-ant-你的密钥Windows PowerShell里则是$env:ANTHROPIC_API_KEYsk-ant-你的密钥配置完之后最好重新打开终端让环境变量生效。密钥不要写进项目代码里更不要提交到Git仓库这个应该不用多说了。接着是CLAUDE.md这个文件放在项目根目录每次Claude Code在这个目录下启动时都会自动加载。适合放什么放那些“每轮对话都必须知道”的东西项目技术栈、启动命令、测试命令、目录结构约定、禁止事项。写成这样# 项目约定 - 使用 pnpm 管理依赖不使用 npm - 测试命令pnpm test - 组件放在 src/components 下hooks 放在 src/hooks 下 - 所有新的 API 调用必须加上错误处理CLAUDE.md不是技能文件它是静态上下文承载的是“背景知识”技能文件承载的是“操作流程”。这两个要分清楚后面写技能的时候就不会混。2.3 VSCode集成与终端工作流Claude Code虽然核心是CLI但实际干活时我几乎都在VSCode里操作。原因很简单代码上下文就在编辑器里切来切去太浪费时间。VSCode里有两个用法一是装官方Claude Code扩展界面化操作二是在内置终端里直接跑claude命令两个窗口并排左边代码右边助手。我更推荐内置终端方案灵活而且能直接复用你已经配好的shell环境、项目环境变量和Git信息。打开终端进入项目根目录输入claude它就自动加载当前的CLAUDE.md和匹配的技能文件。有几个斜杠命令需要先记住/init让Claude Code根据当前项目结构自动生成一份初始的CLAUDE.md。/compact上下文太长时压缩历史保留关键信息腾出空间。/clear清空当前会话上下文开个干净的新对话。/model切换当前会话使用的模型。/permissions查看和修改权限配置。熟练用这几个命令CLI用起来会顺手很多。如果哪天觉得Claude Code行为诡异先跑/status看一下当前会话状态再决定是compact还是clear。2.4 接入第三方模型接口把成本降下来很多人想用Claude Code但预算有限或者希望在某些场景换更轻量的模型。Claude Code本身是支持通过兼容接口接第三方模型的社区里最常见的就是接DeepSeek。原理很简单Claude Code通过ANTHROPIC_BASE_URL来定位API端点你把它指到兼容Claude接口的地址就行。export ANTHROPIC_BASE_URLhttps://api.deepseek.com/anthropic export ANTHROPIC_AUTH_TOKEN你的DeepSeek API Key然后启动时指定模型claude --model deepseek-chat也可以用ANTHROPIC_MODEL环境变量固定默认模型。社区里常见的ccswitch这类切换工具本质就是帮你快速改这几个环境变量来回切换Claude官方模型和第三方模型。但这里有个实际体会技能机制在不同模型上的遵循度差别很大。Claude系列模型对技能文件的执行比较稳定第三方模型有时候会漏掉步骤或者简化操作。所以我的建议是核心的、需要严格按步骤来的技能场景尽量用强模型跑日常的、容错高的杂活可以切到轻量模型省成本。技能本身要有“人工确认”的安全阀别让模型全自动改文件。3. 手把手让持续学习技能跑起来3.1 设计第一个技能技能工坊现在进入正题建一个名为skill-workshop的技能让Claude Code能够复盘自己的会话记录、提炼经验、生成新技能。这个是Claudeception的核心发动机。先明确这个技能的目标输入是Claude Code的会话日志输出是新增或更新后的SKILL.md文件。它要做四件事读取~/.claude/projects/下的近期会话日志找到值得复盘的任务类型。从日志中提取用户确认过的操作序列和成功解决问题的路径。按照标准的SKILL.md格式生成一个新技能文件或更新已有技能。对新技能做一次自检确保描述和步骤可被后续会话检索、复用。先在技能目录里建一个文件夹mkdir -p ~/.claude/skills/skill-workshop目录名和技能名都要干脆、表意清晰别用my-skill-001这种名字检索的时候很难命中。3.2 手写SKILL.md把经验格式化成技能在~/.claude/skills/skill-workshop/下创建SKILL.md内容可以参考下面这个版本--- name: skill-workshop description: 复盘Claude Code会话日志提炼高频任务和成功操作路径生成或更新可用技能文件。当用户说“复盘”“技能工坊”“生成技能”“更新技能”“从会话中学习”时触发。 --- # Skill Workshop ## 目标 把最近的Claude Code会话经验固化为可复用的技能文件形成持续学习闭环。 ## 工作步骤 1. 读取会话日志 - 进入 ~/.claude/projects/ 目录 - 按文件修改时间倒序排列优先读取最近3个会话日志 - 日志是JSONL格式逐行解析 2. 提取有效信息 - 标记用户最后确认采纳的操作步骤 - 记录成功修复Bug的完整命令序列 - 记录被用户纠正过的高频错误写入注意事项 - 统计同一类任务出现的次数 3. 归纳技能点 - 当一个任务类型出现2次以上并且有明确的成功路径判定为可固化技能 - 提取共性步骤删除项目特定路径保留通用逻辑 4. 生成或更新技能文件 - 新技能在 ~/.claude/skills/skill-name/SKILL.md 中创建 - 已有技能合并新的有效步骤到旧文件不删除原有内容 - description只描述触发场景和解决的问题不写赞美性语言 - 正文使用可执行步骤、具体命令、真实示例 5. 自检 - 确认技能目录名称与name字段一致 - 确认description不超过100字且核心词前置 - 新技能先以 .new 后缀存放人工确认后再覆盖正式文件 ## 注意事项 - 不生成与已有技能description高度重叠的新技能应合并 - 不把项目私有信息写进个人级技能注意脱敏 - 技能正文不要写“请谨慎思考”这类空话要写具体操作这个文件本身就是Claudeception的“种子”它告诉Claude Code怎么去学习。写完保存之后技能已经可以被检索了。你可以先跑一个简单测试输入“生成一个git提交信息规范化技能”看它是否会主动用skill-workshop里的方法去复盘并生成新技能。3.3 让学习闭环跑起来CLI实操记录技能文件只是静态文本关键在于闭环跑起来。拿我前阵子做的一个前端项目举例项目里频繁出现一个重复劳动每次改动组件后都要手动更新storybook测试用例格式固定但容易忘。我在终端里跑claude会话中说了一句“复盘一下最近的会话把更新storybook用例的流程做成技能下次直接调用。”这个指令就触发了skill-workshop。Claude Code先读取了~/.claude/projects/下的会话日志从中找到三次改组件后补storybook的操作记录提取出共同的步骤序列检查组件props变更、定位对应story文件、按新API更新控件、跑测试命令、确认快照。然后它把这些步骤写成了一个新的SKILL.md放到~/.claude/skills/storybook-updater/下。整个过程不到两分钟。为了确认技能真的被加载我建议开启debug模式观察claude --debug在debug输出里你会看到Claude Code加载了哪些技能文件。如果日志里出现了Loaded skill: storybook-updater说明技能被命中。没有出现的话多半是description里的关键词和你的实际表述不匹配去调整描述词就行。提示新会话里测试技能效果时尽量用一句自然、真实的任务描述不要用“请使用storybook-updater技能”这种命令式表述。技能加载是基于语义匹配的你的任务越自然越能验证描述写得好不好。3.4 把反馈固化到CLAUDE.md第二层记忆技能文件负责“怎么做”CLAUDE.md负责“项目里有什么约定”。在Claudeception的体系里这两层要配合起来用。技能提炼的是通用经验比如“组件变更后必须同步更新storybook”但每个项目跑测试的命令不一样有vitest、jest、playwright等等。这时候项目级的CLAUDE.md就发挥作用了它告诉Claude Code“本项目的测试命令是pnpm test:storybook”技能里的步骤只需要写“运行测试命令验证”实际命令由CLAUDE.md补全。所以我在每次复盘之后还会让Claude Code顺手检查一下CLAUDE.md有没有过时信息。比如项目从npm切到了pnpmCLAUDE.md里还写着npm run test那后面所有依赖这个信息的操作都会出错。把“检查CLAUDE.md与当前项目状态一致性”也写进skill-workshop的步骤里这样每次复盘都会顺带修一遍静态文档。这两层记忆的分工可以这么理解CLAUDE.md是项目的“宪法”变更频率低稳定性高技能是“操作手册”迭代速度快可跨项目复制。持续学习的关键不只是不停地写新技能还要定期清理、合并、修正旧技能和旧文档不然知识库会越来越臃肿。4. 进阶技巧与常见问题排查实录4.1 进阶多技能联动与优先级管理技能数量超过十几个之后会出现一个很实际的问题技能之间互相打架。比如我同时有“代码审查技能”和“安全扫描技能”它们都可能在用户说“检查一下代码”时被加载导致上下文被占满输出内容混杂。解决思路是给技能建立目录分层按职责归类~/.claude/skills/ ├── core/ # 核心通用技能git操作、代码审查、重构 ├── review/ # 专项检查安全、性能、兼容性 ├── daily/ # 日常杂务日志分析、storybook更新 └── workshop/ # 技能工坊本身虽然Claude Code会扫描整个skills目录但目录分组能让你自己维护起来清晰很多。更重要的是技能description要设计好“互斥”的关键词审查技能描述里写“代码逻辑、可维护性、命名规范”安全技能描述里写“漏洞、敏感信息、依赖风险”。这样同一个任务描述只会精准命中其中一个。再进一步可以把技能和MCP配合使用。技能负责编排流程比如“检测到异常日志就去复盘”MCP负责实际读取外部数据源比如数据库、监控系统、Git远程仓库。技能管方法MCP管能力两者不冲突。技能文件本身也应该纳入版本管理。我的做法是cd ~/.claude/skills git init git add -A git commit -m feat: 添加storybook-updater技能每次技能变更都能回溯出问题直接回滚比手动复制备份靠谱得多。4.2 常见问题速查表实操Claudeception过程中有几个问题反复出现整理成一张表方便排查问题现象可能原因解决办法claude命令找不到npm全局bin目录不在PATH中检查npm config get prefix路径手动加入PATH技能完全不生效目录放错或description不匹配确认放在~/.claude/skills/下调整description关键词多个技能同时被加载description边界模糊细化关键词明确技能触发场景权限弹窗太频繁默认模式下每次写文件都要确认使用--permission-mode acceptEdits或在permissions里配置allow规则上下文很快被占满CLAUDE.md或技能内容过长精简CLAUDE.md到5KB以内技能正文只留可执行内容接入DeepSeek后技能质量下降第三方模型对技能遵循度弱关键流程用强模型杂活用轻量模型技能步骤写得更显式技能文件被覆盖多个会话同时写入新文件写.new后缀人工确认后再覆盖CLAUDE.md没自动加载文件不在项目根目录把CLAUDE.md放在执行claude命令时的当前目录下排查技能问题时我建议第一条路永远是开debug模式看日志里技能是否被加载。有时候你以为技能没生效其实是描述没匹配上有时候技能生效了但行为不对那是技能正文写得不够具体。这类问题靠猜效率很低看日志最直接。4.3 我在实操中踩过的坑与心得第一个坑是技能description写得太“大”。最早我写了一个“全能助手”技能描述涵盖了代码、运维、写作结果任何对话都会把这一大坨内容加载进去浪费了大量上下文还干扰了模型对当前任务的判断。后来我把description拆细只保留触发词比如“成对出现”“只有数据库迁移时使用”加载效果立刻精准了。第二个坑是技能正文写成了“方法论散文”。第一版技能文件里写了很多“应该充分理解需求、应该保持代码整洁”这类话。模型看了等于没看该犯的错还是犯。改成可执行列表之后比如“先运行git status检查工作区再运行pnpm test确认基线”技能才真正有了约束力。第三个坑是让Claude Code直接覆盖技能文件导致一次复盘把好端端的技能改坏了。后来我定了规矩所有自动生成的技能文件一律先存成SKILL.md.new人工确认后再改名覆盖。这个流程虽然多了一步但大大降低了失控风险。个人经验是Claudeception的价值不在于一次生成一个完美技能而在于日拱一卒的积累。我每周让Claude Code做一次全局复盘把本周的高频操作、踩坑记录、修正方案全部过一遍。三个月下来技能库从最初的3个长到了20多个而且大部分都是真实项目里验证过、持续修正过的不是凭空写出来的理想流程。现在开新项目很多事情真的不需要从头教起旧项目的成功路径直接就能复用过来这大概就是“持续学习”最实在的回报。最后分享一个小习惯每次新技能通过验证之后我会顺手在技能文件的末尾补一段“实际使用案例”写上触发场景、预期输出、真实输出差异。这些案例是后续调试技能的重要依据也方便其他人接手维护。技能库会越用越顺手前提是你把它当成一个需要持续打理的东西而不是写完就扔。
返回列表