DigitalOcean-public.v2-new_GradientAI Platform

Add Function Route to an Agent

To create a function route for an agent, send a POST request to /v2/gen-ai/agents/{agent_uuid}/functions.

post/v2/gen-ai/agents/{agent_uuid}/functions

Path parameters

agent_uuidstring required

Agent id

Request body

agent_uuidstring

Agent id

descriptionstring

Function description

faas_namestring

The name of the function in the DigitalOcean functions platform

faas_namespacestring

The namespace of the function in the DigitalOcean functions platform

function_namestring

Function name

input_schemaobject

Describe the input schema for the function so the agent may call it

output_schemaobject

Describe the output schema for the function so the agent handle its response

Example request

{
  "agent_uuid": "\"12345678-1234-1234-1234-123456789012\"",
  "description": "\"My Function Description\"",
  "faas_name": "\"my-function\"",
  "faas_namespace": "\"default\"",
  "function_name": "\"My Function\""
}

Response

A successful response.

Example response

{
  "agent": {
    "anthropic_api_key": {
      "created_at": "2023-01-01T00:00:00Z",
      "created_by": "12345",
      "deleted_at": "2023-01-01T00:00:00Z",
      "name": "example name",
      "updated_at": "2023-01-01T00:00:00Z",
      "uuid": "123e4567-e89b-12d3-a456-426614174000"
    },
    "api_key_infos": [
      {
        "created_at": "2023-01-01T00:00:00Z",
        "created_by": "12345",
        "deleted_at": "2023-01-01T00:00:00Z",
        "name": "example name",
        "secret_key": "example string",
        "uuid": "123e4567-e89b-12d3-a456-426614174000"
      }
    ],
    "api_keys": [
      {
        "api_key": "example string"
      }
    ],
    "chatbot": {
      "button_background_color": "example string",
      "logo": "example string",
      "name": "example name",
      "primary_color": "example string",
      "secondary_color": "example string",
      "starting_message": "example string"
    },
    "chatbot_identifiers": [
      {
        "agent_chatbot_identifier": "123e4567-e89b-12d3-a456-426614174000"
      }
    ],
    "conversation_logs_enabled": true,
    "created_at": "2023-01-01T00:00:00Z",
    "deployment": {
      "created_at": "2023-01-01T00:00:00Z",
      "name": "example name",
      "status": "STATUS_UNKNOWN",
      "updated_at": "2023-01-01T00:00:00Z",
      "url": "example string",
      "uuid": "123e4567-e89b-12d3-a456-426614174000",
      "visibility": "VISIBILITY_UNKNOWN"
    },
    "description": "example string",
    "functions": [
      {
        "api_key": "example string",
        "created_at": "2023-01-01T00:00:00Z",
        "created_by": "12345",
        "description": "example string",
        "faas_name": "example name",
        "faas_namespace": "example name",
        "name": "example name",
        "updated_at": "2023-01-01T00:00:00Z",
        "url": "example string",
        "uuid": "123e4567-e89b-12d3-a456-426614174000"
      }
    ],
    "guardrails": [
      {
        "agent_uuid": "123e4567-e89b-12d3-a456-426614174000",
        "created_at": "2023-01-01T00:00:00Z",
        "default_response": "example string",
        "description": "example string",
        "guardrail_uuid": "123e4567-e89b-12d3-a456-426614174000",
        "is_attached": true,
        "is_default": true,
        "name": "example name",
        "priority": 123,
        "type": "GUARDRAIL_TYPE_UNKNOWN",
        "updated_at": "2023-01-01T00:00:00Z",
        "uuid": "123e4567-e89b-12d3-a456-426614174000"
      }
    ],
    "if_case": "example string",
    "instruction": "example string",
    "k": 123,
    "knowledge_bases": [
      {
        "added_to_agent_at": "2023-01-01T00:00:00Z",
        "created_at": "2023-01-01T00:00:00Z",
        "database_id": "123e4567-e89b-12d3-a456-426614174000",
        "embedding_model_uuid": "123e4567-e89b-12d3-a456-426614174000",
        "is_public": true,
        "last_indexing_job": {
          "completed_datasources": 123,
          "created_at": "2023-01-01T00:00:00Z",
          "data_source_uuids": [
            "example string"
          ],
          "finished_at": "2023-01-01T00:00:00Z",
          "knowledge_base_uuid": "123e4567-e89b-12d3-a456-426614174000",
          "phase": "BATCH_JOB_PHASE_UNKNOWN",
          "started_at": "2023-01-01T00:00:00Z",
          "status": "INDEX_JOB_STATUS_UNKNOWN",
          "tokens": 123,
          "total_datasources": 123,
          "total_items_failed": "12345",
          "total_items_indexed": "12345",
          "total_items_skipped": "12345",
          "updated_at": "2023-01-01T00:00:00Z",
          "uuid": "123e4567-e89b-12d3-a456-426614174000"
        },
        "name": "example name",
        "project_id": "123e4567-e89b-12d3-a456-426614174000",
        "region": "example string",
        "tags": [
          "example string"
        ],
        "updated_at": "2023-01-01T00:00:00Z",
        "user_id": "12345",
        "uuid": "123e4567-e89b-12d3-a456-426614174000"
      }
    ],
    "logging_config": {
      "galileo_project_id": "123e4567-e89b-12d3-a456-426614174000",
      "galileo_project_name": "example name",
      "insights_enabled": true,
      "insights_enabled_at": "2023-01-01T00:00:00Z",
      "log_stream_id": "123e4567-e89b-12d3-a456-426614174000",
      "log_stream_name": "example name"
    },
    "max_tokens": 123,
    "model": {
      "agreement": {
        "description": "example string",
        "name": "example name",
        "url": "example string",
        "uuid": "123e4567-e89b-12d3-a456-426614174000"
      },
      "created_at": "2023-01-01T00:00:00Z",
      "inference_name": "example name",
      "inference_version": "example string",
      "is_foundational": true,
      "name": "example name",
      "parent_uuid": "123e4567-e89b-12d3-a456-426614174000",
      "provider": "MODEL_PROVIDER_DIGITALOCEAN",
      "updated_at": "2023-01-01T00:00:00Z",
      "upload_complete": true,
      "url": "example string",
      "usecases": [
        "MODEL_USECASE_AGENT",
        "MODEL_USECASE_GUARDRAIL"
      ],
      "uuid": "123e4567-e89b-12d3-a456-426614174000",
      "version": {
        "major": 123,
        "minor": 123,
        "patch": 123
      }
    },
    "name": "example name",
    "openai_api_key": {
      "created_at": "2023-01-01T00:00:00Z",
      "created_by": "12345",
      "deleted_at": "2023-01-01T00:00:00Z",
      "models": [
        {
          "agreement": {
            "description": "example string",
            "name": "example name",
            "url": "example string",
            "uuid": "123e4567-e89b-12d3-a456-426614174000"
          },
          "created_at": "2023-01-01T00:00:00Z",
          "inference_name": "example name",
          "inference_version": "example string",
          "is_foundational": true,
          "name": "example name",
          "parent_uuid": "123e4567-e89b-12d3-a456-426614174000",
          "provider": "MODEL_PROVIDER_DIGITALOCEAN",
          "updated_at": "2023-01-01T00:00:00Z",
          "upload_complete": true,
          "url": "example string",
          "usecases": [
            "MODEL_USECASE_AGENT",
            "MODEL_USECASE_GUARDRAIL"
          ],
          "uuid": "123e4567-e89b-12d3-a456-426614174000",
          "version": {
            "major": 123,
            "minor": 123,
            "patch": 123
          }
        }
      ],
      "name": "example name",
      "updated_at": "2023-01-01T00:00:00Z",
      "uuid": "123e4567-e89b-12d3-a456-426614174000"
    },
    "project_id": "123e4567-e89b-12d3-a456-426614174000",
    "provide_citations": true,
    "region": "example string",
    "retrieval_method": "RETRIEVAL_METHOD_UNKNOWN",
    "route_created_at": "2023-01-01T00:00:00Z",
    "route_created_by": "12345",
    "route_name": "example name",
    "route_uuid": "123e4567-e89b-12d3-a456-426614174000",
    "tags": [
      "example string"
    ],
    "temperature": 123,
    "template": {
      "created_at": "2023-01-01T00:00:00Z",
      "description": "example string",
      "guardrails": [
        {
          "priority": 123,
          "uuid": "123e4567-e89b-12d3-a456-426614174000"
        }
      ],
      "instruction": "example string",
      "k": 123,
      "knowledge_bases": [
        {
          "added_to_agent_at": "2023-01-01T00:00:00Z",
          "created_at": "2023-01-01T00:00:00Z",
          "database_id": "123e4567-e89b-12d3-a456-426614174000",
          "embedding_model_uuid": "123e4567-e89b-12d3-a456-426614174000",
          "is_public": true,
          "last_indexing_job": {
            "completed_datasources": 123,
            "created_at": "2023-01-01T00:00:00Z",
            "data_source_uuids": [
              "example string"
            ],
            "finished_at": "2023-01-01T00:00:00Z",
            "knowledge_base_uuid": "123e4567-e89b-12d3-a456-426614174000",
            "phase": "BATCH_JOB_PHASE_UNKNOWN",
            "started_at": "2023-01-01T00:00:00Z",
            "status": "INDEX_JOB_STATUS_UNKNOWN",
            "tokens": 123,
            "total_datasources": 123,
            "total_items_failed": "12345",
            "total_items_indexed": "12345",
            "total_items_skipped": "12345",
            "updated_at": "2023-01-01T00:00:00Z",
            "uuid": "123e4567-e89b-12d3-a456-426614174000"
          },
          "name": "example name",
          "project_id": "123e4567-e89b-12d3-a456-426614174000",
          "region": "example string",
          "tags": [
            "example string"
          ],
          "updated_at": "2023-01-01T00:00:00Z",
          "user_id": "12345",
          "uuid": "123e4567-e89b-12d3-a456-426614174000"
        }
      ],
      "long_description": "\"Enhance your customer service with an AI agent designed to provide consistent, helpful, and accurate support across multiple channels. This template creates an agent that can answer product questions, troubleshoot common issues, process simple requests, and maintain a friendly, on-brand voice throughout customer interactions. Reduce response times, handle routine inquiries efficiently, and ensure your customers feel heard and helped.\"",
      "max_tokens": 123,
      "model": {
        "agreement": {
          "description": "example string",
          "name": "example name",
          "url": "example string",
          "uuid": "123e4567-e89b-12d3-a456-426614174000"
        },
        "created_at": "2023-01-01T00:00:00Z",
        "inference_name": "example name",
        "inference_version": "example string",
        "is_foundational": true,
        "name": "example name",
        "parent_uuid": "123e4567-e89b-12d3-a456-426614174000",
        "provider": "MODEL_PROVIDER_DIGITALOCEAN",
        "updated_at": "2023-01-01T00:00:00Z",
        "upload_complete": true,
        "url": "example string",
        "usecases": [
          "MODEL_USECASE_AGENT",
          "MODEL_USECASE_GUARDRAIL"
        ],
        "uuid": "123e4567-e89b-12d3-a456-426614174000",
        "version": {
          "major": 123,
          "minor": 123,
          "patch": 123
        }
      },
      "name": "example name",
      "short_description": "\"This template has been designed with question-answer and conversational use cases in mind. It comes with validated agent instructions, fine-tuned model settings, and preconfigured guardrails defined for customer support-related use cases.\"",
      "summary": "example string",
      "tags": [
        "example string"
      ],
      "temperature": 123,
      "template_type": "AGENT_TEMPLATE_TYPE_STANDARD",
      "top_p": 123,
      "updated_at": "2023-01-01T00:00:00Z",
      "uuid": "123e4567-e89b-12d3-a456-426614174000"
    },
    "top_p": 123,
    "updated_at": "2023-01-01T00:00:00Z",
    "url": "example string",
    "user_id": "12345",
    "uuid": "123e4567-e89b-12d3-a456-426614174000",
    "version_hash": "example string",
    "workspace": {
      "created_at": "2023-01-01T00:00:00Z",
      "created_by": "12345",
      "created_by_email": "example@example.com",
      "deleted_at": "2023-01-01T00:00:00Z",
      "description": "example string",
      "evaluation_test_cases": [
        {
          "archived_at": "2023-01-01T00:00:00Z",
          "created_at": "2023-01-01T00:00:00Z",
          "created_by_user_email": "example@example.com",
          "created_by_user_id": "12345",
          "dataset": {
            "created_at": "2023-01-01T00:00:00Z",
            "dataset_name": "example name",
            "dataset_uuid": "123e4567-e89b-12d3-a456-426614174000",
            "file_size": "12345",
            "has_ground_truth": true,
            "row_count": 123
          },
          "dataset_name": "example name",
          "dataset_uuid": "123e4567-e89b-12d3-a456-426614174000",
          "description": "example string",
          "latest_version_number_of_runs": 123,
          "metrics": [
            {
              "description": "example string",
              "inverted": true,
              "metric_name": "example name",
              "metric_type": "METRIC_TYPE_UNSPECIFIED",
              "metric_uuid": "123e4567-e89b-12d3-a456-426614174000",
              "metric_value_type": "METRIC_VALUE_TYPE_UNSPECIFIED",
              "range_max": 123,
              "range_min": 123
            }
          ],
          "name": "example name",
          "star_metric": {
            "metric_uuid": "123e4567-e89b-12d3-a456-426614174000",
            "name": "example name",
            "success_threshold": 123,
            "success_threshold_pct": 123
          },
          "test_case_uuid": "123e4567-e89b-12d3-a456-426614174000",
          "total_runs": 123,
          "updated_at": "2023-01-01T00:00:00Z",
          "updated_by_user_email": "example@example.com",
          "updated_by_user_id": "12345",
          "version": 123
        }
      ],
      "name": "example name",
      "updated_at": "2023-01-01T00:00:00Z",
      "uuid": "123e4567-e89b-12d3-a456-426614174000"
    }
  }
}

Changes

Changed in 6 of the 8 revisions of this API.11355

    • api tag DigitalOcean-public.v2-new_GradientAI Platform added

      api-tag-added

    • api tag GradientAI Platform removed

      api-tag-removed

    This revision also has 3 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • added the optional property //// to the response with the status

      response-optional-property-added

    • added the optional property //// to the response with the status

      response-optional-property-added

    • added the optional property //// to the response with the status

      response-optional-property-added

    • added the optional property // to the response with the status

      response-optional-property-added

    • added the optional property // to the response with the status

      response-optional-property-added

    • added the optional property ///// to the response with the status

      response-optional-property-added

    • added the optional property ///// to the response with the status

      response-optional-property-added

    • added the optional property ///// to the response with the status

      response-optional-property-added

  • f8e8c290636c117See the full diff
    • added the new METRIC_VALUE_TYPE_PERCENTAGE enum value to the ////// response property for the response status

      response-property-enum-value-added

    • api operation id attach_agent_function removed and replaced with genai_attach_agent_function

      api-operation-id-removed

    • the endpoint scheme security bearer_auth was added to the API

      api-security-added

    • api tag GradientAI Platform added

      api-tag-added

    • api tag GenAIAPI removed

      api-tag-removed

    • request body became optional

      request-body-became-optional

    • added the non-success response with the status

      response-non-success-status-added

    • added the non-success response with the status

      response-non-success-status-added

    • added the non-success response with the status

      response-non-success-status-added

    • added the non-success response with the status

      response-non-success-status-added

    • added the optional property / to the response with the status

      response-optional-property-added

    • added the optional property / to the response with the status

      response-optional-property-added

    • added the optional property / to the response with the status

      response-optional-property-added

    • added the optional property //// to the response with the status

      response-optional-property-added

    • added the optional property ////// to the response with the status

      response-optional-property-added

    • added the optional property ////// to the response with the status

      response-optional-property-added

    • added the optional property ////// to the response with the status

      response-optional-property-added

    • added the optional property ///// to the response with the status

      response-optional-property-added

    This revision also has 70 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

  • 5fc9af728e821119See the full diff
    • request body became required

      request-body-became-required

    • the optional response header ratelimit-limit removed for the status 200

      optional-response-header-removed

    • the optional response header ratelimit-remaining removed for the status 200

      optional-response-header-removed

    • the optional response header ratelimit-reset removed for the status 200

      optional-response-header-removed

    • removed the optional property / from the response with the status

      response-optional-property-removed

    • removed the optional property / from the response with the status

      response-optional-property-removed

    • removed the optional property / from the response with the status

      response-optional-property-removed

    • removed the optional property //// from the response with the status

      response-optional-property-removed

    • removed the optional property ////// from the response with the status

      response-optional-property-removed

    • removed the optional property ////// from the response with the status

      response-optional-property-removed

    • removed the optional property ////// from the response with the status

      response-optional-property-removed

    • removed the optional property ///// from the response with the status

      response-optional-property-removed

    • api operation id genai_attach_agent_function removed and replaced with attach_agent_function

      api-operation-id-removed

    • the endpoint scheme security bearer_auth was removed from the API

      api-security-removed

    • api tag GenAIAPI added

      api-tag-added

    • api tag GradientAI Platform removed

      api-tag-removed

    • removed the non-success response with the status

      response-non-success-status-removed

    • removed the non-success response with the status

      response-non-success-status-removed

    • removed the non-success response with the status

      response-non-success-status-removed

    • removed the non-success response with the status

      response-non-success-status-removed

    • removed the METRIC_VALUE_TYPE_PERCENTAGE enum value from the ////// response property for the response status

      response-property-enum-value-removed

    This revision also has 436 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

  • f8e8c290636c117See the full diff
    • added the new METRIC_VALUE_TYPE_PERCENTAGE enum value to the ////// response property for the response status

      response-property-enum-value-added

    • api operation id attach_agent_function removed and replaced with genai_attach_agent_function

      api-operation-id-removed

    • the endpoint scheme security bearer_auth was added to the API

      api-security-added

    • api tag GradientAI Platform added

      api-tag-added

    • api tag GenAIAPI removed

      api-tag-removed

    • request body became optional

      request-body-became-optional

    • added the non-success response with the status

      response-non-success-status-added

    • added the non-success response with the status

      response-non-success-status-added

    • added the non-success response with the status

      response-non-success-status-added

    • added the non-success response with the status

      response-non-success-status-added

    • added the optional property / to the response with the status

      response-optional-property-added

    • added the optional property / to the response with the status

      response-optional-property-added

    • added the optional property / to the response with the status

      response-optional-property-added

    • added the optional property //// to the response with the status

      response-optional-property-added

    • added the optional property ////// to the response with the status

      response-optional-property-added

    • added the optional property ////// to the response with the status

      response-optional-property-added

    • added the optional property ////// to the response with the status

      response-optional-property-added

    • added the optional property ///// to the response with the status

      response-optional-property-added

    This revision also has 70 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • added the optional property //// to the response with the status

      response-optional-property-added

    • added the optional property ///// to the response with the status

      response-optional-property-added