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 docker -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
Built Distribution
File details
Details for the file surfkit-0.1.274.tar.gz
.
File metadata
- Download URL: surfkit-0.1.274.tar.gz
- Upload date:
- Size: 66.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.7 Darwin/23.4.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 222abb6d7bb433d4b8f3320b7fdd93d19258e3c7627ebcffc5c51a930a4a8eac |
|
MD5 | 04e2bf539fc6da7f4ae51f568f89a606 |
|
BLAKE2b-256 | 4001036a0afcb7a8a7f428b5e197142b420c682448f3d9ed2a228e1a21201864 |
File details
Details for the file surfkit-0.1.274-py3-none-any.whl
.
File metadata
- Download URL: surfkit-0.1.274-py3-none-any.whl
- Upload date:
- Size: 82.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.7 Darwin/23.4.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ec655f9ee40d8b03965a908956dcb3e739a7a1ffb7e7981d605e139e07193e3 |
|
MD5 | 2d96b98270f95c7997ff5d21ea313024 |
|
BLAKE2b-256 | a1ce177015152189cc60927abf3095402e3635c66fe5eec0c2b15de311e7b6ea |