Skip to content

stealthstudios/stealth-sdk

Repository files navigation

Stealth SDK

StealthSDK Banner

CI Backend

Supported SDKs

Roblox JavaScript

Table of Contents

Features

  • Extremely customizable agents, through the use of ai16z's characterfile format
  • Support for multiple AI providers, including Anthropic, DeepSeek and OpenAI
  • Extensible behaviour through either a custom framework, or using Eliza.
  • SDK support for multiple languages, including Luau (Roblox) and JavaScript

Usage

This application consists of a backend that provides the underlying logic for tracking conversations and uses Eliza as the agent framework, through a custom client. It is built using Node.js and Fastify, using PostgreSQL as a database.

Developers can then use the SDKs to interact with this backend, and build their own chatbot applications on top of it. The current supported SDKs are:

Installation

This application was built with Node v23, and using this version of Node is recommended.

You can use any preferred package manager to install the dependencies. We recommend using pnpm.

git clone https://github.com/stealthstudios/stealth-sdk.git
cd stealth-sdk
pnpm install

Environment Variables

When using this application, you need to set the following environment variables in an .env file (An example is provided here):

  • AGENT_PROVIDER: The provider to use for the agent. This should be set to eliza or left empty.
  • PROVIDER: anthropic (Claude 3.5), deepseekv3 or openai (GPT4).
  • AI_API_KEY: The API key to pass to the model's API.
  • SERVER_PORT: The port to run the app on.
  • ENDPOINT_API_KEY: The authentication key that all incoming requests must provide.
  • ENVIRONMENT: The environment to run the server in. This should be set to development or production. In a development environment, certain security features are disabled to make development easier. The Scalar API key (in the API reference) is for example filled in automatically.
  • POSTGRES_USER: The username to use for the PostgreSQL database.
  • POSTGRES_PASSWORD: The password to use for the PostgreSQL database.
  • POSTGRES_HOST: The host to use for the PostgreSQL database.
  • POSTGRES_PORT: The port to use for the PostgreSQL database.
  • POSTGRES_DB: The database to use for the PostgreSQL database.
  • DATABASE_URL: In order to dynamically fill in database details, the database URL should be set. This should generally be "postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}?schema=public". This is then sent to Prisma to connect to the database.

If you are using Eliza (AGENT_PROVIDER=eliza), have a look at the Eliza documentation to see what environment variables are required.

Running the application

Setting up the database

We use Prisma to manage the database. To start the database and set it up, run the following commands (assuming all environment variables are set and Docker is installed):

docker compose up -d
npx prisma db push

Development

npm run dev

This starts a development server. The server will automatically reload if you make changes to the code, through the use of nodemon.

Production

To start the server in production, run the following command:

npm run deploy

A solution like PM2 is recommended for running the server in production.

Endpoint Documentation

By defining an OpenAPI scheme for every endpoint, a documentation page is generated automatically at /reference when the server is running. This page is generated using Scalar.

Contributing

If you find any bugs or have any suggestions for the project, please let us know here!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published