surfkit


Namesurfkit JSON
Version 0.1.292 PyPI version JSON
download
home_pageNone
SummaryA toolkit for building AI agents that use devices
upload_time2024-12-15 22:24:31
maintainerNone
docs_urlNone
authorPatrick Barker
requires_python<4.0,>=3.10
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <!-- PROJECT LOGO -->
<br />
<p align="center">
  <!-- <a href="https://github.com/agentsea/skillpacks">
    <img src="https://project-logo.png" alt="Logo" width="80">
  </a> -->

  <h1 align="center">Surfkit</h1>

  <p align="center">
    A toolkit for building and sharing AI agents that operate on devices
    <br />
    <a href="https://docs.hub.agentsea.ai/introduction"><strong>Explore the docs »</strong></a>
    <br />
    <br />
    <a href="https://youtu.be/exoOUUwFRB8">View Demo</a>
    ·
    <a href="https://github.com/agentsea/surfkit/issues">Report Bug</a>
    ·
    <a href="https://github.com/agentsea/surfkit/issues">Request Feature</a>
  </p>
  <br>
</p>

## 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

```sh
pip install surfkit
```

## Quickstart

### Prerequisites

- Docker
- Python >= 3.10
- MacOS or Linux

### Python

Use an agent to solve a task

```python
from surfkit import solve

task = solve(
    "Search for the most common variety of french duck",
    agent_type="pbarker/SurfPizza",
    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 pbarker/SurfPizza -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](https://docs.hub.agentsea.ai) for more in depth information.

## Usage

### Building Agents

Initialize a new project

```sh
surfkit new
```

Build a docker container for the agent

```sh
surfkit build
```

### Running Agents

Create an agent locally

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

Create an agent on kubernetes

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

List running agents

```sh
surfkit list agents
```

Get details about a specific agent

```sh
surfkit get agent foo
```

Fetch logs for a specific agent

```sh
surfkit logs foo
```

Delete an agent

```sh
surfkit delete agent foo
```

### Managing Devices

Create a device

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

List devices

```sh
surfkit list devices
```

View device in UI

```sh
surfkit view bar
```

Delete a device

```sh
surfkit delete device bar
```

### Tracking Tasks

Create a tracker

```sh
surfkit create tracker
```

List trackers

```sh
surfkit list trackers
```

Delete a tracker

```sh
surfkit delete tracker foo
```

### Solving Tasks

Solve a task with an existing setup

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

Solve a task creating the agent ad hoc

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

List tasks

```sh
surfkit list tasks
```

### Publishing Agents

Login to the hub

```sh
surfkit login
```

Publish the agent

```sh
surfkit publish
```

List published agent types

```sh
surfkit find
```

## Integrations

Skillpacks is integrated with:

- [MLLM](https://github.com/agentsea/mllm) A prompt management, routing, and schema validation library for multimodal LLMs
- [Taskara](https://github.com/agentsea/taskara) A task management library for AI agents
- [Skillpacks](https://github.com/agentsea/skillpacks) A library to fine tune AI agents on tasks.
- [Threadmem](https://github.com/agentsea/threadmem) A thread management library for AI agents

## Community

Come join us on [Discord](https://discord.gg/hhaq7XYPS6).

## Developing

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

```sh
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.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "surfkit",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": null,
    "author": "Patrick Barker",
    "author_email": "patrickbarkerco@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/13/e0/da2c0b6bf02ea92097caf3d377804c8f47b71955a8c47701836678ad871e/surfkit-0.1.292.tar.gz",
    "platform": null,
    "description": "<!-- PROJECT LOGO -->\n<br />\n<p align=\"center\">\n  <!-- <a href=\"https://github.com/agentsea/skillpacks\">\n    <img src=\"https://project-logo.png\" alt=\"Logo\" width=\"80\">\n  </a> -->\n\n  <h1 align=\"center\">Surfkit</h1>\n\n  <p align=\"center\">\n    A toolkit for building and sharing AI agents that operate on devices\n    <br />\n    <a href=\"https://docs.hub.agentsea.ai/introduction\"><strong>Explore the docs \u00bb</strong></a>\n    <br />\n    <br />\n    <a href=\"https://youtu.be/exoOUUwFRB8\">View Demo</a>\n    \u00b7\n    <a href=\"https://github.com/agentsea/surfkit/issues\">Report Bug</a>\n    \u00b7\n    <a href=\"https://github.com/agentsea/surfkit/issues\">Request Feature</a>\n  </p>\n  <br>\n</p>\n\n## Features\n\n- **Build** multimodal agents that can operate on devices\n- **Share** agents with the community\n- **Run** agents and devices locally or in the cloud\n- **Manage** agent tasks at scale\n- **Track** and observe agent actions\n\n## Demo\n\nhttps://github.com/agentsea/surfkit/assets/5533189/98b7714d-9692-4369-8fbf-88aff61e741c\n\n## Installation\n\n```sh\npip install surfkit\n```\n\n## Quickstart\n\n### Prerequisites\n\n- Docker\n- Python >= 3.10\n- MacOS or Linux\n\n### Python\n\nUse an agent to solve a task\n\n```python\nfrom surfkit import solve\n\ntask = solve(\n    \"Search for the most common variety of french duck\",\n    agent_type=\"pbarker/SurfPizza\",\n    device_type=\"desktop\",\n  )\n\ntask.wait_for_done()\n\nresult = task.result\n```\n\n### CLI\n\n#### Create an Agent\n\nFind available agents on the Hub\n\n```\nsurfkit find\n```\n\nCreate a new agent\n\n```\nsurfkit create agent -t pbarker/SurfPizza -n agent01\n```\n\nList running agents\n\n```\nsurfkit list agents\n```\n\n#### Create a Device\n\nCreate an Ubuntu desktop for our agent to use.\n\n```\nsurfkit create device --provider docker -n desktop01\n```\n\nList running devices\n\n```\nsurfkit list devices\n```\n\n#### Solve a task\n\nUse the agent to solve a task on the device\n\n```\nsurfkit solve \"Search for the most common variety of french duck\" \\\n  --agent agent01 \\\n  --device desktop01\n```\n\n## Documentation\n\nView our [documentation](https://docs.hub.agentsea.ai) for more in depth information.\n\n## Usage\n\n### Building Agents\n\nInitialize a new project\n\n```sh\nsurfkit new\n```\n\nBuild a docker container for the agent\n\n```sh\nsurfkit build\n```\n\n### Running Agents\n\nCreate an agent locally\n\n```sh\nsurfkit create agent --name foo -t pbarker/SurfPizza\n```\n\nCreate an agent on kubernetes\n\n```sh\nsurfkit create agent --runtime kube -t pbarker/SurfPizza\n```\n\nList running agents\n\n```sh\nsurfkit list agents\n```\n\nGet details about a specific agent\n\n```sh\nsurfkit get agent foo\n```\n\nFetch logs for a specific agent\n\n```sh\nsurfkit logs foo\n```\n\nDelete an agent\n\n```sh\nsurfkit delete agent foo\n```\n\n### Managing Devices\n\nCreate a device\n\n```sh\nsurfkit create device --type desktop --provicer gce --name bar\n```\n\nList devices\n\n```sh\nsurfkit list devices\n```\n\nView device in UI\n\n```sh\nsurfkit view bar\n```\n\nDelete a device\n\n```sh\nsurfkit delete device bar\n```\n\n### Tracking Tasks\n\nCreate a tracker\n\n```sh\nsurfkit create tracker\n```\n\nList trackers\n\n```sh\nsurfkit list trackers\n```\n\nDelete a tracker\n\n```sh\nsurfkit delete tracker foo\n```\n\n### Solving Tasks\n\nSolve a task with an existing setup\n\n```sh\nsurfkit solve \"search for common french ducks\" --agent foo --device bar\n```\n\nSolve a task creating the agent ad hoc\n\n```sh\nsurfkit solve \"search for alpaca sweaters\" \\\n--device bar --agent-file ./agent.yaml\n```\n\nList tasks\n\n```sh\nsurfkit list tasks\n```\n\n### Publishing Agents\n\nLogin to the hub\n\n```sh\nsurfkit login\n```\n\nPublish the agent\n\n```sh\nsurfkit publish\n```\n\nList published agent types\n\n```sh\nsurfkit find\n```\n\n## Integrations\n\nSkillpacks is integrated with:\n\n- [MLLM](https://github.com/agentsea/mllm) A prompt management, routing, and schema validation library for multimodal LLMs\n- [Taskara](https://github.com/agentsea/taskara) A task management library for AI agents\n- [Skillpacks](https://github.com/agentsea/skillpacks) A library to fine tune AI agents on tasks.\n- [Threadmem](https://github.com/agentsea/threadmem) A thread management library for AI agents\n\n## Community\n\nCome join us on [Discord](https://discord.gg/hhaq7XYPS6).\n\n## Developing\n\nAdd the following function to your `~/.zshrc` (or similar)\n\n```sh\nfunction sk() {\n  local project_dir=\"/path/to/surfkit/repo\"\n  local venv_dir=\"$project_dir/.venv\"\n  local ssh_auth_sock=\"$SSH_AUTH_SOCK\"\n  local ssh_agent_pid=\"$SSH_AGENT_PID\"\n\n  export SSH_AUTH_SOCK=\"$ssh_auth_sock\"\n  export SSH_AGENT_PID=\"$ssh_agent_pid\"\n\n  # Add the Poetry environment's bin directory to the PATH\n  export PATH=\"$venv_dir/bin:$PATH\"\n\n  # Execute the surfkit.cli.main module using python -m\n  surfkit \"$@\"\n}\n```\n\nReplacing `/path/to/surfkit/repo` with the absolute path to your local repo.\n\nThen calling `sk` will execute the working code in your repo from any location.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A toolkit for building AI agents that use devices",
    "version": "0.1.292",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6bf3ce207c9d8a373c48eba682fc9aef5453bc042c8ee4916e6168c35c9cc9a0",
                "md5": "9931721bbac7ed687ba284d5c417e3c3",
                "sha256": "79f284b2b02661b8854d7c537d4de49176cd9cf1275b8d0d2eb2d1733150db2b"
            },
            "downloads": -1,
            "filename": "surfkit-0.1.292-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9931721bbac7ed687ba284d5c417e3c3",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 82152,
            "upload_time": "2024-12-15T22:24:28",
            "upload_time_iso_8601": "2024-12-15T22:24:28.498867Z",
            "url": "https://files.pythonhosted.org/packages/6b/f3/ce207c9d8a373c48eba682fc9aef5453bc042c8ee4916e6168c35c9cc9a0/surfkit-0.1.292-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "13e0da2c0b6bf02ea92097caf3d377804c8f47b71955a8c47701836678ad871e",
                "md5": "fa3595d659656321809574a2df267ae9",
                "sha256": "f062d01ec32f5b17c331abe2ffbf02d19cc11460facdac01e804963c6826d430"
            },
            "downloads": -1,
            "filename": "surfkit-0.1.292.tar.gz",
            "has_sig": false,
            "md5_digest": "fa3595d659656321809574a2df267ae9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 66510,
            "upload_time": "2024-12-15T22:24:31",
            "upload_time_iso_8601": "2024-12-15T22:24:31.097013Z",
            "url": "https://files.pythonhosted.org/packages/13/e0/da2c0b6bf02ea92097caf3d377804c8f47b71955a8c47701836678ad871e/surfkit-0.1.292.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-15 22:24:31",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "surfkit"
}
        
Elapsed time: 0.83327s