Crypto.com AI Agent SDK
  • Getting Started
    • Introduction
    • Quick Start Guide: Simulation Entry Point
  • Core Concepts Overview
    • Plugins
    • Tools
    • Blockchain Functions
      • Wallet Management
      • Token Interaction
      • Transaction Queries
      • Block Information
      • Contract Operations
      • CronosID Operations
      • Defi Operations
      • Crypto.com Exchange
    • Built-in Telegram Feature
    • Advanced Usage: Custom Instructions
    • Dynamic AI Model Manager
  • Crypto.com On-Chain Developer Platform
    • Developer Platform API Methods
  • On-Chain Functions and Examples
    • AI Agent Chatbot
    • "Magic Link" Signer
  • Resources for Developers
Powered by GitBook
On this page
  • Introduction
  • API Endpoints
  • Experimental feature - Assigning a key to the AI Agent

Was this helpful?

  1. Outdated Contents

Self-Hosting AI-Agent-Server

Last updated 3 months ago

Was this helpful?

Introduction

By following this example, we will be able to self-host the AI element of the SDK, specifically the AI agent client, independently. This offers developers and projects greater control and flexibility compared to using the AI agent API directly. Underneath, the AI agent client utilizes the package to obtain data and interact with Cronos Chains. The example is fully opensource and can be found in this

Step 1 - Clone the repository:

git clone https://github.com/crypto-com/developer-platform-sdk-examples.git
cd developer-platform-sdk-examples/ai/cryptocom-ai-agent-service

Step 2 - Install dependencies:

npm install

Step 3 - Create a .env file with the following content:

NODE_ENV=development
EXPLORER_API_KEY=<Explorer_API_Key>

We can follow the guide in to obtain our Explorer_API_Key, the explorer API keys of different Cronos chains

The example is configured for the Cronos zkEVM Testnet. When connecting to another network, please update the chain in within agent.service.ts accordingly.

// Cronos EVM mainnet
CronosEvm.Mainnet 
// Cronos EVM testnet
CronosEvm.Testnet
// Cronos zkEVM mainnet
CronosZkEvm.Mainnet

Step 4 - Run the development server / Production build:

Run the development server by

npm run dev

Once done, the AI agent client will be running under localhost:8000

OR

Production build by

npm run build
npm start

Afterwards, we can interact with the AI agent client in a similar manner


API Endpoints

Health Check

  • Endpoint: /healthcheck

  • Method: GET

  • Description: Returns the uptime and health status of the service.

  • Response Example:

    {
      "status": "success",
      "result": {
        "uptime": 120.34,
        "responsetime": [0, 252939],
        "message": "OK",
        "timestamp": 1632846348163
      }
    }

Query Route

More query example can be found in Functions and Example Queries of AI agent services

  • Endpoint: /api/v1/cdc-ai-agent-service/query

  • Method: POST

  • Description: Takes a natural language query, maps it to a blockchain command via OpenAI, and executes the command.

  • Request Body Example:

    {
      "query": "get latest block",
      "options": {
        "openAI": {
          "apiKey": "<your-openai-api-key>"
        },
        "chain": {
          "id": "388",
          "name": "cronos-zkevm-testnet",
          "rpc": "https://testnet.zkevm.cronos.org"
        },
        "explorer": {
          "apiKey": "<your-explorer-api-key>"
        }
      }
    }
  • Response Example:

    {
      "status": "success",
      "result": {
        "action": "getBlock",
        "message": "Retrieved latest block",
        "data": {
          "blockNumber": 123456,
          "timestamp": "2023-09-12T10:12:15Z"
        }
      }
    }
    

Querying with DeepSeek Model

  • Endpoint: /api/v1/cdc-ai-agent-service/query

  • Method: POST

  • Description: Takes a natural language query, maps it to a blockchain command via DeepSeek, and executes the command.

  • Request Body Example:

    {
      "query": "get latest block",
      "options": {
        "deepSeek": {
          "apiKey": "<your-deepseek-api-key>",
          "model": "deepseek-chat"
        },
        "llmProvider": "deepseek",
        "chain": {
          "id": "388",
          "name": "cronos-zkevm-testnet",
          "rpc": "https://testnet.zkevm.cronos.org"
        },
        "explorer": {
          "apiKey": "<your-explorer-api-key>"
        }
      }
    }
  • Response Example:

    {
      "status": "success",
      "result": {
        "action": "getBlock",
        "message": "Retrieved latest block",
        "data": {
          "blockNumber": 123456,
          "timestamp": "2023-09-12T10:12:15Z"
        }
      }
    }

Querying with Mistral Models

  • Endpoint: /api/v1/cdc-ai-agent-service/query

  • Method: POST

  • Description: Takes a natural language query, maps it to a blockchain command via DeepSeek, and executes the command.

  • Supported models: ministral-3b-latest, ministral-8b-latest, mistral-large-latest, mistral-small-latest

  • Request Body Example With mistral-large-latest :

    {
      "query": "get latest block",
      "options": {
        "mistral": {
          "apiKey": "<your-mistral-api-key>",
          "model": "mistral-large-latest"
        },
        "llmProvider": "mistral",
        "chain": {
          "id": "388",
          "name": "cronos-zkevm-testnet",
          "rpc": "https://testnet.zkevm.cronos.org"
        },
        "explorer": {
          "apiKey": "<your-explorer-api-key>"
        }
      }
    }
  • Response Example:

    {
      "status": "success",
      "result": {
        "action": "getBlock",
        "message": "Retrieved latest block",
        "data": {
          "blockNumber": 123456,
          "timestamp": "2023-09-12T10:12:15Z"
        }
      }
    }

Experimental feature - Assigning a key to the AI Agent

Please note that the following is an experimental feature intended for demonstration purposes only. Use this feature with caution, as it may result in the loss of funds.

NODE_ENV=development
EXPLORER_API_KEY=
PRIVATE_KEY=
RPC_URL=
DEX_ROUTER_ADDRESS=

As introduced in this , developers can follow the to assign a private key directly to the AI agent, enabling it to perform transactions on the user's behalf.

In particular, we need to update the agent.service.ts file and the .env file with additional variables, such as the key to be assigned, the RPC URL for transaction broadcasting (see ) and the DEX router for swaping:

Developers may also refer to the experimental branch of this for further reference.

pull request
instructions
repository
repository
Client.init
Explorer API keys
Cronos zkEVM Sepolia Testnet URLs
Example of an Agent performing a transfer using the key assigned with Quick Start Guide: Simulation Entry Point