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

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

Claudeception的想法很直接:既然Claude Code能帮你把问题解决,那它也应该把这次解决过程里真正有价值的经验,自动提炼成一条可复用的Skill,下次遇到相似场景直接命中并复用。它把“会话内的即时帮忙”变成“会话外的持续增益”,让你的工具链拥有一种工程化的连续学习能力。
Claudeception的起源
Claudeception并非凭空而生,其设计灵感直接源于Agent领域关于‘技能库’(Skill Libraries)的一系列经典学术研究。项目作者在开发文档中坦言,其核心理念很简单:具备持久化学习能力的Agent,表现远优于每次都从零开始的Agent。它并未试图发明新的理论,而是将学术界关于‘具身智能’、‘反思机制’和‘元技能’的前沿探索,务实地转化为了一套面向软件工程的落地工具。

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

- 核心机制:Voyager不依赖模型微调,而是通过编写、执行和迭代JavaScript代码来掌握新技能(如“挖掘钻石”、“对抗僵尸”)。这些代码片段被存入向量数据库,构成了可复用的“技能库”。
Reflexion (2023): 语言强化与反思循环
如果说Voyager解决了“怎么存”,Reflexion 则解决了“怎么学”。它挑战了传统强化学习依赖标量奖励(Scalar Reward)的做法,提出了 语言强化(Verbal Reinforcement)。

- 核心机制:当Agent失败时,它不只是收到一个负分,而是被强制要求生成一段“自我反思”(Self-Reflection),分析错误原因并存入短期记忆。这种机制将试错过程中的隐性信息转化为显性的语言反馈,极大地提升了后续决策的成功率。
CASCADE (2024): 元技能与递归进化
CASCADE 标志着Agent从“工具使用者”向“技能获取者”的范式转移。它提出了 Meta-Skills(元技能) 的概念,即“学习如何学习”的能力。

- 核心机制:CASCADE展示了Agent如何通过网络搜索、代码提取和内省(Introspection)来自主掌握复杂的外部工具,而不是依赖人类预定义的接口。它强调系统应当具备 递归式的自我增强 能力。
SEAgent (2025): 陌生环境的经验式学习
SEAgent 进一步将战场拓展到了完全陌生的软件环境(如VS Code, LibreOffice)。

- 核心机制:面对没有说明书的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钩子。

- 触发机制:每一次用户请求完成后。
- 执行逻辑:它向Claude注入一段强制性的评估指令。
- 评估标准:
- 刚才的任务是否涉及非显而易见的调试?
- 该解决方案是否具有复用价值?
- 是否发现了文档中未提及的知识?
如果答案为「是」,Claudeception随即激活。
一旦激活,Claudeception会执行以下操作:

- 语义分析:回顾刚才的对话历史,剔除噪音,提取核心因果关系。
- 网络验证(可选):如果涉及通用技术栈,它会联网搜索2026年(基于当前设定)的最新最佳实践,确保存档的知识不过时。
- 结构化写入:根据
resources/skill-template.md 模板,生成标准化的Markdown文件,并保存到 .claude/skills/ 目录。
实战案例深度解析
为了展示Claudeception的实际效能,我们将详细剖析项目中自带的三个示例技能。这些技能并非人工手写,而是模拟了AI从实际Bug修复中「学会」的经验。
案例一:Next.js服务端错误调试技能
技能名称:nextjs-server-side-error-debugging

问题背景:在Next.js开发中,初学者常陷入一个陷阱:
- 页面显示通用的 "Internal Server Error" (500)。
- 习惯性打开浏览器开发者工具(Chrome DevTools),却发现Console面板空空如也。
- 网络请求(Network Tab)虽然显示500错误,但Response Body往往是空的或被框架屏蔽了细节。
开发者往往会在这里浪费大量时间,试图在浏览器端寻找线索。
AI提取的隐性知识
Claudeception敏锐地捕捉到了这个「认知错位」,并生成了如下技能要点:

触发条件(Context/Trigger):
- 页面显示500错误或自定义错误页。
- 浏览器控制台无报错。
- 代码涉及
getServerSideProps、getStaticProps 或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包裹服务端代码,并返回序列化的错误对象,而不是让页面崩溃。
验证方法:

这个技能的价值在于纠正调试方向。下次遇到类似症状,Claude Code不会再建议用户「检查网络面板」,而是直接说:「这是服务端错误,请检查您的终端日志。」
案例二:Serverless环境下的Prisma连接池耗尽
技能名称:prisma-connection-pool-exhaustion

问题背景
这是一个典型的「环境差异」导致的问题:
- 本地开发:一切正常。
- 生产环境:部署到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提取的解决方案极具实操性:

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

- 如果无法使用外部连接池,必须在代码层面限制Prisma的贪婪行为。
- 为了防止本地开发时的Hot Reload导致连接泄露,AI记录了
globalForPrisma 的单例写法。

- 使用
autocannon 进行压力测试,观察数据库仪表盘的连接数曲线是否平稳。
这个技能展示了Claudeception不仅能修Bug,还能针对特定部署架构(Serverless + Relational DB)提出架构级的优化建议。
案例三:TypeScript循环依赖检测与解决
技能名称:typescript-circular-dependency

问题背景
这是TypeScript项目中最令人头疼的「幽灵」错误之一:
- 编译阶段:TypeScript编译器(tsc)通常能通过,没有任何报错。
- 运行时:程序直接崩溃,报出
TypeError: Cannot read properties of undefined 或 ReferenceError: Cannot access ‘X’ before initialization。
- 诡异现象:交换
import 语句的顺序,错误可能就会消失或转移。
AI提取的隐性知识
Claudeception识别出这是模块加载顺序导致的问题,并总结了一套标准化的排查与重构流程。

- 不要肉眼找,直接推荐使用
madge 工具。
- 命令:
madge --circular --extensions ts,tsx src/
- 这能直接生成依赖环的图谱。

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

- 策略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提供的一种自动化机制,允许在特定事件(如提交请求)发生时执行脚本。

钩子原理:强制性的认知注入
在没有Hook的情况下,Claude仅靠语义匹配来判断是否需要激活技能,这在任务繁忙时极易产生遗漏。配置Hook后,其工作流如下:
用户提交请求 → Hook脚本触发 → 向上下文注入提醒 → Claude看到强制指令 → 任务完成后自动评估
具体来说,claudeception-activator.sh 脚本会在每次请求时,在对话流中插入一段视觉醒目的强制性提醒:

这种“认知注入”确保了Claude在完成任务的那一刻,会主动反思:“这次学到了什么值得保存的隐性知识吗?”从而极大地提高了技能提取的覆盖率。
双模安装指南
您可以根据使用习惯,选择全局生效或仅针对特定项目启用。
方案一:全局安装(适用于全环境进化)
-
部署脚本:
mkdir -p ~/.claude/hooks
cp ~/.claude/skills/claudeception/scripts/claudeception-activator.sh ~/.claude/hooks/
chmod +x ~/.claude/hooks/claudeception-activator.sh
-
修改全局配置 ~/.claude/settings.json:
{
"hooks": {
"UserPromptSubmit": [{
"hooks": [{
"type": "command",
"command": "~/.claude/hooks/claudeception-activator.sh"
}]
}]
}
}
方案二:项目级安装(适用于特定项目深耕)
-
在项目根目录部署:
mkdir -p .claude/hooks
cp .claude/skills/claudeception/scripts/claudeception-activator.sh .claude/hooks/
chmod +x .claude/hooks/claudeception-activator.sh
-
创建/编辑项目级配置 .claude/settings.json:
{
"hooks": {
"UserPromptSubmit": [{
"hooks": [{
"type": "command",
"command": ".claude/hooks/claudeception-activator.sh"
}]
}]
}
}
验证与使用 (Usage)
安装完成后,Claudeception将以两种模式运行:
至此,您的Claude Code已经具备了初步的“自我进化”能力。
结语
Claudeception Agent Skills不需要庞大的向量数据库,也不需要昂贵的微调流程。它只是忠实地记录了你在深夜调试出的那行关键配置,并在下一次你需要时,默默地递到你的手边。对于追求效能的工程师而言,这种“不重复造轮子”的确定性,或许比任何黑科技都更加珍贵。欢迎在云栈社区分享你的使用经验或探讨更多Agent工程的实践。