@pga-ai/core 0.4.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/dist/PGA.d.ts +100 -1
- package/dist/PGA.d.ts.map +1 -1
- package/dist/PGA.js +1015 -25
- package/dist/PGA.js.map +1 -1
- package/dist/advanced-ai/AgentVitals.d.ts +23 -0
- package/dist/advanced-ai/AgentVitals.d.ts.map +1 -0
- package/dist/advanced-ai/AgentVitals.js +13 -0
- package/dist/advanced-ai/AgentVitals.js.map +1 -0
- package/dist/advanced-ai/CalibratedAutonomy.d.ts +37 -0
- package/dist/advanced-ai/CalibratedAutonomy.d.ts.map +1 -0
- package/dist/advanced-ai/CalibratedAutonomy.js +151 -0
- package/dist/advanced-ai/CalibratedAutonomy.js.map +1 -0
- package/dist/advanced-ai/EmotionalModel.d.ts +27 -0
- package/dist/advanced-ai/EmotionalModel.d.ts.map +1 -0
- package/dist/advanced-ai/EmotionalModel.js +206 -0
- package/dist/advanced-ai/EmotionalModel.js.map +1 -0
- package/dist/advanced-ai/EnhancedSelfModel.d.ts +53 -0
- package/dist/advanced-ai/EnhancedSelfModel.d.ts.map +1 -0
- package/dist/advanced-ai/EnhancedSelfModel.js +189 -0
- package/dist/advanced-ai/EnhancedSelfModel.js.map +1 -0
- package/dist/advanced-ai/SelfModel.d.ts +29 -0
- package/dist/advanced-ai/SelfModel.d.ts.map +1 -0
- package/dist/advanced-ai/SelfModel.js +91 -0
- package/dist/advanced-ai/SelfModel.js.map +1 -0
- package/dist/advanced-ai/StrategicAutonomy.d.ts +41 -0
- package/dist/advanced-ai/StrategicAutonomy.d.ts.map +1 -0
- package/dist/advanced-ai/StrategicAutonomy.js +148 -0
- package/dist/advanced-ai/StrategicAutonomy.js.map +1 -0
- package/dist/core/GenesisBootstrap.d.ts +18 -0
- package/dist/core/GenesisBootstrap.d.ts.map +1 -0
- package/dist/core/GenesisBootstrap.js +95 -0
- package/dist/core/GenesisBootstrap.js.map +1 -0
- package/dist/core/GenomeManager.js +1 -1
- package/dist/core/PromptAssembler.d.ts +26 -0
- package/dist/core/PromptAssembler.d.ts.map +1 -1
- package/dist/core/PromptAssembler.js +133 -8
- package/dist/core/PromptAssembler.js.map +1 -1
- package/dist/evaluation/BenchmarkSuites.d.ts +2 -0
- package/dist/evaluation/BenchmarkSuites.d.ts.map +1 -1
- package/dist/evaluation/BenchmarkSuites.js +9 -6
- package/dist/evaluation/BenchmarkSuites.js.map +1 -1
- package/dist/evaluation/Evaluator.d.ts.map +1 -1
- package/dist/evaluation/Evaluator.js +8 -7
- package/dist/evaluation/Evaluator.js.map +1 -1
- package/dist/evaluation/ProofOfValueRunner.d.ts +41 -0
- package/dist/evaluation/ProofOfValueRunner.d.ts.map +1 -0
- package/dist/evaluation/ProofOfValueRunner.js +177 -0
- package/dist/evaluation/ProofOfValueRunner.js.map +1 -0
- package/dist/evaluation/SandboxSuites.js +4 -4
- package/dist/evaluation/SandboxSuites.js.map +1 -1
- package/dist/evaluation/fixtures/proof-of-value-v1.json +178 -0
- package/dist/evolution/MutationOperator.d.ts +26 -0
- package/dist/evolution/MutationOperator.d.ts.map +1 -1
- package/dist/evolution/MutationOperator.js +200 -9
- package/dist/evolution/MutationOperator.js.map +1 -1
- package/dist/evolution/PurposeSurvival.d.ts +68 -0
- package/dist/evolution/PurposeSurvival.d.ts.map +1 -0
- package/dist/evolution/PurposeSurvival.js +199 -0
- package/dist/evolution/PurposeSurvival.js.map +1 -0
- package/dist/evolution/boost/EvolutionBoostEngine.d.ts +2 -1
- package/dist/evolution/boost/EvolutionBoostEngine.d.ts.map +1 -1
- package/dist/evolution/boost/EvolutionBoostEngine.js +3 -3
- package/dist/evolution/boost/EvolutionBoostEngine.js.map +1 -1
- package/dist/evolution/boost/GeneticRecombinator.d.ts.map +1 -1
- package/dist/evolution/boost/GeneticRecombinator.js +16 -5
- package/dist/evolution/boost/GeneticRecombinator.js.map +1 -1
- package/dist/evolution/boost/ParetoOptimizer.d.ts +1 -1
- package/dist/evolution/boost/ParetoOptimizer.d.ts.map +1 -1
- package/dist/evolution/boost/ParetoOptimizer.js.map +1 -1
- package/dist/evolution/boost/operators/BreakthroughOperator.d.ts +4 -7
- package/dist/evolution/boost/operators/BreakthroughOperator.d.ts.map +1 -1
- package/dist/evolution/boost/operators/BreakthroughOperator.js +172 -160
- package/dist/evolution/boost/operators/BreakthroughOperator.js.map +1 -1
- package/dist/evolution/boost/operators/CrossoverMutationOperator.d.ts +10 -15
- package/dist/evolution/boost/operators/CrossoverMutationOperator.d.ts.map +1 -1
- package/dist/evolution/boost/operators/CrossoverMutationOperator.js +167 -120
- package/dist/evolution/boost/operators/CrossoverMutationOperator.js.map +1 -1
- package/dist/evolution/boost/operators/PatternExtractionOperator.d.ts +7 -10
- package/dist/evolution/boost/operators/PatternExtractionOperator.d.ts.map +1 -1
- package/dist/evolution/boost/operators/PatternExtractionOperator.js +167 -164
- package/dist/evolution/boost/operators/PatternExtractionOperator.js.map +1 -1
- package/dist/evolution/boost/operators/SemanticRestructuringOperator.d.ts +2 -3
- package/dist/evolution/boost/operators/SemanticRestructuringOperator.d.ts.map +1 -1
- package/dist/evolution/boost/operators/SemanticRestructuringOperator.js +136 -54
- package/dist/evolution/boost/operators/SemanticRestructuringOperator.js.map +1 -1
- package/dist/evolution/boost/utils/llmHelper.d.ts +10 -0
- package/dist/evolution/boost/utils/llmHelper.d.ts.map +1 -0
- package/dist/evolution/boost/utils/llmHelper.js +13 -0
- package/dist/evolution/boost/utils/llmHelper.js.map +1 -0
- package/dist/firewall/ContentFirewall.d.ts +30 -0
- package/dist/firewall/ContentFirewall.d.ts.map +1 -0
- package/dist/firewall/ContentFirewall.js +251 -0
- package/dist/firewall/ContentFirewall.js.map +1 -0
- package/dist/firewall/DefaultPatterns.d.ts +8 -0
- package/dist/firewall/DefaultPatterns.d.ts.map +1 -0
- package/dist/firewall/DefaultPatterns.js +623 -0
- package/dist/firewall/DefaultPatterns.js.map +1 -0
- package/dist/firewall/index.d.ts +3 -0
- package/dist/firewall/index.d.ts.map +1 -0
- package/dist/firewall/index.js +3 -0
- package/dist/firewall/index.js.map +1 -0
- package/dist/gene-bank/CognitiveGene.d.ts +106 -106
- package/dist/gene-bank/GeneAdopter.d.ts +1 -0
- package/dist/gene-bank/GeneAdopter.d.ts.map +1 -1
- package/dist/gene-bank/GeneAdopter.js +23 -4
- package/dist/gene-bank/GeneAdopter.js.map +1 -1
- package/dist/gene-bank/GeneBank.d.ts +6 -6
- package/dist/gene-bank/GeneExtractor.d.ts +4 -4
- package/dist/gene-bank/MarketplaceClient.d.ts +26 -0
- package/dist/gene-bank/MarketplaceClient.d.ts.map +1 -0
- package/dist/gene-bank/MarketplaceClient.js +147 -0
- package/dist/gene-bank/MarketplaceClient.js.map +1 -0
- package/dist/gene-bank/SandboxTester.d.ts +2 -2
- package/dist/gene-bank/adapters/PostgresGeneStorage.js +1 -1
- package/dist/gene-bank/adapters/PostgresGeneStorage.js.map +1 -1
- package/dist/gene-bank/index.d.ts +1 -0
- package/dist/gene-bank/index.d.ts.map +1 -1
- package/dist/gene-bank/index.js +1 -0
- package/dist/gene-bank/index.js.map +1 -1
- package/dist/index.d.ts +54 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -5
- package/dist/index.js.map +1 -1
- package/dist/interfaces/StorageAdapter.d.ts +4 -1
- package/dist/interfaces/StorageAdapter.d.ts.map +1 -1
- package/dist/memory/AnalyticMemoryEngine.d.ts +83 -0
- package/dist/memory/AnalyticMemoryEngine.d.ts.map +1 -0
- package/dist/memory/AnalyticMemoryEngine.js +372 -0
- package/dist/memory/AnalyticMemoryEngine.js.map +1 -0
- package/dist/memory/LayeredMemory.d.ts +2 -0
- package/dist/memory/LayeredMemory.d.ts.map +1 -1
- package/dist/memory/LayeredMemory.js +2 -0
- package/dist/memory/LayeredMemory.js.map +1 -1
- package/dist/memory/PatternMemory.d.ts +38 -0
- package/dist/memory/PatternMemory.d.ts.map +1 -0
- package/dist/memory/PatternMemory.js +161 -0
- package/dist/memory/PatternMemory.js.map +1 -0
- package/dist/memory/PersonalNarrative.d.ts +51 -0
- package/dist/memory/PersonalNarrative.d.ts.map +1 -0
- package/dist/memory/PersonalNarrative.js +172 -0
- package/dist/memory/PersonalNarrative.js.map +1 -0
- package/dist/monitoring/AlertWebhooks.d.ts.map +1 -1
- package/dist/monitoring/AlertWebhooks.js +8 -5
- package/dist/monitoring/AlertWebhooks.js.map +1 -1
- package/dist/monitoring/MonitoringDashboard.js +1 -1
- package/dist/reasoning/Metacognition.d.ts +47 -0
- package/dist/reasoning/Metacognition.d.ts.map +1 -0
- package/dist/reasoning/Metacognition.js +274 -0
- package/dist/reasoning/Metacognition.js.map +1 -0
- package/dist/types/GenomeV2.d.ts +95 -0
- package/dist/types/GenomeV2.d.ts.map +1 -1
- package/dist/types/index.d.ts +159 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/tokens.d.ts +4 -0
- package/dist/utils/tokens.d.ts.map +1 -0
- package/dist/utils/tokens.js +16 -0
- package/dist/utils/tokens.js.map +1 -0
- package/dist/wrap/FunctionLLMAdapter.d.ts +9 -0
- package/dist/wrap/FunctionLLMAdapter.d.ts.map +1 -0
- package/dist/wrap/FunctionLLMAdapter.js +26 -0
- package/dist/wrap/FunctionLLMAdapter.js.map +1 -0
- package/dist/wrap/GenomeBuilder.d.ts +13 -0
- package/dist/wrap/GenomeBuilder.d.ts.map +1 -0
- package/dist/wrap/GenomeBuilder.js +222 -0
- package/dist/wrap/GenomeBuilder.js.map +1 -0
- package/dist/wrap/InMemoryStorageAdapter.d.ts +61 -0
- package/dist/wrap/InMemoryStorageAdapter.d.ts.map +1 -0
- package/dist/wrap/InMemoryStorageAdapter.js +153 -0
- package/dist/wrap/InMemoryStorageAdapter.js.map +1 -0
- package/dist/wrap/WrapOptions.d.ts +45 -0
- package/dist/wrap/WrapOptions.d.ts.map +1 -0
- package/dist/wrap/WrapOptions.js +2 -0
- package/dist/wrap/WrapOptions.js.map +1 -0
- package/dist/wrap/WrappedAgent.d.ts +77 -0
- package/dist/wrap/WrappedAgent.d.ts.map +1 -0
- package/dist/wrap/WrappedAgent.js +142 -0
- package/dist/wrap/WrappedAgent.js.map +1 -0
- package/dist/wrap/index.d.ts +6 -0
- package/dist/wrap/index.d.ts.map +1 -0
- package/dist/wrap/index.js +5 -0
- package/dist/wrap/index.js.map +1 -0
- package/package.json +13 -10
|
@@ -1,35 +1,66 @@
|
|
|
1
|
+
import { generateText } from '../utils/llmHelper.js';
|
|
2
|
+
import { estimateTokenCount } from '../../../utils/tokens.js';
|
|
1
3
|
export class PatternExtractionOperator {
|
|
2
|
-
geneBank;
|
|
3
4
|
llm;
|
|
5
|
+
geneBank;
|
|
4
6
|
name = 'pattern_extraction';
|
|
5
|
-
description = '
|
|
7
|
+
description = 'Crystallize learned behavioral patterns into gene content';
|
|
6
8
|
targetChromosome = 'c1';
|
|
7
|
-
constructor(
|
|
8
|
-
this.geneBank = geneBank;
|
|
9
|
+
constructor(llm, geneBank) {
|
|
9
10
|
this.llm = llm;
|
|
11
|
+
this.geneBank = geneBank;
|
|
10
12
|
}
|
|
11
13
|
async mutate(context) {
|
|
14
|
+
const evidence = context.evidence ?? {};
|
|
15
|
+
const patterns = (evidence.patterns ?? []);
|
|
16
|
+
const predictions = (evidence.predictions ?? []);
|
|
17
|
+
if (patterns.length === 0 && !this.geneBank) {
|
|
18
|
+
return this.createFailure(context, 'No behavioral patterns available and no GeneBank fallback');
|
|
19
|
+
}
|
|
12
20
|
const mutant = this.deepClone(context.genome);
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
if (
|
|
16
|
-
return
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
const targetGene = context.targetGene
|
|
22
|
+
?? mutant.chromosomes.c1.operations[0];
|
|
23
|
+
if (!targetGene) {
|
|
24
|
+
return this.createFailure(context, 'No target gene found for pattern extraction');
|
|
25
|
+
}
|
|
26
|
+
const geneIndex = mutant.chromosomes.c1.operations.findIndex(g => g.id === targetGene.id || g.category === targetGene.category);
|
|
27
|
+
if (geneIndex === -1) {
|
|
28
|
+
return this.createFailure(context, `Gene ${targetGene.category} not found`);
|
|
29
|
+
}
|
|
30
|
+
let enhancedContent;
|
|
31
|
+
if (patterns.length > 0) {
|
|
32
|
+
enhancedContent = await this.extractFromPatterns(targetGene, patterns, predictions, context);
|
|
33
|
+
}
|
|
34
|
+
else if (this.geneBank) {
|
|
35
|
+
enhancedContent = await this.extractFromGeneBank(targetGene, context);
|
|
23
36
|
}
|
|
24
|
-
|
|
37
|
+
else {
|
|
38
|
+
return this.createFailure(context, 'No patterns or GeneBank available');
|
|
39
|
+
}
|
|
40
|
+
mutant.chromosomes.c1.operations[geneIndex] = {
|
|
41
|
+
...targetGene,
|
|
42
|
+
content: enhancedContent,
|
|
43
|
+
tokenCount: estimateTokenCount(enhancedContent),
|
|
44
|
+
version: (targetGene.version ?? 0) + 1,
|
|
45
|
+
lastModified: new Date(),
|
|
46
|
+
origin: 'mutation',
|
|
47
|
+
mutationHistory: [
|
|
48
|
+
...(targetGene.mutationHistory || []),
|
|
49
|
+
{
|
|
50
|
+
operation: this.name,
|
|
51
|
+
timestamp: new Date(),
|
|
52
|
+
reason: `Extracted ${patterns.length} behavioral patterns`,
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
};
|
|
25
56
|
const mutation = {
|
|
26
57
|
id: this.generateId(),
|
|
27
58
|
timestamp: new Date(),
|
|
28
59
|
chromosome: 'c1',
|
|
29
60
|
operation: this.name,
|
|
30
|
-
before:
|
|
31
|
-
after:
|
|
32
|
-
diff: `
|
|
61
|
+
before: targetGene.content,
|
|
62
|
+
after: enhancedContent,
|
|
63
|
+
diff: `Pattern extraction: ${patterns.length} patterns crystallized into ${targetGene.category}`,
|
|
33
64
|
trigger: 'drift-detected',
|
|
34
65
|
reason: context.reason,
|
|
35
66
|
sandboxTested: false,
|
|
@@ -40,151 +71,139 @@ export class PatternExtractionOperator {
|
|
|
40
71
|
success: true,
|
|
41
72
|
mutant,
|
|
42
73
|
mutation,
|
|
43
|
-
description: `
|
|
44
|
-
expectedImprovement:
|
|
74
|
+
description: `Crystallized ${patterns.length} behavioral patterns into ${targetGene.category}`,
|
|
75
|
+
expectedImprovement: this.estimateImprovement(context),
|
|
45
76
|
};
|
|
46
77
|
}
|
|
47
78
|
estimateImprovement(context) {
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
1 - fitness.tokenEfficiency,
|
|
53
|
-
fitness.interventionRate,
|
|
54
|
-
];
|
|
55
|
-
const avgGap = gaps.reduce((sum, g) => sum + g, 0) / gaps.length;
|
|
56
|
-
return 0.50 + (avgGap * 0.20);
|
|
57
|
-
}
|
|
58
|
-
identifyWeaknesses(context) {
|
|
59
|
-
const weaknesses = [];
|
|
60
|
-
const fitness = context.genome.fitness;
|
|
61
|
-
if (fitness.quality < 0.7) {
|
|
62
|
-
weaknesses.push('low-quality-responses');
|
|
63
|
-
}
|
|
64
|
-
if (fitness.successRate < 0.8) {
|
|
65
|
-
weaknesses.push('low-success-rate');
|
|
66
|
-
}
|
|
67
|
-
if (fitness.tokenEfficiency < 0.6) {
|
|
68
|
-
weaknesses.push('inefficient-token-usage');
|
|
69
|
-
}
|
|
70
|
-
if (fitness.interventionRate > 0.15) {
|
|
71
|
-
weaknesses.push('high-intervention-rate');
|
|
72
|
-
}
|
|
73
|
-
if (fitness.latency > 2000) {
|
|
74
|
-
weaknesses.push('high-latency');
|
|
79
|
+
const evidence = context.evidence ?? {};
|
|
80
|
+
const patterns = (evidence.patterns ?? []);
|
|
81
|
+
if (patterns.length === 0) {
|
|
82
|
+
return this.geneBank ? 0.08 : 0.02;
|
|
75
83
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
weaknesses.push('tool-usage');
|
|
81
|
-
}
|
|
82
|
-
return weaknesses;
|
|
83
|
-
}
|
|
84
|
-
async findRelevantPatterns(weaknesses, context) {
|
|
85
|
-
const patterns = [];
|
|
86
|
-
try {
|
|
87
|
-
for (const weakness of weaknesses) {
|
|
88
|
-
const genes = await this.geneBank.searchGenes({
|
|
89
|
-
type: [this.mapWeaknessToGeneType(weakness)],
|
|
90
|
-
minFitness: 0.75,
|
|
91
|
-
limit: 3,
|
|
92
|
-
});
|
|
93
|
-
for (const gene of genes) {
|
|
94
|
-
if (gene.fitness > context.genome.fitness.composite) {
|
|
95
|
-
patterns.push({
|
|
96
|
-
pattern: gene.pattern,
|
|
97
|
-
fitness: gene.fitness,
|
|
98
|
-
category: gene.type,
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
catch (error) {
|
|
105
|
-
console.warn('Gene Bank not available for pattern extraction:', error);
|
|
106
|
-
}
|
|
107
|
-
return patterns.sort((a, b) => b.fitness - a.fitness).slice(0, 5);
|
|
108
|
-
}
|
|
109
|
-
mapWeaknessToGeneType(weakness) {
|
|
110
|
-
const mapping = {
|
|
111
|
-
'low-quality-responses': 'reasoning-pattern',
|
|
112
|
-
'low-success-rate': 'tool-usage-pattern',
|
|
113
|
-
'inefficient-token-usage': 'cognitive-compression',
|
|
114
|
-
'high-intervention-rate': 'safety-constraint',
|
|
115
|
-
'high-latency': 'performance-optimization',
|
|
116
|
-
'error-handling': 'error-recovery-pattern',
|
|
117
|
-
'tool-usage': 'tool-usage-pattern',
|
|
118
|
-
};
|
|
119
|
-
return mapping[weakness] || 'reasoning-pattern';
|
|
84
|
+
const avgConfidence = patterns.reduce((sum, p) => sum + p.confidence, 0) / patterns.length;
|
|
85
|
+
const patternBonus = Math.min(patterns.length * 0.04, 0.20);
|
|
86
|
+
const confidenceBonus = avgConfidence * 0.15;
|
|
87
|
+
return Math.min(0.40, 0.05 + patternBonus + confidenceBonus);
|
|
120
88
|
}
|
|
121
|
-
async
|
|
122
|
-
const
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
});
|
|
128
|
-
const
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
const
|
|
133
|
-
const patternsText = patterns.map((p, i) => `Pattern ${i + 1} (${p.category}, fitness: ${(p.fitness * 100).toFixed(0)}%):\n${p.pattern}`).join('\n\n');
|
|
134
|
-
return `You are an expert AI agent optimizer. Integrate successful patterns into existing genes.
|
|
89
|
+
async extractFromPatterns(gene, patterns, predictions, context) {
|
|
90
|
+
const patternsText = patterns.map((p, i) => {
|
|
91
|
+
let text = `${i + 1}. [${p.type}] ${p.description} (confidence: ${(p.confidence * 100).toFixed(0)}%, seen ${p.frequency}x)`;
|
|
92
|
+
if (p.prediction)
|
|
93
|
+
text += `\n → Prediction: ${p.prediction}`;
|
|
94
|
+
return text;
|
|
95
|
+
}).join('\n');
|
|
96
|
+
const predictionsText = predictions.length > 0
|
|
97
|
+
? predictions.map(p => `- ${p.prediction} (${(p.confidence * 100).toFixed(0)}% confidence)`).join('\n')
|
|
98
|
+
: 'None available';
|
|
99
|
+
const purpose = context.evidence?.purpose ?? 'general-purpose AI assistant';
|
|
100
|
+
const prompt = `You are an expert AI agent prompt engineer. Your task is to ENHANCE an agent instruction by incorporating learned behavioral patterns from real user interactions.
|
|
135
101
|
|
|
136
|
-
CURRENT
|
|
137
|
-
|
|
102
|
+
CURRENT INSTRUCTION (category: ${gene.category}):
|
|
103
|
+
\`\`\`
|
|
104
|
+
${gene.content}
|
|
105
|
+
\`\`\`
|
|
138
106
|
|
|
139
|
-
|
|
107
|
+
LEARNED BEHAVIORAL PATTERNS (from real interactions):
|
|
140
108
|
${patternsText}
|
|
141
109
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
110
|
+
NEXT-ACTION PREDICTIONS:
|
|
111
|
+
${predictionsText}
|
|
112
|
+
|
|
113
|
+
AGENT PURPOSE: ${purpose}
|
|
146
114
|
|
|
147
|
-
TASK:
|
|
115
|
+
TASK: Rewrite the instruction to incorporate these learned patterns. The enhanced instruction should:
|
|
148
116
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
117
|
+
1. CODIFY successful patterns as explicit strategies (e.g., "When users ask for X, always include Y")
|
|
118
|
+
2. ADD proactive behaviors based on predictions (e.g., "Anticipate follow-up questions about Z")
|
|
119
|
+
3. INCLUDE error-recovery strategies from learned error patterns
|
|
120
|
+
4. OPTIMIZE tool usage based on tool-preference patterns
|
|
121
|
+
5. PRESERVE the core functionality of the original instruction
|
|
122
|
+
6. Keep the instruction focused on category: ${gene.category}
|
|
155
123
|
|
|
156
|
-
Return the enhanced
|
|
157
|
-
---GENE:${genes[0]?.category || 'tool-usage'}---
|
|
158
|
-
[Enhanced content here]
|
|
159
|
-
---END---
|
|
124
|
+
Return ONLY the enhanced instruction content. No explanations.
|
|
160
125
|
|
|
161
|
-
|
|
126
|
+
ENHANCED INSTRUCTION:`;
|
|
127
|
+
try {
|
|
128
|
+
const response = await generateText(this.llm, {
|
|
129
|
+
prompt,
|
|
130
|
+
temperature: 0.4,
|
|
131
|
+
maxTokens: 1500,
|
|
132
|
+
});
|
|
133
|
+
return response.content.trim();
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
return gene.content;
|
|
137
|
+
}
|
|
162
138
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
const
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
139
|
+
async extractFromGeneBank(gene, _context) {
|
|
140
|
+
if (!this.geneBank)
|
|
141
|
+
return gene.content;
|
|
142
|
+
try {
|
|
143
|
+
const candidates = await this.geneBank.searchGenes({
|
|
144
|
+
type: [this.categoryToType(gene.category)],
|
|
145
|
+
minFitness: 0.75,
|
|
146
|
+
sortBy: 'fitness',
|
|
147
|
+
sortOrder: 'desc',
|
|
148
|
+
limit: 3,
|
|
149
|
+
});
|
|
150
|
+
if (candidates.length === 0)
|
|
151
|
+
return gene.content;
|
|
152
|
+
const patternsText = candidates.map((c, i) => `${i + 1}. (fitness: ${(c.fitness.overallFitness * 100).toFixed(0)}%): ${c.content.instruction}`).join('\n\n');
|
|
153
|
+
const prompt = `You are an expert AI agent prompt engineer. Enhance this instruction by integrating techniques from high-performing agents.
|
|
154
|
+
|
|
155
|
+
CURRENT INSTRUCTION (${gene.category}):
|
|
156
|
+
\`\`\`
|
|
157
|
+
${gene.content}
|
|
158
|
+
\`\`\`
|
|
159
|
+
|
|
160
|
+
HIGH-PERFORMING PATTERNS FROM OTHER AGENTS:
|
|
161
|
+
${patternsText}
|
|
162
|
+
|
|
163
|
+
Rewrite the instruction to incorporate the best techniques. Return ONLY the enhanced content.
|
|
164
|
+
|
|
165
|
+
ENHANCED INSTRUCTION:`;
|
|
166
|
+
const response = await generateText(this.llm, {
|
|
167
|
+
prompt,
|
|
168
|
+
temperature: 0.4,
|
|
169
|
+
maxTokens: 1500,
|
|
170
|
+
});
|
|
171
|
+
return response.content.trim();
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
return gene.content;
|
|
186
175
|
}
|
|
187
|
-
|
|
176
|
+
}
|
|
177
|
+
categoryToType(category) {
|
|
178
|
+
const mapping = {
|
|
179
|
+
'tool-usage': 'tool-usage-pattern',
|
|
180
|
+
'coding-patterns': 'reasoning-pattern',
|
|
181
|
+
'reasoning': 'reasoning-pattern',
|
|
182
|
+
'communication': 'communication-pattern',
|
|
183
|
+
'error-handling': 'error-recovery-pattern',
|
|
184
|
+
'data-processing': 'performance-optimization',
|
|
185
|
+
};
|
|
186
|
+
return mapping[category] || 'reasoning-pattern';
|
|
187
|
+
}
|
|
188
|
+
createFailure(context, reason) {
|
|
189
|
+
return {
|
|
190
|
+
success: false,
|
|
191
|
+
mutant: context.genome,
|
|
192
|
+
mutation: {
|
|
193
|
+
id: this.generateId(),
|
|
194
|
+
timestamp: new Date(),
|
|
195
|
+
chromosome: 'c1',
|
|
196
|
+
operation: this.name,
|
|
197
|
+
before: '', after: '', diff: '',
|
|
198
|
+
trigger: 'drift-detected',
|
|
199
|
+
reason,
|
|
200
|
+
sandboxTested: false,
|
|
201
|
+
promoted: false,
|
|
202
|
+
proposer: 'system',
|
|
203
|
+
},
|
|
204
|
+
description: reason,
|
|
205
|
+
expectedImprovement: 0,
|
|
206
|
+
};
|
|
188
207
|
}
|
|
189
208
|
deepClone(genome) {
|
|
190
209
|
return JSON.parse(JSON.stringify(genome));
|
|
@@ -192,21 +211,5 @@ For each gene, use the separator format above.`;
|
|
|
192
211
|
generateId() {
|
|
193
212
|
return `mut_pattern_${Date.now()}_${Math.random().toString(36).substring(7)}`;
|
|
194
213
|
}
|
|
195
|
-
createEmptyMutation() {
|
|
196
|
-
return {
|
|
197
|
-
id: this.generateId(),
|
|
198
|
-
timestamp: new Date(),
|
|
199
|
-
chromosome: 'c1',
|
|
200
|
-
operation: this.name,
|
|
201
|
-
before: '',
|
|
202
|
-
after: '',
|
|
203
|
-
diff: '',
|
|
204
|
-
trigger: 'drift-detected',
|
|
205
|
-
reason: 'No patterns found',
|
|
206
|
-
sandboxTested: false,
|
|
207
|
-
promoted: false,
|
|
208
|
-
proposer: 'system',
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
214
|
}
|
|
212
215
|
//# sourceMappingURL=PatternExtractionOperator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PatternExtractionOperator.js","sourceRoot":"","sources":["../../../../src/evolution/boost/operators/PatternExtractionOperator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PatternExtractionOperator.js","sourceRoot":"","sources":["../../../../src/evolution/boost/operators/PatternExtractionOperator.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,11 +9,10 @@ export declare class SemanticRestructuringOperator implements IMutationOperator
|
|
|
9
9
|
constructor(llm: LLMAdapter);
|
|
10
10
|
mutate(context: MutationContext): Promise<MutationResult>;
|
|
11
11
|
estimateImprovement(context: MutationContext): number;
|
|
12
|
-
private
|
|
13
|
-
private buildRestructuringPrompt;
|
|
12
|
+
private buildIntelligentPrompt;
|
|
14
13
|
private performSimpleRestructuring;
|
|
14
|
+
private createFailure;
|
|
15
15
|
private deepClone;
|
|
16
16
|
private generateId;
|
|
17
|
-
private computeDiff;
|
|
18
17
|
}
|
|
19
18
|
//# sourceMappingURL=SemanticRestructuringOperator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SemanticRestructuringOperator.d.ts","sourceRoot":"","sources":["../../../../src/evolution/boost/operators/SemanticRestructuringOperator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SemanticRestructuringOperator.d.ts","sourceRoot":"","sources":["../../../../src/evolution/boost/operators/SemanticRestructuringOperator.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAGR,YAAY,EAEf,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACR,iBAAiB,EACjB,eAAe,EACf,cAAc,EACjB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAyCpE,qBAAa,6BAA8B,YAAW,iBAAiB;IAKvD,OAAO,CAAC,GAAG;IAJvB,IAAI,EAAE,YAAY,CAA4B;IAC9C,WAAW,SAAqE;IAChF,gBAAgB,EAAE,IAAI,CAAQ;gBAEV,GAAG,EAAE,UAAU;IAE7B,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IA8E/D,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM;IAqCrD,OAAO,CAAC,sBAAsB;IA+E9B,OAAO,CAAC,0BAA0B;IAOlC,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,UAAU;CAGrB"}
|