412 lines
9.0 KiB
Markdown
412 lines
9.0 KiB
Markdown
# AgentDB CLI - Local Testing Guide
|
|
|
|
## Quick Start
|
|
|
|
### Option 1: Run the Full Test Suite (Recommended)
|
|
```bash
|
|
# From the project root: /workspaces/agentic-flow/agentic-flow
|
|
./scripts/test-agentdb.sh
|
|
```
|
|
|
|
This will run 13 comprehensive tests covering all CLI features!
|
|
|
|
### Option 2: Manual Testing
|
|
|
|
#### 1. Ensure you're in the correct directory
|
|
```bash
|
|
cd /workspaces/agentic-flow/agentic-flow
|
|
pwd # Should show: /workspaces/agentic-flow/agentic-flow
|
|
```
|
|
|
|
#### 2. Build the Project (if not already built)
|
|
```bash
|
|
npm run build
|
|
```
|
|
|
|
#### 3. Test the CLI Directly
|
|
```bash
|
|
# Show help (all 17 commands)
|
|
node dist/agentdb/cli/agentdb-cli.js --help
|
|
|
|
# Or use npx (if globally installed)
|
|
npx agentdb --help
|
|
```
|
|
|
|
### 3. Create a Test Database
|
|
```bash
|
|
# Set database path
|
|
export AGENTDB_PATH=./test-agentdb.db
|
|
|
|
# Or specify inline for each command
|
|
AGENTDB_PATH=./test-agentdb.db node dist/agentdb/cli/agentdb-cli.js db stats
|
|
```
|
|
|
|
## Test Each Command Category
|
|
|
|
### 🧠 Reflexion Memory (Episodic Replay)
|
|
```bash
|
|
# Store an episode with self-critique
|
|
node dist/agentdb/cli/agentdb-cli.js reflexion store \
|
|
"session-1" \
|
|
"implement_authentication" \
|
|
0.95 \
|
|
true \
|
|
"Successfully used OAuth2 with JWT tokens" \
|
|
"User login requirement" \
|
|
"Working auth system" \
|
|
1200 \
|
|
5000
|
|
|
|
# Store a failed episode
|
|
node dist/agentdb/cli/agentdb-cli.js reflexion store \
|
|
"session-1" \
|
|
"implement_authentication" \
|
|
0.3 \
|
|
false \
|
|
"Forgot to validate tokens properly" \
|
|
"User login requirement" \
|
|
"Insecure auth" \
|
|
800 \
|
|
3000
|
|
|
|
# Retrieve relevant episodes
|
|
node dist/agentdb/cli/agentdb-cli.js reflexion retrieve \
|
|
"authentication" \
|
|
5 \
|
|
0.5
|
|
|
|
# Get critique summary from failures
|
|
node dist/agentdb/cli/agentdb-cli.js reflexion critique-summary \
|
|
"authentication" \
|
|
true
|
|
|
|
# Prune old episodes
|
|
node dist/agentdb/cli/agentdb-cli.js reflexion prune 30 0.2
|
|
```
|
|
|
|
### 🛠️ Skill Library (Lifelong Learning)
|
|
```bash
|
|
# Create a skill manually
|
|
node dist/agentdb/cli/agentdb-cli.js skill create \
|
|
"jwt_authentication" \
|
|
"Generate and validate JWT tokens for user authentication" \
|
|
"function generateJWT(payload) { return jwt.sign(payload, secret); }"
|
|
|
|
# Search for skills
|
|
node dist/agentdb/cli/agentdb-cli.js skill search \
|
|
"authentication tokens" \
|
|
5
|
|
|
|
# Auto-consolidate episodes into skills
|
|
node dist/agentdb/cli/agentdb-cli.js skill consolidate \
|
|
3 \
|
|
0.7 \
|
|
7
|
|
|
|
# Prune underperforming skills
|
|
node dist/agentdb/cli/agentdb-cli.js skill prune \
|
|
3 \
|
|
0.4 \
|
|
60
|
|
```
|
|
|
|
### 🔗 Causal Memory Graph (Intervention-Based)
|
|
```bash
|
|
# Add a causal edge manually
|
|
node dist/agentdb/cli/agentdb-cli.js causal add-edge \
|
|
"add_unit_tests" \
|
|
"code_quality_score" \
|
|
0.25 \
|
|
0.95 \
|
|
100
|
|
|
|
# Create an A/B experiment
|
|
node dist/agentdb/cli/agentdb-cli.js causal experiment create \
|
|
"test-coverage-vs-bugs" \
|
|
"test_coverage" \
|
|
"bug_rate"
|
|
|
|
# Add observations (treatment group)
|
|
node dist/agentdb/cli/agentdb-cli.js causal experiment add-observation \
|
|
1 \
|
|
true \
|
|
0.15 \
|
|
'{"coverage": 0.85}'
|
|
|
|
# Add observations (control group)
|
|
node dist/agentdb/cli/agentdb-cli.js causal experiment add-observation \
|
|
1 \
|
|
false \
|
|
0.35 \
|
|
'{"coverage": 0.45}'
|
|
|
|
# Calculate uplift
|
|
node dist/agentdb/cli/agentdb-cli.js causal experiment calculate 1
|
|
|
|
# Query causal edges
|
|
node dist/agentdb/cli/agentdb-cli.js causal query \
|
|
"test" \
|
|
"quality" \
|
|
0.6 \
|
|
0.1 \
|
|
10
|
|
```
|
|
|
|
### 🔍 Causal Recall (Utility-Based Reranking)
|
|
```bash
|
|
# Retrieve with causal utility and provenance certificate
|
|
node dist/agentdb/cli/agentdb-cli.js recall with-certificate \
|
|
"implement secure authentication" \
|
|
10 \
|
|
0.7 \
|
|
0.2 \
|
|
0.1
|
|
```
|
|
|
|
### 🌙 Nightly Learner (Automated Discovery)
|
|
```bash
|
|
# Discover causal edges from patterns (dry run)
|
|
node dist/agentdb/cli/agentdb-cli.js learner run \
|
|
3 \
|
|
0.6 \
|
|
0.7 \
|
|
true
|
|
|
|
# Discover and save edges
|
|
node dist/agentdb/cli/agentdb-cli.js learner run \
|
|
3 \
|
|
0.6 \
|
|
0.7 \
|
|
false
|
|
|
|
# Prune low-quality edges
|
|
node dist/agentdb/cli/agentdb-cli.js learner prune \
|
|
0.5 \
|
|
0.05 \
|
|
90
|
|
```
|
|
|
|
### 📊 Database Stats
|
|
```bash
|
|
# Get comprehensive database statistics
|
|
node dist/agentdb/cli/agentdb-cli.js db stats
|
|
```
|
|
|
|
## Full Workflow Example
|
|
|
|
### Scenario: Learning from Authentication Implementation
|
|
|
|
```bash
|
|
#!/bin/bash
|
|
|
|
# Set up test database
|
|
export AGENTDB_PATH=./auth-learning.db
|
|
|
|
# 1. Store successful attempts
|
|
node dist/agentdb/cli/agentdb-cli.js reflexion store \
|
|
"session-auth-1" "oauth2_implementation" 0.95 true \
|
|
"Used industry-standard OAuth2 flow" \
|
|
"Implement secure login" "Working OAuth2 system" 1500 6000
|
|
|
|
node dist/agentdb/cli/agentdb-cli.js reflexion store \
|
|
"session-auth-2" "jwt_tokens" 0.90 true \
|
|
"JWT with proper expiration and refresh tokens" \
|
|
"Token management" "Secure JWT system" 1200 5500
|
|
|
|
# 2. Store failed attempts
|
|
node dist/agentdb/cli/agentdb-cli.js reflexion store \
|
|
"session-auth-3" "session_storage" 0.35 false \
|
|
"Insecure session storage in localStorage" \
|
|
"Session management" "Security vulnerability" 800 3000
|
|
|
|
# 3. Create a skill from successful pattern
|
|
node dist/agentdb/cli/agentdb-cli.js skill create \
|
|
"secure_oauth2_jwt" \
|
|
"OAuth2 flow with JWT token management" \
|
|
"const auth = { oauth2: true, jwt: true, refresh: true }"
|
|
|
|
# 4. Add causal edge
|
|
node dist/agentdb/cli/agentdb-cli.js causal add-edge \
|
|
"add_token_refresh" "session_security" 0.40 0.92 50
|
|
|
|
# 5. Query for authentication guidance
|
|
node dist/agentdb/cli/agentdb-cli.js reflexion retrieve \
|
|
"secure authentication" 5 0.8
|
|
|
|
# 6. Get critique summary of what NOT to do
|
|
node dist/agentdb/cli/agentdb-cli.js reflexion critique-summary \
|
|
"authentication" true
|
|
|
|
# 7. Search for applicable skills
|
|
node dist/agentdb/cli/agentdb-cli.js skill search \
|
|
"oauth jwt tokens" 3
|
|
|
|
# 8. Check database stats
|
|
node dist/agentdb/cli/agentdb-cli.js db stats
|
|
```
|
|
|
|
## Verify Installation
|
|
|
|
### Check Binary Links
|
|
```bash
|
|
# Should show the CLI binary path
|
|
which agentdb
|
|
|
|
# Or check npm bin
|
|
npm bin agentdb
|
|
```
|
|
|
|
### Run from Package
|
|
```bash
|
|
# If you've run npm install -g or npm link
|
|
agentdb --help
|
|
```
|
|
|
|
## Environment Variables
|
|
|
|
```bash
|
|
# Database path (default: ./agentdb.db)
|
|
export AGENTDB_PATH=/path/to/your/database.db
|
|
|
|
# Example with custom path
|
|
AGENTDB_PATH=~/my-agent-memory.db node dist/agentdb/cli/agentdb-cli.js db stats
|
|
```
|
|
|
|
## Expected Output Examples
|
|
|
|
### Successful Episode Storage
|
|
```
|
|
✓ Stored episode #1 (session: session-1, task: implement_authentication)
|
|
Reward: 0.95 | Success: true | Latency: 1200ms | Tokens: 5000
|
|
```
|
|
|
|
### Skill Search Results
|
|
```
|
|
🔍 Found 3 skills for "authentication"
|
|
|
|
#1: jwt_authentication (success rate: 0.90, uses: 5)
|
|
Generate and validate JWT tokens for user authentication
|
|
|
|
#2: oauth2_flow (success rate: 0.85, uses: 3)
|
|
Complete OAuth2 authorization code flow
|
|
```
|
|
|
|
### Database Stats
|
|
```
|
|
AgentDB Statistics
|
|
|
|
Episodes: 15
|
|
Skills: 8
|
|
Causal Edges: 12
|
|
Experiments: 3
|
|
Certificates: 5
|
|
|
|
Total Size: 2.4 MB
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Issue: "Cannot find module"
|
|
```bash
|
|
# Rebuild the project
|
|
npm run build
|
|
|
|
# Check dist folder exists
|
|
ls dist/agentdb/cli/agentdb-cli.js
|
|
```
|
|
|
|
### Issue: "Database is locked"
|
|
```bash
|
|
# Close any open database connections
|
|
# Or use a different database path
|
|
export AGENTDB_PATH=./test2-agentdb.db
|
|
```
|
|
|
|
### Issue: "Permission denied"
|
|
```bash
|
|
# Make CLI executable
|
|
chmod +x dist/agentdb/cli/agentdb-cli.js
|
|
```
|
|
|
|
## Advanced Testing
|
|
|
|
### Test with Programmatic API
|
|
```typescript
|
|
import { AgentDBCLI } from './dist/agentdb/cli/agentdb-cli.js';
|
|
|
|
const cli = new AgentDBCLI('./test.db');
|
|
|
|
// Store episode
|
|
await cli.reflexionStore({
|
|
sessionId: 'test-1',
|
|
task: 'example',
|
|
reward: 0.9,
|
|
success: true,
|
|
critique: 'Good approach'
|
|
});
|
|
|
|
// Retrieve episodes
|
|
await cli.reflexionRetrieve({
|
|
task: 'example',
|
|
k: 5
|
|
});
|
|
```
|
|
|
|
### Integration with Your Project
|
|
```typescript
|
|
// In your agent code
|
|
import { AgentDBCLI } from 'agentic-flow/agentdb';
|
|
|
|
const memory = new AgentDBCLI();
|
|
|
|
// Learn from task outcomes
|
|
async function learnFromTask(task, outcome) {
|
|
await memory.reflexionStore({
|
|
sessionId: getCurrentSession(),
|
|
task: task.name,
|
|
reward: outcome.score,
|
|
success: outcome.passed,
|
|
critique: outcome.feedback,
|
|
input: task.input,
|
|
output: outcome.result,
|
|
latencyMs: outcome.duration,
|
|
tokensUsed: outcome.tokens
|
|
});
|
|
}
|
|
|
|
// Retrieve similar past experiences
|
|
async function recallSimilar(task) {
|
|
return await memory.reflexionRetrieve({
|
|
task: task.name,
|
|
k: 5,
|
|
minReward: 0.7
|
|
});
|
|
}
|
|
```
|
|
|
|
## Performance Benchmarks
|
|
|
|
```bash
|
|
# Time a full workflow
|
|
time bash full-workflow-example.sh
|
|
|
|
# Check database performance
|
|
node dist/agentdb/cli/agentdb-cli.js db stats
|
|
```
|
|
|
|
## Next Steps
|
|
|
|
1. ✅ Test basic commands (reflexion, skill)
|
|
2. ✅ Test causal features (edges, experiments)
|
|
3. ✅ Run nightly learner for discovery
|
|
4. ✅ Verify causal recall with certificates
|
|
5. ✅ Check database stats
|
|
6. 🚀 Integrate into your agent workflows
|
|
|
|
## Resources
|
|
|
|
- **AgentDB Controllers**: `/src/agentdb/controllers/`
|
|
- **CLI Source**: `/src/agentdb/cli/agentdb-cli.ts`
|
|
- **Tests**: `/src/agentdb/tests/frontier-features.test.ts`
|
|
- **Binary**: `/dist/agentdb/cli/agentdb-cli.js`
|