AI技术文章

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

作者:AI修猫Prompt0 次浏览 来源:AI修猫Prompt
Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

这不是一个普通的Skill,而是一把“把经验变成Skill”的工具:Claudeception是一个Meta-Skill,即专门用来“生产技能”的技能。

这不是一个普通的Skill,而是一把“把经验变成Skill”的工具:Claudeception是一个Meta-Skill,即专门用来“生产技能”的技能。

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

你写代码时最浪费的不是敲键盘,而是重复付出“第一次解决问题”的成本:同样的依赖冲突、同样的构建错误、同样的怪异边缘case,每隔几周就会再来一次。

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

Claudeception的想法很直接:既然Claude Code能帮你把问题解决,那它也应该把这次解决过程里真正有价值的经验,自动提炼成一条可复用的Skill,下次遇到相似场景直接命中并复用。它把“会话内的即时帮忙”变成“会话外的持续增益”,让你的工具链拥有一种工程化的连续学习能力。

Claudeception的起源

Claudeception并非凭空而生,其设计灵感直接源于Agent领域关于‘技能库’(Skill Libraries)的一系列经典学术研究。项目作者在开发文档中坦言,其核心理念很简单:具备持久化学习能力的Agent,表现远优于每次都从零开始的Agent。它并未试图发明新的理论,而是将学术界关于‘具身智能’、‘反思机制’和‘元技能’的前沿探索,务实地转化为了一套面向软件工程的落地工具。

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

Voyager (2023): 「代码即技能」的奠基者

Voyager是第一个在大规模开放世界(Minecraft)中实现终身学习的Agent。它最革命性的贡献在于证明了"Code as Policies"(代码即策略的可行性。

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

  • 核心机制:Voyager不依赖模型微调,而是通过编写、执行和迭代JavaScript代码来掌握新技能(如“挖掘钻石”、“对抗僵尸”)。这些代码片段被存入向量数据库,构成了可复用的“技能库”。

Reflexion (2023): 语言强化与反思循环

如果说Voyager解决了“怎么存”,Reflexion则解决了“怎么学”。它挑战了传统强化学习依赖标量奖励(Scalar Reward)的做法,提出了语言强化(Verbal Reinforcement)。感兴趣您可以看下:

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

Asimov的预言与《Reflexion》的Prompt启示:机器人心理学家的新纪元(在新窗口打开)

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

  • 核心机制:当Agent失败时,它不只是收到一个负分,而是被强制要求生成一段“自我反思”(Self-Reflection),分析错误原因并存入短期记忆。这种机制将试错过程中的隐性信息转化为显性的语言反馈,极大地提升了后续决策的成功率。

CASCADE (2024): 元技能与递归进化

CASCADE标志着Agent从“工具使用者”向“技能获取者”的范式转移。它提出了Meta-Skills(元技能)的概念,即“学习如何学习”的能力。

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

  • 核心机制:CASCADE展示了Agent如何通过网络搜索、代码提取和内省(Introspection)来自主掌握复杂的外部工具,而不是依赖人类预定义的接口。它强调系统应当具备递归式的自我增强能力。

SEAgent (2025): 陌生环境的经验式学习

SEAgent进一步将战场拓展到了完全陌生的软件环境(如VS Code, LibreOffice)。

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

  • 核心机制:面对没有说明书的GUI,SEAgent通过World State Model(评估状态)和Curriculum Generator(生成课程)进行自主探索。它强调"Learning from Experience"(从经验中学习),并通过“专家到通才”的策略,让Agent在试错中从新手进化为专家。

Claudeception正是站在巨人的肩膀上,将Voyager的技能库、Reflexion的反思循环、CASCADE的元技能、SEAgent的经验学习,熔铸进了一个简单的Agent Skills中。

Claudeception的核心工作流

Claudeception的运作并非被动等待,而是通过一套严密的流程强制进行「认知反思」。

强制反思钩子(The Activation Hook)

项目作者在scripts/claudeception-activator.sh中定义了一个Shell钩子。

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

  • 触发机制:每一次用户请求完成后。
  • 执行逻辑:它向Claude注入一段强制性的评估指令。
  • 评估标准
  • 刚才的任务是否涉及非显而易见的调试?
  • 该解决方案是否具有复用价值?
  • 是否发现了文档中未提及的知识?

如果答案为「是」,Claudeception随即激活。

知识提取与固化(Extraction & Codification)

一旦激活,Claudeception会执行以下操作:

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

  • 语义分析:回顾刚才的对话历史,剔除噪音,提取核心因果关系。
  • 网络验证(可选):如果涉及通用技术栈,它会联网搜索2026年(基于当前设定)的最新最佳实践,确保存档的知识不过时。
  • 结构化写入:根据resources/skill-template.md模板,生成标准化的Markdown文件,并保存到.claude/skills/目录。

实战案例深度解析

为了展示Claudeception的实际效能,我们将详细剖析项目中自带的三个示例技能。这些技能并非人工手写,而是模拟了AI从实际Bug修复中「学会」的经验。

案例一:Next.js服务端错误调试技能

技能名称nextjs-server-side-error-debugging

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

问题背景:在Next.js开发中,初学者常陷入一个陷阱:

  • 页面显示通用的 "Internal Server Error" (500)。
  • 习惯性打开浏览器开发者工具(Chrome DevTools),却发现Console面板空空如也。
  • 网络请求(Network Tab)虽然显示500错误,但Response Body往往是空的或被框架屏蔽了细节。

开发者往往会在这里浪费大量时间,试图在浏览器端寻找线索。

AI提取的隐性知识

Claudeception敏锐地捕捉到了这个「认知错位」,并生成了如下技能要点:

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

触发条件(Context/Trigger)

  • 页面显示500错误或自定义错误页。
  • 浏览器控制台无报错。
  • 代码涉及getServerSidePropsgetStaticProps或API Routes。
  • 错误仅在刷新或直接导航时出现(非客户端路由跳转)。

解决方案(Solution)

export async function getServerSideProps(context) {

try {

const data = await fetchSomething();

return { props: { data } };

} catch (error) {

// 关键:将错误打印在服务端日志,同时优雅降级

console.error('getServerSideProps error:', error);

return { props: { error: error.message } };

}

}

  • 核心动作:立即在这个时刻停止查看浏览器,转向运行npm run dev终端(Terminal)
  • 原理解释:服务端渲染(SSR)的错误栈只会打印在Node.js进程的标准输出中,不会传输到客户端。
  • 代码级防御:建议使用try-catch包裹服务端代码,并返回序列化的错误对象,而不是让页面崩溃。

验证方法

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

  • 检查终端输出,确认是否看到了具体的文件名和行号。

这个技能的价值在于纠正调试方向。下次遇到类似症状,Claude Code不会再建议用户「检查网络面板」,而是直接说:「这是服务端错误,请检查您的终端日志。」

案例二:Serverless环境下的Prisma连接池耗尽

技能名称prisma-connection-pool-exhaustion

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

问题背景

这是一个典型的「环境差异」导致的问题:

  • 本地开发:一切正常。
  • 生产环境:部署到Vercel/AWS Lambda后,在流量高峰期频繁出现数据库连接超时。
  • 报错信息
  • P2024: Timed out fetching a new connection from the pool
  • FATAL: too many connections for role "username"

AI提取的隐性知识

这是关于架构限制的深刻理解。Serverless函数在冷启动时会创建新的实例,而每个实例都会初始化一个新的Prisma Client,进而建立多个数据库连接。当并发上来时,数据库连接数瞬间被撑爆。

Claudeception提取的解决方案极具实操性:

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

  • 解决方案A:引入连接池服务(PgBouncer)
  • 这是治本之策。AI建议修改DATABASE_URL,指向Supabase或Neon提供的连接池端口(通常是6543而非5432),并添加?pgbouncer=true参数。
  • 解决方案B:严格限制单实例连接数

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

  • 如果无法使用外部连接池,必须在代码层面限制Prisma的贪婪行为。
  • 解决方案C:开发环境单例模式
  • 为了防止本地开发时的Hot Reload导致连接泄露,AI记录了globalForPrisma的单例写法。
  • 验证标准

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

  • 使用autocannon进行压力测试,观察数据库仪表盘的连接数曲线是否平稳。

这个技能展示了Claudeception不仅能修Bug,还能针对特定部署架构(Serverless + Relational DB)提出架构级的优化建议。

案例三:TypeScript循环依赖检测与解决

技能名称typescript-circular-dependency

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

问题背景

这是TypeScript项目中最令人头疼的「幽灵」错误之一:

  • 编译阶段:TypeScript编译器(tsc)通常能通过,没有任何报错。
  • 运行时:程序直接崩溃,报出TypeError: Cannot read properties of undefinedReferenceError: Cannot access 'X' before initialization
  • 诡异现象:交换import语句的顺序,错误可能就会消失或转移。

AI提取的隐性知识

Claudeception识别出这是模块加载顺序导致的问题,并总结了一套标准化的排查与重构流程。

  • 第一步:工具辅助检测

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

  • 不要肉眼找,直接推荐使用madge工具。
  • 命令:madge --circular --extensions ts,tsx src/
  • 这能直接生成依赖环的图谱。
  • 第二步:识别常见模式

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

  • 服务层互调:Service A调Service B,Service B又调Service A。
  • 桶文件(Barrel Files)陷阱:在index.ts中导出所有内容,又在子文件中从index.ts导入。
  • 第三步:重构策略(Design Patterns)

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

  • 策略1:提取共享接口(Interface Extraction)
  • 创建独立的types/目录。
  • 让Service A和B都依赖于抽象的Interface,而不是具体的Class实现。
  • 策略2:依赖注入(Dependency Injection)
  • 不直接在文件头部import,而是在构造函数中传入实例。
  • 策略3:使用import type
  • 如果只是为了类型检查,使用import type,这样在运行时会被擦除,从而切断运行时的引用环。

这个技能实际上是在教导开发者编写解耦合的代码。它不仅仅是修复错误,更是在提升代码质量。

如何部署Claudeception

Claudeception是一个标准的Claude Code扩展,您可以选择将其安装为全局能力,或仅在特定项目中启用。以下是基于macOS/Linux环境的标准部署流程。

技能安装 (Skill Installation)

项目作者推荐采用Git Clone的方式安装,这样方便未来通过git pull获取更新。

方案A:全局安装(推荐)适用于希望让Claude在所有项目中都能积累经验的开发者。

git clone https://github.com/blader/Claudeception.git ~/.claude/skills/claudeception

方案B:项目级安装适用于团队协作,希望将技能库包含在项目仓库中(需添加.claude.gitignore)。

git clone https://github.com/blader/Claudeception.git .claude/skills/claudeception

配置反思钩子 (Configuration)

项目作者推荐安装。这是实现“自动进化”的关键。Hook(钩子)是Claude Code提供的一种自动化机制,允许在特定事件(如提交请求)发生时执行脚本。

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

钩子原理:强制性的认知注入

在没有Hook的情况下,Claude仅靠语义匹配来判断是否需要激活技能,这在任务繁忙时极易产生遗漏。配置Hook后,其工作流如下:

用户提交请求Hook脚本触发向上下文注入提醒Claude看到强制指令任务完成后自动评估

具体来说,claudeception-activator.sh脚本会在每次请求时,在对话流中插入一段视觉醒目的强制性提醒:

Skills也能自进化:Claudeception把你的踩坑经验自动变成Skills |CC直接用

这种“认知注入”确保了Claude在完成任务的那一刻,会主动反思:“这次学到了什么值得保存的隐性知识吗?”从而极大地提高了技能提取的覆盖率。

双模安装指南

您可以根据使用习惯,选择全局生效或仅针对特定项目启用。

方案一:全局安装(适用于全环境进化)

1.部署脚本:

mkdir -p ~/.claude/hooks

cp ~/.claude/skills/claudeception/scripts/claudeception-activator.sh ~/.claude/hooks/

chmod +x ~/.claude/hooks/claudeception-activator.sh

2.修改全局配置~/.claude/settings.json

{

"hooks":{

"UserPromptSubmit":[{

"hooks":[{

"type":"command",

"command":"~/.claude/hooks/claudeception-activator.sh"

}]

}]

}

}

方案二:项目级安装(适用于特定项目深耕)

1.在项目根目录部署:

mkdir -p .claude/hooks

cp .claude/skills/claudeception/scripts/claudeception-activator.sh .claude/hooks/

chmod +x .claude/hooks/claudeception-activator.sh

2.创建/编辑项目级配置.claude/settings.json

{

"hooks":{

"UserPromptSubmit":[{

"hooks":[{

"type":"command",

"command":".claude/hooks/claudeception-activator.sh"

}]

}]

}

}

验证与使用 (Usage)

安装完成后,Claudeception将以两种模式运行:

  • 隐式触发(Automatic Mode): 当您完成了一次复杂的调试(例如解决了Next.js的服务端渲染错误),或者探索出了某个特定API的用法后,Claude会自动识别到“非显而易见”的知识,并默默将其固化为Skill文件。
  • 显式触发(Explicit Mode): 您也可以在对话中主动发起回顾:

/claudeception

或者直接用自然语言命令:

Save what we just learned as a skill

至此,您的Claude Code已经具备了初步的“自我进化”能力。

结语

Claudeceptio Agent Skills不需要庞大的向量数据库,也不需要昂贵的微调流程。它只是忠实地记录了你在深夜调试出的那行关键配置,并在下一次你需要时,默默地递到你的手边。对于追求效能的工程师而言,这种“不重复造轮子”的确定性,或许比任何黑科技都更加珍贵。

文章来自于“AI修猫Prompt”,作者 “AI修猫Prompt”。

相关主题

读完之后

加入 AINRK 交流群

了解加入交流群的方式,与更多 AI 从业者交流。

查看交流群说明(在新窗口打开)