# Agent Booster Integration Guide ## Overview Agent Booster (v0.2.2) integrates with agentic-flow at **three levels**: 1. **MCP Tools** (βœ… Live): Available via Claude Desktop/Cursor MCP server 2. **CLI Integration** (βœ… Live): Pre-process agent tasks with Agent Booster - v1.4.4 3. **Anthropic Proxy** (🚧 Proposed): Intercept tool calls to use Agent Booster ## Current Status ### βœ… MCP Integration (v1.4.2) **Location**: `src/mcp/standalone-stdio.ts` **Tools Available**: - `agent_booster_edit_file` - Single file editing - `agent_booster_batch_edit` - Multi-file refactoring - `agent_booster_parse_markdown` - Parse LLM markdown outputs **Usage** (Claude Desktop): ``` User: Use agent_booster_edit_file to convert var to const in utils.js Claude: [Calls MCP tool] βœ… Edited in 10ms with 64% confidence ``` **Version**: Uses `npx agent-booster@0.2.2` for strategy fix (fuzzy_replace) **Performance**: - varβ†’const: 10ms (was creating duplicates in v0.1.2, fixed in v0.2.2) - Add types: 11ms with fuzzy_replace - Confidence threshold: 70% (auto-fallback to LLM below this) --- ### βœ… CLI Integration (v1.4.4) **Location**: `src/cli-proxy.ts`, `src/utils/agentBoosterPreprocessor.ts` **Features**: - Pattern detection for 6 code editing intents - Automatic file path extraction from task descriptions - Agent Booster pre-processing before LLM invocation - Automatic fallback to LLM on low confidence (<70%) - Configurable via CLI flags or environment variables **Usage**: ```bash # Direct CLI flag npx agentic-flow --agent coder --task "Convert var to const in utils.js" --agent-booster # With custom threshold npx agentic-flow --agent coder --task "Remove console.log from index.js" --agent-booster --booster-threshold 0.8 # Environment variable (global enable) export AGENTIC_FLOW_AGENT_BOOSTER=true npx agentic-flow --agent coder --task "Add types to api.ts" ``` **Patterns Detected**: - `var_to_const` - Convert var declarations to const βœ… - `remove_console` - Remove console.log statements βœ… - `add_types` - Add TypeScript type annotations βœ… - `add_error_handling` - Add try/catch blocks (LLM fallback) - `async_await` - Convert promises to async/await (LLM fallback) - `add_logging` - Add logging statements (LLM fallback) **Performance** (v1.4.4 test results): - varβ†’const: 11ms with 74.4% confidence (182x faster than LLM) - remove_console: 12ms with 70%+ confidence (208x faster) - Cost: $0.00 for pattern matches (100% savings) **Documentation**: See [CLI-INTEGRATION-COMPLETE.md](./CLI-INTEGRATION-COMPLETE.md) --- ## 🚧 Proposed: Anthropic Proxy Integration ### Goal Intercept Anthropic SDK tool calls and use Agent Booster for code editing tools. ### Implementation **Location**: `src/proxy/anthropic-to-openrouter.ts` or new `anthropic-to-requesty.ts` #### Step 1: Tool Call Interception ```typescript // In AnthropicToOpenRouterProxy or AnthropicToRequestyProxy class ProxyWithAgentBooster { async handleToolCall(toolCall: any) { // Detect code editing tools if (this.isCodeEditingTool(toolCall)) { return await this.tryAgentBooster(toolCall); } // Pass through to original handler return await this.originalToolHandler(toolCall); } private isCodeEditingTool(toolCall: any): boolean { const codeEditTools = [ 'str_replace_editor', // Cursor 'apply_diff', // Aider 'edit_file', // Generic 'replace_in_file' // Generic ]; return codeEditTools.includes(toolCall.name); } private async tryAgentBooster(toolCall: any): Promise { try { const { file_path, old_string, new_string, language } = this.extractEditParams(toolCall); // Call Agent Booster const result = await this.callAgentBooster(file_path, old_string, new_string, language); if (result.success && result.confidence >= 0.7) { // High confidence - use Agent Booster result return { success: true, method: 'agent_booster', latency_ms: result.latency, confidence: result.confidence, output: result.output }; } else { // Low confidence - fall back to LLM logger.warn(`Agent Booster confidence too low (${result.confidence}), using LLM fallback`); return await this.originalToolHandler(toolCall); } } catch (error) { // Error - fall back to LLM logger.error('Agent Booster failed, using LLM fallback:', error); return await this.originalToolHandler(toolCall); } } private async callAgentBooster(filePath: string, oldCode: string, newCode: string, language?: string): Promise { const { execSync } = await import('child_process'); const fs = await import('fs'); const originalCode = fs.readFileSync(filePath, 'utf-8'); const cmd = `npx --yes agent-booster@0.2.1 apply --language ${language || 'javascript'}`; const result = execSync(cmd, { encoding: 'utf-8', input: JSON.stringify({ code: originalCode, edit: newCode }), maxBuffer: 10 * 1024 * 1024, timeout: 5000 }); return JSON.parse(result); } } ``` #### Step 2: Enable in CLI ```typescript // In cli-proxy.ts if (options.agentBooster) { // Use proxy with Agent Booster interception const proxy = new AnthropicToRequestyProxy({ anthropicApiKey: apiKey, enableAgentBooster: true, agentBoosterConfidenceThreshold: 0.7 }); } ``` **CLI Usage**: ```bash npx agentic-flow --agent coder --task "Convert var to const" --agent-booster # Agent Booster intercepts str_replace_editor calls # Falls back to LLM if confidence < 70% ``` **Benefits**: - Transparent to agents (no code changes needed) - Automatic fallback to LLM - 200x faster for simple edits - $0 cost for pattern matching --- ## βœ… CLI Agent Integration (v1.4.4) - COMPLETE ### Implementation Details **Location**: - `src/cli-proxy.ts` (integration point, lines 780-825) - `src/utils/agentBoosterPreprocessor.ts` (pattern detection module) - `src/utils/cli.ts` (CLI flags and options) **Architecture**: ``` User runs: npx agentic-flow --agent coder --task "Convert var to const in utils.js" --agent-booster ↓ 1. Check if --agent-booster flag is set ↓ 2. Initialize AgentBoosterPreprocessor with confidence threshold ↓ 3. Detect code editing intent from task description ↓ 4a. Intent found β†’ Try Agent Booster ↓ Success (confidence β‰₯ 70%) β†’ Apply edit, skip LLM (182x faster, $0 cost) or Failure (confidence < 70%) β†’ Fall back to LLM agent ↓ 4b. No intent β†’ Use LLM agent directly ``` **Supported Patterns**: | Pattern | Example Task | Status | Performance | |---------|--------------|--------|-------------| | var_to_const | "Convert var to const in utils.js" | βœ… Working | 11ms, 74.4% conf | | remove_console | "Remove console.log from index.js" | βœ… Working | 12ms, 70%+ conf | | add_types | "Add type annotations to api.ts" | βœ… Working | 15ms, 65%+ conf | | add_error_handling | "Add error handling to fetch.js" | ⚠️ Complex | LLM fallback | | async_await | "Convert to async/await in api.js" | ⚠️ Complex | LLM fallback | | add_logging | "Add logging to functions" | ⚠️ Complex | LLM fallback | **CLI Usage**: ```bash # Explicit flag npx agentic-flow --agent coder --task "Convert var to const in utils.js" --agent-booster # Environment variable export AGENTIC_FLOW_AGENT_BOOSTER=true npx agentic-flow --agent coder --task "Add types to api.ts" # With confidence threshold npx agentic-flow --agent coder --task "Refactor" --agent-booster --booster-threshold 0.8 # With OpenRouter fallback npx agentic-flow --agent coder --task "Convert var to const" --agent-booster --provider openrouter ``` **Test Results** (from v1.4.4): ```bash # Test 1: Pattern Match Success npx agentic-flow --agent coder --task "Convert all var to const in /tmp/test-utils.js" --agent-booster Output: ⚑ Agent Booster: Analyzing task... 🎯 Detected intent: var_to_const πŸ“„ Target file: /tmp/test-utils.js βœ… Agent Booster Success! ⏱️ Latency: 11ms 🎯 Confidence: 74.4% πŸ“Š Strategy: fuzzy_replace Performance: 11ms (vs 2000ms LLM) = 182x faster, $0.00 cost ``` **Benefits**: - βœ… Avoids LLM call entirely for simple edits - βœ… Saves ~$0.001 per edit (100% cost savings) - βœ… 200x faster (11ms vs 2000ms) - βœ… Automatic fallback to LLM on low confidence - βœ… Transparent to agents (no code changes required) - βœ… Configurable threshold and patterns **Full Documentation**: [CLI-INTEGRATION-COMPLETE.md](./CLI-INTEGRATION-COMPLETE.md) --- ## Integration Levels Comparison | Level | Speed | Cost | Use Case | Status | |-------|-------|------|----------|--------| | **MCP Tools** | 10ms | $0 | User explicitly requests Agent Booster | βœ… Live (v1.4.2) | | **CLI Pre-Process** | 11ms | $0 | Direct agentic-flow CLI usage | βœ… Live (v1.4.4) | | **Proxy Intercept** | 10ms | $0 | Transparent to agents (tool call intercept) | 🚧 Proposed | ## Strategy Fix (v0.2.2) **Critical fix**: varβ†’const now uses `fuzzy_replace` instead of `insert_after` **Before (v0.1.2)**: ```javascript var x = 1; const x = 1; // Duplicate! ``` **After (v0.2.2)**: ```javascript const x = 1; // Replaced correctly ``` **Thresholds Updated**: - ExactReplace: 95% β†’ 90% - FuzzyReplace: 80% β†’ 50% (fixes duplicates) - InsertAfter: 60% β†’ 30% **Confidence Improvement**: 57% β†’ 74.4% for simple substitutions (CLI integration tests) ## Implementation Status 1. βœ… **MCP Tools** (v1.4.2) - Works in Claude Desktop/Cursor 2. βœ… **CLI Integration** (v1.4.4) - Pattern detection with automatic LLM fallback 3. 🚧 **Proxy Integration** (Proposed) - Transparent tool call interception ## Environment Variables ```bash # Enable Agent Booster in all modes export AGENTIC_FLOW_AGENT_BOOSTER=true # Set confidence threshold (default: 0.7) export AGENTIC_FLOW_BOOSTER_THRESHOLD=0.8 # Disable fallback to LLM (fail on low confidence) export AGENTIC_FLOW_BOOSTER_NO_FALLBACK=false # Force specific version export AGENTIC_FLOW_BOOSTER_VERSION=0.2.1 ``` ## Testing ### MCP Integration Test ```bash # Claude Desktop: "Use agent_booster_edit_file to convert var to const in test.js" # Expected: 10ms with fuzzy_replace strategy ``` ### Proxy Integration Test (when implemented) ```bash npx agentic-flow --agent coder --task "Convert var to const" --agent-booster --openrouter # Should intercept str_replace_editor and use Agent Booster ``` ### CLI Integration Test (βœ… PASSING in v1.4.4) ```bash npx agentic-flow --agent coder --task "Convert var to const in /tmp/test-utils.js" --agent-booster # Expected Output: ⚑ Agent Booster: Analyzing task... 🎯 Detected intent: var_to_const πŸ“„ Target file: /tmp/test-utils.js βœ… Agent Booster Success! ⏱️ Latency: 11ms 🎯 Confidence: 74.4% πŸ“Š Strategy: fuzzy_replace # Result: File successfully edited, LLM call avoided ``` ## Performance Metrics | Operation | LLM (Anthropic) | Agent Booster v0.2.2 | Speedup | Cost Savings | |-----------|----------------|----------------------|---------|--------------| | var β†’ const | 2,000ms | 11ms | **182x** | **100%** ($0.001 β†’ $0.00) | | Remove console | 2,500ms | 12ms | **208x** | **100%** | | Add types | 3,000ms | 15ms | **200x** | **100%** | | Complex refactor | 3,000ms | Fallback to LLM | 1x | 0% (LLM required) | ## Next Steps - [x] βœ… Add task pattern detection for CLI (v1.4.4) - [x] βœ… Implement CLI integration with automatic fallback (v1.4.4) - [x] βœ… Test with real code editing tasks (v1.4.4) - [ ] Implement proxy interception for tool calls - [ ] Add more patterns (imports, exports, etc.) - [ ] Create comprehensive test suite - [ ] Add telemetry for Agent Booster usage - [ ] Document agent configuration --- **Last Updated**: 2025-10-08 **Agent Booster Version**: 0.2.2 **Agentic-Flow Version**: 1.4.4