taskara


Nametaskara JSON
Version 0.1.181 PyPI version JSON
download
home_pageNone
SummaryTask management for AI agents
upload_time2024-12-20 03:53:52
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">Taskara</h1>

  <p align="center">
    Task management for AI agents
    <br />
    <a href="https://docs.hub.agentsea.ai/taskara/intro"><strong>Explore the docs »</strong></a>
    <br />
    <br />
    <a href="https://youtu.be/exoOUUwFRB8">View Demo</a>
    ·
    <a href="https://github.com/agentsea/taskara/issues">Report Bug</a>
    ·
    <a href="https://github.com/agentsea/taskara/issues">Request Feature</a>
  </p>
  <br>
</p>

## Installation

```sh
pip install taskara
```

## Usage

Create a task

```python
from taskara import Task

task = Task(
    description="Search for the most common varieties of french ducks",
    owner_id="delores@agentsea.ai"
)
```

Assign the task to an agent

```python
task.assigned_to = "roko@agentsea.ai"
```

Post a message to the task thread

```python
task.post_message("assistant", "Getting started working on this")
task.status = "in progress"
```

Create a custom thread for the task

```python
task.create_thread("debug")
task.post_message("assistant", "I'll post debug messages to this thread", thread="debug")
task.post_message("assistant", 'My current screenshot', images=["b64img"], thread="debug")
```

Store prompts used to accomplish the task

```python
from mllm import RoleThread, RoleMessage

thread = RoleThread()
thread.post(role="system", msg="I am a helpful assistant")

response = RoleMessage(
    role="assistant",
    text="How can I help?"
)
task.store_prompt(thread, response, namespace="actions")
```

Store the result

```python
task.output = "The most common type of french duck is the Rouen"
task.status = "success"
```

Save the task

```python
task.save()
```

## Tracker

Taskara comes with a task tracker server which can be run on docker or kubernetes.

Install surfkit to create a tracker

```
pip install surfkit
```

Create a tracker

```
surfkit create tracker
```

List trackers

```
surfkit list trackers
```

Get tracker logs

```
surfkit logs tracker <name>
```

Create a task

```
surfkit create task --description "Search for french ducks"
```

List tasks

```
surfkit list tasks
```

Get a task

```
surfkit get task <id>
```

## Integrations

Taskara is integrated with:

- [Surfkit](https://github.com/agentsea/surfkit) A platform for AI agents
- [MLLM](https://github.com/agentsea/mllm) A prompt management, routing, and schema validation library for multimodal LLMs
- [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).

## Backends

Thread and prompt storage can be backed by:

- Sqlite
- Postgresql

Sqlite will be used by default. To use postgres simply configure the env vars:

```sh
DB_TYPE=postgres
DB_NAME=tasks
DB_HOST=localhost
DB_USER=postgres
DB_PASS=abc123
```

Thread image storage by default will utilize the db, to configure bucket storage using GCS:

- Create a bucket with fine grained permissions
- Create a GCP service account JSON with permissions to write to the bucket

```sh
export THREAD_STORAGE_SA_JSON='{
  "type": "service_account",
  ...
}'
export THREAD_STORAGE_BUCKET=my-bucket
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "taskara",
    "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/19/d5/379e18917aac054442ad8a50ceac144d61e6a9673edd2ff80f2bf260b1a2/taskara-0.1.181.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\">Taskara</h1>\n\n  <p align=\"center\">\n    Task management for AI agents\n    <br />\n    <a href=\"https://docs.hub.agentsea.ai/taskara/intro\"><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/taskara/issues\">Report Bug</a>\n    \u00b7\n    <a href=\"https://github.com/agentsea/taskara/issues\">Request Feature</a>\n  </p>\n  <br>\n</p>\n\n## Installation\n\n```sh\npip install taskara\n```\n\n## Usage\n\nCreate a task\n\n```python\nfrom taskara import Task\n\ntask = Task(\n    description=\"Search for the most common varieties of french ducks\",\n    owner_id=\"delores@agentsea.ai\"\n)\n```\n\nAssign the task to an agent\n\n```python\ntask.assigned_to = \"roko@agentsea.ai\"\n```\n\nPost a message to the task thread\n\n```python\ntask.post_message(\"assistant\", \"Getting started working on this\")\ntask.status = \"in progress\"\n```\n\nCreate a custom thread for the task\n\n```python\ntask.create_thread(\"debug\")\ntask.post_message(\"assistant\", \"I'll post debug messages to this thread\", thread=\"debug\")\ntask.post_message(\"assistant\", 'My current screenshot', images=[\"b64img\"], thread=\"debug\")\n```\n\nStore prompts used to accomplish the task\n\n```python\nfrom mllm import RoleThread, RoleMessage\n\nthread = RoleThread()\nthread.post(role=\"system\", msg=\"I am a helpful assistant\")\n\nresponse = RoleMessage(\n    role=\"assistant\",\n    text=\"How can I help?\"\n)\ntask.store_prompt(thread, response, namespace=\"actions\")\n```\n\nStore the result\n\n```python\ntask.output = \"The most common type of french duck is the Rouen\"\ntask.status = \"success\"\n```\n\nSave the task\n\n```python\ntask.save()\n```\n\n## Tracker\n\nTaskara comes with a task tracker server which can be run on docker or kubernetes.\n\nInstall surfkit to create a tracker\n\n```\npip install surfkit\n```\n\nCreate a tracker\n\n```\nsurfkit create tracker\n```\n\nList trackers\n\n```\nsurfkit list trackers\n```\n\nGet tracker logs\n\n```\nsurfkit logs tracker <name>\n```\n\nCreate a task\n\n```\nsurfkit create task --description \"Search for french ducks\"\n```\n\nList tasks\n\n```\nsurfkit list tasks\n```\n\nGet a task\n\n```\nsurfkit get task <id>\n```\n\n## Integrations\n\nTaskara is integrated with:\n\n- [Surfkit](https://github.com/agentsea/surfkit) A platform for AI agents\n- [MLLM](https://github.com/agentsea/mllm) A prompt management, routing, and schema validation library for multimodal LLMs\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## Backends\n\nThread and prompt storage can be backed by:\n\n- Sqlite\n- Postgresql\n\nSqlite will be used by default. To use postgres simply configure the env vars:\n\n```sh\nDB_TYPE=postgres\nDB_NAME=tasks\nDB_HOST=localhost\nDB_USER=postgres\nDB_PASS=abc123\n```\n\nThread image storage by default will utilize the db, to configure bucket storage using GCS:\n\n- Create a bucket with fine grained permissions\n- Create a GCP service account JSON with permissions to write to the bucket\n\n```sh\nexport THREAD_STORAGE_SA_JSON='{\n  \"type\": \"service_account\",\n  ...\n}'\nexport THREAD_STORAGE_BUCKET=my-bucket\n```\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Task management for AI agents",
    "version": "0.1.181",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a2082f939df75c70c3f0a8d9d287381ded30de2dd74e667a9838480b2323c517",
                "md5": "2687234dc9fd84d76353ab68c5e047c0",
                "sha256": "c541a417311bbfb18460e88741fb141d54bfb5feb4e8338736da39b8bc459b06"
            },
            "downloads": -1,
            "filename": "taskara-0.1.181-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2687234dc9fd84d76353ab68c5e047c0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 62107,
            "upload_time": "2024-12-20T03:53:50",
            "upload_time_iso_8601": "2024-12-20T03:53:50.799533Z",
            "url": "https://files.pythonhosted.org/packages/a2/08/2f939df75c70c3f0a8d9d287381ded30de2dd74e667a9838480b2323c517/taskara-0.1.181-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "19d5379e18917aac054442ad8a50ceac144d61e6a9673edd2ff80f2bf260b1a2",
                "md5": "7c21655bffd8f49af5abe93dbf742994",
                "sha256": "2dc0e2f76651c14776a1b41299fd3da26827dd693f9912125c8f97deff6db19b"
            },
            "downloads": -1,
            "filename": "taskara-0.1.181.tar.gz",
            "has_sig": false,
            "md5_digest": "7c21655bffd8f49af5abe93dbf742994",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 51688,
            "upload_time": "2024-12-20T03:53:52",
            "upload_time_iso_8601": "2024-12-20T03:53:52.159187Z",
            "url": "https://files.pythonhosted.org/packages/19/d5/379e18917aac054442ad8a50ceac144d61e6a9673edd2ff80f2bf260b1a2/taskara-0.1.181.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-20 03:53:52",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "taskara"
}
        
Elapsed time: 0.39523s