when-optimizing-agent-learning-use-reasoningbank-intelligence
关于
This skill implements adaptive learning for AI agents using ReasoningBank to recognize patterns, optimize strategies, and enable continuous performance improvement. Use it when you need to enhance agent capabilities for repetitive tasks or strategy refinement. It outputs trained models, pattern libraries, and optimization recommendations with performance benchmarks.
技能文档
ReasoningBank Intelligence - Adaptive Agent Learning
Overview
Implement adaptive learning with ReasoningBank for pattern recognition, strategy optimization, and continuous improvement. Use when building self-learning agents, optimizing decision-making, or implementing meta-cognitive systems.
When to Use
- Agent performance needs improvement
- Repetitive tasks require optimization
- Need pattern recognition from experience
- Strategy refinement through learning
- Building self-improving systems
- Meta-cognitive capabilities needed
Theoretical Foundation
ReasoningBank Architecture
- Trajectory Tracking: Record decision paths and outcomes
- Verdict Judgment: Evaluate success/failure of strategies
- Memory Distillation: Extract patterns from experience
- Pattern Recognition: Identify successful approaches
- Strategy Optimization: Apply learned patterns to new situations
AgentDB Integration (Optional)
- 150x faster vector operations
- HNSW indexing for similarity search
- Quantization for memory efficiency
- Batch operations for performance
Phase 1: Initialize Learning System (10 min)
Objective
Set up ReasoningBank with trajectory tracking
Agent: ML-Developer
Step 1.1: Initialize ReasoningBank
const ReasoningBank = require('reasoningbank');
const learningSystem = new ReasoningBank({
storage: {
type: 'agentdb', // Or 'memory', 'disk'
path: './reasoning-bank-data',
quantization: 'int8' // 4-32x memory reduction
},
indexing: {
enabled: true,
type: 'hnsw', // 150x faster search
dimensions: 768
},
learning: {
algorithm: 'decision-transformer',
learningRate: 0.001,
batchSize: 32
}
});
await learningSystem.init();
await memory.store('reasoningbank/system', learningSystem.config);
Step 1.2: Define Trajectory Schema
const trajectorySchema = {
id: 'uuid',
timestamp: 'datetime',
context: {
task: 'string',
environment: 'object',
constraints: 'array'
},
reasoning: [
{
step: 'number',
thought: 'string',
action: 'string',
observation: 'string'
}
],
outcome: {
success: 'boolean',
metrics: 'object',
verdict: 'string'
}
};
await learningSystem.registerSchema('trajectory', trajectorySchema);
Step 1.3: Configure Verdict Criteria
const verdictCriteria = {
success: {
thresholds: {
performance: 0.8,
efficiency: 0.75,
quality: 0.9
},
weights: {
performance: 0.4,
efficiency: 0.3,
quality: 0.3
}
},
failure: {
reasons: [
'timeout',
'error',
'poor_quality',
'resource_exhaustion'
]
}
};
await learningSystem.configureVerdicts(verdictCriteria);
Validation Criteria
- ReasoningBank initialized
- Trajectory schema registered
- Verdict criteria configured
- Storage backend ready
Hooks Integration
npx claude-flow@alpha hooks pre-task \
--description "Initialize ReasoningBank learning system" \
--complexity "high"
npx claude-flow@alpha hooks post-task \
--task-id "reasoningbank-init" \
--memory-key "reasoningbank/initialization"
Phase 2: Capture Patterns (10 min)
Objective
Record agent decisions and outcomes for learning
Agent: SAFLA-Neural
Step 2.1: Track Trajectories
async function trackTrajectory(task, agent) {
const trajectory = {
id: generateUUID(),
timestamp: new Date(),
context: {
task: task.description,
environment: getEnvironment(),
constraints: task.constraints
},
reasoning: []
};
// Hook into agent execution
agent.on('thought', (thought) => {
trajectory.reasoning.push({
step: trajectory.reasoning.length + 1,
thought: thought.text,
action: null,
observation: null
});
});
agent.on('action', (action) => {
const lastStep = trajectory.reasoning[trajectory.reasoning.length - 1];
lastStep.action = action.description;
});
agent.on('observation', (obs) => {
const lastStep = trajectory.reasoning[trajectory.reasoning.length - 1];
lastStep.observation = obs.result;
});
agent.on('complete', async (result) => {
trajectory.outcome = {
success: result.success,
metrics: result.metrics,
verdict: await evaluateVerdict(result)
};
await learningSystem.storeTrajectory(trajectory);
});
return trajectory;
}
Step 2.2: Evaluate Verdicts
async function evaluateVerdict(result) {
const scores = {
performance: result.metrics.score,
efficiency: result.metrics.duration / result.metrics.expectedDuration,
quality: result.metrics.qualityScore
};
const weightedScore = Object.keys(scores).reduce((sum, key) => {
return sum + scores[key] * verdictCriteria.success.weights[key];
}, 0);
const verdict = {
score: weightedScore,
passed: weightedScore >= Object.values(verdictCriteria.success.thresholds)
.reduce((sum, t) => sum + t, 0) / 3,
breakdown: scores,
reasoning: generateVerdictReasoning(scores, weightedScore)
};
await learningSystem.recordVerdict(result.id, verdict);
return verdict;
}
Step 2.3: Pattern Extraction
async function extractPatterns() {
// Get all successful trajectories
const successfulTrajectories = await learningSystem.query({
'outcome.verdict.passed': true
});
// Extract common patterns using AgentDB vector similarity
const patterns = await learningSystem.analyzePatterns({
trajectories: successfulTrajectories,
similarity: {
method: 'cosine',
threshold: 0.85,
index: 'hnsw' // 150x faster
},
clustering: {
algorithm: 'dbscan',
minSamples: 3,
epsilon: 0.15
}
});
await memory.store('reasoningbank/patterns', patterns);
return patterns;
}
Validation Criteria
- Trajectories captured
- Verdicts evaluated
- Patterns extracted
- Similarity clustering complete
Phase 3: Optimize Strategies (10 min)
Objective
Apply learned patterns to improve future decisions
Agent: Performance-Analyzer
Step 3.1: Train Decision Model
async function trainDecisionModel(patterns) {
// Use Decision Transformer (from ReasoningBank's 9 RL algorithms)
const model = await learningSystem.createModel({
algorithm: 'decision-transformer',
config: {
hiddenSize: 256,
numLayers: 4,
numHeads: 8,
maxTrajectoryLength: 50,
learningRate: 0.0001
}
});
// Prepare training data from successful patterns
const trainingData = patterns.map(pattern => ({
states: pattern.reasoning.map(r => r.thought),
actions: pattern.reasoning.map(r => r.action),
rewards: calculateRewards(pattern.outcome),
returns: calculateReturnsToGo(pattern.outcome)
}));
// Train with batch operations (AgentDB optimization)
await model.train({
data: trainingData,
epochs: 100,
batchSize: 32,
validation: 0.2,
callbacks: {
onEpoch: (epoch, metrics) => {
console.log(`Epoch ${epoch}: loss=${metrics.loss}, accuracy=${metrics.accuracy}`);
}
}
});
await learningSystem.saveModel('decision-model', model);
return model;
}
Step 3.2: Generate Strategy Recommendations
async function generateRecommendations() {
const patterns = await memory.retrieve('reasoningbank/patterns');
const recommendations = patterns.map(pattern => {
const frequency = pattern.instances.length;
const avgScore = pattern.instances.reduce((sum, i) =>
sum + i.outcome.verdict.score, 0) / frequency;
return {
pattern: {
description: summarizePattern(pattern),
reasoning: pattern.commonReasoning,
actions: pattern.commonActions
},
metrics: {
frequency,
avgScore,
consistency: calculateConsistency(pattern.instances)
},
recommendation: {
applicability: identifyApplicableContexts(pattern),
priority: calculatePriority(frequency, avgScore),
implementation: generateImplementationGuide(pattern)
}
};
}).sort((a, b) => b.recommendation.priority - a.recommendation.priority);
await memory.store('reasoningbank/recommendations', recommendations);
return recommendations;
}
Step 3.3: Apply Optimizations
async function applyOptimizations(agent, recommendations) {
// Apply top 5 recommendations
const topRecommendations = recommendations.slice(0, 5);
for (const rec of topRecommendations) {
// Update agent strategy
await agent.updateStrategy({
pattern: rec.pattern,
priority: rec.recommendation.priority,
applicableContexts: rec.recommendation.applicability
});
console.log(`✅ Applied: ${rec.pattern.description}`);
}
// Update agent's decision model
const model = await learningSystem.loadModel('decision-model');
agent.setDecisionModel(model);
await memory.store('reasoningbank/applied-optimizations', topRecommendations);
}
Validation Criteria
- Model trained successfully
- Recommendations generated
- Top strategies identified
- Optimizations applied
Phase 4: Validate Learning (10 min)
Objective
Measure improvement from adaptive learning
Agent: Performance-Analyzer
Step 4.1: Benchmark Performance
async function benchmarkPerformance(agent, testCases) {
const results = {
baseline: [],
optimized: []
};
// Baseline: Agent without learning
const baselineAgent = agent.clone({ useLearning: false });
for (const testCase of testCases) {
const result = await baselineAgent.execute(testCase);
results.baseline.push({
testId: testCase.id,
metrics: result.metrics,
success: result.success
});
}
// Optimized: Agent with learning
const optimizedAgent = agent.clone({ useLearning: true });
for (const testCase of testCases) {
const result = await optimizedAgent.execute(testCase);
results.optimized.push({
testId: testCase.id,
metrics: result.metrics,
success: result.success
});
}
await memory.store('reasoningbank/benchmark-results', results);
return results;
}
Step 4.2: Calculate Improvement Metrics
function calculateImprovement(results) {
const baselineAvg = calculateAverage(results.baseline.map(r => r.metrics.score));
const optimizedAvg = calculateAverage(results.optimized.map(r => r.metrics.score));
const improvement = {
scoreImprovement: ((optimizedAvg - baselineAvg) / baselineAvg * 100).toFixed(2) + '%',
successRateImprovement: calculateSuccessRateImprovement(results),
efficiencyImprovement: calculateEfficiencyImprovement(results),
qualityImprovement: calculateQualityImprovement(results)
};
return improvement;
}
Step 4.3: Validate Patterns
async function validatePatterns(patterns, testResults) {
const validation = patterns.map(pattern => {
// Find test results that used this pattern
const patternResults = testResults.optimized.filter(r =>
r.usedPattern === pattern.id
);
const successRate = patternResults.filter(r => r.success).length / patternResults.length;
return {
pattern: pattern.description,
timesUsed: patternResults.length,
successRate,
avgScore: calculateAverage(patternResults.map(r => r.metrics.score)),
validated: successRate > 0.8
};
});
await memory.store('reasoningbank/pattern-validation', validation);
return validation;
}
Validation Criteria
- Benchmarks completed
- Improvement > 15%
- Patterns validated
- Success rate improved
Phase 5: Deploy Optimizations (5 min)
Objective
Integrate learned strategies into production agents
Agent: ML-Developer
Step 5.1: Export Learned Model
async function exportModel() {
const model = await learningSystem.loadModel('decision-model');
const patterns = await memory.retrieve('reasoningbank/patterns');
const recommendations = await memory.retrieve('reasoningbank/recommendations');
const exportPackage = {
version: '1.0.0',
timestamp: new Date(),
model: {
weights: await model.exportWeights(),
config: model.config,
performance: await memory.retrieve('reasoningbank/benchmark-results')
},
patterns: patterns.map(p => ({
id: p.id,
description: p.description,
reasoning: p.commonReasoning,
actions: p.commonActions,
metrics: p.metrics
})),
recommendations: recommendations
};
await fs.writeFile(
'/tmp/reasoningbank-export.json',
JSON.stringify(exportPackage, null, 2)
);
console.log('✅ Model exported to: /tmp/reasoningbank-export.json');
}
Step 5.2: Create Integration Guide
# ReasoningBank Integration Guide
## Installation
\`\`\`bash
npm install reasoningbank
\`\`\`
## Import Learned Model
\`\`\`javascript
const { ReasoningBank } = require('reasoningbank');
const learnedModel = require('./reasoningbank-export.json');
const agent = new Agent({
decisionModel: learnedModel.model,
patterns: learnedModel.patterns,
recommendations: learnedModel.recommendations
});
\`\`\`
## Usage
\`\`\`javascript
// Agent automatically uses learned strategies
const result = await agent.execute(task);
\`\`\`
## Performance Gains
${improvement.scoreImprovement} average improvement
${improvement.successRateImprovement} success rate increase
Step 5.3: Generate Learning Report
const learningReport = {
summary: {
totalTrajectories: await learningSystem.countTrajectories(),
patternsIdentified: patterns.length,
recommendationsGenerated: recommendations.length,
improvement: improvement
},
topPatterns: patterns.slice(0, 10),
performanceMetrics: {
baseline: baselineMetrics,
optimized: optimizedMetrics,
improvement: improvement
},
nextSteps: [
'Continue collecting trajectories for ongoing learning',
'Monitor production performance',
'Retrain model quarterly',
'A/B test new patterns'
]
};
await fs.writeFile(
'/tmp/learning-report.json',
JSON.stringify(learningReport, null, 2)
);
Validation Criteria
- Model exported
- Integration guide created
- Learning report generated
- Ready for production
Success Metrics
- Performance improvement > 15%
- Pattern recognition accuracy > 85%
- Model training successful
- Production integration ready
Memory Schema
{
"reasoningbank/": {
"session-${id}/": {
"system": {},
"patterns": [],
"recommendations": [],
"benchmark-results": {},
"pattern-validation": [],
"applied-optimizations": []
}
}
}
Integration with AgentDB
For 150x faster operations:
const AgentDB = require('agentdb');
const db = new AgentDB({
quantization: 'int8',
indexing: 'hnsw',
caching: true
});
await learningSystem.useVectorDB(db);
Skill Completion
Outputs:
- reasoningbank-export.json: Trained model and patterns
- learning-report.json: Performance analysis
- integration-guide.md: Implementation instructions
- pattern-library.json: Validated patterns
Complete when improvement > 15% and ready for production deployment.
快速安装
/plugin add https://github.com/DNYoussef/ai-chrome-extension/tree/main/when-optimizing-agent-learning-use-reasoningbank-intelligence在 Claude Code 中复制并粘贴此命令以安装该技能
GitHub 仓库
相关推荐技能
deepspeed
设计该Skill为开发者提供DeepSpeed分布式训练的专家指导,涵盖ZeRO优化阶段、流水线并行和混合精度训练等核心功能。它适用于实现DeepSpeed解决方案、调试代码或学习最佳实践的场景。通过该Skill,开发者能快速获得API使用、特性配置和性能优化的专业支持。
when-optimizing-prompts-use-prompt-architect
其他该Skill为开发者提供基于证据的提示词分析与优化框架,帮助解决AI响应质量差、输出不一致等问题。它能识别并消除提示词中的反模式,通过A/B测试验证优化效果。适用于需要创建新提示、重构现有提示或提升AI系统响应质量的开发场景。
when-analyzing-user-intent-use-intent-analyzer
其他该Skill使用认知科学原理和概率映射来深度解析用户意图,特别适用于处理模糊、复杂或多部分的用户请求。它能够识别歧义并通过针对性问题进行澄清,最终生成明确的意图文档和可执行方案。开发者可在用户需求不明确时调用此工具,以获得清晰的任务定义和用户确认的行动计划。
when-creating-skill-template-use-skill-builder
其他这个Skill帮助开发者快速创建符合规范的Claude Code Skills模板。它能自动生成包含YAML frontmatter、渐进式文档结构和完整目录组织的技能框架。适用于需要创建可复用技能的开发场景,确保遵循最佳实践和规范要求。
