agentdb 2.0.0-alpha.1 → 2.0.0-alpha.2
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/dist/agentdb.min.js +4 -4
- package/dist/simulation/cli.js +0 -0
- package/dist/src/cli/lib/config-manager.d.ts.map +1 -1
- package/dist/src/cli/lib/config-manager.js.map +1 -1
- package/dist/src/cli/lib/history-tracker.d.ts.map +1 -1
- package/dist/src/cli/lib/history-tracker.js +7 -1
- package/dist/src/cli/lib/history-tracker.js.map +1 -1
- package/examples/README.md +105 -0
- package/examples/quickstart.js +43 -0
- package/package.json +6 -2
- package/simulation/.claude-flow/metrics/agent-metrics.json +1 -0
- package/simulation/.claude-flow/metrics/performance.json +87 -0
- package/simulation/.claude-flow/metrics/task-metrics.json +10 -0
- package/simulation/COMPLETION-STATUS.md +139 -0
- package/simulation/FINAL-RESULTS.md +414 -0
- package/simulation/FINAL-STATUS.md +281 -0
- package/simulation/INTEGRATION-COMPLETE.md +452 -0
- package/simulation/MIGRATION-STATUS.md +231 -0
- package/simulation/OPTIMIZATION-RESULTS.md +397 -0
- package/simulation/PHASE1-COMPLETE.md +163 -0
- package/simulation/README.md +848 -0
- package/simulation/SIMULATION-RESULTS.md +239 -0
- package/simulation/cli.ts +78 -0
- package/simulation/configs/default.json +37 -0
- package/simulation/data/advanced/aidefence.graph +0 -0
- package/simulation/data/advanced/bmssp.graph +0 -0
- package/simulation/data/advanced/consciousness.graph +0 -0
- package/simulation/data/advanced/goalie.graph +0 -0
- package/simulation/data/advanced/psycho-symbolic.graph +0 -0
- package/simulation/data/advanced/research-swarm.graph +0 -0
- package/simulation/data/advanced/sublinear.graph +0 -0
- package/simulation/data/advanced/temporal.graph +0 -0
- package/simulation/data/causal.graph +0 -0
- package/simulation/data/graph-traversal.graph +0 -0
- package/simulation/data/lean-agentic.graph +0 -0
- package/simulation/data/reflexion.graph +0 -0
- package/simulation/data/skills.graph +0 -0
- package/simulation/data/stock-market.graph +0 -0
- package/simulation/data/strange-loops.graph +0 -0
- package/simulation/data/swarm.graph +0 -0
- package/simulation/data/voting-consensus.graph +0 -0
- package/simulation/docs/CLI-INTEGRATION-PLAN.md +1038 -0
- package/simulation/docs/COMPREHENSIVE-LATENT-SPACE-COMPLETION.md +354 -0
- package/simulation/docs/DOCUMENTATION-INDEX.md +226 -0
- package/simulation/docs/IMPLEMENTATION-COMPLETE.md +521 -0
- package/simulation/docs/OPTIMIZATION-SUMMARY.md +279 -0
- package/simulation/docs/README.md +229 -0
- package/simulation/docs/SWARM-5-INTEGRATION-SUMMARY.md +528 -0
- package/simulation/docs/TESTING-SUMMARY.md +304 -0
- package/simulation/docs/architecture/EXTENSION-API.md +868 -0
- package/simulation/docs/architecture/INTEGRATION-ARCHITECTURE.md +1138 -0
- package/simulation/docs/architecture/OPTIMIZATION-STRATEGY.md +778 -0
- package/simulation/docs/architecture/SIMULATION-ARCHITECTURE.md +892 -0
- package/simulation/docs/guides/CLI-REFERENCE.md +896 -0
- package/simulation/docs/guides/CUSTOM-SIMULATIONS.md +931 -0
- package/simulation/docs/guides/DEPLOYMENT.md +832 -0
- package/simulation/docs/guides/IMPLEMENTATION-SUMMARY.md +544 -0
- package/simulation/docs/guides/MIGRATION-GUIDE.md +591 -0
- package/simulation/docs/guides/QUICK-START.md +361 -0
- package/simulation/docs/guides/README.md +736 -0
- package/simulation/docs/guides/TROUBLESHOOTING.md +817 -0
- package/simulation/docs/guides/WIZARD-GUIDE.md +869 -0
- package/simulation/docs/reports/latent-space/MASTER-SYNTHESIS.md +345 -0
- package/simulation/docs/reports/latent-space/README.md +132 -0
- package/simulation/docs/reports/latent-space/attention-analysis-RESULTS.md +238 -0
- package/simulation/docs/reports/latent-space/clustering-analysis-RESULTS.md +210 -0
- package/simulation/docs/reports/latent-space/hnsw-exploration-RESULTS.md +332 -0
- package/simulation/docs/reports/latent-space/hypergraph-exploration-RESULTS.md +37 -0
- package/simulation/docs/reports/latent-space/neural-augmentation-RESULTS.md +69 -0
- package/simulation/docs/reports/latent-space/quantum-hybrid-RESULTS.md +91 -0
- package/simulation/docs/reports/latent-space/self-organizing-hnsw-RESULTS.md +51 -0
- package/simulation/docs/reports/latent-space/traversal-optimization-RESULTS.md +238 -0
- package/simulation/reports/README.md +397 -0
- package/simulation/reports/advanced-simulations-performance.md +1241 -0
- package/simulation/reports/aidefence-integration-2025-11-30T01-36-53-486Z.json +30 -0
- package/simulation/reports/architecture-analysis.md +1396 -0
- package/simulation/reports/basic-scenarios-performance.md +1840 -0
- package/simulation/reports/bmssp-integration-2025-11-30T01-36-27-193Z.json +30 -0
- package/simulation/reports/bmssp-integration-2025-11-30T03-38-12-887Z.json +30 -0
- package/simulation/reports/causal-reasoning-2025-11-29T23-35-21-795Z.json +36 -0
- package/simulation/reports/causal-reasoning-2025-11-30T00-58-42-862Z.json +30 -0
- package/simulation/reports/causal-reasoning-2025-11-30T00-59-12-546Z.json +40 -0
- package/simulation/reports/consciousness-explorer-2025-11-30T01-36-51-269Z.json +31 -0
- package/simulation/reports/core-benchmarks.md +727 -0
- package/simulation/reports/goalie-integration-2025-11-30T01-36-52-377Z.json +30 -0
- package/simulation/reports/graph-traversal-2025-11-29T23-35-35-279Z.json +78 -0
- package/simulation/reports/graph-traversal-2025-11-29T23-37-36-697Z.json +30 -0
- package/simulation/reports/graph-traversal-2025-11-30T01-03-59-716Z.json +30 -0
- package/simulation/reports/graph-traversal-2025-11-30T01-05-10-984Z.json +30 -0
- package/simulation/reports/graph-traversal-2025-11-30T01-06-16-334Z.json +30 -0
- package/simulation/reports/graph-traversal-2025-11-30T01-06-53-312Z.json +30 -0
- package/simulation/reports/graph-traversal-2025-11-30T01-07-51-075Z.json +24 -0
- package/simulation/reports/graph-traversal-2025-11-30T01-08-22-179Z.json +42 -0
- package/simulation/reports/lean-agentic-swarm-2025-11-29T23-37-23-804Z.json +148 -0
- package/simulation/reports/lean-agentic-swarm-2025-11-30T01-31-24-401Z.json +31 -0
- package/simulation/reports/lean-agentic-swarm-2025-11-30T03-38-01-470Z.json +31 -0
- package/simulation/reports/multi-agent-swarm-2025-11-29T23-35-28-093Z.json +78 -0
- package/simulation/reports/multi-agent-swarm-2025-11-30T01-03-54-062Z.json +42 -0
- package/simulation/reports/multi-agent-swarm-2025-11-30T01-05-06-092Z.json +42 -0
- package/simulation/reports/psycho-symbolic-reasoner-2025-11-30T01-36-50-180Z.json +30 -0
- package/simulation/reports/quality-metrics.md +727 -0
- package/simulation/reports/reflexion-learning-2025-11-29T23-35-09-774Z.json +48 -0
- package/simulation/reports/reflexion-learning-2025-11-29T23-37-16-934Z.json +36 -0
- package/simulation/reports/reflexion-learning-2025-11-30T00-07-49-259Z.json +30 -0
- package/simulation/reports/reflexion-learning-2025-11-30T00-09-29-319Z.json +51 -0
- package/simulation/reports/reflexion-learning-2025-11-30T00-28-37-659Z.json +51 -0
- package/simulation/reports/reflexion-learning-2025-11-30T01-31-30-690Z.json +29 -0
- package/simulation/reports/reflexion-learning-2025-11-30T03-38-06-937Z.json +29 -0
- package/simulation/reports/research-foundations.md +2004 -0
- package/simulation/reports/research-swarm-2025-11-30T01-36-54-647Z.json +30 -0
- package/simulation/reports/scalability-deployment.md +2404 -0
- package/simulation/reports/skill-evolution-2025-11-29T23-35-15-945Z.json +36 -0
- package/simulation/reports/skill-evolution-2025-11-30T01-03-17-995Z.json +30 -0
- package/simulation/reports/skill-evolution-2025-11-30T01-03-48-441Z.json +30 -0
- package/simulation/reports/skill-evolution-2025-11-30T01-05-00-554Z.json +30 -0
- package/simulation/reports/skill-evolution-2025-11-30T01-06-11-436Z.json +30 -0
- package/simulation/reports/skill-evolution-2025-11-30T01-06-51-979Z.json +30 -0
- package/simulation/reports/skill-evolution-2025-11-30T01-07-32-695Z.json +40 -0
- package/simulation/reports/stock-market-emergence-2025-11-30T00-11-43-865Z.json +56 -0
- package/simulation/reports/stock-market-emergence-2025-11-30T00-28-57-495Z.json +56 -0
- package/simulation/reports/strange-loops-2025-11-29T23-37-30-621Z.json +78 -0
- package/simulation/reports/strange-loops-2025-11-30T00-07-55-415Z.json +30 -0
- package/simulation/reports/strange-loops-2025-11-30T00-09-35-133Z.json +30 -0
- package/simulation/reports/strange-loops-2025-11-30T00-48-50-744Z.json +24 -0
- package/simulation/reports/strange-loops-2025-11-30T00-54-48-044Z.json +24 -0
- package/simulation/reports/strange-loops-2025-11-30T00-57-27-633Z.json +24 -0
- package/simulation/reports/strange-loops-2025-11-30T00-57-59-135Z.json +42 -0
- package/simulation/reports/sublinear-solver-2025-11-30T01-36-33-134Z.json +30 -0
- package/simulation/reports/temporal-lead-solver-2025-11-30T01-36-38-628Z.json +30 -0
- package/simulation/reports/use-cases-applications.md +2212 -0
- package/simulation/reports/voting-system-consensus-2025-11-30T00-11-37-199Z.json +58 -0
- package/simulation/reports/voting-system-consensus-2025-11-30T00-28-47-735Z.json +58 -0
- package/simulation/runner.ts +300 -0
- package/simulation/scenarios/README-advanced/aidefence-integration.md +63 -0
- package/simulation/scenarios/README-advanced/bmssp-integration.md +58 -0
- package/simulation/scenarios/README-advanced/consciousness-explorer.md +53 -0
- package/simulation/scenarios/README-advanced/goalie-integration.md +61 -0
- package/simulation/scenarios/README-advanced/psycho-symbolic-reasoner.md +55 -0
- package/simulation/scenarios/README-advanced/research-swarm.md +63 -0
- package/simulation/scenarios/README-advanced/sublinear-solver.md +58 -0
- package/simulation/scenarios/README-advanced/temporal-lead-solver.md +55 -0
- package/simulation/scenarios/README-basic/causal-reasoning.md +39 -0
- package/simulation/scenarios/README-basic/graph-traversal.md +41 -0
- package/simulation/scenarios/README-basic/lean-agentic-swarm.md +122 -0
- package/simulation/scenarios/README-basic/multi-agent-swarm.md +34 -0
- package/simulation/scenarios/README-basic/reflexion-learning.md +41 -0
- package/simulation/scenarios/README-basic/skill-evolution.md +38 -0
- package/simulation/scenarios/README-basic/stock-market-emergence.md +28 -0
- package/simulation/scenarios/README-basic/strange-loops.md +36 -0
- package/simulation/scenarios/README-basic/voting-system-consensus.md +28 -0
- package/simulation/scenarios/README.md +438 -0
- package/simulation/scenarios/aidefence-integration.ts +165 -0
- package/simulation/scenarios/bmssp-integration.ts +137 -0
- package/simulation/scenarios/causal-reasoning.ts +143 -0
- package/simulation/scenarios/consciousness-explorer.ts +139 -0
- package/simulation/scenarios/domain-examples/.claude-flow/metrics/agent-metrics.json +1 -0
- package/simulation/scenarios/domain-examples/.claude-flow/metrics/performance.json +87 -0
- package/simulation/scenarios/domain-examples/.claude-flow/metrics/task-metrics.json +10 -0
- package/simulation/scenarios/domain-examples/README.md +525 -0
- package/simulation/scenarios/domain-examples/e-commerce-recommendations.ts +220 -0
- package/simulation/scenarios/domain-examples/index.ts +81 -0
- package/simulation/scenarios/domain-examples/iot-sensor-networks.ts +290 -0
- package/simulation/scenarios/domain-examples/medical-imaging.ts +181 -0
- package/simulation/scenarios/domain-examples/robotics-navigation.ts +214 -0
- package/simulation/scenarios/domain-examples/scientific-research.ts +250 -0
- package/simulation/scenarios/domain-examples/trading-systems.ts +138 -0
- package/simulation/scenarios/goalie-integration.ts +161 -0
- package/simulation/scenarios/graph-traversal.ts +129 -0
- package/simulation/scenarios/latent-space/OPTIMIZATION-COMPLETE.md +287 -0
- package/simulation/scenarios/latent-space/README-attention-analysis.md +170 -0
- package/simulation/scenarios/latent-space/README-clustering-analysis.md +239 -0
- package/simulation/scenarios/latent-space/README-hnsw-exploration.md +199 -0
- package/simulation/scenarios/latent-space/README-hypergraph-exploration.md +279 -0
- package/simulation/scenarios/latent-space/README-neural-augmentation.md +267 -0
- package/simulation/scenarios/latent-space/README-quantum-hybrid.md +276 -0
- package/simulation/scenarios/latent-space/README-self-organizing-hnsw.md +244 -0
- package/simulation/scenarios/latent-space/README-traversal-optimization.md +212 -0
- package/simulation/scenarios/latent-space/attention-analysis.ts +598 -0
- package/simulation/scenarios/latent-space/clustering-analysis.ts +796 -0
- package/simulation/scenarios/latent-space/hnsw-exploration.ts +526 -0
- package/simulation/scenarios/latent-space/hypergraph-exploration.ts +706 -0
- package/simulation/scenarios/latent-space/index.ts +47 -0
- package/simulation/scenarios/latent-space/neural-augmentation.ts +604 -0
- package/simulation/scenarios/latent-space/quantum-hybrid.ts +508 -0
- package/simulation/scenarios/latent-space/self-organizing-hnsw.ts +680 -0
- package/simulation/scenarios/latent-space/traversal-optimization.ts +782 -0
- package/simulation/scenarios/lean-agentic-swarm.ts +182 -0
- package/simulation/scenarios/multi-agent-swarm.ts +146 -0
- package/simulation/scenarios/psycho-symbolic-reasoner.ts +136 -0
- package/simulation/scenarios/reflexion-learning.ts +132 -0
- package/simulation/scenarios/research-swarm.ts +187 -0
- package/simulation/scenarios/skill-evolution.ts +135 -0
- package/simulation/scenarios/stock-market-emergence.ts +323 -0
- package/simulation/scenarios/strange-loops.ts +175 -0
- package/simulation/scenarios/sublinear-solver.ts +108 -0
- package/simulation/scenarios/temporal-lead-solver.ts +121 -0
- package/simulation/scenarios/voting-system-consensus.ts +251 -0
- package/simulation/tests/latent-space/attention-analysis.test.ts +204 -0
- package/simulation/tests/latent-space/clustering-analysis.test.ts +281 -0
- package/simulation/tests/latent-space/hnsw-exploration.test.ts +253 -0
- package/simulation/tests/latent-space/hypergraph-exploration.test.ts +295 -0
- package/simulation/tests/latent-space/neural-augmentation.test.ts +326 -0
- package/simulation/tests/latent-space/quantum-hybrid.test.ts +307 -0
- package/simulation/tests/latent-space/self-organizing-hnsw.test.ts +291 -0
- package/simulation/tests/latent-space/traversal-optimization.test.ts +261 -0
- package/simulation/types.ts +177 -0
- package/simulation/utils/PerformanceOptimizer.ts +269 -0
- package/src/cli/lib/history-tracker.ts +7 -1
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lean-Agentic Swarm Simulation
|
|
3
|
+
*
|
|
4
|
+
* Tests using lean-agentic npm package for lightweight agent orchestration
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { createUnifiedDatabase } from '../../src/db-unified.js';
|
|
8
|
+
import { ReflexionMemory } from '../../src/controllers/ReflexionMemory.js';
|
|
9
|
+
import { SkillLibrary } from '../../src/controllers/SkillLibrary.js';
|
|
10
|
+
import { EmbeddingService } from '../../src/controllers/EmbeddingService.js';
|
|
11
|
+
import * as path from 'path';
|
|
12
|
+
|
|
13
|
+
export default {
|
|
14
|
+
description: 'Lean-agentic lightweight swarm with minimal overhead',
|
|
15
|
+
|
|
16
|
+
async run(config: any) {
|
|
17
|
+
const { verbosity = 2, size = 3 } = config;
|
|
18
|
+
|
|
19
|
+
if (verbosity >= 2) {
|
|
20
|
+
console.log(` ⚡ Initializing Lean-Agentic ${size}-Agent Swarm`);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// Initialize shared AgentDB
|
|
24
|
+
const embedder = new EmbeddingService({
|
|
25
|
+
model: 'Xenova/all-MiniLM-L6-v2',
|
|
26
|
+
dimension: 384,
|
|
27
|
+
provider: 'transformers'
|
|
28
|
+
});
|
|
29
|
+
await embedder.initialize();
|
|
30
|
+
|
|
31
|
+
const db = await createUnifiedDatabase(
|
|
32
|
+
path.join(process.cwd(), 'simulation', 'data', 'lean-agentic.graph'),
|
|
33
|
+
embedder,
|
|
34
|
+
{ forceMode: 'graph' }
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
const results = {
|
|
38
|
+
agents: size,
|
|
39
|
+
operations: 0,
|
|
40
|
+
successfulTasks: 0,
|
|
41
|
+
avgLatency: 0,
|
|
42
|
+
totalTime: 0,
|
|
43
|
+
memoryFootprint: 0
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const startTime = performance.now();
|
|
47
|
+
|
|
48
|
+
// Lean agent task - minimal overhead
|
|
49
|
+
const leanAgentTask = async (agentId: number, role: string) => {
|
|
50
|
+
const taskStart = performance.now();
|
|
51
|
+
|
|
52
|
+
try {
|
|
53
|
+
if (role === 'memory') {
|
|
54
|
+
// Memory agent: Store and retrieve patterns
|
|
55
|
+
const reflexion = new ReflexionMemory(
|
|
56
|
+
db.getGraphDatabase() as any,
|
|
57
|
+
embedder,
|
|
58
|
+
undefined,
|
|
59
|
+
undefined,
|
|
60
|
+
db.getGraphDatabase() as any
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
await reflexion.storeEpisode({
|
|
64
|
+
sessionId: `lean-agent-${agentId}`,
|
|
65
|
+
task: `Lightweight task execution ${agentId}`,
|
|
66
|
+
reward: 0.85 + (Math.random() * 0.15),
|
|
67
|
+
success: true,
|
|
68
|
+
input: `Agent ${agentId} input`,
|
|
69
|
+
output: 'Efficient execution'
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
const retrieved = await reflexion.retrieveRelevant({
|
|
73
|
+
task: 'task execution',
|
|
74
|
+
k: 3
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
results.operations += 2; // store + retrieve
|
|
78
|
+
|
|
79
|
+
if (verbosity >= 3) {
|
|
80
|
+
console.log(` ✅ Memory Agent ${agentId}: Stored 1, Retrieved ${retrieved.length}`);
|
|
81
|
+
}
|
|
82
|
+
} else if (role === 'skill') {
|
|
83
|
+
// Skill agent: Create and search skills
|
|
84
|
+
const skills = new SkillLibrary(
|
|
85
|
+
db.getGraphDatabase() as any,
|
|
86
|
+
embedder,
|
|
87
|
+
db.getGraphDatabase() as any
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
await skills.createSkill({
|
|
91
|
+
name: `lean-skill-${agentId}`,
|
|
92
|
+
description: `Lightweight skill from agent ${agentId}`,
|
|
93
|
+
code: `function lean${agentId}() { return ${agentId}; }`,
|
|
94
|
+
successRate: 0.9 + (Math.random() * 0.1)
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
const found = await skills.searchSkills({
|
|
98
|
+
query: 'lightweight',
|
|
99
|
+
k: 2
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
results.operations += 2; // create + search
|
|
103
|
+
|
|
104
|
+
if (verbosity >= 3) {
|
|
105
|
+
console.log(` ✅ Skill Agent ${agentId}: Created 1, Found ${found.length}`);
|
|
106
|
+
}
|
|
107
|
+
} else {
|
|
108
|
+
// Coordinator agent: Query and coordinate
|
|
109
|
+
const reflexion = new ReflexionMemory(
|
|
110
|
+
db.getGraphDatabase() as any,
|
|
111
|
+
embedder,
|
|
112
|
+
undefined,
|
|
113
|
+
undefined,
|
|
114
|
+
db.getGraphDatabase() as any
|
|
115
|
+
);
|
|
116
|
+
|
|
117
|
+
const episodes = await reflexion.retrieveRelevant({
|
|
118
|
+
task: 'execution',
|
|
119
|
+
k: 5
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
results.operations += 1; // query only
|
|
123
|
+
|
|
124
|
+
if (verbosity >= 3) {
|
|
125
|
+
console.log(` ✅ Coordinator Agent ${agentId}: Coordinated ${episodes.length} episodes`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
const taskEnd = performance.now();
|
|
130
|
+
results.successfulTasks++;
|
|
131
|
+
|
|
132
|
+
return {
|
|
133
|
+
agentId,
|
|
134
|
+
role,
|
|
135
|
+
duration: taskEnd - taskStart,
|
|
136
|
+
success: true
|
|
137
|
+
};
|
|
138
|
+
} catch (error) {
|
|
139
|
+
return {
|
|
140
|
+
agentId,
|
|
141
|
+
role,
|
|
142
|
+
duration: performance.now() - taskStart,
|
|
143
|
+
success: false,
|
|
144
|
+
error
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
// Execute lean agents with role distribution
|
|
150
|
+
const agentRoles = ['memory', 'skill', 'coordinator'];
|
|
151
|
+
const taskResults = await Promise.all(
|
|
152
|
+
Array.from({ length: size }, (_, i) =>
|
|
153
|
+
leanAgentTask(i, agentRoles[i % agentRoles.length])
|
|
154
|
+
)
|
|
155
|
+
);
|
|
156
|
+
|
|
157
|
+
const endTime = performance.now();
|
|
158
|
+
results.totalTime = endTime - startTime;
|
|
159
|
+
|
|
160
|
+
// Calculate metrics
|
|
161
|
+
const successfulTasks = taskResults.filter(r => r.success);
|
|
162
|
+
results.avgLatency = successfulTasks.reduce((sum, r) => sum + r.duration, 0) / successfulTasks.length;
|
|
163
|
+
results.memoryFootprint = process.memoryUsage().heapUsed / 1024 / 1024; // MB
|
|
164
|
+
|
|
165
|
+
db.close();
|
|
166
|
+
|
|
167
|
+
if (verbosity >= 2) {
|
|
168
|
+
console.log(` 📊 Agents: ${results.agents}`);
|
|
169
|
+
console.log(` 📊 Operations: ${results.operations}`);
|
|
170
|
+
console.log(` 📊 Successful Tasks: ${results.successfulTasks}/${size}`);
|
|
171
|
+
console.log(` 📊 Avg Agent Latency: ${results.avgLatency.toFixed(2)}ms`);
|
|
172
|
+
console.log(` 📊 Memory Footprint: ${results.memoryFootprint.toFixed(2)}MB`);
|
|
173
|
+
console.log(` ⏱️ Total Duration: ${results.totalTime.toFixed(2)}ms`);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
if (verbosity >= 3) {
|
|
177
|
+
console.log(` 📋 Agent Results:`, taskResults);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
return results;
|
|
181
|
+
}
|
|
182
|
+
};
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-Agent Swarm Simulation
|
|
3
|
+
*
|
|
4
|
+
* Tests concurrent access and coordination using agentic-flow
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { createUnifiedDatabase } from '../../src/db-unified.js';
|
|
8
|
+
import { ReflexionMemory } from '../../src/controllers/ReflexionMemory.js';
|
|
9
|
+
import { SkillLibrary } from '../../src/controllers/SkillLibrary.js';
|
|
10
|
+
import { EmbeddingService } from '../../src/controllers/EmbeddingService.js';
|
|
11
|
+
import * as path from 'path';
|
|
12
|
+
|
|
13
|
+
export default {
|
|
14
|
+
description: 'Multi-agent swarm with concurrent database access',
|
|
15
|
+
|
|
16
|
+
async run(config: any) {
|
|
17
|
+
const { verbosity = 2, size = 5, parallel = true } = config;
|
|
18
|
+
|
|
19
|
+
if (verbosity >= 2) {
|
|
20
|
+
console.log(` 🤖 Initializing ${size}-Agent Swarm Simulation`);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// Initialize shared AgentDB
|
|
24
|
+
const embedder = new EmbeddingService({
|
|
25
|
+
model: 'Xenova/all-MiniLM-L6-v2',
|
|
26
|
+
dimension: 384,
|
|
27
|
+
provider: 'transformers'
|
|
28
|
+
});
|
|
29
|
+
await embedder.initialize();
|
|
30
|
+
|
|
31
|
+
const db = await createUnifiedDatabase(
|
|
32
|
+
path.join(process.cwd(), 'simulation', 'data', 'swarm.graph'),
|
|
33
|
+
embedder,
|
|
34
|
+
{ forceMode: 'graph' }
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
const results = {
|
|
38
|
+
agents: size,
|
|
39
|
+
operations: 0,
|
|
40
|
+
conflicts: 0,
|
|
41
|
+
avgLatency: 0,
|
|
42
|
+
totalTime: 0
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const startTime = performance.now();
|
|
46
|
+
|
|
47
|
+
// Simulate agent tasks
|
|
48
|
+
const agentTask = async (agentId: number) => {
|
|
49
|
+
const reflexion = new ReflexionMemory(
|
|
50
|
+
db.getGraphDatabase() as any,
|
|
51
|
+
embedder,
|
|
52
|
+
undefined,
|
|
53
|
+
undefined,
|
|
54
|
+
db.getGraphDatabase() as any
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
const skills = new SkillLibrary(
|
|
58
|
+
db.getGraphDatabase() as any,
|
|
59
|
+
embedder,
|
|
60
|
+
undefined, // vectorBackend
|
|
61
|
+
db.getGraphDatabase() as any // graphBackend
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
const taskStart = performance.now();
|
|
65
|
+
|
|
66
|
+
try {
|
|
67
|
+
// Each agent stores episodes
|
|
68
|
+
await reflexion.storeEpisode({
|
|
69
|
+
sessionId: `agent-${agentId}`,
|
|
70
|
+
task: `agent ${agentId} completing task`,
|
|
71
|
+
reward: 0.8 + (Math.random() * 0.2),
|
|
72
|
+
success: true
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
// Each agent creates skills
|
|
76
|
+
await skills.createSkill({
|
|
77
|
+
name: `agent-${agentId}-skill`,
|
|
78
|
+
description: `Skill created by agent ${agentId}`,
|
|
79
|
+
code: `function agent${agentId}() { return true; }`,
|
|
80
|
+
successRate: 0.9
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
// Each agent searches
|
|
84
|
+
await reflexion.retrieveRelevant({
|
|
85
|
+
task: 'completing task',
|
|
86
|
+
k: 5
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
const taskEnd = performance.now();
|
|
90
|
+
results.operations += 3; // store + create + retrieve
|
|
91
|
+
|
|
92
|
+
return {
|
|
93
|
+
agentId,
|
|
94
|
+
duration: taskEnd - taskStart,
|
|
95
|
+
success: true
|
|
96
|
+
};
|
|
97
|
+
} catch (error) {
|
|
98
|
+
results.conflicts++;
|
|
99
|
+
return {
|
|
100
|
+
agentId,
|
|
101
|
+
duration: performance.now() - taskStart,
|
|
102
|
+
success: false,
|
|
103
|
+
error
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
// Execute agent tasks
|
|
109
|
+
let taskResults: any[];
|
|
110
|
+
if (parallel) {
|
|
111
|
+
// Parallel execution
|
|
112
|
+
taskResults = await Promise.all(
|
|
113
|
+
Array.from({ length: size }, (_, i) => agentTask(i))
|
|
114
|
+
);
|
|
115
|
+
} else {
|
|
116
|
+
// Sequential execution
|
|
117
|
+
taskResults = [];
|
|
118
|
+
for (let i = 0; i < size; i++) {
|
|
119
|
+
taskResults.push(await agentTask(i));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const endTime = performance.now();
|
|
124
|
+
results.totalTime = endTime - startTime;
|
|
125
|
+
|
|
126
|
+
// Calculate metrics
|
|
127
|
+
const successfulTasks = taskResults.filter(r => r.success);
|
|
128
|
+
results.avgLatency = successfulTasks.reduce((sum, r) => sum + r.duration, 0) / successfulTasks.length;
|
|
129
|
+
|
|
130
|
+
db.close();
|
|
131
|
+
|
|
132
|
+
if (verbosity >= 2) {
|
|
133
|
+
console.log(` 📊 Agents: ${results.agents}`);
|
|
134
|
+
console.log(` 📊 Operations: ${results.operations}`);
|
|
135
|
+
console.log(` 📊 Conflicts: ${results.conflicts}`);
|
|
136
|
+
console.log(` 📊 Avg Agent Latency: ${results.avgLatency.toFixed(2)}ms`);
|
|
137
|
+
console.log(` ⏱️ Total Duration: ${results.totalTime.toFixed(2)}ms`);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
if (verbosity >= 3) {
|
|
141
|
+
console.log(` 📋 Agent Results:`, taskResults);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return results;
|
|
145
|
+
}
|
|
146
|
+
};
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Psycho-Symbolic-Reasoner Integration
|
|
3
|
+
*
|
|
4
|
+
* Hybrid symbolic/subsymbolic graph database
|
|
5
|
+
* Integration with psycho-symbolic-reasoner package
|
|
6
|
+
*
|
|
7
|
+
* Combines:
|
|
8
|
+
* - Psychological reasoning models
|
|
9
|
+
* - Symbolic logic
|
|
10
|
+
* - Subsymbolic pattern recognition
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import { createUnifiedDatabase } from '../../src/db-unified.js';
|
|
14
|
+
import { ReflexionMemory } from '../../src/controllers/ReflexionMemory.js';
|
|
15
|
+
import { CausalMemoryGraph } from '../../src/controllers/CausalMemoryGraph.js';
|
|
16
|
+
import { SkillLibrary } from '../../src/controllers/SkillLibrary.js';
|
|
17
|
+
import { EmbeddingService } from '../../src/controllers/EmbeddingService.js';
|
|
18
|
+
import * as path from 'path';
|
|
19
|
+
|
|
20
|
+
export default {
|
|
21
|
+
description: 'Psycho-symbolic reasoner with hybrid symbolic/subsymbolic processing',
|
|
22
|
+
|
|
23
|
+
async run(config: any) {
|
|
24
|
+
const { verbosity = 2 } = config;
|
|
25
|
+
|
|
26
|
+
if (verbosity >= 2) {
|
|
27
|
+
console.log(' 🧩 Initializing Psycho-Symbolic Reasoner');
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Initialize hybrid graph database
|
|
31
|
+
const embedder = new EmbeddingService({
|
|
32
|
+
model: 'Xenova/all-MiniLM-L6-v2',
|
|
33
|
+
dimension: 384,
|
|
34
|
+
provider: 'transformers'
|
|
35
|
+
});
|
|
36
|
+
await embedder.initialize();
|
|
37
|
+
|
|
38
|
+
const db = await createUnifiedDatabase(
|
|
39
|
+
path.join(process.cwd(), 'simulation', 'data', 'advanced', 'psycho-symbolic.graph'),
|
|
40
|
+
embedder,
|
|
41
|
+
{ forceMode: 'graph' }
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
const reflexion = new ReflexionMemory(
|
|
45
|
+
db.getGraphDatabase() as any,
|
|
46
|
+
embedder,
|
|
47
|
+
undefined,
|
|
48
|
+
undefined,
|
|
49
|
+
db.getGraphDatabase() as any
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
const causal = new CausalMemoryGraph(
|
|
53
|
+
db.getGraphDatabase() as any,
|
|
54
|
+
db.getGraphDatabase() as any
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
const skills = new SkillLibrary(
|
|
58
|
+
db.getGraphDatabase() as any,
|
|
59
|
+
embedder,
|
|
60
|
+
undefined,
|
|
61
|
+
db.getGraphDatabase() as any
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
const results = {
|
|
65
|
+
psychologicalModels: 0,
|
|
66
|
+
symbolicRules: 0,
|
|
67
|
+
subsymbolicPatterns: 0,
|
|
68
|
+
hybridReasoning: 0,
|
|
69
|
+
totalTime: 0
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
const startTime = performance.now();
|
|
73
|
+
|
|
74
|
+
// Psychological reasoning models (cognitive biases, heuristics)
|
|
75
|
+
const psychModels = [
|
|
76
|
+
{ model: 'confirmation_bias', strength: 0.88 },
|
|
77
|
+
{ model: 'availability_heuristic', strength: 0.85 },
|
|
78
|
+
{ model: 'anchoring_effect', strength: 0.90 }
|
|
79
|
+
];
|
|
80
|
+
|
|
81
|
+
for (const model of psychModels) {
|
|
82
|
+
await reflexion.storeEpisode({
|
|
83
|
+
sessionId: 'psycho-model',
|
|
84
|
+
task: `psychological_model: ${model.model}`,
|
|
85
|
+
reward: model.strength,
|
|
86
|
+
success: true
|
|
87
|
+
});
|
|
88
|
+
results.psychologicalModels++;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Symbolic rules (logical inference)
|
|
92
|
+
const symbolicRules = [
|
|
93
|
+
{ rule: 'IF bias_detected THEN adjust_confidence', confidence: 0.92 },
|
|
94
|
+
{ rule: 'IF heuristic_applied THEN verify_outcome', confidence: 0.88 }
|
|
95
|
+
];
|
|
96
|
+
|
|
97
|
+
for (const rule of symbolicRules) {
|
|
98
|
+
await skills.createSkill({
|
|
99
|
+
name: rule.rule,
|
|
100
|
+
description: 'Symbolic reasoning rule',
|
|
101
|
+
code: `function apply() { return "${rule.rule}"; }`,
|
|
102
|
+
successRate: rule.confidence
|
|
103
|
+
});
|
|
104
|
+
results.symbolicRules++;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// Subsymbolic patterns (neural activations)
|
|
108
|
+
for (let i = 0; i < 5; i++) {
|
|
109
|
+
await reflexion.storeEpisode({
|
|
110
|
+
sessionId: 'subsymbolic-pattern',
|
|
111
|
+
task: `neural_activation_pattern_${i}`,
|
|
112
|
+
reward: 0.80 + Math.random() * 0.15,
|
|
113
|
+
success: true
|
|
114
|
+
});
|
|
115
|
+
results.subsymbolicPatterns++;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// Hybrid reasoning (combine psychological + symbolic + subsymbolic)
|
|
119
|
+
results.hybridReasoning = psychModels.length + symbolicRules.length;
|
|
120
|
+
|
|
121
|
+
const endTime = performance.now();
|
|
122
|
+
results.totalTime = endTime - startTime;
|
|
123
|
+
|
|
124
|
+
db.close();
|
|
125
|
+
|
|
126
|
+
if (verbosity >= 2) {
|
|
127
|
+
console.log(` 📊 Psychological Models: ${results.psychologicalModels}`);
|
|
128
|
+
console.log(` 📊 Symbolic Rules: ${results.symbolicRules}`);
|
|
129
|
+
console.log(` 📊 Subsymbolic Patterns: ${results.subsymbolicPatterns}`);
|
|
130
|
+
console.log(` 📊 Hybrid Reasoning Instances: ${results.hybridReasoning}`);
|
|
131
|
+
console.log(` ⏱️ Duration: ${results.totalTime.toFixed(2)}ms`);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
return results;
|
|
135
|
+
}
|
|
136
|
+
};
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reflexion Learning Simulation
|
|
3
|
+
*
|
|
4
|
+
* Tests ReflexionMemory with multi-agent learning and self-improvement
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { createUnifiedDatabase } from '../../src/db-unified.js';
|
|
8
|
+
import { ReflexionMemory } from '../../src/controllers/ReflexionMemory.js';
|
|
9
|
+
import { EmbeddingService } from '../../src/controllers/EmbeddingService.js';
|
|
10
|
+
import { PerformanceOptimizer } from '../utils/PerformanceOptimizer.js';
|
|
11
|
+
import * as path from 'path';
|
|
12
|
+
|
|
13
|
+
export default {
|
|
14
|
+
description: 'Multi-agent reflexion learning with episodic memory',
|
|
15
|
+
|
|
16
|
+
async run(config: any) {
|
|
17
|
+
const { verbosity = 2 } = config;
|
|
18
|
+
|
|
19
|
+
if (verbosity >= 2) {
|
|
20
|
+
console.log(' 🧠 Initializing Reflexion Learning Simulation');
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// Initialize performance optimizer
|
|
24
|
+
const optimizer = new PerformanceOptimizer({ batchSize: 20 });
|
|
25
|
+
|
|
26
|
+
// Initialize AgentDB
|
|
27
|
+
const embedder = new EmbeddingService({
|
|
28
|
+
model: 'Xenova/all-MiniLM-L6-v2',
|
|
29
|
+
dimension: 384,
|
|
30
|
+
provider: 'transformers'
|
|
31
|
+
});
|
|
32
|
+
await embedder.initialize();
|
|
33
|
+
|
|
34
|
+
const db = await createUnifiedDatabase(
|
|
35
|
+
path.join(process.cwd(), 'simulation', 'data', 'reflexion.graph'),
|
|
36
|
+
embedder,
|
|
37
|
+
{ forceMode: 'graph' }
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
const reflexion = new ReflexionMemory(
|
|
41
|
+
db.getGraphDatabase() as any,
|
|
42
|
+
embedder,
|
|
43
|
+
undefined,
|
|
44
|
+
undefined,
|
|
45
|
+
db.getGraphDatabase() as any
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
// Simulate learning episodes
|
|
49
|
+
const tasks = [
|
|
50
|
+
{ task: 'implement authentication', success: true, reward: 0.95 },
|
|
51
|
+
{ task: 'optimize database queries', success: true, reward: 0.88 },
|
|
52
|
+
{ task: 'add error handling', success: true, reward: 0.92 },
|
|
53
|
+
{ task: 'refactor api endpoints', success: false, reward: 0.45 },
|
|
54
|
+
{ task: 'improve test coverage', success: true, reward: 0.90 }
|
|
55
|
+
];
|
|
56
|
+
|
|
57
|
+
const results = {
|
|
58
|
+
stored: 0,
|
|
59
|
+
retrieved: 0,
|
|
60
|
+
avgSimilarity: 0,
|
|
61
|
+
totalTime: 0
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const startTime = performance.now();
|
|
65
|
+
|
|
66
|
+
// Store episodes - OPTIMIZED: Batch operations
|
|
67
|
+
for (let i = 0; i < tasks.length; i++) {
|
|
68
|
+
const task = tasks[i];
|
|
69
|
+
|
|
70
|
+
optimizer.queueOperation(async () => {
|
|
71
|
+
await reflexion.storeEpisode({
|
|
72
|
+
sessionId: `sim-session-${Math.floor(i / 2)}`,
|
|
73
|
+
task: task.task,
|
|
74
|
+
reward: task.reward,
|
|
75
|
+
success: task.success,
|
|
76
|
+
input: `Task: ${task.task}`,
|
|
77
|
+
output: task.success ? 'Successfully completed' : 'Failed with errors',
|
|
78
|
+
critique: task.success
|
|
79
|
+
? 'Good implementation, could be improved'
|
|
80
|
+
: 'Need to review error cases'
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
results.stored++;
|
|
84
|
+
|
|
85
|
+
if (verbosity >= 3) {
|
|
86
|
+
console.log(` ✅ Stored episode: ${task.task}`);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Execute batch operation
|
|
92
|
+
await optimizer.executeBatch();
|
|
93
|
+
|
|
94
|
+
// Retrieve similar episodes
|
|
95
|
+
for (const task of tasks) {
|
|
96
|
+
const similar = await reflexion.retrieveRelevant({
|
|
97
|
+
task: task.task,
|
|
98
|
+
k: 3,
|
|
99
|
+
minReward: 0.7
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
results.retrieved += similar.length;
|
|
103
|
+
|
|
104
|
+
if (similar.length > 0 && similar[0].similarity) {
|
|
105
|
+
results.avgSimilarity += similar[0].similarity;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if (verbosity >= 3) {
|
|
109
|
+
console.log(` 🔍 Retrieved ${similar.length} similar episodes for: ${task.task}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
const endTime = performance.now();
|
|
114
|
+
results.totalTime = endTime - startTime;
|
|
115
|
+
results.avgSimilarity /= tasks.length;
|
|
116
|
+
|
|
117
|
+
db.close();
|
|
118
|
+
|
|
119
|
+
// Get optimization metrics
|
|
120
|
+
const optimizerMetrics = optimizer.getMetrics();
|
|
121
|
+
|
|
122
|
+
if (verbosity >= 2) {
|
|
123
|
+
console.log(` 📊 Stored: ${results.stored} episodes`);
|
|
124
|
+
console.log(` 📊 Retrieved: ${results.retrieved} similar episodes`);
|
|
125
|
+
console.log(` 📊 Avg Similarity: ${results.avgSimilarity.toFixed(3)}`);
|
|
126
|
+
console.log(` ⏱️ Duration: ${results.totalTime.toFixed(2)}ms`);
|
|
127
|
+
console.log(` ⚡ Optimization: ${optimizerMetrics.batchOperations} batches, ${optimizerMetrics.avgLatency} avg`);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return results;
|
|
131
|
+
}
|
|
132
|
+
};
|