Files
tasq/node_modules/agentic-flow/docs/archived/V1.1.10_VALIDATION.md
T
2026-04-09 19:01:53 +08:00

6.2 KiB

v1.1.10 - Validation Complete ✅

Summary

v1.1.10 fixes all proxy URL issues from v1.1.8 and v1.1.9.

Fixed Issues

  • ✅ Gemini proxy URL mismatch (was hardcoded to port 3001, now uses 3000 from CLI)
  • ✅ claudeAgent now respects ANTHROPIC_BASE_URL set by CLI
  • ✅ All providers automatically use correct proxy URL
  • ✅ No more hanging with Gemini provider

Local Validation Results

Test 1: Anthropic Provider (Direct API)

node dist/cli-proxy.js --agent coder --task "Create add function" --provider anthropic --max-tokens 100

Result: ✅ WORKING - Function created successfully

Test 2: Gemini Provider (Via Proxy)

export GOOGLE_GEMINI_API_KEY="..."
node dist/cli-proxy.js --agent coder --task "Create add function" --provider gemini --max-tokens 100

Result: ✅ WORKING

  • Proxy started on port 3000
  • Gemini API call successful
  • Function created: add.py

Test 3: OpenRouter Provider (Via Proxy)

export OPENROUTER_API_KEY="..."
node dist/cli-proxy.js --agent coder --task "Create multiply function" --provider openrouter --model "openai/gpt-4o-mini" --max-tokens 100

Result: ✅ WORKING

  • Proxy started on port 3000
  • OpenRouter API call successful
  • Function created successfully

Test 4: Claude Agent SDK Write Tool

node dist/cli-proxy.js --agent coder --task "Write a hello world function to a file called hello.js using the Write tool" --provider anthropic --max-tokens 200

Result: ✅ WORKING

  • File created at /tmp/hello.js
  • SDK Write tool functioning correctly

Test 5: MCP Integration (claude-flow-sdk)

export ENABLE_CLAUDE_FLOW_SDK=true
node dist/cli-proxy.js --agent coder --task "Use the claude-flow-sdk MCP to store 'test-validation'='all systems working' in memory, then retrieve it" --provider anthropic --max-tokens 250

Result: ✅ WORKING

  • Memory stored: test-validation=all systems working (19 bytes)
  • Memory retrieved successfully
  • MCP memory system operational

Code Changes (v1.1.9 → v1.1.10)

File: src/agents/claudeAgent.ts

Before (v1.1.9):

if (provider === 'gemini' && process.env.GOOGLE_GEMINI_API_KEY) {
  envOverrides.ANTHROPIC_API_KEY = 'proxy-key';
  envOverrides.ANTHROPIC_BASE_URL = process.env.GEMINI_PROXY_URL || 'http://localhost:3001'; // ❌ Wrong port
}

After (v1.1.10):

if (provider === 'gemini' && process.env.GOOGLE_GEMINI_API_KEY) {
  // Use ANTHROPIC_BASE_URL if already set by CLI
  envOverrides.ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY || 'proxy-key';
  envOverrides.ANTHROPIC_BASE_URL = process.env.ANTHROPIC_BASE_URL || process.env.GEMINI_PROXY_URL || 'http://localhost:3000'; // ✅ Correct
}

File: src/cli-proxy.ts

Lines 136-156: Added proper Gemini proxy startup

// Start proxy if needed (OpenRouter or Gemini)
if (useOpenRouter) {
  console.log('🚀 Initializing OpenRouter proxy...');
  await this.startOpenRouterProxy(options.model);
} else if (useGemini) {
  console.log('🚀 Initializing Gemini proxy...');
  await this.startGeminiProxy(options.model);  // ✅ New method
} else {
  console.log('🚀 Using direct Anthropic API...\n');
}

Lines 254-295: New startGeminiProxy() method

private async startGeminiProxy(modelOverride?: string): Promise<void> {
  const geminiKey = process.env.GOOGLE_GEMINI_API_KEY;

  if (!geminiKey) {
    console.error('❌ Error: GOOGLE_GEMINI_API_KEY required for Gemini models');
    process.exit(1);
  }

  const defaultModel = modelOverride || process.env.COMPLETION_MODEL || 'gemini-2.0-flash-exp';

  const { AnthropicToGeminiProxy } = await import('./proxy/anthropic-to-gemini.js');
  const proxy = new AnthropicToGeminiProxy({
    geminiApiKey: geminiKey,
    defaultModel
  });

  proxy.start(this.proxyPort);
  this.proxyServer = proxy;

  // Set ANTHROPIC_BASE_URL so claudeAgent uses it
  process.env.ANTHROPIC_BASE_URL = `http://localhost:${this.proxyPort}`;

  if (!process.env.ANTHROPIC_API_KEY) {
    process.env.ANTHROPIC_API_KEY = 'sk-ant-proxy-dummy-key';
  }

  console.log(`🔗 Proxy Mode: Google Gemini`);
  console.log(`🔧 Proxy URL: http://localhost:${this.proxyPort}`);
  console.log(`🤖 Default Model: ${defaultModel}\n`);

  await new Promise(resolve => setTimeout(resolve, 1500));
}

Version Comparison

Version Gemini Provider OpenRouter Anthropic MCP SDK Tools
v1.1.8 ❌ Hangs indefinitely ✅ Works ✅ Works ✅ Works ✅ Works
v1.1.9 ❌ Hangs (proxy not started) ✅ Works ✅ Works ✅ Works ✅ Works
v1.1.10 ✅ FIXED ✅ Works ✅ Works ✅ Works ✅ Works

Installation

npm install -g agentic-flow@1.1.10
# or
npx agentic-flow@1.1.10 --agent coder --task "..."

Usage Examples

Gemini (Fixed in v1.1.10)

export GOOGLE_GEMINI_API_KEY="your-key-here"
npx agentic-flow@1.1.10 --agent coder --task "Create a REST API" --provider gemini

OpenRouter

export OPENROUTER_API_KEY="sk-or-v1-..."
npx agentic-flow@1.1.10 --agent coder --task "Write tests" --provider openrouter --model "openai/gpt-4o-mini"

Anthropic (Direct)

export ANTHROPIC_API_KEY="sk-ant-..."
npx agentic-flow@1.1.10 --agent coder --task "Refactor code"

With MCP Memory

export ENABLE_CLAUDE_FLOW_SDK=true
export ANTHROPIC_API_KEY="sk-ant-..."
npx agentic-flow@1.1.10 --agent coder --task "Store config in MCP memory"

Key Improvements

  1. Automatic Proxy Detection: CLI automatically starts the correct proxy based on provider
  2. URL Consistency: claudeAgent.ts now uses ANTHROPIC_BASE_URL set by CLI
  3. Better Error Messages: Clear errors instead of hanging
  4. Debug Mode: Use --verbose to see provider selection logic
  5. All Providers Validated: Anthropic, Gemini, OpenRouter, MCP, SDK tools all working

Use v1.1.10 - All provider issues fixed, full validation complete.

Avoid: v1.1.8 (hangs), v1.1.9 (Gemini proxy not started)

Package Info