Skip to main content

A toolkit for building AI agents that use devices

Project description


Surfkit

A toolkit for building and sharing AI agents that operate on devices
Explore the docs »

View Demo · Report Bug · Request Feature


Features

  • Build multimodal agents that can operate on devices
  • Share agents with the community
  • Run agents and devices locally or in the cloud
  • Manage agent tasks at scale
  • Track and observe agent actions

Demo

https://github.com/agentsea/surfkit/assets/5533189/98b7714d-9692-4369-8fbf-88aff61e741c

Installation

pip install surfkit

Quickstart

Prerequisites

  • Docker
  • Python >= 3.10
  • MacOS or Linux
  • Qemu

Python

Use an agent to solve a task

from surfkit import solve

task = solve(
    "Search for the most common variety of french duck",
    agent_type="mariyadavydova/SurfSlicer",
    device_type="desktop",
  )

task.wait_for_done()

result = task.result

CLI

Create an Agent

Find available agents on the Hub

surfkit find

Create a new agent

surfkit create agent -t mariyadavydova/SurfSlicer -n agent01

List running agents

surfkit list agents

Create a Device

Create an Ubuntu desktop for our agent to use.

surfkit create device --provider qemu -n desktop01

List running devices

surfkit list devices

Solve a task

Use the agent to solve a task on the device

surfkit solve "Search for the most common variety of french duck" \
  --agent agent01 \
  --device desktop01

Documentation

View our documentation for more in depth information.

Usage

Building Agents

Initialize a new project

surfkit new

Build a docker container for the agent

surfkit build

Running Agents

Create an agent locally

surfkit create agent --name foo -t pbarker/SurfPizza

Create an agent on kubernetes

surfkit create agent --runtime kube -t pbarker/SurfPizza

List running agents

surfkit list agents

Get details about a specific agent

surfkit get agent foo

Fetch logs for a specific agent

surfkit logs foo

Delete an agent

surfkit delete agent foo

Managing Devices

Create a device

surfkit create device --type desktop --provicer gce --name bar

List devices

surfkit list devices

View device in UI

surfkit view bar

Delete a device

surfkit delete device bar

Tracking Tasks

Create a tracker

surfkit create tracker

List trackers

surfkit list trackers

Delete a tracker

surfkit delete tracker foo

Solving Tasks

Solve a task with an existing setup

surfkit solve "search for common french ducks" --agent foo --device bar

Solve a task creating the agent ad hoc

surfkit solve "search for alpaca sweaters" \
--device bar --agent-file ./agent.yaml

List tasks

surfkit list tasks

Publishing Agents

Login to the hub

surfkit login

Publish the agent

surfkit publish

List published agent types

surfkit find

Integrations

Skillpacks is integrated with:

  • MLLM A prompt management, routing, and schema validation library for multimodal LLMs
  • Taskara A task management library for AI agents
  • Skillpacks A library to fine tune AI agents on tasks.
  • Threadmem A thread management library for AI agents

Community

Come join us on Discord.

Developing

Add the following function to your ~/.zshrc (or similar)

function sk() {
  local project_dir="/path/to/surfkit/repo"
  local venv_dir="$project_dir/.venv"
  local ssh_auth_sock="$SSH_AUTH_SOCK"
  local ssh_agent_pid="$SSH_AGENT_PID"

  export SSH_AUTH_SOCK="$ssh_auth_sock"
  export SSH_AGENT_PID="$ssh_agent_pid"

  # Add the Poetry environment's bin directory to the PATH
  export PATH="$venv_dir/bin:$PATH"

  # Execute the surfkit.cli.main module using python -m
  surfkit "$@"
}

Replacing /path/to/surfkit/repo with the absolute path to your local repo.

Then calling sk will execute the working code in your repo from any location.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

surfkit-0.1.252.tar.gz (66.3 kB view details)

Uploaded Source

Built Distribution

surfkit-0.1.252-py3-none-any.whl (81.9 kB view details)

Uploaded Python 3

File details

Details for the file surfkit-0.1.252.tar.gz.

File metadata

  • Download URL: surfkit-0.1.252.tar.gz
  • Upload date:
  • Size: 66.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.4 Darwin/23.4.0

File hashes

Hashes for surfkit-0.1.252.tar.gz
Algorithm Hash digest
SHA256 6831b6e7c6c951b0ac07c33b7d2eacc87876e654d8091c775dc207ee149c4b75
MD5 ea23e0aa4d0f12d1c8a496667afb3d52
BLAKE2b-256 55e7a13df98192db543e9a712b86b598421f0f51dbc28ff331a0a2bf80a104f5

See more details on using hashes here.

File details

Details for the file surfkit-0.1.252-py3-none-any.whl.

File metadata

  • Download URL: surfkit-0.1.252-py3-none-any.whl
  • Upload date:
  • Size: 81.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.4 Darwin/23.4.0

File hashes

Hashes for surfkit-0.1.252-py3-none-any.whl
Algorithm Hash digest
SHA256 53b532680978174e96ffad1982ec8da0ae9a208b1bca7bab38b5b13a5b4f7d5d
MD5 d144ea7b64b4ec83517c893f2c0a1cfa
BLAKE2b-256 1aa54ad92edf0894fcb13ce013b0c2aaf1bb003d30beb71cf3e083ada9284459

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page