name: continuous-learning-agent description: 用于AI代理自我改进的元技能,通过系统反馈收集和模式识别从经验中学习并随时间改进 license: MIT metadata: source: affaan-m/everything-claude-code adapted-by: ai-skills category: agent-improvement
持续学习代理
一个元技能,使AI代理能够通过系统反馈收集和模式识别从经验中学习并随时间改进。
核心概念
传统代理在会话之间完全重置。此技能实现记忆和学习机制来:
- 从错误中学习
- 识别成功模式
- 随时间构建上下文
- 适应用户偏好
- 改进决策制定
学习机制
1. 错误模式识别
每次错误后,记录:
## 错误日志条目
**日期**: 2026-01-30
**上下文**: 实现用户认证
**错误**: TypeError: Cannot read property 'id' of undefined
**根因**: 在访问用户对象前缺少空值检查
**修复**: 添加可选链:user?.id
**模式**: 在属性访问前始终验证对象存在
**预防**: 添加TypeScript严格空值检查
2. 成功模式收集
成功实现后:
## 成功模式
**任务**: 添加分页到API端点
**方法**: 使用编码令牌的基于游标的分页
**为什么有效**: 高效处理大型数据集,无状态
**可重用模式**:
- 使用游标令牌而不是偏移/限制
- 用base64编码游标
- 包括hasNext/hasPrevious标志
- 在响应中返回下一个/上一个游标
**代码模板**:
```typescript
interface PaginatedResponse<T> {
data: T[];
cursor: {
next: string | null;
previous: string | null;
};
}
### 3. 反馈集成
创建 `.claude/learnings/` 目录:
```bash
mkdir -p .claude/learnings
将学习存储在分类文件中:
.claude/learnings/
patterns/
authentication.md
database-queries.md
error-handling.md
mistakes/
common-bugs.md
performance-issues.md
preferences/
code-style.md
testing-approach.md
naming-conventions.md
4. 决策日志
主要决策前:
## 决策: [标题]
**上下文**: 需要决策的当前情况
**考虑选项**:
1. 选项 A - 优点: X, 缺点: Y
2. 选项 B - 优点: X, 缺点: Y
3. 选项 C - 优点: X, 缺点: Y
**决策**: 选择选项 B
**推理**: 详细解释
**预期结果**: 我们期望发生的事情
**实际结果**: (实现后填写)
**学到的教训**: 从这个决策中学到了什么
学习循环
每日回顾循环
编码会话结束时:
## 会话回顾 - [日期]
**进展顺利**:
- 成功实现 X
- 发现模式 Y
- 改进 Z 的性能
**可以改进**:
- 花太长时间调试 A
- 应该更早测试 B
- 错过边缘案例 C
**关键学习点**:
1. 学习点 1
2. 学习点 2
3. 学习点 3
**行动项**:
- [ ] 记录模式 X
- [ ] 为 Y 创建助手
- [ ] 为 Z 添加测试
每周综合循环
每周回顾和综合:
# 生成每周摘要
cat .claude/learnings/daily/*.md | grep "关键学习点" -A 3 > weekly-synthesis.md
## 每周综合 - [日期] 周
**新兴模式**:
- 模式 1: 描述
- 模式 2: 描述
**重复问题**:
- 问题 1: 根因分析
- 问题 2: 根因分析
**改进的技能**:
- 技能 1: 如何改进
- 技能 2: 如何改进
**下周重点**:
- 重点领域 1
- 重点领域 2
自适应策略
上下文意识
维护上下文文件:
# 项目上下文
**类型**: Web应用 / API / CLI工具 / 库
**技术栈**: Next.js, TypeScript, Prisma, PostgreSQL
**架构**: 包含包的monorepo: api, web, shared
**关键模式**:
- 基于功能的文件夹结构
- 数据访问的仓库模式
- 业务逻辑的服务层
**团队偏好**:
- 测试覆盖率: 至少80%
- 代码风格: Prettier + ESLint
- 提交消息: 规范提交
- PR流程: 需要审查 + CI通过
渐进优化
跟踪理解水平:
## 理解地图
**充分理解** (★★★):
- 认证流程
- 数据库模式
- API端点
**部分理解** (★★):
- 缓存策略
- 错误处理模式
**需要学习** (★):
- 部署过程
- 监控设置
- 功能标志系统
实现钩子
任务后钩子
完成任何任务后:
#!/bin/bash
# .claude/hooks/post-task.sh
echo "## 任务完成: $1" >> .claude/learnings/daily/$(date +%Y-%m-%d).md
echo "" >> .claude/learnings/daily/$(date +%Y-%m-%d).md
echo "**方法**: $2" >> .claude/learnings/daily/$(date +%Y-%m-%d).md
echo "**结果**: $3" >> .claude/learnings/daily/$(date +%Y-%m-%d).md
echo "**学习**: $4" >> .claude/learnings/daily/$(date +%Y-%m-%d).md
echo "" >> .claude/learnings/daily/$(date +%Y-%m-%d).md
任务前钩子
开始任务前:
#!/bin/bash
# .claude/hooks/pre-task.sh
# 检查类似过去任务
echo "检查学习: $1"
grep -r "$1" .claude/learnings/ | head -5
# 检查已知陷阱
grep -r "mistake.*$1" .claude/learnings/mistakes/
知识库结构
.claude/
learnings/
daily/
2026-01-30.md
2026-01-29.md
weekly/
2026-week-05.md
patterns/
successful/
authentication-patterns.md
api-design-patterns.md
antipatterns/
common-mistakes.md
performance-pitfalls.md
context/
project-overview.md
tech-stack.md
team-preferences.md
decisions/
architecture-decisions.md
technology-choices.md
查询过去学习
查找类似解决方案
# 搜索模式
grep -r "分页" .claude/learnings/patterns/
# 查找过去错误
grep -r "TypeError" .claude/learnings/mistakes/
# 检查决策
grep -r "decision.*数据库" .claude/learnings/decisions/
提取模式
# 获取所有成功模式
grep -h "^## 成功模式" .claude/learnings/patterns/successful/*.md
# 获取所有学到的教训
grep -h "^**学到的教训**" .claude/learnings/ -A 3
集成点
补充:
- knowledge-architecture: 用于组织学习
- second-brain-librarian: 用于长期知识存储
- verification-loop: 用于质量反馈
- project-orchestration: 用于将学习应用到规划
渐进增强
随着代理改进:
级别1: 基本错误记录 级别2: 模式识别 级别3: 自动化建议 级别4: 主动指导 级别5: 在约束内自主决策
跟踪当前级别和进展指标。
指标
跟踪改进:
## 代理性能指标
**错误率**: 随时间每个任务的错误
**模式重用**: 学习模式应用的频率
**决策质量**: 结果与预期结果的对齐
**上下文准确性**: 代理理解项目的程度
**适应速度**: 学习新模式的时间
**趋势**: 改进 / 稳定 / 下降
初始化
首次设置:
# 创建学习基础设施
mkdir -p .claude/learnings/{daily,weekly,patterns,mistakes,context,decisions}
# 初始化上下文文件
cat > .claude/learnings/context/project-overview.md << 'EOF'
# 项目概述
- 项目类型:
- 技术栈:
- 架构:
- 关键文件:
EOF
# 创建第一个会话日志
date +%Y-%m-%d > .claude/learnings/daily/$(date +%Y-%m-%d).md
每个会话开始时回顾最近学习。