{ "weather_forecast": { "display_name": "API Automation - Weather Forecast", "description": "Agora enables two machines that do not support the same API to communicate with each other. In this example, Alice requests a weather forecast for a specific location and date from Bob's weather service.", "schema": { "input": { "type": "object", "properties": { "location": { "type": "string", "description": "The name of the location for which the weather forecast is requested." }, "date": { "type": "string", "format": "date", "description": "The date for which the weather forecast is requested, in YYYY-MM-DD format." } }, "required": [ "location", "date" ] }, "output": { "type": "object", "properties": { "temperature": { "type": "number", "description": "The forecasted temperature in degrees Celsius." }, "condition": { "type": "string", "description": "A brief description of the weather condition (e.g., sunny, cloudy, rainy)." }, "humidity": { "type": "number", "description": "The forecasted humidity percentage." }, "wind_speed": { "type": "number", "description": "The forecasted wind speed in kilometers per hour." } }, "required": [ "temperature", "condition", "humidity", "wind_speed" ] }, "description": "Alice requests a weather forecast for a specific location and date from Bob's weather service.", "examples": [ { "location": "New York", "date": "2023-10-15" }, { "location": "London", "date": "2023-11-01" } ], "tools": [ { "name": "WeatherForecastAPI", "description": "An API that provides weather forecasts for a given location and date.", "input": { "type": "object", "properties": { "location": { "type": "string", "description": "The name of the location for which the weather forecast is requested." }, "date": { "type": "string", "format": "date", "description": "The date for which the weather forecast is requested, in YYYY-MM-DD format." } }, "required": [ "location", "date" ] }, "output": { "type": "object", "properties": { "temperature": { "type": "number", "description": "The forecasted temperature in degrees Celsius." }, "condition": { "type": "string", "description": "A brief description of the weather condition (e.g., sunny, cloudy, rainy)." }, "humidity": { "type": "number", "description": "The forecasted humidity percentage." }, "wind_speed": { "type": "number", "description": "The forecasted wind speed in kilometers per hour." } }, "required": [ "temperature", "condition", "humidity", "wind_speed" ] }, "dummy_outputs": [ { "temperature": 18, "condition": "Sunny", "humidity": 55, "wind_speed": 10 }, { "temperature": 12, "condition": "Cloudy", "humidity": 80, "wind_speed": 15 } ] } ] } }, "restaurant": { "display_name": "Personal Assistant - Restaurant Booking", "description": "Agora can be used for personal assistant tasks: any Agora-powered agent can communicate with any Agora-powered agent, even if they have very different internal schemas. In this example, Alice requests a table reservation at a restaurant for a specific date, time, and party size from Bob's restaurant.", "schema": { "input": { "type": "object", "properties": { "restaurant": { "type": "string", "description": "The name of the restaurant for the reservation." }, "booking_date": { "type": "string", "format": "date", "description": "The date of the reservation in YYYY-MM-DD format." }, "party_size": { "type": "number", "description": "The number of guests for the table booking." }, "booking_time": { "type": "string", "format": "time", "description": "The desired reservation time in HH:MM format (24-hour time)." } }, "required": [ "restaurant", "booking_date", "party_size", "booking_time" ] }, "output": { "type": "object", "properties": { "reservation_id": { "type": "string", "description": "The confirmation number for the reservation." }, "reservation_status": { "type": "string", "description": "The reservation status (e.g., confirmed, pending, or declined)." } }, "required": [ "reservation_id", "reservation_status" ] }, "description": "Alice requests a table reservation at a restaurant for a specific date, time, and party size from Bob's booking service.", "examples": [ { "restaurant": "The Green Olive", "booking_date": "2023-12-15", "booking_time": "19:00", "party_size": 4 }, { "restaurant": "Ocean's Delight", "booking_date": "2023-12-20", "booking_time": "18:30", "party_size": 2 } ], "tools": [ { "name": "TableReservationAPI", "description": "An API that facilitates restaurant table reservations based on requested details.", "input": { "type": "object", "properties": { "venue_name": { "type": "string", "description": "The restaurant name." }, "date": { "type": "string", "format": "date", "description": "The reservation date, formatted as YYYY-MM-DD." }, "time": { "type": "string", "format": "time", "description": "The time for the reservation, formatted as HH:MM (24-hour time)." }, "guest_count": { "type": "number", "description": "The number of guests for the reservation." } }, "required": [ "venue_name", "date", "time", "guest_count" ] }, "output": { "type": "object", "properties": { "confirmation_code": { "type": "string", "description": "The unique confirmation number for the booking." }, "status": { "type": "string", "description": "The reservation outcome (e.g., confirmed, pending, declined)." } }, "required": [ "confirmation_code", "status" ] }, "dummy_outputs": [ { "confirmation_code": "ABC12345", "status": "confirmed" }, { "confirmation_code": "XYZ67890", "status": "pending" } ] } ] } }, "customer_service": { "display_name": "Business Integration - Customer Service Tickets", "description": "Agora can be used to integrate different systems within a business. In this example, Alice is a customer service frontend that communicates with an in-house ticket tracking system.", "schema": { "input": { "type": "object", "properties": { "external_ticket_id": { "type": "string", "description": "The unique identifier for the customer service ticket in the external system." }, "summary": { "type": "string", "description": "A brief summary of the issue reported in the ticket." }, "description": { "type": "string", "description": "A detailed description of the issue provided by the customer." }, "priority": { "type": "string", "description": "The priority level of the ticket (e.g., low, medium, high, urgent)." }, "created_date": { "type": "string", "format": "date-time", "description": "The timestamp when the ticket was created in the external system." } }, "required": [ "external_ticket_id", "summary", "description", "priority", "created_date" ] }, "output": { "type": "object", "properties": { "internal_ticket_id": { "type": "string", "description": "The unique identifier for the ticket created in the in-house tracking system." }, "status": { "type": "string", "description": "The current status of the integration task (e.g., success, failed)." } }, "required": [ "internal_ticket_id", "status" ] }, "description": "Integrate a customer service ticket from an external system into an in-house ticket tracking database.", "examples": [ { "external_ticket_id": "EXT123456", "summary": "User unable to access account", "description": "Customer reports being locked out of their account after password reset.", "priority": "high", "created_date": "2023-11-10T15:45:00Z" }, { "external_ticket_id": "EXT654321", "summary": "Error on checkout page", "description": "Customer encounters an error when attempting to finalize purchase.", "priority": "urgent", "created_date": "2023-11-11T09:30:00Z" } ], "tools": [ { "name": "TicketIntegrationAPI", "description": "An API for creating tickets in an in-house tracking system based on external ticket data.", "input": { "type": "object", "properties": { "source_ticket_id": { "type": "string", "description": "The ID of the ticket in the external system." }, "title": { "type": "string", "description": "A concise title summarizing the ticket issue." }, "details": { "type": "string", "description": "Detailed information regarding the ticket issue." }, "urgency": { "type": "string", "description": "The urgency level of the ticket (e.g., low, medium, high, urgent)." }, "opened_at": { "type": "string", "format": "date-time", "description": "Timestamp indicating when the ticket was opened in the external system." } }, "required": [ "source_ticket_id", "title", "details", "urgency", "opened_at" ] }, "output": { "type": "object", "properties": { "inhouse_ticket_id": { "type": "string", "description": "The ID of the created ticket in the in-house system." }, "integration_status": { "type": "string", "description": "The outcome of the integration attempt (e.g., success, failure, duplicate)." } }, "required": [ "inhouse_ticket_id", "integration_status" ] }, "dummy_outputs": [ { "inhouse_ticket_id": "IN123456", "integration_status": "success" }, { "inhouse_ticket_id": "IN654321", "integration_status": "duplicate" } ] } ] } }, "smart_home": { "display_name": "Smart Homes - Thermostat Control", "description": "Agora can be used to automate tasks in smart homes, even if the devices are not natively compatible. In this example, Alice is a thermostat that communicates with an air conditioner unit to maintain a specified temperature range.", "schema": { "input": { "type": "object", "properties": { "ac_unit_id": { "type": "string", "description": "The unique identifier for the air conditioner unit that will receive commands from the thermostat." }, "target_temperature": { "type": "number", "description": "The desired room temperature to be maintained in degrees Celsius." }, "temperature_min": { "type": "number", "description": "The minimum allowable room temperature (in \u00b0C) before activating cooling." }, "temperature_max": { "type": "number", "description": "The maximum allowable room temperature (in \u00b0C) before activating cooling." }, "monitor_interval": { "type": "number", "description": "The frequency in seconds at which the thermostat checks the current room temperature." } }, "required": [ "ac_unit_id", "target_temperature", "temperature_range", "monitor_interval", "temperature_min", "temperature_max" ] }, "output": { "type": "object", "properties": { "task_id": { "type": "string", "description": "The unique identifier for this monitoring and control task." }, "communication_status": { "type": "string", "description": "The status of the communication with the AC unit (e.g., active, error, completed)." } }, "required": [ "task_id", "communication_status" ] }, "description": "Thermostat monitors room temperature and communicates with the AC unit to maintain a specified temperature range.", "examples": [ { "ac_unit_id": "ac456", "target_temperature": 22, "temperature_min": 21, "temperature_max": 23, "monitor_interval": 60 }, { "ac_unit_id": "ac101", "target_temperature": 20, "temperature_min": 19, "temperature_max": 21, "monitor_interval": 120 } ], "tools": [ { "name": "ACControlAPI", "description": "An API used by the thermostat to send commands to the air conditioner to adjust its settings based on the current room temperature.", "input": { "type": "object", "properties": { "device_id": { "type": "string", "description": "The ID of the air conditioner receiving temperature control commands." }, "temperature_setting": { "type": "number", "description": "The target temperature the AC should aim to achieve." }, "temp_range_min": { "type": "number", "description": "The minimum allowable room temperature (in \u00b0C) before activating cooling." }, "temp_range_max": { "type": "number", "description": "The maximum allowable room temperature (in \u00b0C) before activating cooling." } }, "required": [ "device_id", "temperature_setting", "temp_range_min", "temp_range_max" ] }, "output": { "type": "object", "properties": { "control_task_id": { "type": "string", "description": "The unique identifier for the temperature control task." }, "status": { "type": "string", "description": "The result of the control task setup (e.g., active, failed, adjusting)." } }, "required": [ "control_task_id", "status" ] }, "dummy_outputs": [ { "control_task_id": "CTRL001", "status": "active" }, { "control_task_id": "CTRL002", "status": "failed" } ] } ] } }, "supply_chain": { "display_name": "Supply Chain Management - Inventory Alerts", "description": "Agora can be used to manage supply chain systems across different vendors. In this example, Alice is an inventory management system that communicates with an off-site storage facility to set a restocking order.", "schema": { "input": { "type": "object", "properties": { "item_id": { "type": "string", "description": "The unique identifier for the item in the inventory." }, "low_stock_threshold": { "type": "number", "description": "The minimum quantity threshold for this item before a low stock alert is triggered." }, "restock_quantity": { "type": "number", "description": "The recommended quantity of the item to reorder when stock is low." } }, "required": [ "item_id", "low_stock_threshold", "restock_quantity" ] }, "output": { "type": "object", "properties": { "alert_status": { "type": "string", "description": "The status of the stock level for this item based on its low stock threshold (e.g., 'sufficient', 'low')." }, "recommended_action": { "type": "string", "description": "The suggested action based on stock levels, such as 'order more' or 'monitor'." } }, "required": [ "alert_status", "recommended_action" ] }, "description": "Manages the low stock threshold and restock quantities for items in the storage facility, allowing updates to thresholds and reorder recommendations.", "examples": [ { "item_id": "item123", "low_stock_threshold": 20, "restock_quantity": 50 }, { "item_id": "item456", "low_stock_threshold": 10, "restock_quantity": 30 } ], "tools": [ { "name": "InventoryThresholdAPI", "description": "An API that updates the low stock threshold and restock quantity for an item in the inventory system.", "input": { "type": "object", "properties": { "item_code": { "type": "string", "description": "The unique identifier for the item to update." }, "low_stock_level": { "type": "number", "description": "The updated threshold below which an item is considered low stock." }, "restock_level": { "type": "number", "description": "The updated recommended quantity to reorder when stock is low." } }, "required": [ "item_code", "low_stock_level", "restock_level" ] }, "output": { "type": "object", "properties": { "status": { "type": "string", "description": "The outcome of the update action, indicating whether the thresholds were successfully updated." }, "new_alert_status": { "type": "string", "description": "The updated alert status based on the new threshold values (e.g., 'low', 'sufficient')." } }, "required": [ "status", "new_alert_status" ] }, "dummy_outputs": [ { "status": "success", "new_alert_status": "low" }, { "status": "success", "new_alert_status": "sufficient" } ] } ] } } }