agora-demo / schemas.json
Samuele Marro
Added schemas.json.
19bcd88
{
"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"
}
]
}
]
}
}
}