agentic-flow 1.7.3 โ†’ 1.7.4

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.
Files changed (54) hide show
  1. package/.claude/agents/test-neural.md +0 -5
  2. package/.claude/answer.md +1 -0
  3. package/.claude/settings.json +19 -20
  4. package/CHANGELOG.md +0 -117
  5. package/README.md +17 -81
  6. package/dist/agentdb/benchmarks/comprehensive-benchmark.js +664 -0
  7. package/dist/agentdb/benchmarks/frontier-benchmark.js +419 -0
  8. package/dist/agentdb/benchmarks/reflexion-benchmark.js +370 -0
  9. package/dist/agentdb/cli/agentdb-cli.js +717 -0
  10. package/dist/agentdb/controllers/CausalMemoryGraph.js +322 -0
  11. package/dist/agentdb/controllers/CausalRecall.js +281 -0
  12. package/dist/agentdb/controllers/EmbeddingService.js +118 -0
  13. package/dist/agentdb/controllers/ExplainableRecall.js +387 -0
  14. package/dist/agentdb/controllers/NightlyLearner.js +382 -0
  15. package/dist/agentdb/controllers/ReflexionMemory.js +239 -0
  16. package/dist/agentdb/controllers/SkillLibrary.js +276 -0
  17. package/dist/agentdb/controllers/frontier-index.js +9 -0
  18. package/dist/agentdb/controllers/index.js +8 -0
  19. package/dist/agentdb/index.js +32 -0
  20. package/dist/agentdb/optimizations/BatchOperations.js +198 -0
  21. package/dist/agentdb/optimizations/QueryOptimizer.js +225 -0
  22. package/dist/agentdb/optimizations/index.js +7 -0
  23. package/dist/agentdb/tests/frontier-features.test.js +665 -0
  24. package/dist/cli-proxy.js +2 -33
  25. package/dist/mcp/standalone-stdio.js +200 -4
  26. package/dist/memory/SharedMemoryPool.js +211 -0
  27. package/dist/memory/index.js +6 -0
  28. package/dist/reasoningbank/AdvancedMemory.js +239 -0
  29. package/dist/reasoningbank/HybridBackend.js +305 -0
  30. package/dist/reasoningbank/index-new.js +87 -0
  31. package/dist/reasoningbank/index.js +23 -44
  32. package/dist/utils/cli.js +0 -22
  33. package/docs/AGENTDB_TESTING.md +411 -0
  34. package/docs/v1.7.1-QUICK-START.md +399 -0
  35. package/package.json +4 -4
  36. package/scripts/run-validation.sh +165 -0
  37. package/scripts/test-agentdb.sh +153 -0
  38. package/.claude/skills/agentdb-memory-patterns/SKILL.md +0 -166
  39. package/.claude/skills/agentdb-vector-search/SKILL.md +0 -126
  40. package/.claude/skills/agentic-flow/agentdb-memory-patterns/SKILL.md +0 -166
  41. package/.claude/skills/agentic-flow/agentdb-vector-search/SKILL.md +0 -126
  42. package/.claude/skills/agentic-flow/reasoningbank-intelligence/SKILL.md +0 -201
  43. package/.claude/skills/agentic-flow/swarm-orchestration/SKILL.md +0 -179
  44. package/.claude/skills/reasoningbank-intelligence/SKILL.md +0 -201
  45. package/.claude/skills/skill-builder/README.md +0 -308
  46. package/.claude/skills/skill-builder/SKILL.md +0 -910
  47. package/.claude/skills/skill-builder/docs/SPECIFICATION.md +0 -358
  48. package/.claude/skills/skill-builder/resources/schemas/skill-frontmatter.schema.json +0 -41
  49. package/.claude/skills/skill-builder/resources/templates/full-skill.template +0 -118
  50. package/.claude/skills/skill-builder/resources/templates/minimal-skill.template +0 -38
  51. package/.claude/skills/skill-builder/scripts/generate-skill.sh +0 -334
  52. package/.claude/skills/skill-builder/scripts/validate-skill.sh +0 -198
  53. package/.claude/skills/swarm-orchestration/SKILL.md +0 -179
  54. package/docs/AGENTDB_INTEGRATION.md +0 -379
@@ -0,0 +1,153 @@
1
+ #!/bin/bash
2
+ # AgentDB CLI Quick Test Script
3
+
4
+ set -e
5
+
6
+ echo "๐Ÿงช AgentDB CLI Testing Script"
7
+ echo "=============================="
8
+ echo ""
9
+
10
+ # Set test database path
11
+ export AGENTDB_PATH="./test-agentdb.db"
12
+
13
+ # Clean up old test database
14
+ if [ -f "$AGENTDB_PATH" ]; then
15
+ echo "๐Ÿ—‘๏ธ Removing old test database..."
16
+ rm "$AGENTDB_PATH"
17
+ fi
18
+
19
+ echo "๐Ÿ“ Current directory: $(pwd)"
20
+ echo "๐Ÿ’พ Database path: $AGENTDB_PATH"
21
+ echo ""
22
+
23
+ # Test 1: Help command
24
+ echo "1๏ธโƒฃ Testing help command..."
25
+ echo ""
26
+ node dist/agentdb/cli/agentdb-cli.js --help | head -20
27
+ echo ""
28
+ echo "โœ… Help command works!"
29
+ echo ""
30
+
31
+ # Test 2: Store a successful episode
32
+ echo "2๏ธโƒฃ Storing a successful episode..."
33
+ node dist/agentdb/cli/agentdb-cli.js reflexion store \
34
+ "test-session-1" \
35
+ "implement_authentication" \
36
+ 0.95 \
37
+ true \
38
+ "Successfully implemented OAuth2 with JWT tokens" \
39
+ "User login requirement" \
40
+ "Working auth system with refresh tokens" \
41
+ 1200 \
42
+ 5000
43
+ echo ""
44
+
45
+ # Test 3: Store a failed episode
46
+ echo "3๏ธโƒฃ Storing a failed episode..."
47
+ node dist/agentdb/cli/agentdb-cli.js reflexion store \
48
+ "test-session-1" \
49
+ "implement_authentication" \
50
+ 0.35 \
51
+ false \
52
+ "Forgot to validate token expiration" \
53
+ "User login requirement" \
54
+ "Insecure auth system" \
55
+ 800 \
56
+ 3000
57
+ echo ""
58
+
59
+ # Test 4: Retrieve episodes
60
+ echo "4๏ธโƒฃ Retrieving episodes..."
61
+ node dist/agentdb/cli/agentdb-cli.js reflexion retrieve \
62
+ "authentication" \
63
+ 5 \
64
+ 0.3
65
+ echo ""
66
+
67
+ # Test 5: Get critique summary
68
+ echo "5๏ธโƒฃ Getting critique summary (failures only)..."
69
+ node dist/agentdb/cli/agentdb-cli.js reflexion critique-summary \
70
+ "authentication" \
71
+ true
72
+ echo ""
73
+
74
+ # Test 6: Create a skill
75
+ echo "6๏ธโƒฃ Creating a skill..."
76
+ node dist/agentdb/cli/agentdb-cli.js skill create \
77
+ "jwt_authentication" \
78
+ "Generate and validate JWT tokens for user authentication" \
79
+ "function generateJWT(payload, secret) { return jwt.sign(payload, secret, { expiresIn: '1h' }); }"
80
+ echo ""
81
+
82
+ # Test 7: Search skills
83
+ echo "7๏ธโƒฃ Searching for skills..."
84
+ node dist/agentdb/cli/agentdb-cli.js skill search \
85
+ "authentication" \
86
+ 5
87
+ echo ""
88
+
89
+ # Test 8: Add a causal edge
90
+ echo "8๏ธโƒฃ Adding a causal edge..."
91
+ node dist/agentdb/cli/agentdb-cli.js causal add-edge \
92
+ "add_unit_tests" \
93
+ "code_quality_score" \
94
+ 0.25 \
95
+ 0.95 \
96
+ 100
97
+ echo ""
98
+
99
+ # Test 9: Create an experiment
100
+ echo "9๏ธโƒฃ Creating an A/B experiment..."
101
+ node dist/agentdb/cli/agentdb-cli.js causal experiment create \
102
+ "test-coverage-vs-bugs" \
103
+ "test_coverage" \
104
+ "bug_rate"
105
+ echo ""
106
+
107
+ # Test 10: Add experiment observations
108
+ echo "๐Ÿ”Ÿ Adding experiment observations..."
109
+ echo " - Treatment group (high test coverage)..."
110
+ node dist/agentdb/cli/agentdb-cli.js causal experiment add-observation \
111
+ 1 \
112
+ true \
113
+ 0.15 \
114
+ '{"coverage": 0.85, "lines": 5000}'
115
+ echo " - Control group (low test coverage)..."
116
+ node dist/agentdb/cli/agentdb-cli.js causal experiment add-observation \
117
+ 1 \
118
+ false \
119
+ 0.35 \
120
+ '{"coverage": 0.45, "lines": 5000}'
121
+ echo ""
122
+
123
+ # Test 11: Calculate experiment uplift
124
+ echo "1๏ธโƒฃ1๏ธโƒฃ Calculating experiment uplift..."
125
+ node dist/agentdb/cli/agentdb-cli.js causal experiment calculate 1
126
+ echo ""
127
+
128
+ # Test 12: Query causal edges
129
+ echo "1๏ธโƒฃ2๏ธโƒฃ Querying causal edges..."
130
+ node dist/agentdb/cli/agentdb-cli.js causal query \
131
+ "" \
132
+ "" \
133
+ 0.5 \
134
+ 0.1 \
135
+ 10
136
+ echo ""
137
+
138
+ # Test 13: Database stats
139
+ echo "1๏ธโƒฃ3๏ธโƒฃ Getting database statistics..."
140
+ node dist/agentdb/cli/agentdb-cli.js db stats
141
+ echo ""
142
+
143
+ # Summary
144
+ echo "=============================="
145
+ echo "โœ… All 13 tests completed successfully!"
146
+ echo ""
147
+ echo "๐Ÿ“Š Test database created at: $AGENTDB_PATH"
148
+ echo "๐Ÿ“ Size: $(du -h "$AGENTDB_PATH" | cut -f1)"
149
+ echo ""
150
+ echo "๐Ÿ” You can now explore the database or run individual commands:"
151
+ echo " node dist/agentdb/cli/agentdb-cli.js --help"
152
+ echo " AGENTDB_PATH=$AGENTDB_PATH node dist/agentdb/cli/agentdb-cli.js reflexion retrieve authentication 5"
153
+ echo ""
@@ -1,166 +0,0 @@
1
- ---
2
- name: "AgentDB Memory Patterns"
3
- description: "Implement persistent memory patterns for AI agents using AgentDB. Includes session memory, long-term storage, pattern learning, and context management. Use when building stateful agents, chat systems, or intelligent assistants."
4
- ---
5
-
6
- # AgentDB Memory Patterns
7
-
8
- ## What This Skill Does
9
-
10
- Provides memory management patterns for AI agents using AgentDB's persistent storage and ReasoningBank integration. Enables agents to remember conversations, learn from interactions, and maintain context across sessions.
11
-
12
- ## Prerequisites
13
-
14
- - agentic-flow v1.5.11+ or agentdb v1.0.4+
15
- - Node.js 18+
16
- - Understanding of agent architectures
17
-
18
- ## Quick Start
19
-
20
- ```typescript
21
- import { AgentDB, MemoryManager } from 'agentdb';
22
-
23
- // Initialize memory system
24
- const memory = new MemoryManager({
25
- agentId: 'assistant-001',
26
- persist: true,
27
- ttl: 3600 * 24 * 30 // 30 days
28
- });
29
-
30
- // Store interaction
31
- await memory.store({
32
- role: 'user',
33
- content: 'What is the capital of France?',
34
- timestamp: Date.now()
35
- });
36
-
37
- await memory.store({
38
- role: 'assistant',
39
- content: 'The capital of France is Paris.',
40
- timestamp: Date.now()
41
- });
42
-
43
- // Retrieve context
44
- const context = await memory.getRecentContext({ limit: 10 });
45
- ```
46
-
47
- ## Memory Patterns
48
-
49
- ### 1. Session Memory
50
- ```typescript
51
- class SessionMemory {
52
- async storeMessage(role: string, content: string) {
53
- return await db.storeMemory({
54
- sessionId: this.sessionId,
55
- role,
56
- content,
57
- timestamp: Date.now()
58
- });
59
- }
60
-
61
- async getSessionHistory(limit = 20) {
62
- return await db.query({
63
- filters: { sessionId: this.sessionId },
64
- orderBy: 'timestamp',
65
- limit
66
- });
67
- }
68
- }
69
- ```
70
-
71
- ### 2. Long-Term Memory
72
- ```typescript
73
- // Store important facts
74
- await db.storeFact({
75
- category: 'user_preference',
76
- key: 'language',
77
- value: 'English',
78
- confidence: 1.0,
79
- source: 'explicit'
80
- });
81
-
82
- // Retrieve facts
83
- const prefs = await db.getFacts({
84
- category: 'user_preference'
85
- });
86
- ```
87
-
88
- ### 3. Pattern Learning
89
- ```typescript
90
- // Learn from successful interactions
91
- await db.storePattern({
92
- trigger: 'user_asks_time',
93
- response: 'provide_formatted_time',
94
- success: true,
95
- context: { timezone: 'UTC' }
96
- });
97
-
98
- // Apply learned patterns
99
- const pattern = await db.matchPattern(currentContext);
100
- ```
101
-
102
- ## Advanced Patterns
103
-
104
- ### Hierarchical Memory
105
- ```typescript
106
- // Organize memory in hierarchy
107
- await memory.organize({
108
- immediate: recentMessages, // Last 10 messages
109
- shortTerm: sessionContext, // Current session
110
- longTerm: importantFacts, // Persistent facts
111
- semantic: embeddedKnowledge // Vector search
112
- });
113
- ```
114
-
115
- ### Memory Consolidation
116
- ```typescript
117
- // Periodically consolidate memories
118
- await memory.consolidate({
119
- strategy: 'importance', // Keep important memories
120
- maxSize: 10000, // Size limit
121
- minScore: 0.5 // Relevance threshold
122
- });
123
- ```
124
-
125
- ## Integration with ReasoningBank
126
-
127
- ```typescript
128
- import { ReasoningBank } from 'agentic-flow/reasoningbank';
129
-
130
- // Connect memory to reasoning
131
- const rb = new ReasoningBank({
132
- memory: memory,
133
- learningRate: 0.1
134
- });
135
-
136
- // Learn from outcomes
137
- await rb.recordOutcome({
138
- task: 'summarize_document',
139
- approach: 'extractive',
140
- success: true,
141
- metrics: { accuracy: 0.95 }
142
- });
143
-
144
- // Get optimal strategy
145
- const strategy = await rb.getOptimalStrategy('summarize_document');
146
- ```
147
-
148
- ## Best Practices
149
-
150
- 1. **Prune regularly**: Remove outdated or low-value memories
151
- 2. **Use TTL**: Set time-to-live for ephemeral data
152
- 3. **Index metadata**: Enable fast filtering by sessionId, userId
153
- 4. **Compress old data**: Archive infrequently accessed memories
154
-
155
- ## Troubleshooting
156
-
157
- ### Issue: Memory growing too large
158
- **Solution**: Enable auto-pruning or set TTL values
159
-
160
- ### Issue: Context not relevant
161
- **Solution**: Use vector search for semantic memory retrieval
162
-
163
- ## Learn More
164
-
165
- - Memory API: packages/agentdb/docs/memory-api.md
166
- - ReasoningBank: agentic-flow/src/reasoningbank/README.md
@@ -1,126 +0,0 @@
1
- ---
2
- name: "AgentDB Vector Search"
3
- description: "Implement semantic vector search with AgentDB for intelligent document retrieval, similarity matching, and context-aware querying. Use when building RAG systems, semantic search engines, or intelligent knowledge bases."
4
- ---
5
-
6
- # AgentDB Vector Search
7
-
8
- ## What This Skill Does
9
-
10
- Implements vector-based semantic search using AgentDB's high-performance vector database with 150x-12,500x faster operations than traditional solutions. Enables similarity search, hybrid search (vector + metadata), and real-time embedding generation.
11
-
12
- ## Prerequisites
13
-
14
- - agentic-flow v1.5.11+ or agentdb v1.0.4+
15
- - Node.js 18+
16
- - OpenAI API key (for embeddings) or custom embedding model
17
-
18
- ## Quick Start
19
-
20
- ```typescript
21
- import { AgentDB } from 'agentdb';
22
-
23
- // Initialize AgentDB with vector support
24
- const db = new AgentDB({
25
- persist: true,
26
- vectorDimensions: 1536, // OpenAI ada-002 dimensions
27
- enableVectorIndex: true
28
- });
29
-
30
- // Store documents with vectors
31
- await db.storeMemory({
32
- text: "The quantum computer achieved 100 qubits",
33
- metadata: { category: "technology", date: "2025-01-15" },
34
- embedding: await generateEmbedding(text) // Your embedding function
35
- });
36
-
37
- // Semantic search
38
- const results = await db.searchSimilar(
39
- queryEmbedding,
40
- { limit: 10, threshold: 0.7 }
41
- );
42
- ```
43
-
44
- ## Core Features
45
-
46
- ### 1. Vector Storage
47
- ```typescript
48
- // Store with automatic embedding
49
- await db.storeWithEmbedding({
50
- content: "Your document text",
51
- metadata: { source: "docs", page: 42 }
52
- });
53
- ```
54
-
55
- ### 2. Similarity Search
56
- ```typescript
57
- // Find similar documents
58
- const similar = await db.findSimilar("quantum computing", {
59
- limit: 5,
60
- minScore: 0.75
61
- });
62
- ```
63
-
64
- ### 3. Hybrid Search (Vector + Metadata)
65
- ```typescript
66
- // Combine vector similarity with metadata filtering
67
- const results = await db.hybridSearch({
68
- query: "machine learning models",
69
- filters: {
70
- category: "research",
71
- date: { $gte: "2024-01-01" }
72
- },
73
- limit: 20
74
- });
75
- ```
76
-
77
- ## Advanced Usage
78
-
79
- ### RAG (Retrieval Augmented Generation)
80
- ```typescript
81
- // Build RAG pipeline
82
- async function ragQuery(question: string) {
83
- // 1. Get relevant context
84
- const context = await db.searchSimilar(
85
- await embed(question),
86
- { limit: 5, threshold: 0.7 }
87
- );
88
-
89
- // 2. Generate answer with context
90
- const prompt = `Context: ${context.map(c => c.text).join('\n')}
91
- Question: ${question}`;
92
-
93
- return await llm.generate(prompt);
94
- }
95
- ```
96
-
97
- ### Batch Operations
98
- ```typescript
99
- // Efficient batch storage
100
- await db.batchStore(documents.map(doc => ({
101
- text: doc.content,
102
- embedding: doc.vector,
103
- metadata: doc.meta
104
- })));
105
- ```
106
-
107
- ## Performance Tips
108
-
109
- - **Indexing**: Enable vector index for 10-100x faster searches
110
- - **Batch Size**: Use batch operations for 1000+ documents
111
- - **Dimensions**: Match embedding model (1536 for OpenAI ada-002)
112
- - **Threshold**: Start at 0.7 for quality results
113
-
114
- ## Troubleshooting
115
-
116
- ### Issue: Slow search performance
117
- **Solution**: Enable vector index: `enableVectorIndex: true`
118
-
119
- ### Issue: Poor relevance
120
- **Solution**: Adjust similarity threshold or use hybrid search
121
-
122
- ## Learn More
123
-
124
- - AgentDB Docs: packages/agentdb/README.md
125
- - Vector DB API: packages/agentdb/docs/vector-api.md
126
- - Performance Guide: docs/agentdb/performance.md
@@ -1,166 +0,0 @@
1
- ---
2
- name: "AgentDB Memory Patterns"
3
- description: "Implement persistent memory patterns for AI agents using AgentDB. Includes session memory, long-term storage, pattern learning, and context management. Use when building stateful agents, chat systems, or intelligent assistants."
4
- ---
5
-
6
- # AgentDB Memory Patterns
7
-
8
- ## What This Skill Does
9
-
10
- Provides memory management patterns for AI agents using AgentDB's persistent storage and ReasoningBank integration. Enables agents to remember conversations, learn from interactions, and maintain context across sessions.
11
-
12
- ## Prerequisites
13
-
14
- - agentic-flow v1.5.11+ or agentdb v1.0.4+
15
- - Node.js 18+
16
- - Understanding of agent architectures
17
-
18
- ## Quick Start
19
-
20
- ```typescript
21
- import { AgentDB, MemoryManager } from 'agentdb';
22
-
23
- // Initialize memory system
24
- const memory = new MemoryManager({
25
- agentId: 'assistant-001',
26
- persist: true,
27
- ttl: 3600 * 24 * 30 // 30 days
28
- });
29
-
30
- // Store interaction
31
- await memory.store({
32
- role: 'user',
33
- content: 'What is the capital of France?',
34
- timestamp: Date.now()
35
- });
36
-
37
- await memory.store({
38
- role: 'assistant',
39
- content: 'The capital of France is Paris.',
40
- timestamp: Date.now()
41
- });
42
-
43
- // Retrieve context
44
- const context = await memory.getRecentContext({ limit: 10 });
45
- ```
46
-
47
- ## Memory Patterns
48
-
49
- ### 1. Session Memory
50
- ```typescript
51
- class SessionMemory {
52
- async storeMessage(role: string, content: string) {
53
- return await db.storeMemory({
54
- sessionId: this.sessionId,
55
- role,
56
- content,
57
- timestamp: Date.now()
58
- });
59
- }
60
-
61
- async getSessionHistory(limit = 20) {
62
- return await db.query({
63
- filters: { sessionId: this.sessionId },
64
- orderBy: 'timestamp',
65
- limit
66
- });
67
- }
68
- }
69
- ```
70
-
71
- ### 2. Long-Term Memory
72
- ```typescript
73
- // Store important facts
74
- await db.storeFact({
75
- category: 'user_preference',
76
- key: 'language',
77
- value: 'English',
78
- confidence: 1.0,
79
- source: 'explicit'
80
- });
81
-
82
- // Retrieve facts
83
- const prefs = await db.getFacts({
84
- category: 'user_preference'
85
- });
86
- ```
87
-
88
- ### 3. Pattern Learning
89
- ```typescript
90
- // Learn from successful interactions
91
- await db.storePattern({
92
- trigger: 'user_asks_time',
93
- response: 'provide_formatted_time',
94
- success: true,
95
- context: { timezone: 'UTC' }
96
- });
97
-
98
- // Apply learned patterns
99
- const pattern = await db.matchPattern(currentContext);
100
- ```
101
-
102
- ## Advanced Patterns
103
-
104
- ### Hierarchical Memory
105
- ```typescript
106
- // Organize memory in hierarchy
107
- await memory.organize({
108
- immediate: recentMessages, // Last 10 messages
109
- shortTerm: sessionContext, // Current session
110
- longTerm: importantFacts, // Persistent facts
111
- semantic: embeddedKnowledge // Vector search
112
- });
113
- ```
114
-
115
- ### Memory Consolidation
116
- ```typescript
117
- // Periodically consolidate memories
118
- await memory.consolidate({
119
- strategy: 'importance', // Keep important memories
120
- maxSize: 10000, // Size limit
121
- minScore: 0.5 // Relevance threshold
122
- });
123
- ```
124
-
125
- ## Integration with ReasoningBank
126
-
127
- ```typescript
128
- import { ReasoningBank } from 'agentic-flow/reasoningbank';
129
-
130
- // Connect memory to reasoning
131
- const rb = new ReasoningBank({
132
- memory: memory,
133
- learningRate: 0.1
134
- });
135
-
136
- // Learn from outcomes
137
- await rb.recordOutcome({
138
- task: 'summarize_document',
139
- approach: 'extractive',
140
- success: true,
141
- metrics: { accuracy: 0.95 }
142
- });
143
-
144
- // Get optimal strategy
145
- const strategy = await rb.getOptimalStrategy('summarize_document');
146
- ```
147
-
148
- ## Best Practices
149
-
150
- 1. **Prune regularly**: Remove outdated or low-value memories
151
- 2. **Use TTL**: Set time-to-live for ephemeral data
152
- 3. **Index metadata**: Enable fast filtering by sessionId, userId
153
- 4. **Compress old data**: Archive infrequently accessed memories
154
-
155
- ## Troubleshooting
156
-
157
- ### Issue: Memory growing too large
158
- **Solution**: Enable auto-pruning or set TTL values
159
-
160
- ### Issue: Context not relevant
161
- **Solution**: Use vector search for semantic memory retrieval
162
-
163
- ## Learn More
164
-
165
- - Memory API: packages/agentdb/docs/memory-api.md
166
- - ReasoningBank: agentic-flow/src/reasoningbank/README.md