{ "tools": [ { "name": "web_search", "purpose": "Search the web for information on specified topics with customizable filters and result limits", "category": "search", "inputs": [ { "name": "query", "type": "string", "description": "Search query string to find relevant information", "required": true, "min_length": 1, "max_length": 500, "examples": ["artificial intelligence trends", "climate change impact", "python programming tutorial"] }, { "name": "limit", "type": "integer", "description": "Maximum number of search results to return", "required": false, "default": 10, "minimum": 1, "maximum": 100 }, { "name": "language", "type": "string", "description": "Language code for search results", "required": false, "default": "en", "enum": ["en", "es", "fr", "de", "it", "pt", "zh", "ja"] }, { "name": "time_range", "type": "string", "description": "Time range filter for search results", "required": false, "enum": ["any", "day", "week", "month", "year"] } ], "outputs": [ { "name": "results", "type": "array", "description": "Array of search result objects", "items": { "type": "object", "properties": { "title": {"type": "string"}, "url": {"type": "string"}, "snippet": {"type": "string"}, "relevance_score": {"type": "number"} } } }, { "name": "total_found", "type": "integer", "description": "Total number of results available" } ], "error_conditions": [ "Invalid query format", "Network timeout", "API rate limit exceeded", "No results found", "Service unavailable" ], "side_effects": [ "Logs search query for analytics", "May cache results temporarily" ], "idempotent": true, "rate_limits": { "requests_per_minute": 60, "requests_per_hour": 1000, "burst_limit": 10 }, "dependencies": [ "search_api_service", "content_filter_service" ], "examples": [ { "description": "Basic web search", "input": { "query": "machine learning algorithms", "limit": 5 }, "expected_output": { "results": [ { "title": "Introduction to Machine Learning Algorithms", "url": "https://example.com/ml-intro", "snippet": "Machine learning algorithms are computational methods...", "relevance_score": 0.95 } ], "total_found": 1250 } } ], "security_requirements": [ "Query sanitization", "Rate limiting by user", "Content filtering" ] }, { "name": "data_analyzer", "purpose": "Analyze structured data and generate statistical insights, trends, and visualizations", "category": "data", "inputs": [ { "name": "data", "type": "object", "description": "Structured data to analyze in JSON format", "required": true, "properties": { "columns": {"type": "array"}, "rows": {"type": "array"} } }, { "name": "analysis_type", "type": "string", "description": "Type of analysis to perform", "required": true, "enum": ["descriptive", "correlation", "trend", "distribution", "outlier_detection"] }, { "name": "target_column", "type": "string", "description": "Primary column to focus analysis on", "required": false }, { "name": "include_visualization", "type": "boolean", "description": "Whether to generate visualization data", "required": false, "default": true } ], "outputs": [ { "name": "insights", "type": "array", "description": "Array of analytical insights and findings" }, { "name": "statistics", "type": "object", "description": "Statistical measures and metrics" }, { "name": "visualization_data", "type": "object", "description": "Data formatted for visualization creation" } ], "error_conditions": [ "Invalid data format", "Insufficient data points", "Missing required columns", "Data type mismatch", "Analysis timeout" ], "side_effects": [ "May create temporary analysis files", "Logs analysis parameters for optimization" ], "idempotent": true, "rate_limits": { "requests_per_minute": 30, "requests_per_hour": 500, "burst_limit": 5 }, "dependencies": [ "statistics_engine", "visualization_service" ], "examples": [ { "description": "Basic descriptive analysis", "input": { "data": { "columns": ["age", "salary", "department"], "rows": [ [25, 50000, "engineering"], [30, 60000, "engineering"], [28, 55000, "marketing"] ] }, "analysis_type": "descriptive", "target_column": "salary" }, "expected_output": { "insights": [ "Average salary is $55,000", "Salary range: $50,000 - $60,000", "Engineering department has higher average salary" ], "statistics": { "mean": 55000, "median": 55000, "std_dev": 5000 } } } ], "security_requirements": [ "Data anonymization", "Access control validation" ] }, { "name": "document_processor", "purpose": "Process and extract information from various document formats including PDFs, Word docs, and plain text", "category": "file", "inputs": [ { "name": "document_url", "type": "string", "description": "URL or path to the document to process", "required": true, "pattern": "^(https?://|file://|/)" }, { "name": "processing_mode", "type": "string", "description": "How to process the document", "required": false, "default": "full_text", "enum": ["full_text", "summary", "key_points", "metadata_only"] }, { "name": "output_format", "type": "string", "description": "Desired output format", "required": false, "default": "json", "enum": ["json", "markdown", "plain_text"] }, { "name": "language_detection", "type": "boolean", "description": "Whether to detect document language", "required": false, "default": true } ], "outputs": [ { "name": "content", "type": "string", "description": "Extracted and processed document content" }, { "name": "metadata", "type": "object", "description": "Document metadata including author, creation date, etc." }, { "name": "language", "type": "string", "description": "Detected language of the document" }, { "name": "word_count", "type": "integer", "description": "Total word count in the document" } ], "error_conditions": [ "Document not found", "Unsupported file format", "Document corrupted or unreadable", "Access permission denied", "Document too large" ], "side_effects": [ "May download and cache documents temporarily", "Creates processing logs for debugging" ], "idempotent": true, "rate_limits": { "requests_per_minute": 20, "requests_per_hour": 300, "burst_limit": 3 }, "dependencies": [ "document_parser_service", "language_detection_service", "file_storage_service" ], "examples": [ { "description": "Process PDF document for full text extraction", "input": { "document_url": "https://example.com/research-paper.pdf", "processing_mode": "full_text", "output_format": "markdown" }, "expected_output": { "content": "# Research Paper Title\n\nAbstract: This paper discusses...", "metadata": { "author": "Dr. Smith", "creation_date": "2024-01-15", "pages": 15 }, "language": "en", "word_count": 3500 } } ], "security_requirements": [ "URL validation", "File type verification", "Malware scanning", "Access control enforcement" ] }, { "name": "notification_sender", "purpose": "Send notifications via multiple channels including email, SMS, and webhooks", "category": "communication", "inputs": [ { "name": "recipients", "type": "array", "description": "List of recipient identifiers", "required": true, "min_items": 1, "max_items": 100, "items": { "type": "string", "pattern": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$|^\\+?[1-9]\\d{1,14}$" } }, { "name": "message", "type": "string", "description": "Message content to send", "required": true, "min_length": 1, "max_length": 10000 }, { "name": "channel", "type": "string", "description": "Communication channel to use", "required": false, "default": "email", "enum": ["email", "sms", "webhook", "push"] }, { "name": "priority", "type": "string", "description": "Message priority level", "required": false, "default": "normal", "enum": ["low", "normal", "high", "urgent"] }, { "name": "template_id", "type": "string", "description": "Optional template ID for formatting", "required": false } ], "outputs": [ { "name": "delivery_status", "type": "object", "description": "Status of message delivery to each recipient" }, { "name": "message_id", "type": "string", "description": "Unique identifier for the sent message" }, { "name": "delivery_timestamp", "type": "string", "description": "ISO timestamp when message was sent" } ], "error_conditions": [ "Invalid recipient format", "Message too long", "Channel service unavailable", "Authentication failure", "Rate limit exceeded for channel" ], "side_effects": [ "Sends actual notifications to recipients", "Logs delivery attempts and results", "Updates delivery statistics" ], "idempotent": false, "rate_limits": { "requests_per_minute": 100, "requests_per_hour": 2000, "burst_limit": 20 }, "dependencies": [ "email_service", "sms_service", "webhook_service" ], "examples": [ { "description": "Send email notification", "input": { "recipients": ["user@example.com"], "message": "Your report has been completed and is ready for review.", "channel": "email", "priority": "normal" }, "expected_output": { "delivery_status": { "user@example.com": "delivered" }, "message_id": "msg_12345", "delivery_timestamp": "2024-01-15T10:30:00Z" } } ], "security_requirements": [ "Recipient validation", "Message content filtering", "Rate limiting per user", "Delivery confirmation" ] }, { "name": "task_scheduler", "purpose": "Schedule and manage delayed or recurring tasks within the agent system", "category": "compute", "inputs": [ { "name": "task_definition", "type": "object", "description": "Definition of the task to be scheduled", "required": true, "properties": { "action": {"type": "string"}, "parameters": {"type": "object"}, "retry_policy": {"type": "object"} } }, { "name": "schedule", "type": "object", "description": "Scheduling parameters for the task", "required": true, "properties": { "type": {"type": "string", "enum": ["once", "recurring"]}, "execute_at": {"type": "string"}, "recurrence_pattern": {"type": "string"} } }, { "name": "priority", "type": "integer", "description": "Task priority (1-10, higher is more urgent)", "required": false, "default": 5, "minimum": 1, "maximum": 10 } ], "outputs": [ { "name": "task_id", "type": "string", "description": "Unique identifier for the scheduled task" }, { "name": "next_execution", "type": "string", "description": "ISO timestamp of next scheduled execution" }, { "name": "status", "type": "string", "description": "Current status of the scheduled task" } ], "error_conditions": [ "Invalid schedule format", "Past execution time specified", "Task queue full", "Invalid task definition", "Scheduling service unavailable" ], "side_effects": [ "Creates scheduled tasks in the system", "May consume system resources for task storage", "Updates scheduling metrics" ], "idempotent": false, "rate_limits": { "requests_per_minute": 50, "requests_per_hour": 1000, "burst_limit": 10 }, "dependencies": [ "task_scheduler_service", "task_executor_service" ], "examples": [ { "description": "Schedule a one-time report generation", "input": { "task_definition": { "action": "generate_report", "parameters": { "report_type": "monthly_summary", "recipients": ["manager@example.com"] } }, "schedule": { "type": "once", "execute_at": "2024-02-01T09:00:00Z" }, "priority": 7 }, "expected_output": { "task_id": "task_67890", "next_execution": "2024-02-01T09:00:00Z", "status": "scheduled" } } ], "security_requirements": [ "Task definition validation", "User authorization for scheduling", "Resource limit enforcement" ] } ] }