Spaces:
Running
on
Zero
Running
on
Zero
| # Secure AI Agents Suite - API Reference Documentation | |
| ## Overview | |
| The Secure AI Agents Suite provides a comprehensive API for autonomous AI agent interactions. This documentation covers all endpoints, parameters, response formats, and usage examples. | |
| ## Table of Contents | |
| 1. [Base URL and Authentication](#base-url-and-authentication) | |
| 2. [Core Endpoints](#core-endpoints) | |
| 3. [Agent Management](#agent-management) | |
| 4. [Performance Monitoring](#performance-monitoring) | |
| 5. [WebSocket APIs](#websocket-apis) | |
| 6. [Error Handling](#error-handling) | |
| 7. [Rate Limiting](#rate-limiting) | |
| 8. [SDK Reference](#sdk-reference) | |
| ## Base URL and Authentication | |
| ### Base URL | |
| ``` | |
| Production: https://your-space-url.hf.space | |
| Local: http://localhost:7860 | |
| ``` | |
| ### Authentication | |
| ```python | |
| # Headers | |
| headers = { | |
| "Authorization": "Bearer YOUR_API_KEY", | |
| "Content-Type": "application/json", | |
| "User-Agent": "Secure-AI-Agents-Suite/2.0.0" | |
| } | |
| ``` | |
| ### API Versioning | |
| ```python | |
| # Current version: v1 | |
| headers["API-Version"] = "v1" | |
| ``` | |
| ## Core Endpoints | |
| ### 1. Process Request | |
| #### POST /api/v1/process | |
| **Description**: Process a user request through the autonomous agent system. | |
| **Request Body**: | |
| ```json | |
| { | |
| "user_input": "string", | |
| "context": { | |
| "budget": "number", | |
| "timeline": "string", | |
| "team_size": "number", | |
| "industry": "string", | |
| "additional_params": "object" | |
| }, | |
| "agent_type": "string", | |
| "max_execution_time": "number", | |
| "options": { | |
| "enable_monitoring": "boolean", | |
| "save_results": "boolean", | |
| "async_mode": "boolean" | |
| } | |
| } | |
| ``` | |
| **Parameters**: | |
| | Parameter | Type | Required | Description | Default | | |
| |-----------|------|----------|-------------|---------| | |
| | `user_input` | string | Yes | The user's request text (max 10,000 chars) | - | | |
| | `context` | object | No | Additional context as key-value pairs | {} | | |
| | `agent_type` | string | No | Agent type ("GeneralAgent", "EnterpriseAgent", etc.) | "GeneralAgent" | | |
| | `max_execution_time` | number | No | Maximum execution time in seconds (30-300) | 120 | | |
| | `options.enable_monitoring` | boolean | No | Enable detailed monitoring | true | | |
| | `options.save_results` | boolean | No | Save results for later retrieval | true | | |
| | `options.async_mode` | boolean | No | Run request asynchronously | false | | |
| **Response**: | |
| ```json | |
| { | |
| "status": "success", | |
| "request_id": "uuid-string", | |
| "timestamp": "2024-11-29T17:04:26.632Z", | |
| "agent_type": "GeneralAgent", | |
| "processing_time": 0.142, | |
| "results": { | |
| "analysis": { | |
| "intent": { | |
| "primary": "strategic_planning", | |
| "secondary": ["content_creation", "market_analysis"], | |
| "confidence": 0.89 | |
| }, | |
| "complexity": { | |
| "level": "high", | |
| "score": 8.5, | |
| "factors": ["multi_step_planning", "strategic_thinking"], | |
| "estimated_duration_minutes": 15 | |
| }, | |
| "success_probability": 0.85, | |
| "risk_factors": ["time_constraint", "resource_availability"], | |
| "adaptation_requirements": ["dynamic_planning", "feedback_integration"] | |
| }, | |
| "plan": { | |
| "tasks": [ | |
| { | |
| "id": 1, | |
| "description": "Market research and competitor analysis", | |
| "priority": "high", | |
| "duration_minutes": 120, | |
| "dependencies": [], | |
| "success_criteria": ["comprehensive_analysis", "actionable_insights"], | |
| "fallback_strategies": ["use_previous_data", "simplified_analysis"] | |
| } | |
| ], | |
| "total_estimated_duration": 240, | |
| "critical_path": [1, 2, 3], | |
| "resource_requirements": { | |
| "cpu": "moderate", | |
| "memory": "high", | |
| "storage": "low" | |
| }, | |
| "risk_mitigation": { | |
| "primary_risks": ["resource_shortage", "time_constraints"], | |
| "mitigation_strategies": ["resource_pooling", "parallel_processing"] | |
| } | |
| }, | |
| "execution": { | |
| "status": "completed", | |
| "completed_tasks": 3, | |
| "total_tasks": 3, | |
| "success_rate": 1.0, | |
| "execution_time_minutes": 8.5, | |
| "adaptations_made": 1, | |
| "decisions_made": 2, | |
| "failed_tasks": [], | |
| "performance_metrics": { | |
| "efficiency_score": 0.92, | |
| "quality_score": 0.89, | |
| "completion_rate": 1.0 | |
| }, | |
| "iterations": [ | |
| { | |
| "iteration": 1, | |
| "tasks_executed": 2, | |
| "success_rate": 0.9, | |
| "changes_made": ["refined_strategy", "adjusted_timeline"] | |
| } | |
| ] | |
| }, | |
| "summary": "Comprehensive 3-month marketing strategy created with optimized budget allocation...", | |
| "recommendations": [ | |
| "Focus on digital channels for cost-effectiveness", | |
| "Implement A/B testing for campaign optimization", | |
| "Consider seasonal trends in timing" | |
| ] | |
| }, | |
| "monitoring": { | |
| "memory_usage": "145MB", | |
| "cpu_utilization": "12.5%", | |
| "cache_hit_rate": 0.78, | |
| "error_rate": 0.0 | |
| }, | |
| "metadata": { | |
| "version": "2.0.0", | |
| "model_used": "autonomous_engine_v2", | |
| "processing_mode": "synchronous" | |
| } | |
| } | |
| ``` | |
| **Status Codes**: | |
| - `200`: Success | |
| - `400`: Bad Request (validation error) | |
| - `429`: Rate Limit Exceeded | |
| - `500`: Internal Server Error | |
| - `503`: Service Unavailable | |
| **Example Usage**: | |
| ```python | |
| import requests | |
| import json | |
| url = "http://localhost:7860/api/v1/process" | |
| headers = { | |
| "Content-Type": "application/json", | |
| "Authorization": "Bearer your-api-key" | |
| } | |
| payload = { | |
| "user_input": "Create a comprehensive marketing plan for our new mobile app", | |
| "context": { | |
| "budget": 50000, | |
| "timeline": "3 months", | |
| "team_size": 5, | |
| "industry": "technology" | |
| }, | |
| "agent_type": "EnterpriseAgent", | |
| "max_execution_time": 180, | |
| "options": { | |
| "enable_monitoring": True, | |
| "save_results": True, | |
| "async_mode": False | |
| } | |
| } | |
| response = requests.post(url, json=payload, headers=headers) | |
| result = response.json() | |
| print(json.dumps(result, indent=2)) | |
| ``` | |
| ### 2. Get Request Status | |
| #### GET /api/v1/status/{request_id} | |
| **Description**: Get the status of an asynchronous request. | |
| **Path Parameters**: | |
| - `request_id` (string): The unique request identifier | |
| **Response**: | |
| ```json | |
| { | |
| "status": "completed", | |
| "request_id": "uuid-string", | |
| "timestamp": "2024-11-29T17:04:26.632Z", | |
| "progress": { | |
| "stage": "execution", | |
| "completed_percentage": 75, | |
| "current_task": "content generation", | |
| "estimated_completion": "2024-11-29T17:05:00.000Z" | |
| }, | |
| "partial_results": { | |
| "analysis": "completed", | |
| "plan": "completed", | |
| "execution": "in_progress" | |
| }, | |
| "errors": [], | |
| "estimated_total_time": 120 | |
| } | |
| ``` | |
| ### 3. Get Results | |
| #### GET /api/v1/results/{request_id} | |
| **Description**: Retrieve the complete results of a completed request. | |
| **Path Parameters**: | |
| - `request_id` (string): The unique request identifier | |
| **Query Parameters**: | |
| - `format` (string): Response format ("json", "summary", "detailed") - default: "json" | |
| **Response**: Same as POST /api/v1/process response format. | |
| ## Agent Management | |
| ### 4. List Available Agents | |
| #### GET /api/v1/agents | |
| **Description**: Get list of available agent types and their capabilities. | |
| **Response**: | |
| ```json | |
| { | |
| "agents": [ | |
| { | |
| "name": "GeneralAgent", | |
| "type": "general", | |
| "description": "Multi-domain task handling with balanced capabilities", | |
| "capabilities": [ | |
| "task_planning", | |
| "context_analysis", | |
| "adaptive_execution" | |
| ], | |
| "specialties": ["general_purpose", "flexible_thinking"], | |
| "max_context_length": 5000, | |
| "typical_response_time": 0.15, | |
| "success_rate": 0.98 | |
| }, | |
| { | |
| "name": "EnterpriseAgent", | |
| "type": "enterprise", | |
| "description": "Strategic business planning and enterprise-level decision making", | |
| "capabilities": [ | |
| "strategic_planning", | |
| "business_analysis", | |
| "risk_assessment", | |
| "compliance_awareness" | |
| ], | |
| "specialties": ["business_strategy", "financial_planning", "operational_optimization"], | |
| "max_context_length": 10000, | |
| "typical_response_time": 0.20, | |
| "success_rate": 0.96 | |
| } | |
| ], | |
| "total_agents": 5, | |
| "default_agent": "GeneralAgent" | |
| } | |
| ``` | |
| ### 5. Get Agent Info | |
| #### GET /api/v1/agents/{agent_name} | |
| **Description**: Get detailed information about a specific agent. | |
| **Path Parameters**: | |
| - `agent_name` (string): Name of the agent | |
| **Response**: | |
| ```json | |
| { | |
| "name": "EnterpriseAgent", | |
| "configuration": { | |
| "temperature": 0.7, | |
| "max_tokens": 2000, | |
| "top_p": 0.9, | |
| "frequency_penalty": 0.0, | |
| "presence_penalty": 0.0 | |
| }, | |
| "capabilities": [ | |
| { | |
| "name": "strategic_planning", | |
| "description": "Long-term strategic planning and roadmap development", | |
| "supported_contexts": ["business", "finance", "operations"], | |
| "quality_score": 0.95 | |
| } | |
| ], | |
| "performance_metrics": { | |
| "total_requests": 1250, | |
| "success_rate": 0.96, | |
| "average_response_time": 0.20, | |
| "memory_efficiency": 0.85, | |
| "error_rate": 0.04 | |
| }, | |
| "limitations": { | |
| "max_input_length": 10000, | |
| "max_execution_time": 300, | |
| "context_overflow_handling": "truncate" | |
| } | |
| } | |
| ``` | |
| ## Performance Monitoring | |
| ### 6. System Health | |
| #### GET /api/v1/health | |
| **Description**: Get system health and status information. | |
| **Response**: | |
| ```json | |
| { | |
| "status": "healthy", | |
| "timestamp": "2024-11-29T17:04:26.632Z", | |
| "uptime_seconds": 86400, | |
| "version": "2.0.0", | |
| "system": { | |
| "memory": { | |
| "total_gb": 8.0, | |
| "used_gb": 2.5, | |
| "available_gb": 5.5, | |
| "usage_percentage": 31.25 | |
| }, | |
| "cpu": { | |
| "cores": 4, | |
| "usage_percentage": 12.5, | |
| "load_average": [0.5, 0.3, 0.2] | |
| }, | |
| "disk": { | |
| "total_gb": 100.0, | |
| "used_gb": 15.0, | |
| "available_gb": 85.0, | |
| "usage_percentage": 15.0 | |
| } | |
| }, | |
| "services": { | |
| "api_server": "healthy", | |
| "agent_manager": "healthy", | |
| "cache_server": "healthy", | |
| "database": "not_configured" | |
| }, | |
| "metrics": { | |
| "total_requests": 1250, | |
| "requests_per_minute": 5.2, | |
| "average_response_time": 0.142, | |
| "error_rate": 0.02 | |
| } | |
| } | |
| ``` | |
| ### 7. Performance Metrics | |
| #### GET /api/v1/metrics | |
| **Description**: Get detailed performance metrics. | |
| **Query Parameters**: | |
| - `time_range` (string): Time range for metrics ("1h", "24h", "7d", "30d") - default: "1h" | |
| - `include_agent_details` (boolean): Include per-agent metrics - default: false | |
| **Response**: | |
| ```json | |
| { | |
| "time_range": "1h", | |
| "timestamp": "2024-11-29T17:04:26.632Z", | |
| "overall_metrics": { | |
| "total_requests": 125, | |
| "successful_requests": 123, | |
| "failed_requests": 2, | |
| "success_rate": 0.984, | |
| "average_response_time": 0.142, | |
| "p50_response_time": 0.120, | |
| "p95_response_time": 0.280, | |
| "p99_response_time": 0.450, | |
| "requests_per_minute": 2.1, | |
| "peak_requests_per_minute": 8.5 | |
| }, | |
| "agent_metrics": { | |
| "GeneralAgent": { | |
| "requests": 75, | |
| "success_rate": 0.987, | |
| "average_response_time": 0.138, | |
| "error_rate": 0.013 | |
| } | |
| }, | |
| "system_metrics": { | |
| "memory_usage": { | |
| "peak_gb": 3.2, | |
| "average_gb": 2.1, | |
| "current_gb": 2.5 | |
| }, | |
| "cpu_usage": { | |
| "peak_percentage": 25.0, | |
| "average_percentage": 12.5, | |
| "current_percentage": 15.0 | |
| } | |
| }, | |
| "error_breakdown": { | |
| "validation_errors": 1, | |
| "timeout_errors": 1, | |
| "system_errors": 0 | |
| }, | |
| "cache_performance": { | |
| "hit_rate": 0.78, | |
| "total_requests": 125, | |
| "cache_hits": 98, | |
| "cache_misses": 27 | |
| } | |
| } | |
| ``` | |
| ### 8. Analytics Dashboard Data | |
| #### GET /api/v1/analytics | |
| **Description**: Get data for analytics dashboard. | |
| **Query Parameters**: | |
| - `dashboard_type` (string): Type of dashboard ("overview", "performance", "agents") | |
| - `time_range` (string): Time range for data | |
| - `granularity` (string): Data granularity ("minute", "hour", "day") | |
| **Response**: | |
| ```json | |
| { | |
| "dashboard_type": "overview", | |
| "time_range": "24h", | |
| "granularity": "hour", | |
| "data": { | |
| "response_times": [ | |
| {"timestamp": "2024-11-29T16:00:00.000Z", "value": 0.145}, | |
| {"timestamp": "2024-11-29T17:00:00.000Z", "value": 0.142} | |
| ], | |
| "success_rates": [ | |
| {"timestamp": "2024-11-29T16:00:00.000Z", "value": 0.98}, | |
| {"timestamp": "2024-11-29T17:00:00.000Z", "value": 0.984} | |
| ], | |
| "request_counts": [ | |
| {"timestamp": "2024-11-29T16:00:00.000Z", "value": 65}, | |
| {"timestamp": "2024-11-29T17:00:00.000Z", "value": 60} | |
| ], | |
| "agent_distribution": [ | |
| {"agent": "GeneralAgent", "count": 85, "percentage": 68}, | |
| {"agent": "EnterpriseAgent", "count": 25, "percentage": 20} | |
| ] | |
| }, | |
| "trends": { | |
| "response_time_trend": "decreasing", | |
| "success_rate_trend": "stable", | |
| "request_volume_trend": "increasing" | |
| } | |
| } | |
| ``` | |
| ## WebSocket APIs | |
| ### 9. Real-time Metrics Stream | |
| #### WebSocket /ws/metrics | |
| **Description**: Stream real-time performance metrics. | |
| **Connection**: | |
| ```javascript | |
| const ws = new WebSocket('ws://localhost:7860/ws/metrics'); | |
| ``` | |
| **Message Format**: | |
| ```json | |
| { | |
| "type": "metrics_update", | |
| "timestamp": "2024-11-29T17:04:26.632Z", | |
| "data": { | |
| "response_time": 0.142, | |
| "memory_usage": 67.2, | |
| "cpu_usage": 12.5, | |
| "active_requests": 3, | |
| "queue_size": 0 | |
| } | |
| } | |
| ``` | |
| ### 10. Execution Progress Stream | |
| #### WebSocket /ws/progress/{request_id} | |
| **Description**: Stream execution progress for a specific request. | |
| **Message Types**: | |
| **Progress Update**: | |
| ```json | |
| { | |
| "type": "progress_update", | |
| "request_id": "uuid", | |
| "timestamp": "2024-11-29T17:04:26.632Z", | |
| "data": { | |
| "stage": "execution", | |
| "current_task": "generating_content", | |
| "completed_tasks": 2, | |
| "total_tasks": 5, | |
| "progress_percentage": 40, | |
| "estimated_time_remaining": 45 | |
| } | |
| } | |
| ``` | |
| **Completion**: | |
| ```json | |
| { | |
| "type": "completion", | |
| "request_id": "uuid", | |
| "timestamp": "2024-11-29T17:04:26.632Z", | |
| "status": "success", | |
| "summary": "Request completed successfully" | |
| } | |
| ``` | |
| ## Error Handling | |
| ### Error Response Format | |
| ```json | |
| { | |
| "error": { | |
| "code": "VALIDATION_ERROR", | |
| "message": "Input validation failed", | |
| "details": { | |
| "field": "user_input", | |
| "reason": "Input too long", | |
| "max_length": 10000, | |
| "current_length": 15000 | |
| }, | |
| "timestamp": "2024-11-29T17:04:26.632Z", | |
| "request_id": "uuid-string", | |
| "documentation_url": "https://docs.example.com/errors/VALIDATION_ERROR" | |
| } | |
| } | |
| ``` | |
| ### Error Codes | |
| | Code | Description | HTTP Status | Recovery | | |
| |------|-------------|-------------|----------| | |
| | `VALIDATION_ERROR` | Input validation failed | 400 | Fix input parameters | | |
| | `RATE_LIMIT_EXCEEDED` | Rate limit exceeded | 429 | Wait and retry | | |
| | `AGENT_UNAVAILABLE` | Requested agent unavailable | 503 | Try different agent | | |
| | `EXECUTION_TIMEOUT` | Request execution timed out | 504 | Increase timeout or simplify | | |
| | `MEMORY_LIMIT_EXCEEDED` | System memory limit exceeded | 507 | Reduce concurrent requests | | |
| | `INTERNAL_ERROR` | Internal server error | 500 | Contact support | | |
| ## Rate Limiting | |
| ### Rate Limits | |
| - **Global**: 100 requests per minute | |
| - **Per IP**: 100 requests per minute | |
| - **Per Agent**: 200 requests per minute per agent type | |
| - **Burst Limit**: 20 requests per second | |
| ### Rate Limit Headers | |
| ```http | |
| X-RateLimit-Limit: 100 | |
| X-RateLimit-Remaining: 95 | |
| X-RateLimit-Reset: 1640995200 | |
| X-RateLimit-Window: 60 | |
| ``` | |
| ### Rate Limit Response | |
| ```json | |
| { | |
| "error": { | |
| "code": "RATE_LIMIT_EXCEEDED", | |
| "message": "Rate limit exceeded. Try again in 30 seconds.", | |
| "retry_after": 30, | |
| "limit": 100, | |
| "window": 60 | |
| } | |
| } | |
| ``` | |
| ## SDK Reference | |
| ### Python SDK | |
| #### Installation | |
| ```bash | |
| pip install secure-ai-agents-suite | |
| ``` | |
| #### Basic Usage | |
| ```python | |
| from secure_ai_agents import AgentClient | |
| # Initialize client | |
| client = AgentClient( | |
| base_url="http://localhost:7860", | |
| api_key="your-api-key" | |
| ) | |
| # Process request | |
| result = client.process_request( | |
| user_input="Create a marketing strategy", | |
| context={"budget": 50000, "timeline": "3 months"}, | |
| agent_type="EnterpriseAgent" | |
| ) | |
| print(result.summary) | |
| ``` | |
| #### Async Usage | |
| ```python | |
| import asyncio | |
| from secure_ai_agents import AsyncAgentClient | |
| async def main(): | |
| client = AsyncAgentClient(base_url="http://localhost:7860") | |
| # Submit async request | |
| request_id = await client.submit_request( | |
| user_input="Complex multi-step workflow", | |
| context={"priority": "high"} | |
| ) | |
| # Monitor progress | |
| async for progress in client.monitor_progress(request_id): | |
| print(f"Progress: {progress.progress_percentage}%") | |
| # Get results | |
| result = await client.get_results(request_id) | |
| print(result.summary) | |
| asyncio.run(main()) | |
| ``` | |
| ### JavaScript SDK | |
| #### Installation | |
| ```bash | |
| npm install secure-ai-agents-suite | |
| ``` | |
| #### Basic Usage | |
| ```javascript | |
| import { AgentClient } from 'secure-ai-agents-suite'; | |
| const client = new AgentClient({ | |
| baseUrl: 'http://localhost:7860', | |
| apiKey: 'your-api-key' | |
| }); | |
| // Process request | |
| const result = await client.processRequest({ | |
| userInput: 'Create a business plan', | |
| context: { industry: 'technology', size: 'startup' }, | |
| agentType: 'EnterpriseAgent' | |
| }); | |
| console.log(result.summary); | |
| ``` | |
| #### WebSocket Usage | |
| ```javascript | |
| // Real-time progress monitoring | |
| const progressStream = client.monitorProgress('request-id'); | |
| progressStream.on('progress', (progress) => { | |
| console.log(`Progress: ${progress.completedTasks}/${progress.totalTasks}`); | |
| }); | |
| progressStream.on('complete', (result) => { | |
| console.log('Request completed:', result.summary); | |
| }); | |
| ``` | |
| ### Response Streaming | |
| For large responses, you can enable streaming: | |
| ```python | |
| client = AgentClient(base_url="http://localhost:7860", stream=True) | |
| async for chunk in client.process_request_stream( | |
| user_input="Complex analysis request" | |
| ): | |
| print(chunk) # Process each chunk as it arrives | |
| ``` | |
| ## Rate Limiting and Performance | |
| ### Best Practices | |
| 1. **Use Async Mode**: For complex requests, use `async_mode: true` | |
| 2. **Batch Processing**: Group similar requests when possible | |
| 3. **Context Optimization**: Keep context data minimal and relevant | |
| 4. **Timeout Management**: Set appropriate timeouts based on request complexity | |
| 5. **Error Handling**: Implement proper error handling with exponential backoff | |
| ### Performance Optimization | |
| ```python | |
| # Enable response caching | |
| client = AgentClient( | |
| base_url="http://localhost:7860", | |
| cache_responses=True, | |
| cache_ttl=3600 | |
| ) | |
| # Use connection pooling | |
| client = AgentClient( | |
| base_url="http://localhost:7860", | |
| max_connections=10, | |
| max_keepalive_connections=5 | |
| ) | |
| # Enable compression | |
| client = AgentClient( | |
| base_url="http://localhost:7860", | |
| compression=True | |
| ) | |
| ``` | |
| ## Changelog | |
| ### Version 2.0.0 (2024-11-29) | |
| - Added autonomous planning and reasoning capabilities | |
| - Implemented real-time performance monitoring | |
| - Added WebSocket APIs for streaming | |
| - Enhanced security with input validation | |
| - Improved error handling and recovery | |
| - Added comprehensive API documentation | |
| ### Version 1.5.0 | |
| - Basic agent functionality | |
| - Simple request/response API | |
| - Performance monitoring |